public void Visit(LessEquExpr lessEquExpr, object[] args) { lessEquExpr.FirstOp.Accept(this); lessEquExpr.SecondOp.Accept(this); RightValue v1 = readRightValue(lessEquExpr.FirstOp); RightValue v2 = readRightValue(lessEquExpr.SecondOp); DataType resultType = readAlgoOperand(v1, v2, lessEquExpr.Location); BoolConst result = new BoolConst(); if (resultType == DataType.Int) { result.Value = Convert.ToInt32(v1.GetValueObject()) <= Convert.ToInt32(v2.GetValueObject()); } else if (resultType == DataType.Float) { result.Value = Convert.ToDouble(v1.GetValueObject()) <= Convert.ToDouble(v2.GetValueObject()); } else { throw new Exception(); } lessEquExpr.RightValue = result; }