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); } } }
void ABCDEF(bool isInput, string msg) { if (isInput) { tempNumber += msg; currentState = CalcState.ABCDEF; resultDelegate(msg); } else { if (Rules.ABCDEF(msg)) { ABCDEF(true, msg); } else if (Rules.IsQuizSign(msg)) { Compute(true, msg); } } }
void Zero(bool isInput, string msg) { if (isInput) { currentState = CalcState.Zero; resultDelegate("0"); msg = ""; tempNumber = ""; resultNumber = ""; operation = ""; } else { if (Rules.IsNonZeroDigit(msg)) { AccumulateDigits(true, msg); } else if (Rules.IsSeparator(msg)) { AccumulateDigitsWithDecimal(true, msg); } else if (Rules.IsOff(msg)) { Off(true, msg); } else if (Rules.IsOperator(msg) || Rules.IsRootSign(msg)) { tempNumber = "0"; Compute(true, msg); } else if (Rules.IsDivisibleSign(msg)) { Error(true, msg); } else if (Rules.ABCDEF(msg)) { ABCDEF(true, msg); } } }