public override Value Evaluate(Interpreter i) { Value CastedA = new Value(A, i); Value CastedB = new Value(B, i); CastedA.CastSameType(CastedB, ValueType.Integer); Debug.Assert(CastedA.Type != ValueType.Boolean); switch (CastedA.Type) { case ValueType.Integer: return new Value(CastedA.Integer % CastedB.Integer); case ValueType.Decimal: return new Value(CastedA.Decimal % CastedB.Decimal); } return CastedA; }
public override Value Evaluate(Interpreter i) { Value CastedA = new Value(A, i); Value CastedB = new Value(B, i); CastedA.CastSameType(CastedB); switch (CastedA.Type) { case ValueType.Boolean: return new Value(CastedA.Bool != CastedB.Bool); case ValueType.Integer: return new Value(CastedA.Integer != CastedB.Integer); case ValueType.Decimal: return new Value(CastedA.Decimal != CastedB.Decimal); } return CastedA; }