예제 #1
0
 void AccumulateDigits(bool isInput, string msg)
 {
     if (isInput)
     {
         currentState = CalcState.AccumulateDigits;
         tempNumber  += msg;
         resultDelegate(tempNumber);
     }
     else
     {
         if (Rules.IsDigit(msg) || Rules.ABCDEF(msg))
         {
             AccumulateDigits(true, msg);
         }
         else if (Rules.IsOperator(msg) || Rules.IsSquareSign(msg) || Rules.IsOneOverXSign(msg) || Rules.IsPlusMinus(msg) || Rules.IsDEL(msg) || Rules.IsXPowerY(msg))
         {
             Compute(true, msg);
         }
         else if (Rules.IsEqualSign(msg) && operation.Length > 0)
         {
             Result(true, msg);
         }
         else if (Rules.IsSeparator(msg))
         {
             AccumulateDigitsWithDecimal(true, msg);
         }
         else if (Rules.IsClearSign(msg))
         {
             Zero(true, msg);
         }
         else if (Rules.IsOff(msg))
         {
             Off(true, msg);
         }
         else if (Rules.IsDivisibleSign(msg))
         {
             Error(true, msg);
         }
         else if (Rules.IsCheckComprSign(msg))
         {
             Compute(true, msg);
         }
         else if (Rules.IsQuizSign(msg))
         {
             Compute(true, msg);
         }
     }
 }