我已经尝试了几天修复我的语法文件(uniformSQL.g4)以提高解析器性能但仍然失败。通过SQL案例解析器的解析器成本超过4000毫秒。而且我也尝试使用SLL(*)策略,它很快但出现了很多不匹配的情况。
所以我想知道如何在设计语法时获得最佳性能。
在设计语法时我也尝试降低解析树的高度,但速度变慢了。
期待您的建议,谢谢。
这是我的uniformSQL.g4语法文件: https://github.com/ihainan/GBase-8a-MPP-Cluster-SQL-Parser/blob/master/src/main/java/cn/edu/bit/linc/sqlparser/antlr/uniformSQL.g4
这是我的SQL测试用例(280多行): https://github.com/ihainan/GBase-8a-MPP-Cluster-SQL-Parser/blob/master/test.sql