| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | 
							- <?php
 
- /*
 
-  * This file is part of the Symfony package.
 
-  *
 
-  * (c) Fabien Potencier <fabien@symfony.com>
 
-  *
 
-  * For the full copyright and license information, please view the LICENSE
 
-  * file that was distributed with this source code.
 
-  */
 
- namespace Symfony\Component\ExpressionLanguage;
 
- /**
 
-  * Represents a token stream.
 
-  *
 
-  * @author Fabien Potencier <fabien@symfony.com>
 
-  */
 
- class TokenStream
 
- {
 
-     public $current;
 
-     private $tokens;
 
-     private $position = 0;
 
-     private $expression;
 
-     public function __construct(array $tokens, string $expression = '')
 
-     {
 
-         $this->tokens = $tokens;
 
-         $this->current = $tokens[0];
 
-         $this->expression = $expression;
 
-     }
 
-     /**
 
-      * Returns a string representation of the token stream.
 
-      *
 
-      * @return string
 
-      */
 
-     public function __toString()
 
-     {
 
-         return implode("\n", $this->tokens);
 
-     }
 
-     /**
 
-      * Sets the pointer to the next token and returns the old one.
 
-      */
 
-     public function next()
 
-     {
 
-         ++$this->position;
 
-         if (!isset($this->tokens[$this->position])) {
 
-             throw new SyntaxError('Unexpected end of expression.', $this->current->cursor, $this->expression);
 
-         }
 
-         $this->current = $this->tokens[$this->position];
 
-     }
 
-     /**
 
-      * @param string|null $message The syntax error message
 
-      */
 
-     public function expect(string $type, ?string $value = null, ?string $message = null)
 
-     {
 
-         $token = $this->current;
 
-         if (!$token->test($type, $value)) {
 
-             throw new SyntaxError(sprintf('%sUnexpected token "%s" of value "%s" ("%s" expected%s).', $message ? $message.'. ' : '', $token->type, $token->value, $type, $value ? sprintf(' with value "%s"', $value) : ''), $token->cursor, $this->expression);
 
-         }
 
-         $this->next();
 
-     }
 
-     /**
 
-      * Checks if end of stream was reached.
 
-      *
 
-      * @return bool
 
-      */
 
-     public function isEOF()
 
-     {
 
-         return Token::EOF_TYPE === $this->current->type;
 
-     }
 
-     /**
 
-      * @internal
 
-      */
 
-     public function getExpression(): string
 
-     {
 
-         return $this->expression;
 
-     }
 
- }
 
 
  |