标签: antlr4
我有一个antlr4语法,由于预测器的超线性运行时间,需要花费很长时间来解析像f()()()()...()()()这样的长表达式。表达式规则还具有通常的具有不同优先级的类算术运算符。我可以通过切换到SLL模式将运行时间降低到合理的水平。我的问题是,很大一部分输入程序会有解析错误。我必须重新使用LL来区分真正的错误和功能较弱的解析器生成的虚假错误。这意味着平均表现仍然不佳。
f()()()()...()()()
如何在SLL模式下解析语法是否安全,而不在LL中重试?
是否有任何重写语法的一般技巧,因此可以较慢地解析表达式?