System.Globalization.HebrewNumber.ParseByChar C# (CSharp) Method

ParseByChar() static private method

static private ParseByChar ( char ch, HebrewNumberParsingContext &context ) : HebrewNumberParsingState
ch char
context HebrewNumberParsingContext
return HebrewNumberParsingState
        internal static HebrewNumberParsingState ParseByChar(char ch, ref HebrewNumberParsingContext context) {
            HebrewToken token;
            if (ch == '\'') {
                token = HebrewToken.SingleQuote;
            } else if (ch == '\"') {
                token = HebrewToken.DoubleQuote;
            } else {
                int index = (int)ch - minHebrewNumberCh;                
                if (index >= 0 && index < HebrewValues.Length ) {
                    token = HebrewValues[index].token;
                    if (token == HebrewToken.Invalid) {
                        return (HebrewNumberParsingState.NotHebrewDigit);
                    }
                    context.result += HebrewValues[index].value;
                } else {
                    // Not in valid Hebrew digit range.
                    return (HebrewNumberParsingState.NotHebrewDigit);
                }
            }
            context.state = m_numberPasingState[(int)context.state][(int)token];
            if (context.state == HS._err) {
                // Invalid Hebrew state.  This indicates an incorrect Hebrew number.
                return (HebrewNumberParsingState.InvalidHebrewNumber);
            }                 
            if (context.state == HS.END) {
                // Reach a terminal state.
                return (HebrewNumberParsingState.FoundEndOfHebrewNumber);
            }
            // We should continue to parse.
            return (HebrewNumberParsingState.ContinueParsing);
        }