public override string Execute(Ambit_Trad ambit) { var ambitName = "Global_While"; if (!ambit.IsNull) { ambitName = ambit.Ambit_name + "_While"; } var whileAmbit = new Ambit_Trad(ambit, ambitName, "While", false); //CONDICION var cond = condition.Execute(whileAmbit); //SENTENCIA var while_sentencia = sentences.Execute(whileAmbit); var tabs = ""; for (int i = 0; i < cant_tabs; i++) { tabs = tabs + " "; } return (tabs + "while " + cond + " do\n" + tabs + "begin\n" + while_sentencia + "\n" + tabs + "end;\n"); }
public override string Execute(Ambit_Trad ambit) { var ambitName = "Global_Repeat"; if (!ambit.IsNull) { ambitName = ambit.Ambit_name + "_Repeat"; } var repeatAmbit = new Ambit_Trad(ambit, ambitName, "Repeat", false); //CONDICION var condicion = condition.Execute(repeatAmbit); //SENTENCIAS var repeat_senteces = sentences.Execute(repeatAmbit); var tabs = ""; for (int i = 0; i < cant_tabs; i++) { tabs = tabs + " "; } return (tabs + "repeat \n" + repeat_senteces + "\n" + tabs + "until " + condition + ";"); }
public override string Execute(Ambit_Trad ambit) { var ambitName = "Global_For"; if (!ambit.IsNull) { ambitName = ambit.Ambit_name + "_For"; } var forAmbit = new Ambit_Trad(ambit, ambitName, "For", false); var val_init = inicializacion.Execute(forAmbit); var val_fin = actualizacion.Execute(forAmbit); var sentencias = sentence.Execute(forAmbit); var tabs = ""; for (int i = 0; i < cant_tabs; i++) { tabs = tabs + " "; } return (tabs + "for " + initId + ":= " + val_init + " " + direccion + " " + val_fin + " do \n" + tabs + "begin\n" + sentencias + tabs + "end\n"); }
public override string Execute(Ambit_Trad ambit) { var ambitName = "Global_Case"; if (ambit != null) { ambitName = ambit.Ambit_name + "_Case"; } var tabs = ""; for (int i = 0; i < cant_tabs; i++) { tabs = tabs + " "; } var tabs1 = ""; for (int i = 0; i < cant_tabs + 1; i++) { tabs1 = tabs1 + " "; } //Condicion de switch var conSwitch = condicion.Execute(ambit); var casos = ""; for (int i = 0; i < cases.Count; i++) { var condCase = ((Case_Trad)(cases[i])).getCaseCondition(ambit); var switchAmbit = new Ambit_Trad(ambit, ambitName, "Case", false); var element = (Case_Trad)cases[i]; var resultado = element.Execute(switchAmbit); casos = casos + tabs1 + condCase + ":\n" + resultado; } if (!else_case.IsNull) { var element = else_case.Execute(ambit); casos = casos + tabs1 + "else\n" + element; } return (tabs + "case (" + conSwitch + ")\n" + casos + tabs + "\nend;"); }
public override string Execute(Ambit_Trad ambit) { var tabs = ""; for (int i = 0; i < cant_tabs; i++) { tabs = tabs + " "; } var val = value.Execute(ambit); return(tabs + this.id + ":= " + val + ";\n"); }
public override string Execute(Ambit_Trad ambit) { var result = ""; if (!this.type.ToLower().Equals("not")) { var varIz = this.left.Execute(ambit); var valDer = right.Execute(ambit); result = varIz + " " + this.type + " " + valDer; } else { var varIz = this.left.Execute(ambit); result = "not " + varIz; } return(result); }