//INSTRUCCION public Instruction_Trad INSTRUCCION(ParseTreeNode actual, int cant_tabs) { if (actual.Term.ToString().Equals("WRITE")) { var writeAST = (new WriteTraduccion()).getWrite(actual, cant_tabs); return(writeAST); } else if (actual.Term.ToString().Equals("IF-THEN")) { IFTraduccion iF_AST = new IFTraduccion(); If_Trad _ifs = iF_AST.IFTHEN(actual, cant_tabs); return(_ifs); } else if (actual.Term.ToString().Equals("WHILE")) { While_Trad _while = (new WhileTraduccion()).WHILE(actual, cant_tabs); return(_while); } else if (actual.Term.ToString().Equals("VAR_ASSIGNATE")) { Assignation_Trad _assignation = (new AssignationTraduction()).VAR_ASSIGNATE(actual, cant_tabs); return(_assignation); } else if (actual.Term.ToString().Equals("REPEAT_UNTIL")) { Repeat_Trad _repeat = (new RepeatTraduction()).REPEAT_UNTIL(actual, cant_tabs); return(_repeat); } else if (actual.Term.ToString().Equals("FOR")) { For_Trad _for = ((new ForTraduccion())).SENCECIA_FOR(actual, cant_tabs); return(_for); } else if (actual.Term.ToString().Equals("SENTENCE_CASE")) { Switch_Trad _SW = (new CaseTraduccion()).SENTENCE_CASE(actual, cant_tabs); return(_SW); } else if (actual.Term.ToString().Equals("CONTINUE")) { return(new Continue_Trad(cant_tabs)); } else if (actual.Term.ToString().Equals("BREAK")) { return(new Break_Trad(cant_tabs)); } else if (actual.Term.ToString().Equals("CALL")) { return((new CallTraduccion()).CALL(actual, cant_tabs)); } else if (actual.Term.ToString().Equals("EXIT")) { return((new ExitTraduccion()).getExit(actual.ChildNodes[2], cant_tabs)); } return(null); }
public If_Trad IFTHEN(ParseTreeNode actual, int cant_tabs) { /* * IFTHEN.Rule * = RESERV_IF + EXPRESION + RESERV_THEN + IF_SENTENCE + ELIF; */ If_Trad ifs = new If_Trad(); ExpressionTraduccion expressionAST = new ExpressionTraduccion(); var LOGIC_EXPRESION = expressionAST.getExpresion(actual.ChildNodes[1]); var SENTENCES = IF_SENTENCE(actual.ChildNodes[3], cant_tabs + 1); var ELSE = ELIF(actual.ChildNodes[4], cant_tabs + 1); return(new If_Trad(LOGIC_EXPRESION, SENTENCES, ELSE, cant_tabs)); }