Я определяю свои собственные грамматики, используя antlr 4, и хочу построить дерево true В соответствии с приоритетом операций (+ * - /) ....Как сделать приоритет операций (+ * - /) в моих грамматиках?
Я нахожу образец на примере приоритета операций (* +) хорошо ...
Я пытаюсь изменить его, чтобы добавить приоритет операций (- /), но я не смог :(
грамматик для приоритета операций (+ *) является:
println:PRINTLN expression SEMICOLON {System.out.println($expression.value);};
expression returns [Object value]:
t1=factor {$value=(int)$t1.value;}
(PLUS t2=factor{$value=(int)$value+(int)$t2.value;})*;
factor returns [Object value]: t1=term {$value=(int)$t1.value;}
(MULT t2=term{$value=(int)$value*(int)$t2.value;})*;
term returns [Object value]:
NUMBER {$value=Integer.parseInt($NUMBER.text);}
| ID {$value=symbolTable.get($value=$ID.text);}
| PAR_OPEN expression {$value=$expression.value;} PAR_CLOSE
;
MULT :'*';
PLUS :'+';
MINUS:'-';
DIV:'/' ;
Как я могу добавить к ним приоритет операций (- /)?
это работа как вы сказали, спасибо вам большое @Bart Kiers – code