Как реализуется приоритет оператора в ANTLR?
Я сейчас использую пакет XText / Antlr.
Редактировать:
Я сделал то, что предложил sepp2k, и приоритет оператора теперь работает, но такие вещи, как 3 + *, также работают сейчас. Операторы в основном «проваливаются» в дерево.
Кроме того, я попробовал грамматику C на веб-сайте ANTLR, и то же самое произошло в ANTLRworks.
Кто-нибудь знает, в чем проблема?
BinaryExpression:
'or'? AndOp; //or op
AndOp:
'and'? ComparisonOp;
ComparisonOp:
('>'|'<'|'>='|'<='|'=='|'~=')? ConcatOp;
ConcatOp:
'..'? AddSubOp;
AddSubOp:
('+' | '-')? MultDivOp;
MultDivOp:
('*' | '/')? ExpOp;
ExpOp:
'^'? expr=Expression;