1 / 21

Traductores EDT con ANTLR

Traductores EDT con ANTLR. 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;. f returns [int fresul=0]: num=NUMERO {int v=Integer.parseInt($num.text); $fresul=v;};.

hanne
Download Presentation

Traductores EDT con ANTLR

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Traductores 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 : ;

More Related