Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- FOR ::= tfor parenA CUERPOFOR:E1 parenC llaveA SENTENCIAS:E2 llaveC
- {:
- RESULT = new Nodo();
- RESULT.codigo = E1.codigo;
- RESULT.codigo = RESULT.codigo + E1.v + ":\n";
- RESULT.codigo = RESULT.codigo + "<SENTENCIAS>\n";
- RESULT.codigo = RESULT.codigo + "goto " + E1.ForIncr +"\n";
- RESULT.codigo = RESULT.codigo + E1.f + ":\n";
- System.out.println(RESULT.codigo);
- :}
- ;
- CUERPOFOR ::= FOR_INICIO:E1 FOR_COND:E2 FOR_INCREMENTO:E3
- {:
- RESULT = new Nodo();
- RESULT.codigo = E1.codigo + E2.codigo + E3.codigo;
- RESULT.codigo = RESULT.codigo + "goto " + E1.ForCond + "\n";
- RESULT.v = E2.v;
- RESULT.f = E2.f;
- RESULT.ForIncr = E3.ForIncr;
- :}
- ;
- FOR_INICIO ::= tint id:E1 igual EXP:E2 puntocoma
- {:
- RESULT = new Nodo();
- RESULT.codigo = "<CODIGO EXP>\n";
- RESULT.codigo = RESULT.codigo + E1 +" = "+"<EXP>\n";
- RESULT.ForCond = generarEtiqueta();
- RESULT.codigo = RESULT.codigo + RESULT.ForCond + ":\n";
- :}
- | id:E1 igual EXP:E2 puntocoma
- {:
- RESULT = new Nodo();
- RESULT.codigo = "<CODIGO EXP>\n";
- RESULT.codigo = RESULT.codigo + E1 +" = "+"<EXP>\n";
- RESULT.ForCond = generarEtiqueta();
- RESULT.codigo = RESULT.codigo + RESULT.ForCond + ":\n";
- :}
- ;
- FOR_COND ::= COND:E1 puntocoma
- {:
- RESULT = new Nodo();
- RESULT.codigo = "<CODIGO COND>\n";
- RESULT.v = generarEtiqueta();
- RESULT.f = generarEtiqueta();
- :}
- ;
- FOR_INCREMENTO ::= id:E1 igual EXP:E2
- {:
- RESULT = new Nodo();
- RESULT.ForIncr = generarEtiqueta();
- RESULT.codigo = RESULT.ForIncr + ":\n";
- RESULT.codigo = RESULT.codigo + "<CODIGO EXP>\n";
- RESULT.codigo = RESULT.codigo + E1 +" = "+ "<EXP>\n";
- :}
- | id:E1 mas mas
- {:
- RESULT = new Nodo();
- RESULT.ForIncr = generarEtiqueta();
- RESULT.codigo = RESULT.ForIncr + ":\n";
- RESULT.codigo = RESULT.codigo + E1 +" = "+E1+" + 1\n";
- :}
- | id:E1 menos menos
- {:
- RESULT = new Nodo();
- RESULT.codigo = RESULT.codigo + E1 +" = "+E1+" - 1\n";
- :}
Add Comment
Please, Sign In to add comment