1 T RADUCTORES EDT CON ANTLR
2 CASO DE PRUEBA EDT CON ANTLR A continuación realizaremos una representación del árbol generado para la siguiente operación aritmética: 345+(3*46-(34+67)+333)*2;
3 f returns [int fresul=0]: num=NUMERO {int v=Integer.parseInt($num.text); $fresul=v;};
4 e1 [int n1] returns [int resultado=0] : OPSUMA t{$resultado=$n1+$t.valor;} n=e1[$resultado]{$resultado=n;}
5 f returns [int fresul=0]: '(' r=e{$fresul=r;} ')'
6 f returns [int fresul=0]: num=NUMERO {int v=Integer.parseInt($num.text); $fresul=v;};
7 t1 [int n1] returns [int resultado=0] : OPMULT f{$resultado=$n1*$f.fresul;} n=t1[$resultado]{$resultado=n;}
8 f returns [int fresul=0]: num=NUMERO {int v=Integer.parseInt($num.text); $fresul=v;};
9 e1 [int n1] returns [int resultado=0] : OPRESTA t{$resultado=$n1-$t.valor;} n=e1[$resultado]{$resultado=n;}
10 f returns [int fresul=0]: '(' r=e{$fresul=r;} ')'
11 f returns [int fresul=0]: num=NUMERO {int v=Integer.parseInt($num.text); $fresul=v;};
12 e1 [int n1] returns [int resultado=0] : OPSUMA t{$resultado=$n1+$t.valor;} n=e1[$resultado]{$resultado=n;}
13 f returns [int fresul=0]:num=NUMERO {int v=Integer.parseInt($num.text); $fresul=v;};
14 f returns [int fresul=0]: '(' r=e{$fresul=r;} ')'
15 e1 [int n1] returns [int resultado=0] : OPSUMA t{$resultado=$n1+$t.valor;} n=e1[$resultado]{$resultado=n;}
16 f returns [int fresul=0]: num=NUMERO {int v=Integer.parseInt($num.text); $fresul=v;};
17 f returns [int fresul=0]: '(' r=e{$fresul=r;} ')'
18 t1 [int n1] returns [int resultado=0] : OPMULT f{$resultado=$n1*$f.fresul;} n=t1[$resultado]{$resultado=n;}
19 f returns [int fresul=0]: num=NUMERO {int v=Integer.parseInt($num.text); $fresul=v;};
20 a: e SEMICOLON { System.out.println("\n\nReconocida expresion aritmetica. Valor final: "+$e.resultado); } a
21 a : ;