If statement 语法中的Antlr 3 Java if语句
我试图用Java代码规范化Antlr AST 我想做的是 7–2=5转换为5+2=7 我已经创建了以下语法If statement 语法中的Antlr 3 Java if语句,if-statement,normalization,antlr3,If Statement,Normalization,Antlr3,我试图用Java代码规范化Antlr AST 我想做的是 7–2=5转换为5+2=7 我已经创建了以下语法 start : (n1=NUMBER a=ARITME^ n2=NUMBER) e=EQUALS^ n3=NUMBER {if (String.valueOf($a)=="-") /*s.th*/ ;} ; NUMBER : '0'..'9'; ARITME : '+'|'-'; EQUALS : '='; 但是我不知道
start
: (n1=NUMBER a=ARITME^ n2=NUMBER) e=EQUALS^ n3=NUMBER {if (String.valueOf($a)=="-") /*s.th*/ ;} ;
NUMBER
: '0'..'9';
ARITME
: '+'|'-';
EQUALS
: '=';
但是我不知道如何重新设置n1、n2和n3的值(并将“-”改为“+”)以在AST中显示您想在解析过程中重写树吗?我不会那么做的。只需像往常一样创建AST,然后使用树遍历器检查树并创建规范化的输出,这要灵活得多。@MikeLischke thx我明白了,但在解析过程中是否可以重写它?规范化是我在这里唯一需要做的事情,所以对于这个,一个步行者会有点太多。。。