Кто-нибудь знает об онлайн-ресурсе, где я могу узнать, как написать простой анализатор выражений, используя Boost::Spirit?.
Мне не обязательно оценивать выражение, но мне нужно проанализировать его и иметь возможность вернуть логическое значение, чтобы указать, можно ли анализировать выражение или нет (например, скобки не совпадают и т. д.).
Мне нужно, чтобы синтаксический анализатор мог распознавать имена функций (например, foo и foobar), так что это также будет полезным примером, который поможет мне научиться писать нотацию BNF.
Выражения будут обычными арифметическими уравнениями, т.е. состоящими из следующих символов:
- открывающие/закрывающие скобки
- арифметические операторы
- распознанные имена функций и проверьте их обязательные аргументы