mirror of
https://github.com/nikic/PHP-Parser.git
synced 2025-01-17 23:28:15 +01:00
dd63ddbc24
The formatting in this project has become something of a mess, because it changed over time. Add a CS fixer config and reformat to the desired style, which is PSR-12, but with sane brace placement.
32 lines
905 B
PHP
32 lines
905 B
PHP
<?php declare(strict_types=1);
|
|
|
|
namespace PhpParser\Lexer\TokenEmulator;
|
|
|
|
use PhpParser\PhpVersion;
|
|
|
|
final class ReadonlyTokenEmulator extends KeywordEmulator {
|
|
public function getPhpVersion(): PhpVersion {
|
|
return PhpVersion::fromComponents(8, 1);
|
|
}
|
|
|
|
public function getKeywordString(): string {
|
|
return 'readonly';
|
|
}
|
|
|
|
public function getKeywordToken(): int {
|
|
return \T_READONLY;
|
|
}
|
|
|
|
protected function isKeywordContext(array $tokens, int $pos): bool {
|
|
if (!parent::isKeywordContext($tokens, $pos)) {
|
|
return false;
|
|
}
|
|
// Support "function readonly("
|
|
return !(isset($tokens[$pos + 1]) &&
|
|
($tokens[$pos + 1]->text === '(' ||
|
|
($tokens[$pos + 1]->id === \T_WHITESPACE &&
|
|
isset($tokens[$pos + 2]) &&
|
|
$tokens[$pos + 2]->text === '(')));
|
|
}
|
|
}
|