Exemplo n.º 1
0
        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");
        }
Exemplo n.º 2
0
        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 + ";");
        }
Exemplo n.º 3
0
        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");
        }
Exemplo n.º 4
0
        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");
        }
Exemplo n.º 6
0
        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);
        }