Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porMagdalena Carias Modificado hace 9 años
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 : ;
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.