This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
symfony/src/Symfony/Component/ExpressionLanguage/Token.php
Nicolas Grekas 784186b249 Merge branch '3.4'
* 3.4:
  [TwigBridge] Fixed the .form-check-input class in the bs4 templates
  [Console] Fix traversable autocomplete values
  [SecurityBundle] Improve deprecations
  [DI] Friendlier name for generated container in "as_files" mode
  [Debug] Remove false-positive deprecation from DebugClassLoader
  [SecurityBundle] Add missing quotes in deprecation messages
  [ExpressionLanguage] Fix PhpDoc type-hints on Token value
  bumped Symfony version to 3.3.12
  Add default translations path option and convention
  updated VERSION for 3.3.11
  updated CHANGELOG for 3.3.11
  bumped Symfony version to 2.8.30
  updated VERSION for 2.8.29
  updated CHANGELOG for 2.8.29
  bumped Symfony version to 2.7.37
  updated VERSION for 2.7.36
  update CONTRIBUTORS for 2.7.36
  updated CHANGELOG for 2.7.36
2017-11-12 17:47:31 +01:00

67 lines
1.7 KiB
PHP

<?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.
*
* @author Fabien Potencier <fabien@symfony.com>
*/
class Token
{
public $value;
public $type;
public $cursor;
const EOF_TYPE = 'end of expression';
const NAME_TYPE = 'name';
const NUMBER_TYPE = 'number';
const STRING_TYPE = 'string';
const OPERATOR_TYPE = 'operator';
const PUNCTUATION_TYPE = 'punctuation';
/**
* @param string $type The type of the token (self::*_TYPE)
* @param string|int|float|null $value The token value
* @param int $cursor The cursor position in the source
*/
public function __construct(string $type, $value, ?int $cursor)
{
$this->type = $type;
$this->value = $value;
$this->cursor = $cursor;
}
/**
* Returns a string representation of the token.
*
* @return string A string representation of the token
*/
public function __toString()
{
return sprintf('%3d %-11s %s', $this->cursor, strtoupper($this->type), $this->value);
}
/**
* Tests the current token for a type and/or a value.
*
* @param array|int $type The type to test
* @param string|null $value The token value
*
* @return bool
*/
public function test($type, $value = null)
{
return $this->type === $type && (null === $value || $this->value == $value);
}
}