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;