antlr4 грамматика sql

есть ли у ANTLR4 грамматика sql? Если да, то где я могу его найти?

есть ссылка из ANTLR wiki, но ссылка сломана:список грамматики

4 ответов


нет, на момент написания этой статьи отсутствует грамматика SQL v4.

вся грамматика v4 будет помещена в следующий репозиторий Github (насколько я помню из списка рассылки ANTLR):https://github.com/antlr/grammars-v4

грамматики v3 здесь и сейчас:http://antlr3.org/grammar/list.html

редактировать-апрель 2018

теперь здесь есть пользовательская грамматика MySQL: https://github.com/antlr/grammars-v4/tree/master/mysql


В настоящее время существует множество SQL-грамматик для v4:

  1. MySQL
  2. PL / SQL
  3. T-SQL (Microsoft SQL Server) by KvanTTT

по состоянию на Feb/6 / 2017 существует файл ANTLR4 для t-sql, но он поддерживается сообществом и не завершен, я нашел много операторов SQL, допустимых для SQLServer, но не способных быть проанализированы этой грамматикой.


Как упоминалось другими пользователями, есть грамматики SQL, доступные в интернете, но они не являются полными. Я бы предположил, что лучшим способом было бы использовать неполную грамматику и добавить грамматику, которой нет поверх нее, как и когда вам нужно. Например, если вам требуется перевод для предложения join, а его нет, просто добавьте его поверх него. Просто убедитесь, что грамматика, которую вы пишете, не нарушает существующую грамматику

Это то, что я сделал в моя стажировка, где мне пришлось сделать инструмент для преобразования скриптов SAS в python. SAS является собственностью, это грамматика не была доступна. Поэтому мы построили все с нуля.