-
Notifications
You must be signed in to change notification settings - Fork 1
/
Token.php
42 lines (38 loc) · 878 Bytes
/
Token.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php declare(strict_types=1);
/**
* This file is part of the Phootwork package.
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
* @license MIT License
* @copyright Thomas Gossmann
*/
namespace phootwork\tokenizer;
class Token {
/** @var int */
public int $type;
/** @var null|string */
public ?string $contents;
/**
* Token constructor.
*
* @param string|array $token
*/
public function __construct(string|array $token = null) {
if (is_array($token)) {
$this->type = (int) $token[0];
$this->contents = (string) $token[1];
} else {
$this->type = -1;
$this->contents = $token;
}
}
/**
* @param TokenVisitorInterface $visitor
*
* @return mixed
*/
public function accept(TokenVisitorInterface $visitor) {
return $visitor->visitToken($this);
}
}