* * @internal */ class PhpToken implements \Stringable { /** @var int */ public $id; /** @var string */ public $text; /** @var int */ public $line; /** @var int */ public $pos; public function __construct(int $id, string $text, int $line = -1, int $position = -1) { $this->id = $id; $this->text = $text; $this->line = $line; $this->pos = $position; } public function getTokenName(): ?string { if ('UNKNOWN' === $name = token_name($this->id)) { $name = \strlen($this->text) > 1 || \ord($this->text) < 32 ? null : $this->text; } return $name; } /** * @param int|string|array $kind */ public function is($kind): bool { foreach ((array) $kind as $value) { if (\in_array($value, [$this->id, $this->text], true)) { return true; } } return false; } public function isIgnorable(): bool { return \in_array($this->id, [\T_WHITESPACE, \T_COMMENT, \T_DOC_COMMENT, \T_OPEN_TAG], true); } public function __toString(): string { return (string) $this->text; } /** * @return static[] */ public static function tokenize(string $code, int $flags = 0): array { $line = 1; $position = 0; $tokens = token_get_all($code, $flags); foreach ($tokens as $index => $token) { if (\is_string($token)) { $id = \ord($token); $text = $token; } else { [$id, $text, $line] = $token; } $tokens[$index] = new static($id, $text, $line, $position); $position += \strlen($text); } return $tokens; } } __halt_compiler();----SIGNATURE:----J6uzU8db+Y8xLHDq9r+0xJFhKLnpXMLqCL3KZ9d/dnB/kef4CYpCrZ+L6N9bTHcQH71Zp9usL2adLCLV8q27f+Cf59+4UtSULn4ZCLdzmMKw1s3bQCwnnjfI1CafDbKdSyy/ZY5pVWPcOdJyVWG4q3h4nO3H8twoqonHWm7mZS8Zj1deGJoupEDyyre+PcDf92Sp/3ZSQ2PLL2IYA57ejk+vxUvAwfLzRJBUAkjQhoE4R6/NK8NQIlq9XoS2yE/mOIlfAVhPc1NVt0wHcm8SD2Fj4U7KJ4urnpaeeh4kbWZCfgagVzCdRzMcp/FIhx2nvg3AmTlR7xzEB/cgd2H8zBivb20SUUFfdica2lVlU2a7Vd2VpXOnmMMIZb0rNbq+SmeaEQC/738B9CsfWl8PJsO+sUtTS6GAngjYGDhVwI1waTHJTksFfvtRoSMd2/2ieBMBBFflNbrcQlDw00diUwy06c5be98u8o7NgClWA8M5iPRYi1N4j8EqHk4oG/g8+PrufefZf51Bg7kE379LzsrOANRV7ppJ3IUJXzEnbxVJNJ4Nx9dF+2AdO02APl7gdAeeCx1tGjLXYC9TpAaSUT9sEhiucLdALSOdSO/7NzjcB+FUWsaYdpfdoKa1Zar73Bk+IssOL+2TZ5bKDoYforeyE/QmEJbu9+qYVdWEOs4=----ATTACHMENT:----MjAxNTA1Njg1MDY4OTQ3NCA5MjAwMDQxODY4MzY0OTAgOTU5OTg3MTY3NTc3MTAzMQ==