PluginProbe
BerqWP – All-In-One Optimization for Core Web Vitals, Cache, CDN, Images, CSS & JavaScript / 4.1.20
BerqWP – All-In-One Optimization for Core Web Vitals, Cache, CDN, Images, CSS & JavaScript v4.1.20
4.1.20 4.1.19 4.1.18 4.1.17 4.1.16 4.1.15 4.1.14 4.1.13 4.1.12 4.1.11 4.1.10 4.0.30 4.0.29 4.0.28 4.0.27 4.0.26 4.0.24 4.0.25 4.0.23 4.0.22 4.0.21 4.0.19 4.0.18 4.0.17 4.0.16 All 174 releases
searchpro / BerqWP / vendor-prefixed / vendor / symfony / polyfill-php80 / PhpToken.php

PhpToken.php in BerqWP – All-In-One Optimization for Core Web Vitals, Cache, CDN, Images, CSS & JavaScript 4.1.20, at BerqWP/vendor-prefixed/vendor/symfony/polyfill-php80/PhpToken.php

94 lines 2.2 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 <[email protected]>
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 BerqWP_Deps\Symfony\Polyfill\Php80;
12
13 /**
14 * @author Fedonyuk Anton <[email protected]>
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 -1|positive-int
30 */
31 public $line;
32 /**
33 * @var int
34 */
35 public $pos;
36 /**
37 * @param -1|positive-int $line
38 */
39 public function __construct(int $id, string $text, int $line = -1, int $position = -1)
40 {
41 $this->id = $id;
42 $this->text = $text;
43 $this->line = $line;
44 $this->pos = $position;
45 }
46 public function getTokenName(): ?string
47 {
48 if ('UNKNOWN' === $name = token_name($this->id)) {
49 $name = \strlen($this->text) > 1 || \ord($this->text) < 32 ? null : $this->text;
50 }
51 return $name;
52 }
53 /**
54 * @param int|string|array $kind
55 */
56 public function is($kind): bool
57 {
58 foreach ((array) $kind as $value) {
59 if (\in_array($value, [$this->id, $this->text], \true)) {
60 return \true;
61 }
62 }
63 return \false;
64 }
65 public function isIgnorable(): bool
66 {
67 return \in_array($this->id, [\T_WHITESPACE, \T_COMMENT, \T_DOC_COMMENT, \T_OPEN_TAG], \true);
68 }
69 public function __toString(): string
70 {
71 return (string) $this->text;
72 }
73 /**
74 * @return list<static>
75 */
76 public static function tokenize(string $code, int $flags = 0): array
77 {
78 $line = 1;
79 $position = 0;
80 $tokens = token_get_all($code, $flags);
81 foreach ($tokens as $index => $token) {
82 if (\is_string($token)) {
83 $id = \ord($token);
84 $text = $token;
85 } else {
86 [$id, $text, $line] = $token;
87 }
88 $tokens[$index] = new static($id, $text, $line, $position);
89 $position += \strlen($text);
90 }
91 return $tokens;
92 }
93 }
94