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)