Guest User

Untitled

a guest
Jan 16th, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.38 KB | None | 0 0
  1. FOR ::= tfor parenA CUERPOFOR:E1 parenC llaveA SENTENCIAS:E2 llaveC
  2. {:
  3. RESULT = new Nodo();
  4. RESULT.codigo = E1.codigo;
  5. RESULT.codigo = RESULT.codigo + E1.v + ":\n";
  6. RESULT.codigo = RESULT.codigo + "<SENTENCIAS>\n";
  7. RESULT.codigo = RESULT.codigo + "goto " + E1.ForIncr +"\n";
  8. RESULT.codigo = RESULT.codigo + E1.f + ":\n";
  9.  
  10. System.out.println(RESULT.codigo);
  11. :}
  12. ;
  13.  
  14. CUERPOFOR ::= FOR_INICIO:E1 FOR_COND:E2 FOR_INCREMENTO:E3
  15. {:
  16. RESULT = new Nodo();
  17. RESULT.codigo = E1.codigo + E2.codigo + E3.codigo;
  18. RESULT.codigo = RESULT.codigo + "goto " + E1.ForCond + "\n";
  19.  
  20. RESULT.v = E2.v;
  21. RESULT.f = E2.f;
  22. RESULT.ForIncr = E3.ForIncr;
  23. :}
  24. ;
  25.  
  26. FOR_INICIO ::= tint id:E1 igual EXP:E2 puntocoma
  27. {:
  28. RESULT = new Nodo();
  29. RESULT.codigo = "<CODIGO EXP>\n";
  30. RESULT.codigo = RESULT.codigo + E1 +" = "+"<EXP>\n";
  31.  
  32. RESULT.ForCond = generarEtiqueta();
  33.  
  34. RESULT.codigo = RESULT.codigo + RESULT.ForCond + ":\n";
  35. :}
  36. | id:E1 igual EXP:E2 puntocoma
  37. {:
  38. RESULT = new Nodo();
  39. RESULT.codigo = "<CODIGO EXP>\n";
  40. RESULT.codigo = RESULT.codigo + E1 +" = "+"<EXP>\n";
  41.  
  42. RESULT.ForCond = generarEtiqueta();
  43.  
  44. RESULT.codigo = RESULT.codigo + RESULT.ForCond + ":\n";
  45. :}
  46. ;
  47.  
  48. FOR_COND ::= COND:E1 puntocoma
  49. {:
  50. RESULT = new Nodo();
  51. RESULT.codigo = "<CODIGO COND>\n";
  52.  
  53. RESULT.v = generarEtiqueta();
  54. RESULT.f = generarEtiqueta();
  55. :}
  56. ;
  57.  
  58. FOR_INCREMENTO ::= id:E1 igual EXP:E2
  59. {:
  60. RESULT = new Nodo();
  61.  
  62. RESULT.ForIncr = generarEtiqueta();
  63.  
  64. RESULT.codigo = RESULT.ForIncr + ":\n";
  65. RESULT.codigo = RESULT.codigo + "<CODIGO EXP>\n";
  66. RESULT.codigo = RESULT.codigo + E1 +" = "+ "<EXP>\n";
  67. :}
  68. | id:E1 mas mas
  69. {:
  70. RESULT = new Nodo();
  71.  
  72. RESULT.ForIncr = generarEtiqueta();
  73.  
  74. RESULT.codigo = RESULT.ForIncr + ":\n";
  75. RESULT.codigo = RESULT.codigo + E1 +" = "+E1+" + 1\n";
  76. :}
  77. | id:E1 menos menos
  78. {:
  79. RESULT = new Nodo();
  80. RESULT.codigo = RESULT.codigo + E1 +" = "+E1+" - 1\n";
  81. :}
Add Comment
Please, Sign In to add comment