Member 12702368 Ответов: 0

Как сделать приоритет операций ( + * - / ) в моих грамматиках?


I define my own grammars using antlr 4 and I want to build tree true According to Priority of Operations (+ * - /) ....

I find sample on do Priority of Operations (* +) it work fine ...

I try to edit it to add the Priority of Operations (- /) but I failed :(

the grammars for Priority of Operations (+ *) is :


 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:'/' ; 


Как я могу добавить к ним приоритет операций ( - /)?

Что я уже пробовал:

все мои попытки провалились : (может быть, у меня есть missunderstund The greammers

Tomas Takac

Покажите, что вы пробовали. В противном случае нечего говорить об этом.

0 Ответов