Parsing 如何在ANTLR中设置平面优先规则?

Parsing 如何在ANTLR中设置平面优先规则?,parsing,antlr,ambiguity,operator-precedence,Parsing,Antlr,Ambiguity,Operator Precedence,我想以简单的方式设置优先级规则(例如乘法和加法的数学运算符,即.*和+) 看一看: (简而言之,它通过声明表达式是多个表达式的相加来解决上述示例) 这样做的代价是非常深入的解析树,因为优先级是使用嵌套规则解决的。我希望有一个用于解析的(“平面”)规则加上优先级声明(就像在Yacc中解决的那样) 问题:如何在ANTLR中实现这种(类似Yacc的,即平坦的)方法 问题:如何在ANTLR中实现这种(类似Yacc的,即平坦的)方法 你不能 如果让解析器创建AST,“非常深的解析树”将不再存在。见以下问答

我想以简单的方式设置优先级规则(例如乘法和加法的数学运算符,即.*和+)

看一看: (简而言之,它通过声明表达式是多个表达式的相加来解决上述示例)

这样做的代价是非常深入的解析树,因为优先级是使用嵌套规则解决的。我希望有一个用于解析的(“平面”)规则加上优先级声明(就像在Yacc中解决的那样)

问题:如何在ANTLR中实现这种(类似Yacc的,即平坦的)方法

问题:如何在ANTLR中实现这种(类似Yacc的,即平坦的)方法

你不能

如果让解析器创建AST,“非常深的解析树”将不再存在。见以下问答:

问题:如何在ANTLR中实现这种(类似Yacc的,即平坦的)方法

你不能


如果让解析器创建AST,“非常深的解析树”将不再存在。请参阅以下问答:

谢谢您的回答,但关于我的需求,我会得到更多的信息;-)我需要它,因为它让我以更简洁的方式表达语法,第二,当可视化语法树时,它也更简洁,因此更可读。在设计阶段,这很重要(对我来说)。@macias,“但关于我的需求,我会有更好的了解”,这是真的!:)谢谢你的回答,但是关于我的需要,我知道的更多;-)我需要它,因为它让我以更简洁的方式表达语法,第二,当可视化语法树时,它也更简洁,因此更可读。在设计阶段,这很重要(对我来说)。@macias,“但关于我的需求,我会有更好的了解”,这是真的!:)