public void TestHasNext()
        {
            List <Token> tokens = new List <Token>();

            tokens.Add(new Token(TokenType.DollarIdentifier, "a", 5, 2));
            tokens.Add(new Token(TokenType.Word, "a", 5, 3));
            tokens.Add(new Token(TokenType.AtIdentifier, "@b", 12, 0));
            tokens.Add(new Token(TokenType.Word, "c", 14, 42));
            TokenIterator tokenIterator = new TokenIterator(tokens);

            Assert.IsTrue(tokenIterator.HasNextType(TokenType.DollarIdentifier));
            Assert.IsTrue(tokenIterator.HasNextType(TokenType.DollarIdentifier, TokenType.Pipe));
            Assert.IsTrue(tokenIterator.HasNextType(TokenType.Period, TokenType.DollarIdentifier, TokenType.Pipe));
            Assert.IsFalse(tokenIterator.HasNextType(TokenType.Number));
            tokenIterator.Next();
            tokenIterator.Next();
            tokenIterator.Next();
            tokenIterator.Next();
            Assert.IsFalse(tokenIterator.HasNextType(TokenType.Word));
        }