示例#1
0
 public string ReplaceFinalOperator(Symbol newOp)
 {
     if (string.IsNullOrEmpty(_equation))
     {
         return newOp.ToString();
     }
     return _equation.TrimEnd(Operators.ToArray()) + newOp.ToString();
 }
示例#2
0
 private static void inspectRecursive(StringBuilder sb, Symbol symbol,
                                      int depth)
 {
     sb.AppendLine(string.Format("{0}{1}: {2}",
         "".PadRight(depth * 2),
         symbol.GetType().Name,
         symbol.ToString()));
     foreach (var childSymbol in symbol.ConstituentSymbols)
     {
         inspectRecursive(sb, childSymbol, depth + 1);
     }
 }
 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());
     }
 }