Pull to refresh

Comments 10

Это грамматика, которую мы и сделали :)

на upwork был офер для этого — Create Antlr grammar, g4 file, for Python & C#

Если вы имеете в виду старую грамматику MySql в этой же папке, которая существовала до июня 2017, то она практически ничего не поддерживала. По возможностям сильно отставала от текущей версии.

Эта грамматика под ANTLR 3 и с кучей вставок кода, судя по всему C++. А нашу грамматику можно использовать под все существующие рантаймы. По синтаксису 3 версия ANTLR существенно отличается от 4.


Да, автор из Oracle. Он же разрабатывал C++ рантайм под ANTLR 4.

Есть альтернатива ANTLR — Babelfish — это такое контейнеризированное чудо построенное на концепции отсутствия необходимости писать новый парсер с нуля. Берем один из кучи готовых, заворачиваем преобразование в универсальный AST (просто маппинг ролей, ничего больше, структура не меняется) и используем :) Конечно, минус есть и он может быть существенным — это клиент-сервер, хотя и отлично масштабируемый.

Сомневаюсь что из кучи готовых парсеров можно сделать один. Даже T-Sql и MySql настолько разные, что у них отдельные грамматики, не говоря уже о других языках. Вот преобразование в UAST до какой-то степени можно сделать универсальным с мэппингами.

Все верно, преобразование туда-обратно работает только в случае совпадения языков. Основное использование — анализ кода.

Наша компания ведет разработку в том числе и подобного проекта. Универсальный анализатор кода, причем открытый: PT.PM :)

Sign up to leave a comment.