我正在尝试定义计划并估计实现SQL的MySQL方言的ANTLR解析器所需的工作量.基本上,它归结为将YACC解析器语法从MySQL发行版(sql_yacc.yy)转换为ANTRL语法.
它只是看起来如此直截了当吗?我发现语言语法的某些方面可能需要更多的开发和测试:
> ANTLR不接受左递归
>数字文字将需要自定义Java代码来基于值来转换类型
> ……
您知道,遇到或期待的任何其他挑战?
解决方法:
在此之前,您应该知道这是一项工作无法在几天或几周内完成,而是在几个月内完成.这是一个sql解析器库,您可以在创建自己的解析器时参考.