在ANTLR中,如何在不回溯的情况下解决歧义?
expr :原子 |原子二元表达式->^(二元原子表达式) ;在ANTLR中,如何在不回溯的情况下解决歧义?,antlr,Antlr,expr :原子 |原子二元表达式->^(二元原子表达式) ; 如果可能的话,我想在没有回溯的情况下解决这个问题。由于某种原因,使用回溯会破坏我的代码。关于语法谓词的文档并不多,我想知道如何使用谓词来实现这一点。如果ANTLR抱怨存在歧义,那么它源自另一条规则。你能发布一个完整的语法来重现你得到的错误吗?或者尝试重构到这个:expr:(atom->atom)(BINARY-expr->^(BINARY-atom-expr))
如果可能的话,我想在没有回溯的情况下解决这个问题。由于某种原因,使用回溯会破坏我的代码。关于语法谓词的文档并不多,我想知道如何使用谓词来实现这一点。如果ANTLR抱怨存在歧义,那么它源自另一条规则。你能发布一个完整的语法来重现你得到的错误吗?或者尝试重构到这个:
expr:(atom->atom)(BINARY-expr->^(BINARY-atom-expr))代码>