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; }
public override Valor interpretar() { Valor v_izq = leftExpr.interpretar(); Valor v_der = rightExpr.interpretar(); Valor result; if (v_izq is ValorEntero) result = new ValorBooleano( Convert.ToBoolean(((ValorEntero)v_izq).valor) || Convert.ToBoolean(((ValorEntero)v_der).valor) ); else if (v_izq is ValorFlotante) result = new ValorBooleano( Convert.ToBoolean(((ValorFlotante)v_izq).valor) || Convert.ToBoolean(((ValorFlotante)v_der).valor) ); else result = new ValorBooleano( ((ValorBooleano)v_izq).valor || ((ValorBooleano)v_der).valor ); return result; }
public override Valor interpretar() { Valor v_izq = leftExpr.interpretar(); Valor v_der = rightExpr.interpretar(); Valor result; if (v_izq is ValorEntero) result = new ValorBooleano( ((ValorEntero)v_izq).valor != ((ValorEntero)v_der).valor ); else if (v_izq is ValorFlotante) result = new ValorBooleano( ((ValorFlotante)v_izq).valor != ((ValorFlotante)v_der).valor ); else if (v_izq is ValorCadena) result = new ValorBooleano( ((ValorCadena)v_izq).valor != ((ValorCadena)v_der).valor ); else if (v_izq is ValorCaracter) result = new ValorBooleano( ((ValorCaracter)v_izq).valor != ((ValorCaracter)v_der).valor ); else result = new ValorBooleano( ((ValorBooleano)v_izq).valor != ((ValorBooleano)v_der).valor ); return result; }