Beispiel #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;
        }
Beispiel #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 if (v_izq is ValorFlotante)
                result = new ValorFlotante(
                    ((ValorFlotante)v_izq).valor
                    +
                    ((ValorFlotante)v_der).valor
                    );
            else
                result = new ValorCadena(
                    ((ValorCadena)v_izq).valor
                    +
                    ((ValorCadena)v_der).valor
                    );

            return result;
        }