PluginProbe
Elementor Website Builder – more than just a page builder / 3.35.0-dev3
Elementor Website Builder – more than just a page builder v3.35.0-dev3
4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 All 452 releases
elementor / vendor_prefixed / twig / symfony / polyfill-php80 / PhpToken.php

PhpToken.php in Elementor Website Builder – more than just a page builder 3.35.0-dev3, at vendor_prefixed/twig/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 <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 ElementorDeps\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 -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