void Result(bool isInput, string msg) { if (isInput) { currentState = CalcState.Result; Calculate(); CheckCompr(); resultDelegate(resultNumber); } else { if (Rules.IsZero(msg)) { Zero(true, msg); } else if (Rules.IsNonZeroDigit(msg)) { tempNumber = ""; AccumulateDigits(true, msg); } else if (Rules.IsOperator(msg) || Rules.IsXPowerY(msg) || Rules.IsSquareSign(msg) || Rules.IsOneOverXSign(msg) || Rules.IsPlusMinus(msg) || Rules.IsDEL(msg)) { operation = ""; tempNumber = resultNumber; Compute(true, msg); } else if (Rules.IsSeparator(msg)) { operation = ""; tempNumber = resultNumber; AccumulateDigitsWithDecimal(true, msg); } else if (Rules.IsClearSign(msg)) { Zero(true, msg); } else if (Rules.IsOff(msg)) { Off(true, msg); } else if (Rules.IsEqualSign(msg)) { Result(true, msg); } else if (Rules.IsDivisibleSign(msg)) { Error(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); } } }