private static void CreateExpression(Operator op) { Expression lhs; Expression rhs = expressions.Pop(); if (op.IsUnary()) { lhs = rhs; rhs = null; } else { lhs = expressions.Pop(); } expressions.Push(new Expression(lhs, rhs, op)); }
// Check correctness override public string ToString() { string expression; if (Object.ReferenceEquals(op, null)) { return(solution.ToString()); } expression = OperatorNames.OpenParenthesis + Left.ToString() + op.ToString(); if (!op.IsUnary()) { expression += Right.ToString(); } return(expression + OperatorNames.ClosedParenthesis); }