Re: Распознование стpоки
- From
- Oleg I. Khovayko ()
- To
- Dmitry Grusdev
- Date
- 2002-12-09T19:57:08Z
- Area
- RU.ALGORITHMS
From: "Oleg I. Khovayko" <olegh@ncbi.nlm.nih.gov>
Dmitry Grusdev wrote:
> Наpод, как можно pаспознать фоpмулу, введённую пользователем в виде стpоки,
Задача сформулирована слишком обобщенно, и в таком виде не имеет решения.
Пример: Я даю тебе запрос: Чему равно "2^3"? Что скажешь? 8, то есть 2 в кубе?
А вот и не угадал! Это будет равно единице, так как
согласно синтаксическим правилам, которыми _Я_ пользуюсь, это "^" означает XOR.
Причем правила эти я взял не с потолка, а ис стандарта ANSI C.
Вывод: Чтобы однозначно распознать формули, надо описать непротиворечивую
КС-грамматику, составить БНФ, а потом кодировать.
Либо ручками, либо сладкой парочкой flex/bison.
> закиньте алгоpитм или ссылки подскажите
Алгоритм: нисходяще-рекурсивный разбор.
Ссылки - да любая книжка по конструированию компиляторов.
Тот же Грис, например...
--
#include <best/regards.hpp>
Oleg I. KHOVAYKO
(301)435-5885 || WEB: http://olegh.spedia.net
--- ifmail v.2.15dev5
* Origin: National Center for Biotechnology Information (2:5020/400)