Кодим на Rust: грамматика для калькулятора
HTML-код
- Опубликовано: 15 сен 2024
- Как разобрать выражения вида 25 + 8 / 4 + 5 * (127 + 9)?
Пишем формальную грамматику для арифметических выражений с поддержкой приоритета операций, использую нотацию Бэкуса-Наура с использованием библиотеки LALRPOP.
Получаем сгенерированный автомат с магазинной памятью для разбора этой контекстно-свободной грамматики на языке RUST! Проверяем парсер и получаем абстрактное синтаксическое дерево (AST), по которому вычисляем значение.
Визуализация в следующем видео!
Предыдущее видео: • Как написать свой язык...
Исходный код: github.com/kgr...
Документация по LALRPOP: lalrpop.github...
Видео про красно-черное дерево: • Rust: Красно-Черное де...
#rust #grammar
Класс! В каких проектах и задачах данный парсер может пригодиться?
В приложении калькулятор, при написании своего языка программирования или среды типа matlab и т.п.
@@kosayk007 Спасибо)
а я изучаю antlr3. там наверно более удобно это сделано)