微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ANTLR4-从L到R评估,优先级相同

如何解决ANTLR4-从L到R评估,优先级相同

解析器规则:

expression : L_BRACKET expression R_BRACKET #Parenthesis
           | left=expression op=AND right=expression #And
           | left=expression op=OR right=expression #Or
           | left=expression op=XOR right=expression #Xor
           | left=expression op=IMPL right=expression #Impl
           | left=expression op=EQUIV right=expression #Equiv
           | left=expression op=VAR right=expression #Var
           | op=NEG expression #Neg
           | VALUE #Value
           | VAR #Var
           ;

输入:

a or a and a and a and a

解析树:

enter image description here

我希望从左到右简单地评估字符串。换句话说,在这种情况下,只有树的左节点应该有子级。

但是,目前,AND似乎比OR优先,上述字符串被视为a or (a and a and a and a)

我该怎么做?

解决方法

| left=expression op=(AND|OR|XOR|IMPL|EQUIV) right=expression #Operation

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。