// public Expression Expression1; // public Expression Expression2; override public int Evaluate(EvaluationState state) { Expression1.Evaluate(state); var result = Expression2.Evaluate(state); return(result); }
// public BinaryOperator Operator; // public Expression Expression1; // public Expression Expression2; override public int Evaluate(EvaluationState state) { var value1 = Expression1.Evaluate(state); var value2 = Expression2.Evaluate(state); var result = 0; switch (Operator) { case BinaryOperator.Add: result = value1 + value2; break; case BinaryOperator.Sub: result = value1 - value2; break; case BinaryOperator.Eq: result = value1 == value2 ? 1 : 0; break; case BinaryOperator.Lt: result = value1 < value2 ? 1 : 0; break; } return(result); }
internal override double Evaluate() { return(Expression1.Evaluate() / Expression2.Evaluate()); }
internal override double Evaluate() { return(Math.Pow(Expression1.Evaluate(), Expression2.Evaluate())); }