System.Data.ExpressionParser.ScanNumeric C# (CSharp) Method

ScanNumeric() private method

ScanNumeric - parse number. In format: [digit|.]*{[e|E]{[+|-]}{digit*}} Further checking is done by constant parser.
private ScanNumeric ( ) : void
return void
        private void ScanNumeric()
        {
            char[] text = _text;
            bool fDot = false;
            bool fSientific = false;

            Debug.Assert(_pos != 0, "We have at least one digit in the buffer, ScanNumeric()");
            Debug.Assert(IsDigit(text[_pos - 1]), "We have at least one digit in the buffer, ScanNumeric(), not a digit");

            while (IsDigit(text[_pos]))
            {
                _pos++;
            }

            if (text[_pos] == _decimalSeparator)
            {
                fDot = true;
                _pos++;
            }

            while (IsDigit(text[_pos]))
            {
                _pos++;
            }

            if (text[_pos] == _exponentL || text[_pos] == _exponentU)
            {
                fSientific = true;
                _pos++;

                if (text[_pos] == '-' || text[_pos] == '+')
                {
                    _pos++;
                }
                while (IsDigit(text[_pos]))
                {
                    _pos++;
                }
            }
            if (fSientific)
                _token = Tokens.Float;
            else if (fDot)
                _token = Tokens.Decimal;
            else
                _token = Tokens.Numeric;
        }
        /// <summary>