我正在尝试定义时间表并估计实现 MySQL 方言的 ANTLR 解析器所需的工作量。基本上,它归结为将 YACC 解析器语法从 MySQL 版本 (sql_yacc.yy
) 转换为 ANTRL 语法。
它只是看起来那么直截了当吗?我发现语言语法的某些区域可能需要更多的开发和测试:
- ANTLR 不接受左递归
- 数字文字将需要自定义 Java 代码以根据值转换类型
- ...
您知道、遇到或期望的任何其他挑战?
最佳答案
在做这件事之前,你应该知道这是一项不是几天或几周就能完成的工作,而是几个月才能完成的工作。这是一个 sql 解析器库,您可以在创建自己的解析器时引用。
关于mysql - 在 ANTLR 中编写 SQL 解析器有哪些挑战?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10372437/