public override Value EvaluateReverse(Value left, BinaryExpression op) { if (this.GetLevel() >= left.GetLevel()) { Float leftF = (Float)left.Convert(typeof (Float)); Value result = ValueFactory.CreateValue( op.Evaluate(leftF.GetValue(), this.GetValue())); return result; } else { return left.Evaluate(this, op); } }
public override Value Evaluate(Value right, BinaryExpression op) { if (this.GetLevel() >= right.GetLevel()) { Integer rightI = (Integer)right.Convert(typeof (Integer)); Value result = ValueFactory.CreateValue( op.Evaluate(this.GetValue(), rightI.GetValue())); return result; } else { return right.EvaluateReverse(this, op); } }
public abstract Value EvaluateReverse(Value left, BinaryExpression op);
public abstract Value Evaluate(Value other, BinaryExpression op);