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
по состоянию на Feb/6 / 2017 существует файл ANTLR4 для t-sql, но он поддерживается сообществом и не завершен, я нашел много операторов SQL, допустимых для SQLServer, но не способных быть проанализированы этой грамматикой.
Как упоминалось другими пользователями, есть грамматики SQL, доступные в интернете, но они не являются полными. Я бы предположил, что лучшим способом было бы использовать неполную грамматику и добавить грамматику, которой нет поверх нее, как и когда вам нужно. Например, если вам требуется перевод для предложения join, а его нет, просто добавьте его поверх него. Просто убедитесь, что грамматика, которую вы пишете, не нарушает существующую грамматику
Это то, что я сделал в моя стажировка, где мне пришлось сделать инструмент для преобразования скриптов SAS в python. SAS является собственностью, это грамматика не была доступна. Поэтому мы построили все с нуля.