mysql – 在ANTLR中编写SQL解析器有哪些挑战?

我正在尝试定义计划并估计实现SQL的MySQL方言的ANTLR解析器所需的工作量.基本上,它归结为将YACC解析器语法从MySQL发行版(sql_yacc.yy)转换为ANTRL语法.

它只是看起来如此直截了当吗?我发现语言语法的某些方面可能需要更多的开发和测试:

> ANTLR不接受左递归
>数字文字将需要自定义Java代码来基于值来转换类型
> ……

您知道,遇到或期待的任何其他挑战?

解决方法:

在此之前,您应该知道这是一项工作无法在几天或几周内完成,而是在几个月内完成.这是一个sql解析器库,您可以在创建自己的解析器时参考.

http://www.sqlparser.com/

上一篇:使用ANTLR用C#解析C


下一篇:java – 为什么我的ANTLR构建Ant任务因“无法确定生成的类”而失败?