Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php declare(strict_types=1);
2
 
3
namespace PhpParser\Lexer\TokenEmulator;
4
 
5
use PhpParser\Lexer\Emulative;
6
 
7
final class ReadonlyTokenEmulator extends KeywordEmulator
8
{
9
    public function getPhpVersion(): string
10
    {
11
        return Emulative::PHP_8_1;
12
    }
13
 
14
    public function getKeywordString(): string
15
    {
16
        return 'readonly';
17
    }
18
 
19
    public function getKeywordToken(): int
20
    {
21
        return \T_READONLY;
22
    }
23
 
24
    protected function isKeywordContext(array $tokens, int $pos): bool
25
    {
26
        if (!parent::isKeywordContext($tokens, $pos)) {
27
            return false;
28
        }
29
        // Support "function readonly("
30
        return !(isset($tokens[$pos + 1]) &&
31
                 ($tokens[$pos + 1][0] === '(' ||
32
                  ($tokens[$pos + 1][0] === \T_WHITESPACE &&
33
                   isset($tokens[$pos + 2]) &&
34
                   $tokens[$pos + 2][0] === '(')));
35
    }
36
}