/// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        private TokenType NextTokenAny()
        {
            TokenType nextTokenType = TokenType.Eof;

            char[] chars = new char[1];
            _currentToken     = String.Empty;
            _currentTokenType = TokenType.Eof;
            int finished = _reader.Read(chars, 0, 1);

            bool isNumber = false;
            bool isWord   = false;

            byte[]   ba = null;
            Encoding AE = PlatformUtilityEx.GetASCIIEncoding();

            char[] ascii = null;
            Char   currentCharacter;
            Char   nextCharacter;

            while (finished != 0)
            {
                // convert int to char
                ba                = new Byte[] { (byte)_reader.Peek() };
                ascii             = AE.GetChars(ba);
                currentCharacter  = chars[0];
                nextCharacter     = ascii[0];
                _currentTokenType = GetType(currentCharacter);
                nextTokenType     = GetType(nextCharacter);

                // handling of words with _
                if (isWord && currentCharacter == '_')
                {
                    _currentTokenType = TokenType.Word;
                }
                // handing of words ending in numbers
                if (isWord && _currentTokenType == TokenType.Number)
                {
                    _currentTokenType = TokenType.Word;
                }

                if (_currentTokenType == TokenType.Word && nextCharacter == '_')
                {
                    // enable words with _ inbetween
                    nextTokenType = TokenType.Word;
                    isWord        = true;
                }
                if (_currentTokenType == TokenType.Word && nextTokenType == TokenType.Number)
                {
                    // enable words ending with numbers
                    nextTokenType = TokenType.Word;
                    isWord        = true;
                }

                // handle negative numbers
                if (currentCharacter == '-' && nextTokenType == TokenType.Number && isNumber == false)
                {
                    _currentTokenType = TokenType.Number;
                    nextTokenType     = TokenType.Number;
                }

                // this handles numbers with a decimal point
                if (isNumber && nextTokenType == TokenType.Number && currentCharacter == '.')
                {
                    _currentTokenType = TokenType.Number;
                }
                if (_currentTokenType == TokenType.Number && nextCharacter == '.' && isNumber == false)
                {
                    nextTokenType = TokenType.Number;
                    isNumber      = true;
                }

                _colNumber++;
                if (_currentTokenType == TokenType.Eol)
                {
                    _lineNumber++;
                    _colNumber = 1;
                }

                _currentToken = _currentToken + currentCharacter;
                if (_currentTokenType != nextTokenType)
                {
                    finished = 0;
                }
                else if (_currentTokenType == TokenType.Symbol && currentCharacter != '-')
                {
                    finished = 0;
                }
                else
                {
                    finished = _reader.Read(chars, 0, 1);
                }
            }
            return(_currentTokenType);
        }