Разбор SQL-запросов в C ++ с использованием Boost.Spirit

Я создал механизм базы данных, в котором я могу создавать и изменять таблицы и добавлять их в базу данных. Для анализа запросов SQL я реализовал библиотеку Boost.Spirit с использованием формы EBNF. У меня правильно настроен синтаксический анализатор, и он успешно разбирает каждое правило.

Моя проблема в том, что я теперь понятия не имею, как интегрировать оба. Синтаксический анализатор Boost.Spirit только проверяет правильность ввода, однако мне нужноdo что-то. Я посмотрел семантические действия, но они, кажется, не справляются с тем, что я ищу.

Например, если у меня есть запрос, такой как:
new_table <- SELECT (id < 5) old_table;

Я хочу, чтобы он подтвердил ввод, используя правила, а затем вызовите функцию
Table Database::Select(Table t , Condition c){ ... }
и передать токены в качестве аргументов.

Как мне интегрировать парсер?

Ответы на вопрос(1)

Ваш ответ на вопрос