Показать сообщение отдельно
Старый 16.04.2016, 22:58   #3
IgorOK
Мастер
 
Аватар для IgorOK
 
Регистрация: 26.10.2009
Сообщений: 1,194
Написано 615 полезных сообщений
(для 2,209 пользователей)
Ответ: парсинг математического выражения

Парсинг собственно прост. Сначала разложи код на лексемы:

цифра(2), оператор(*), начало_выражения, цифра(1), оператор(+), цифра(2), оператор(/), цифра(2), конец_выражения.

Пишется процедура, которая посимвольно проверяет строку на соответствие какой либо группе. Например проверяем в твоём случае: находим символ 2. Предполагаем что это Int. Далее стоит символ "*". Он не подходит под определение Int. Добавляем 2 в список лексем как Int. Потом * туда же добавляем как оператор. И так далее, до конца строки.

Таким образом проверишь синтаксис выражения на простые ошибки. Вдруг кто-то напишет не 10+0.9, а 10+09.

Остальное можно разложить в стек или построить дерево выражения.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ant0N (17.04.2016)