ANTLR4 有可用的 sql 语法吗?如果是这样,我在哪里可以找到它?
有一个来自 ANTLR wiki 的链接,但链接已损坏:语法列表
不,在撰写本文时,还没有 v4 SQL 语法。
所有 v4 语法都将放入以下 Github 存储库(据我记得来自 ANTLR 邮件列表):https ://github.com/antlr/grammars-v4
现在这里的 v3 语法:http: //antlr3.org/grammar/list.html
现在这里有一个用户贡献了 MySQL 语法:[dead link removed]
MySQL、T-SQL、PL/SQL 和 SQLite 语法都可以在这里找到:https ://github.com/antlr/grammars-v4/tree/master/sql
截至 2017 年 2 月 6 日,t-sql 有 ANTLR4 文件,但它是社区维护的,并不完整,我发现许多 SQL 语句对 SQLServer 有效但无法被此语法解析。
正如其他用户所提到的,网上有可用的 SQL 语法,但它们并不完整。我建议最好的方法是使用不完整的语法,并在需要时添加其顶部不存在的语法。例如,如果您需要翻译 join 子句并且该子句不存在,则只需将其添加到它的顶部即可。只需确保您编写的语法不会破坏任何现有语法
这就是我在实习中所做的,我必须制作一个将 SAS 脚本转换为 python 的工具。SAS 是专有的,它的语法不可用。所以我们从头开始构建一切。