나는 antlr 4를 사용하여 내 자신의 문법을 정의하고 트리를 사실대로 만들고 싶다. 우선 순위에 따라 (+ * - /) ....내 문법에서 작업 우선 순위 (+ * - /)를 수행하는 방법?
나는 우선 순위가있는 작업 잘 ...
나는 그것이 작업의 우선 순위 추가 편집하려고 (- /)를하지만 운영 (+ *)의 우선 순위에 대한 :(
문법을 실패한 것은 :
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:'/' ;
운영 우선 순위 (- /)를 어떻게 추가 할 수 있습니까?
그 작업 당신이 말했듯이 verey 많은 바트 키어스 감사합니다. – code