AjScript.Interpreter.Lexer.NextToken C# (CSharp) Метод

NextToken() публичный Метод

public NextToken ( ) : Token
Результат Token
        public Token NextToken()
        {
            if (this.tokens != null && this.tokens.Count > 0)
                return this.tokens.Pop();

            char? nch;

            nch = this.NextCharSkipBlanks();

            if (!nch.HasValue)
                return null;

            char ch = nch.Value;

            if (char.IsDigit(ch))
            {
                return this.NextInteger(ch);
            }

            if (char.IsLetter(ch) || ch == '_')
            {
                return this.NextName(ch);
            }

            if (ch == StringChar)
            {
                return this.NextString();
            }

            if (ch == QuotedStringChar)
            {
                return this.NextQuotedString();
            }

            if (Delimiters.Contains(ch))
            {
                return this.NextSeparator(ch);
            }

            if (Operators.Contains(ch))
            {
                return this.NextOperator(ch);
            }

            throw new InvalidDataException(string.Format(CultureInfo.InvariantCulture, "Unknown input '{0}'", ch));
        }

Usage Example

Пример #1
0
        public void ParseNegativeInteger()
        {
            Lexer lexer = new Lexer("-42");

            var token = lexer.NextToken();

            Assert.IsNotNull(token);
            Assert.AreEqual(TokenType.Operator, token.TokenType);
            Assert.AreEqual("-", token.Value);

            token = lexer.NextToken();

            Assert.IsNotNull(token);
            Assert.AreEqual("42", token.Value);
            Assert.AreEqual(TokenType.Integer, token.TokenType);

            Assert.IsNull(lexer.NextToken());
        }
All Usage Examples Of AjScript.Interpreter.Lexer::NextToken