ANTLR中如何实现运算符优先级?
目前我正在使用XText/Antlr包。
编辑:
我按照sepp2k的建议做了,现在运算符优先级可以正常工作了,但是像3 +*这样的东西也可以工作。 运算符基本上是“穿过”树的。
另外,我在ANTLR网站上尝试了C语法,同样的事情也发生在ANTLRworks中。
有人知道问题出在哪里吗?
BinaryExpression:
'or'? AndOp; //or op
AndOp:
'and'? ComparisonOp;
ComparisonOp:
('>'|'<'|'>='|'<='|'=='|'~=')? ConcatOp;
ConcatOp:
'..'? AddSubOp;
AddSubOp:
('+' | '-')? MultDivOp;
MultDivOp:
('*' | '/')? ExpOp;
ExpOp:
'^'? expr=Expression;