PluginProbe
Independent Analytics – WordPress Analytics Plugin / 1.28.0
Independent Analytics – WordPress Analytics Plugin v1.28.0
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 All 120 releases
independent-analytics / vendor / symfony / polyfill-php80 / PhpToken.php
PhpToken.php
91 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11 namespace Symfony\Polyfill\Php80;
12
13 /**
14 * @author Fedonyuk Anton <info@ensostudio.ru>
15 *
16 * @internal
17 */
18 class PhpToken implements \Stringable
19 {
20 /**
21 * @var int
22 */
23 public $id;
24 /**
25 * @var string
26 */
27 public $text;
28 /**
29 * @var int
30 */
31 public $line;
32 /**
33 * @var int
34 */
35 public $pos;
36 public function __construct(int $id, string $text, int $line = -1, int $position = -1)
37 {
38 $this->id = $id;
39 $this->text = $text;
40 $this->line = $line;
41 $this->pos = $position;
42 }
43 public function getTokenName() : ?string
44 {
45 if ('UNKNOWN' === ($name = \token_name($this->id))) {
46 $name = \strlen($this->text) > 1 || \ord($this->text) < 32 ? null : $this->text;
47 }
48 return $name;
49 }
50 /**
51 * @param int|string|array $kind
52 */
53 public function is($kind) : bool
54 {
55 foreach ((array) $kind as $value) {
56 if (\in_array($value, [$this->id, $this->text], \true)) {
57 return \true;
58 }
59 }
60 return \false;
61 }
62 public function isIgnorable() : bool
63 {
64 return \in_array($this->id, [\T_WHITESPACE, \T_COMMENT, \T_DOC_COMMENT, \T_OPEN_TAG], \true);
65 }
66 public function __toString() : string
67 {
68 return (string) $this->text;
69 }
70 /**
71 * @return static[]
72 */
73 public static function tokenize(string $code, int $flags = 0) : array
74 {
75 $line = 1;
76 $position = 0;
77 $tokens = \token_get_all($code, $flags);
78 foreach ($tokens as $index => $token) {
79 if (\is_string($token)) {
80 $id = \ord($token);
81 $text = $token;
82 } else {
83 [$id, $text, $line] = $token;
84 }
85 $tokens[$index] = new static($id, $text, $line, $position);
86 $position += \strlen($text);
87 }
88 return $tokens;
89 }
90 }
91