Комментарии 10
Спасибо за статью, интересное применение antlr. А почему готовая грамматика не подошла?
Это грамматика, которую мы и сделали :)
Если вы имеете в виду старую грамматику MySql в этой же папке, которая существовала до июня 2017, то она практически ничего не поддерживала. По возможностям сильно отставала от текущей версии.
Спасибо за статью! Как я сегодня узнал, есть ещё одна готовая ANTLR грамматика, написанная самим же Ораклом для проекта MySQL Workbench. Правда она под GPL, и потому вряд ли вам бы подошла.
Есть альтернатива ANTLR — Babelfish — это такое контейнеризированное чудо построенное на концепции отсутствия необходимости писать новый парсер с нуля. Берем один из кучи готовых, заворачиваем преобразование в универсальный AST (просто маппинг ролей, ничего больше, структура не меняется) и используем :) Конечно, минус есть и он может быть существенным — это клиент-сервер, хотя и отлично масштабируемый.
Грамматика MySQL на ANTLR 4