private void openParenthesis()
 {
     Symbol sym = new OpenParenthesis();
     if (ERROR_MESSAGE.Equals(_equationText) ||
         "0".Equals(_equationText))
     {
         changeEquationText(sym.ToString());
         return;
     }
     var eq = new Equation(_equationText);
     if (!eq.HasFinalOperator())
     {
         // Disallow a number followed by an open parenthesis
         return;
     }
     changeEquationText(_equationText + sym.ToString());
 }
 private void operator operatorButtonClicked(Symbol op)
 {
     if (ERROR_MESSAGE.Equals(_equationText))
     {
         changeEquationText("0" + op.ToString());
         return;
     }
     var eq = new Equation(_equationText);
     if (eq.HasFinalOperator())
     {
         changeEquationText(eq.ReplaceFinalOperator(op));
     } else
     {
         changeEquationText(_equationText
                        + op.ToString());
     }
 }
 protected void OnButtonDotClicked(object sender, System.EventArgs e)
 {
     if (ERROR_MESSAGE.Equals(_equationText))
     {
         changeEquationText("0.");
         return;
     }
     var eq = new Equation(_equationText);
     if (!eq.HasFinalOperator())
     {
         changeEquationText(_equationText + ".");
     }
 }