ANTLR4相同的优先级不同的相关性

时间:2016-12-01 16:33:46

标签: antlr antlr4

是否可以创建一个语法,该语法具有多个具有相同优先级但具有不同关联性的运算符的规则?

例如" +"和" - "两者具有相同的优先级和关联性(左联想。)

但如果我想改变" +"为了正确联想但具有相同的优先权我该怎么做?

我试过了:

expr:  expr op=('*'|'/') expr                   # MulDiv
   |   expr op=(<assoc=right>'+'|'-') expr      # AddSub
   |   INT                                      # int
   |   ID                                       # id
   |   '(' expr ')'                             # parens
   ;

和@LucasTrzesniewski。仍然不起作用你的建议

addSubOp: <assoc=right>'+'| <assoc=lefts>'-'; expr: expr op=('*'|'/') expr # MulDiv | expr addSubOp expr # AddSub | INT # int | ID # id | '(' expr ')' # parens ;

但没有成功。

0 个答案:

没有答案