internal static Evaluation Evaluate(Expression/*!*/ parent, Evaluation eval1, out Expression/*!*/ expr1, Evaluation eval2, out Expression/*!*/ expr2) { if (eval1.HasValue && eval2.HasValue) { expr1 = eval1.Expression; expr2 = eval2.Expression; return new Evaluation(parent, parent.Evaluate(eval1.Value, eval2.Value)); } expr1 = eval1.Literalize(); expr2 = eval2.Literalize(); return new Evaluation(parent); }