Пример #1
0
        public override Valor interpretar()
        {
            Valor v = value.interpretar();

            ReferenceAccess t_id = (ReferenceAccess)Id;

            Valor oldval = t_id.interpretar();//this.entornoValoresActual.get(((ReferenceAccess)Id).lexeme);

            Valor newval;
            if (oldval is ValorEntero)
                newval = new ValorEntero(((ValorEntero)oldval).valor
                                        +
                                        ((ValorEntero)v).valor);
            else if (oldval is ValorFlotante)
                newval = new ValorFlotante(((ValorFlotante)oldval).valor
                                          +
                                          ((ValorFlotante)v).valor
                    );
            else
                newval = new ValorCadena(
                        ((ValorCadena)oldval).valor
                        +
                        ((ValorCadena)v).valor
                        );

            t_id.setElem(newval);

            return newval;
        }
Пример #2
0
        public override Valor interpretar()
        {
            Valor v_izq = leftExpr.interpretar();
            Valor v_der = rightExpr.interpretar();

            Valor result;
            if (v_izq is ValorEntero)
                result = new ValorEntero(
                    ((ValorEntero)v_izq).valor
                    /
                    ((ValorEntero)v_der).valor
                    );
            else
                result = new ValorFlotante(
                    ((ValorFlotante)v_izq).valor
                    /
                    ((ValorFlotante)v_der).valor
                    );

            return result;
        }
Пример #3
0
        public override Valor interpretar()
        {
            //initEnvValores();
            Valor v = value.interpretar();

            ReferenceAccess t_id = (ReferenceAccess)Id;

            Valor oldval = Parser.pilaValores.Peek().get(t_id.lexeme); //this.entornoValoresActual.get(t_id.lexeme);

            Valor newval;

            if (oldval is ValorEntero)
                newval = new ValorEntero(
                        ((ValorEntero)oldval).valor
                        /
                        ((ValorEntero)v).valor
                        );
            else
                newval = new ValorFlotante(
                        ((ValorFlotante)oldval).valor
                        /
                        ((ValorFlotante)v).valor
                        );

            t_id.setElem(newval);
            return newval;
        }
Пример #4
0
        public override Valor interpretar()
        {
            Valor val = this.Id.interpretar();

            Valor newVal;
            if (val is ValorEntero)
                newVal = new ValorEntero(((ValorEntero)val).valor + 1);
            else
                newVal = new ValorFlotante(((ValorFlotante)val).valor + 1);

            ReferenceAccess t_id = (ReferenceAccess)Id;
            t_id.setElem(newVal);

            return newVal;
        }
Пример #5
0
        public override Valor interpretar()
        {
            Valor val = this.Id.interpretar();

            Valor newVal;
            if (val is ValorEntero)
                newVal = new ValorEntero(((ValorEntero)val).valor - 1);
            else
                newVal = new ValorFlotante(((ValorFlotante)val).valor - 1);

            //this.entornoValoresActual.set(((ReferenceAccess)Id).lexeme, newVal);
            ReferenceAccess t_id = (ReferenceAccess)Id;
            t_id.setElem(newVal);

            return newVal;
        }
Пример #6
0
        public override Valor interpretar()
        {
            Valor val = this.Id.interpretar();
            //EnvValues env = ((ReferenceAccess)Id).getEntornoValores();

            Valor newVal;
            if (val is ValorEntero)
                newVal = new ValorEntero(((ValorEntero)val).valor + 1);
            else
                newVal = new ValorFlotante(((ValorFlotante)val).valor + 1);

            //env.set(((ReferenceAccess)Id).lexeme, newVal);
            ReferenceAccess t_id = (ReferenceAccess)Id;
            t_id.setElem(newVal);
            return val;
        }
Пример #7
0
        public override Valor interpretar()
        {
            Valor val = this.Id.interpretar();

            Valor newVal;
            if (val is ValorEntero)
                newVal = new ValorEntero(
                    Convert.ToInt32(
                        !(Convert.ToBoolean(((ValorEntero)val).valor))));
            else if (val is ValorFlotante)
                newVal = new ValorFlotante(
                    Convert.ToInt32(
                        !(Convert.ToBoolean(((ValorFlotante)val).valor))));
            else
                newVal = new ValorBooleano(!((ValorBooleano)val).valor);

            //this.entornoValoresActual.set(((ReferenceAccess)Id).lexeme, newVal);
            return newVal;
        }