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