Code Coverage  | 
     ||||||||||
Classes and Traits  | 
      Functions and Methods  | 
      Lines  | 
     ||||||||
| Total |         | 
      0.00%  | 
      0 / 1  | 
              | 
      83.33%  | 
      10 / 12  | 
      CRAP |         | 
      82.61%  | 
      19 / 23  | 
     
| FormatToken |         | 
      0.00%  | 
      0 / 1  | 
              | 
      83.33%  | 
      10 / 12  | 
      17.35 |         | 
      82.61%  | 
      19 / 23  | 
     
| __construct |         | 
      100.00%  | 
      1 / 1  | 
      1 |         | 
      100.00%  | 
      3 / 3  | 
     |||
| getValue |         | 
      100.00%  | 
      1 / 1  | 
      1 |         | 
      100.00%  | 
      1 / 1  | 
     |||
| getName |         | 
      100.00%  | 
      1 / 1  | 
      2 |         | 
      100.00%  | 
      1 / 1  | 
     |||
| withAlias |         | 
      0.00%  | 
      0 / 1  | 
      2 |         | 
      0.00%  | 
      0 / 3  | 
     |||
| is |         | 
      100.00%  | 
      1 / 1  | 
      2 |         | 
      100.00%  | 
      1 / 1  | 
     |||
| isOne |         | 
      100.00%  | 
      1 / 1  | 
      3 |         | 
      100.00%  | 
      6 / 6  | 
     |||
| setType |         | 
      100.00%  | 
      1 / 1  | 
      1 |         | 
      100.00%  | 
      3 / 3  | 
     |||
| isSymbol |         | 
      100.00%  | 
      1 / 1  | 
      1 |         | 
      100.00%  | 
      1 / 1  | 
     |||
| isLitteral |         | 
      100.00%  | 
      1 / 1  | 
      1 |         | 
      100.00%  | 
      1 / 1  | 
     |||
| setLitteral |         | 
      100.00%  | 
      1 / 1  | 
      1 |         | 
      100.00%  | 
      1 / 1  | 
     |||
| isType |         | 
      100.00%  | 
      1 / 1  | 
      1 |         | 
      100.00%  | 
      1 / 1  | 
     |||
| getType |         | 
      0.00%  | 
      0 / 1  | 
      2 |         | 
      0.00%  | 
      0 / 1  | 
     |||
| <?php | |
| namespace Popy\Calendar\Parser; | |
| /** | |
| * Format Token used by FormatLexer & FormatParser. Immutable. | |
| */ | |
| class FormatToken | |
| { | |
| const TYPE_LITTERAL = 1; | |
| const TYPE_SYMBOL = 2; | |
| const TYPE_EOF = 3; | |
| /** | |
| * Token value. | |
| * | |
| * @var string|null | |
| */ | |
| protected $value; | |
| /** | |
| * Token type. | |
| * | |
| * @var integer | |
| */ | |
| protected $type; | |
| /** | |
| * Token alias. Usefull to map new tokens to already existing behaviours in | |
| * ResultMappers | |
| * | |
| * @var string|null | |
| */ | |
| protected $alias; | |
| /** | |
| * Class constructor. | |
| * | |
| * @param string|null $value Token value. | |
| * @param integer $type Token type. | |
| */ | |
| public function __construct($value, $type) | |
| { | |
| $this->value = $value; | |
| $this->type = $type; | |
| } | |
| /** | |
| * Gets the token value. | |
| * | |
| * @return string | |
| */ | |
| public function getValue() | |
| { | |
| return $this->value; | |
| } | |
| /** | |
| * Gets the token name (possibly aliased). | |
| * | |
| * @return string | |
| */ | |
| public function getName() | |
| { | |
| return $this->alias ?: $this->value; | |
| } | |
| /** | |
| * Returns a new instance with the input alias. | |
| * | |
| * @param string|null $alias | |
| * | |
| * @return static | |
| */ | |
| public function withAlias($alias) | |
| { | |
| $res = clone $this; | |
| $res->alias = $alias; | |
| return $res; | |
| } | |
| /** | |
| * Checks if token is a TYPE_SYMBOL matching the input symbol. | |
| * | |
| * @param string $symbol | |
| * | |
| * @return boolean | |
| */ | |
| public function is($symbol) | |
| { | |
| return $this->type === self::TYPE_SYMBOL && $this->value === $symbol; | |
| } | |
| /** | |
| * Checks if token is a TYPE_SYMBOL matching one of the arguments, | |
| * or one of the symbol contained in the first argument if it is an array | |
| * | |
| * @param array|string $symbols | |
| * @param string ...$symbol | |
| * | |
| * @return boolean | |
| */ | |
| public function isOne($symbols) | |
| { | |
| if ($this->type !== self::TYPE_SYMBOL) { | |
| return false; | |
| } | |
| if (!is_array($symbols)) { | |
| $symbols = func_get_args(); | |
| } | |
| return in_array($this->value, $symbols); | |
| } | |
| /** | |
| * Set type. | |
| * | |
| * @param integer $type | |
| */ | |
| public function setType($type) | |
| { | |
| $res = clone $this; | |
| $res->type = $type; | |
| return $res; | |
| } | |
| /** | |
| * Checks if token is a symbol. | |
| * | |
| * @return boolean | |
| */ | |
| public function isSymbol() | |
| { | |
| return $this->type === self::TYPE_SYMBOL; | |
| } | |
| /** | |
| * Checks if symbol is litteral | |
| * | |
| * @return boolean | |
| */ | |
| public function isLitteral() | |
| { | |
| return $this->type === self::TYPE_LITTERAL; | |
| } | |
| /** | |
| * Set litteral. | |
| */ | |
| public function setLitteral() | |
| { | |
| return $this->setType(self::TYPE_LITTERAL); | |
| } | |
| /** | |
| * Checks if token is of given type. | |
| * | |
| * @param integer $type | |
| * | |
| * @return boolean | |
| */ | |
| public function isType($type) | |
| { | |
| return $this->type === $type; | |
| } | |
| /** | |
| * Get token type. | |
| * | |
| * @return integer | |
| */ | |
| public function getType() | |
| { | |
| return $this->type; | |
| } | |
| } |