Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. Php7.php

function Php7::initReduceCallbacks

Overrides ParserAbstract::initReduceCallbacks

File

vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php, line 1175

Class

Php7

Namespace

PhpParser\Parser

Code

protected function initReduceCallbacks() : void {
    $this->reduceCallbacks = [
        0 => null,
        1 => static function ($self, $stackPos) {
            $self->semValue = $self->handleNamespaces($self->semStack[$stackPos - (1 - 1)]);
        },
        2 => static function ($self, $stackPos) {
            if ($self->semStack[$stackPos - (2 - 2)] !== null) {
                $self->semStack[$stackPos - (2 - 1)][] = $self->semStack[$stackPos - (2 - 2)];
            }
            $self->semValue = $self->semStack[$stackPos - (2 - 1)];
        },
        3 => static function ($self, $stackPos) {
            $self->semValue = array();
        },
        4 => static function ($self, $stackPos) {
            $nop = $self->maybeCreateZeroLengthNop($self->tokenPos);
            if ($nop !== null) {
                $self->semStack[$stackPos - (1 - 1)][] = $nop;
            }
            $self->semValue = $self->semStack[$stackPos - (1 - 1)];
        },
        5 => null,
        6 => null,
        7 => null,
        8 => null,
        9 => null,
        10 => null,
        11 => null,
        12 => null,
        13 => null,
        14 => null,
        15 => null,
        16 => null,
        17 => null,
        18 => null,
        19 => null,
        20 => null,
        21 => null,
        22 => null,
        23 => null,
        24 => null,
        25 => null,
        26 => null,
        27 => null,
        28 => null,
        29 => null,
        30 => null,
        31 => null,
        32 => null,
        33 => null,
        34 => null,
        35 => null,
        36 => null,
        37 => null,
        38 => null,
        39 => null,
        40 => null,
        41 => null,
        42 => null,
        43 => null,
        44 => null,
        45 => null,
        46 => null,
        47 => null,
        48 => null,
        49 => null,
        50 => null,
        51 => null,
        52 => null,
        53 => null,
        54 => null,
        55 => null,
        56 => null,
        57 => null,
        58 => null,
        59 => null,
        60 => null,
        61 => null,
        62 => null,
        63 => null,
        64 => null,
        65 => null,
        66 => null,
        67 => null,
        68 => null,
        69 => null,
        70 => null,
        71 => null,
        72 => null,
        73 => null,
        74 => null,
        75 => null,
        76 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (1 - 1)];
            if ($self->semValue === "<?=") {
                $self->emitError(new Error('Cannot use "<?=" as an identifier', $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos])));
            }
        },
        77 => null,
        78 => null,
        79 => null,
        80 => null,
        81 => null,
        82 => null,
        83 => null,
        84 => null,
        85 => static function ($self, $stackPos) {
            $self->semValue = new Node\Identifier($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        86 => static function ($self, $stackPos) {
            $self->semValue = new Node\Identifier($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        87 => static function ($self, $stackPos) {
            $self->semValue = new Node\Identifier($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        88 => static function ($self, $stackPos) {
            $self->semValue = new Node\Identifier($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        89 => static function ($self, $stackPos) {
            $self->semValue = new Name($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        90 => static function ($self, $stackPos) {
            $self->semValue = new Name($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        91 => static function ($self, $stackPos) {
            $self->semValue = new Name($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        92 => static function ($self, $stackPos) {
            $self->semValue = new Name($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        93 => static function ($self, $stackPos) {
            $self->semValue = new Name($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        94 => null,
        95 => static function ($self, $stackPos) {
            $self->semValue = new Name(substr($self->semStack[$stackPos - (1 - 1)], 1), $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        96 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Variable(substr($self->semStack[$stackPos - (1 - 1)], 1), $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        97 => static function ($self, $stackPos) {
            
            /* nothing */
        },
        98 => static function ($self, $stackPos) {
            
            /* nothing */
        },
        99 => static function ($self, $stackPos) {
            
            /* nothing */
        },
        100 => static function ($self, $stackPos) {
            $self->emitError(new Error('A trailing comma is not allowed here', $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos])));
        },
        101 => null,
        102 => null,
        103 => static function ($self, $stackPos) {
            $self->semValue = new Node\Attribute($self->semStack[$stackPos - (1 - 1)], [], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        104 => static function ($self, $stackPos) {
            $self->semValue = new Node\Attribute($self->semStack[$stackPos - (2 - 1)], $self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        105 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (1 - 1)],
            );
        },
        106 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)];
            $self->semValue = $self->semStack[$stackPos - (3 - 1)];
        },
        107 => static function ($self, $stackPos) {
            $self->semValue = new Node\AttributeGroup($self->semStack[$stackPos - (4 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
        },
        108 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (1 - 1)],
            );
        },
        109 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (2 - 1)][] = $self->semStack[$stackPos - (2 - 2)];
            $self->semValue = $self->semStack[$stackPos - (2 - 1)];
        },
        110 => static function ($self, $stackPos) {
            $self->semValue = [];
        },
        111 => null,
        112 => null,
        113 => null,
        114 => null,
        115 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\HaltCompiler($self->handleHaltCompiler(), $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
        },
        116 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Namespace_($self->semStack[$stackPos - (3 - 2)], null, $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
            $self->semValue
                ->setAttribute('kind', Stmt\Namespace_::KIND_SEMICOLON);
            $self->checkNamespace($self->semValue);
        },
        117 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Namespace_($self->semStack[$stackPos - (5 - 2)], $self->semStack[$stackPos - (5 - 4)], $self->getAttributes($self->tokenStartStack[$stackPos - (5 - 1)], $self->tokenEndStack[$stackPos]));
            $self->semValue
                ->setAttribute('kind', Stmt\Namespace_::KIND_BRACED);
            $self->checkNamespace($self->semValue);
        },
        118 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Namespace_(null, $self->semStack[$stackPos - (4 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
            $self->semValue
                ->setAttribute('kind', Stmt\Namespace_::KIND_BRACED);
            $self->checkNamespace($self->semValue);
        },
        119 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Use_($self->semStack[$stackPos - (3 - 2)], Stmt\Use_::TYPE_NORMAL, $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        120 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Use_($self->semStack[$stackPos - (4 - 3)], $self->semStack[$stackPos - (4 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
        },
        121 => null,
        122 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Const_($self->semStack[$stackPos - (3 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        123 => static function ($self, $stackPos) {
            $self->semValue = Stmt\Use_::TYPE_FUNCTION;
        },
        124 => static function ($self, $stackPos) {
            $self->semValue = Stmt\Use_::TYPE_CONSTANT;
        },
        125 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\GroupUse($self->semStack[$stackPos - (8 - 3)], $self->semStack[$stackPos - (8 - 6)], $self->semStack[$stackPos - (8 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (8 - 1)], $self->tokenEndStack[$stackPos]));
        },
        126 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\GroupUse($self->semStack[$stackPos - (7 - 2)], $self->semStack[$stackPos - (7 - 5)], Stmt\Use_::TYPE_UNKNOWN, $self->getAttributes($self->tokenStartStack[$stackPos - (7 - 1)], $self->tokenEndStack[$stackPos]));
        },
        127 => null,
        128 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)];
            $self->semValue = $self->semStack[$stackPos - (3 - 1)];
        },
        129 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (1 - 1)],
            );
        },
        130 => null,
        131 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)];
            $self->semValue = $self->semStack[$stackPos - (3 - 1)];
        },
        132 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (1 - 1)],
            );
        },
        133 => null,
        134 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)];
            $self->semValue = $self->semStack[$stackPos - (3 - 1)];
        },
        135 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (1 - 1)],
            );
        },
        136 => static function ($self, $stackPos) {
            $self->semValue = new Node\UseItem($self->semStack[$stackPos - (1 - 1)], null, Stmt\Use_::TYPE_UNKNOWN, $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
            $self->checkUseUse($self->semValue, $stackPos - (1 - 1));
        },
        137 => static function ($self, $stackPos) {
            $self->semValue = new Node\UseItem($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], Stmt\Use_::TYPE_UNKNOWN, $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
            $self->checkUseUse($self->semValue, $stackPos - (3 - 3));
        },
        138 => static function ($self, $stackPos) {
            $self->semValue = new Node\UseItem($self->semStack[$stackPos - (1 - 1)], null, Stmt\Use_::TYPE_UNKNOWN, $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
            $self->checkUseUse($self->semValue, $stackPos - (1 - 1));
        },
        139 => static function ($self, $stackPos) {
            $self->semValue = new Node\UseItem($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], Stmt\Use_::TYPE_UNKNOWN, $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
            $self->checkUseUse($self->semValue, $stackPos - (3 - 3));
        },
        140 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (1 - 1)];
            $self->semValue->type = Stmt\Use_::TYPE_NORMAL;
        },
        141 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (2 - 2)];
            $self->semValue->type = $self->semStack[$stackPos - (2 - 1)];
        },
        142 => null,
        143 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)];
            $self->semValue = $self->semStack[$stackPos - (3 - 1)];
        },
        144 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (1 - 1)],
            );
        },
        145 => static function ($self, $stackPos) {
            $self->semValue = new Node\Const_($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        146 => null,
        147 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)];
            $self->semValue = $self->semStack[$stackPos - (3 - 1)];
        },
        148 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (1 - 1)],
            );
        },
        149 => static function ($self, $stackPos) {
            $self->semValue = new Node\Const_(new Node\Identifier($self->semStack[$stackPos - (3 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos - (3 - 1)])), $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        150 => static function ($self, $stackPos) {
            $self->semValue = new Node\Const_(new Node\Identifier($self->semStack[$stackPos - (3 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos - (3 - 1)])), $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        151 => static function ($self, $stackPos) {
            if ($self->semStack[$stackPos - (2 - 2)] !== null) {
                $self->semStack[$stackPos - (2 - 1)][] = $self->semStack[$stackPos - (2 - 2)];
            }
            $self->semValue = $self->semStack[$stackPos - (2 - 1)];
        },
        152 => static function ($self, $stackPos) {
            $self->semValue = array();
        },
        153 => static function ($self, $stackPos) {
            $nop = $self->maybeCreateZeroLengthNop($self->tokenPos);
            if ($nop !== null) {
                $self->semStack[$stackPos - (1 - 1)][] = $nop;
            }
            $self->semValue = $self->semStack[$stackPos - (1 - 1)];
        },
        154 => null,
        155 => null,
        156 => null,
        157 => static function ($self, $stackPos) {
            throw new Error('__HALT_COMPILER() can only be used from the outermost scope', $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        158 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Block($self->semStack[$stackPos - (3 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        159 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\If_($self->semStack[$stackPos - (7 - 3)], [
                'stmts' => $self->semStack[$stackPos - (7 - 5)],
                'elseifs' => $self->semStack[$stackPos - (7 - 6)],
                'else' => $self->semStack[$stackPos - (7 - 7)],
            ], $self->getAttributes($self->tokenStartStack[$stackPos - (7 - 1)], $self->tokenEndStack[$stackPos]));
        },
        160 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\If_($self->semStack[$stackPos - (10 - 3)], [
                'stmts' => $self->semStack[$stackPos - (10 - 6)],
                'elseifs' => $self->semStack[$stackPos - (10 - 7)],
                'else' => $self->semStack[$stackPos - (10 - 8)],
            ], $self->getAttributes($self->tokenStartStack[$stackPos - (10 - 1)], $self->tokenEndStack[$stackPos]));
        },
        161 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\While_($self->semStack[$stackPos - (5 - 3)], $self->semStack[$stackPos - (5 - 5)], $self->getAttributes($self->tokenStartStack[$stackPos - (5 - 1)], $self->tokenEndStack[$stackPos]));
        },
        162 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Do_($self->semStack[$stackPos - (7 - 5)], $self->semStack[$stackPos - (7 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (7 - 1)], $self->tokenEndStack[$stackPos]));
        },
        163 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\For_([
                'init' => $self->semStack[$stackPos - (9 - 3)],
                'cond' => $self->semStack[$stackPos - (9 - 5)],
                'loop' => $self->semStack[$stackPos - (9 - 7)],
                'stmts' => $self->semStack[$stackPos - (9 - 9)],
            ], $self->getAttributes($self->tokenStartStack[$stackPos - (9 - 1)], $self->tokenEndStack[$stackPos]));
        },
        164 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Switch_($self->semStack[$stackPos - (5 - 3)], $self->semStack[$stackPos - (5 - 5)], $self->getAttributes($self->tokenStartStack[$stackPos - (5 - 1)], $self->tokenEndStack[$stackPos]));
        },
        165 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Break_($self->semStack[$stackPos - (3 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        166 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Continue_($self->semStack[$stackPos - (3 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        167 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Return_($self->semStack[$stackPos - (3 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        168 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Global_($self->semStack[$stackPos - (3 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        169 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Static_($self->semStack[$stackPos - (3 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        170 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Echo_($self->semStack[$stackPos - (3 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        171 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\InlineHTML($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
            $self->semValue
                ->setAttribute('hasLeadingNewline', $self->inlineHtmlHasLeadingNewline($stackPos - (1 - 1)));
        },
        172 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Expression($self->semStack[$stackPos - (2 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        173 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Unset_($self->semStack[$stackPos - (5 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (5 - 1)], $self->tokenEndStack[$stackPos]));
        },
        174 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Foreach_($self->semStack[$stackPos - (7 - 3)], $self->semStack[$stackPos - (7 - 5)][0], [
                'keyVar' => null,
                'byRef' => $self->semStack[$stackPos - (7 - 5)][1],
                'stmts' => $self->semStack[$stackPos - (7 - 7)],
            ], $self->getAttributes($self->tokenStartStack[$stackPos - (7 - 1)], $self->tokenEndStack[$stackPos]));
        },
        175 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Foreach_($self->semStack[$stackPos - (9 - 3)], $self->semStack[$stackPos - (9 - 7)][0], [
                'keyVar' => $self->semStack[$stackPos - (9 - 5)],
                'byRef' => $self->semStack[$stackPos - (9 - 7)][1],
                'stmts' => $self->semStack[$stackPos - (9 - 9)],
            ], $self->getAttributes($self->tokenStartStack[$stackPos - (9 - 1)], $self->tokenEndStack[$stackPos]));
        },
        176 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Foreach_($self->semStack[$stackPos - (6 - 3)], new Expr\Error($self->getAttributes($self->tokenStartStack[$stackPos - (6 - 4)], $self->tokenEndStack[$stackPos - (6 - 4)])), [
                'stmts' => $self->semStack[$stackPos - (6 - 6)],
            ], $self->getAttributes($self->tokenStartStack[$stackPos - (6 - 1)], $self->tokenEndStack[$stackPos]));
        },
        177 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Declare_($self->semStack[$stackPos - (5 - 3)], $self->semStack[$stackPos - (5 - 5)], $self->getAttributes($self->tokenStartStack[$stackPos - (5 - 1)], $self->tokenEndStack[$stackPos]));
        },
        178 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\TryCatch($self->semStack[$stackPos - (6 - 3)], $self->semStack[$stackPos - (6 - 5)], $self->semStack[$stackPos - (6 - 6)], $self->getAttributes($self->tokenStartStack[$stackPos - (6 - 1)], $self->tokenEndStack[$stackPos]));
            $self->checkTryCatch($self->semValue);
        },
        179 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Goto_($self->semStack[$stackPos - (3 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        180 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Label($self->semStack[$stackPos - (2 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        181 => static function ($self, $stackPos) {
            $self->semValue = null;
            
            /* means: no statement */
        },
        182 => null,
        183 => static function ($self, $stackPos) {
            $self->semValue = $self->maybeCreateNop($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]);
        },
        184 => static function ($self, $stackPos) {
            if ($self->semStack[$stackPos - (1 - 1)] instanceof Stmt\Block) {
                $self->semValue = $self->semStack[$stackPos - (1 - 1)]->stmts;
            }
            else {
                if ($self->semStack[$stackPos - (1 - 1)] === null) {
                    $self->semValue = [];
                }
                else {
                    $self->semValue = [
                        $self->semStack[$stackPos - (1 - 1)],
                    ];
                }
            }
        },
        185 => static function ($self, $stackPos) {
            $self->semValue = array();
        },
        186 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (2 - 1)][] = $self->semStack[$stackPos - (2 - 2)];
            $self->semValue = $self->semStack[$stackPos - (2 - 1)];
        },
        187 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (1 - 1)],
            );
        },
        188 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)];
            $self->semValue = $self->semStack[$stackPos - (3 - 1)];
        },
        189 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Catch_($self->semStack[$stackPos - (8 - 3)], $self->semStack[$stackPos - (8 - 4)], $self->semStack[$stackPos - (8 - 7)], $self->getAttributes($self->tokenStartStack[$stackPos - (8 - 1)], $self->tokenEndStack[$stackPos]));
        },
        190 => static function ($self, $stackPos) {
            $self->semValue = null;
        },
        191 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Finally_($self->semStack[$stackPos - (4 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
        },
        192 => null,
        193 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (1 - 1)],
            );
        },
        194 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)];
            $self->semValue = $self->semStack[$stackPos - (3 - 1)];
        },
        195 => static function ($self, $stackPos) {
            $self->semValue = false;
        },
        196 => static function ($self, $stackPos) {
            $self->semValue = true;
        },
        197 => static function ($self, $stackPos) {
            $self->semValue = false;
        },
        198 => static function ($self, $stackPos) {
            $self->semValue = true;
        },
        199 => static function ($self, $stackPos) {
            $self->semValue = false;
        },
        200 => static function ($self, $stackPos) {
            $self->semValue = true;
        },
        201 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (3 - 2)];
        },
        202 => static function ($self, $stackPos) {
            $self->semValue = [];
        },
        203 => null,
        204 => static function ($self, $stackPos) {
            $self->semValue = new Node\Identifier($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        205 => static function ($self, $stackPos) {
            $self->semValue = new Node\Identifier($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        206 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Function_($self->semStack[$stackPos - (8 - 3)], [
                'byRef' => $self->semStack[$stackPos - (8 - 2)],
                'params' => $self->semStack[$stackPos - (8 - 5)],
                'returnType' => $self->semStack[$stackPos - (8 - 7)],
                'stmts' => $self->semStack[$stackPos - (8 - 8)],
                'attrGroups' => [],
            ], $self->getAttributes($self->tokenStartStack[$stackPos - (8 - 1)], $self->tokenEndStack[$stackPos]));
        },
        207 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Function_($self->semStack[$stackPos - (9 - 4)], [
                'byRef' => $self->semStack[$stackPos - (9 - 3)],
                'params' => $self->semStack[$stackPos - (9 - 6)],
                'returnType' => $self->semStack[$stackPos - (9 - 8)],
                'stmts' => $self->semStack[$stackPos - (9 - 9)],
                'attrGroups' => $self->semStack[$stackPos - (9 - 1)],
            ], $self->getAttributes($self->tokenStartStack[$stackPos - (9 - 1)], $self->tokenEndStack[$stackPos]));
        },
        208 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Class_($self->semStack[$stackPos - (7 - 2)], [
                'type' => $self->semStack[$stackPos - (7 - 1)],
                'extends' => $self->semStack[$stackPos - (7 - 3)],
                'implements' => $self->semStack[$stackPos - (7 - 4)],
                'stmts' => $self->semStack[$stackPos - (7 - 6)],
                'attrGroups' => [],
            ], $self->getAttributes($self->tokenStartStack[$stackPos - (7 - 1)], $self->tokenEndStack[$stackPos]));
            $self->checkClass($self->semValue, $stackPos - (7 - 2));
        },
        209 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Class_($self->semStack[$stackPos - (8 - 3)], [
                'type' => $self->semStack[$stackPos - (8 - 2)],
                'extends' => $self->semStack[$stackPos - (8 - 4)],
                'implements' => $self->semStack[$stackPos - (8 - 5)],
                'stmts' => $self->semStack[$stackPos - (8 - 7)],
                'attrGroups' => $self->semStack[$stackPos - (8 - 1)],
            ], $self->getAttributes($self->tokenStartStack[$stackPos - (8 - 1)], $self->tokenEndStack[$stackPos]));
            $self->checkClass($self->semValue, $stackPos - (8 - 3));
        },
        210 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Interface_($self->semStack[$stackPos - (7 - 3)], [
                'extends' => $self->semStack[$stackPos - (7 - 4)],
                'stmts' => $self->semStack[$stackPos - (7 - 6)],
                'attrGroups' => $self->semStack[$stackPos - (7 - 1)],
            ], $self->getAttributes($self->tokenStartStack[$stackPos - (7 - 1)], $self->tokenEndStack[$stackPos]));
            $self->checkInterface($self->semValue, $stackPos - (7 - 3));
        },
        211 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Trait_($self->semStack[$stackPos - (6 - 3)], [
                'stmts' => $self->semStack[$stackPos - (6 - 5)],
                'attrGroups' => $self->semStack[$stackPos - (6 - 1)],
            ], $self->getAttributes($self->tokenStartStack[$stackPos - (6 - 1)], $self->tokenEndStack[$stackPos]));
        },
        212 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Enum_($self->semStack[$stackPos - (8 - 3)], [
                'scalarType' => $self->semStack[$stackPos - (8 - 4)],
                'implements' => $self->semStack[$stackPos - (8 - 5)],
                'stmts' => $self->semStack[$stackPos - (8 - 7)],
                'attrGroups' => $self->semStack[$stackPos - (8 - 1)],
            ], $self->getAttributes($self->tokenStartStack[$stackPos - (8 - 1)], $self->tokenEndStack[$stackPos]));
            $self->checkEnum($self->semValue, $stackPos - (8 - 3));
        },
        213 => static function ($self, $stackPos) {
            $self->semValue = null;
        },
        214 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (2 - 2)];
        },
        215 => static function ($self, $stackPos) {
            $self->semValue = null;
        },
        216 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (2 - 2)];
        },
        217 => static function ($self, $stackPos) {
            $self->semValue = 0;
        },
        218 => null,
        219 => null,
        220 => static function ($self, $stackPos) {
            $self->checkClassModifier($self->semStack[$stackPos - (2 - 1)], $self->semStack[$stackPos - (2 - 2)], $stackPos - (2 - 2));
            $self->semValue = $self->semStack[$stackPos - (2 - 1)] | $self->semStack[$stackPos - (2 - 2)];
        },
        221 => static function ($self, $stackPos) {
            $self->semValue = Modifiers::ABSTRACT;
        },
        222 => static function ($self, $stackPos) {
            $self->semValue = Modifiers::FINAL;
        },
        223 => static function ($self, $stackPos) {
            $self->semValue = Modifiers::READONLY;
        },
        224 => static function ($self, $stackPos) {
            $self->semValue = null;
        },
        225 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (2 - 2)];
        },
        226 => static function ($self, $stackPos) {
            $self->semValue = array();
        },
        227 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (2 - 2)];
        },
        228 => static function ($self, $stackPos) {
            $self->semValue = array();
        },
        229 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (2 - 2)];
        },
        230 => null,
        231 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (1 - 1)],
            );
        },
        232 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)];
            $self->semValue = $self->semStack[$stackPos - (3 - 1)];
        },
        233 => null,
        234 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (4 - 2)];
        },
        235 => null,
        236 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (4 - 2)];
        },
        237 => static function ($self, $stackPos) {
            if ($self->semStack[$stackPos - (1 - 1)] instanceof Stmt\Block) {
                $self->semValue = $self->semStack[$stackPos - (1 - 1)]->stmts;
            }
            else {
                if ($self->semStack[$stackPos - (1 - 1)] === null) {
                    $self->semValue = [];
                }
                else {
                    $self->semValue = [
                        $self->semStack[$stackPos - (1 - 1)],
                    ];
                }
            }
        },
        238 => static function ($self, $stackPos) {
            $self->semValue = null;
        },
        239 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (4 - 2)];
        },
        240 => null,
        241 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (1 - 1)],
            );
        },
        242 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)];
            $self->semValue = $self->semStack[$stackPos - (3 - 1)];
        },
        243 => static function ($self, $stackPos) {
            $self->semValue = new Node\DeclareItem($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        244 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (3 - 2)];
        },
        245 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (4 - 3)];
        },
        246 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (4 - 2)];
        },
        247 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (5 - 3)];
        },
        248 => static function ($self, $stackPos) {
            $self->semValue = array();
        },
        249 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (2 - 1)][] = $self->semStack[$stackPos - (2 - 2)];
            $self->semValue = $self->semStack[$stackPos - (2 - 1)];
        },
        250 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Case_($self->semStack[$stackPos - (4 - 2)], $self->semStack[$stackPos - (4 - 4)], $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
        },
        251 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Case_(null, $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        252 => null,
        253 => null,
        254 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Match_($self->semStack[$stackPos - (7 - 3)], $self->semStack[$stackPos - (7 - 6)], $self->getAttributes($self->tokenStartStack[$stackPos - (7 - 1)], $self->tokenEndStack[$stackPos]));
        },
        255 => static function ($self, $stackPos) {
            $self->semValue = [];
        },
        256 => null,
        257 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (1 - 1)],
            );
        },
        258 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)];
            $self->semValue = $self->semStack[$stackPos - (3 - 1)];
        },
        259 => static function ($self, $stackPos) {
            $self->semValue = new Node\MatchArm($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        260 => static function ($self, $stackPos) {
            $self->semValue = new Node\MatchArm(null, $self->semStack[$stackPos - (4 - 4)], $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
        },
        261 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (1 - 1)];
        },
        262 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (4 - 2)];
        },
        263 => static function ($self, $stackPos) {
            $self->semValue = array();
        },
        264 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (2 - 1)][] = $self->semStack[$stackPos - (2 - 2)];
            $self->semValue = $self->semStack[$stackPos - (2 - 1)];
        },
        265 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\ElseIf_($self->semStack[$stackPos - (5 - 3)], $self->semStack[$stackPos - (5 - 5)], $self->getAttributes($self->tokenStartStack[$stackPos - (5 - 1)], $self->tokenEndStack[$stackPos]));
        },
        266 => static function ($self, $stackPos) {
            $self->semValue = array();
        },
        267 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (2 - 1)][] = $self->semStack[$stackPos - (2 - 2)];
            $self->semValue = $self->semStack[$stackPos - (2 - 1)];
        },
        268 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\ElseIf_($self->semStack[$stackPos - (6 - 3)], $self->semStack[$stackPos - (6 - 6)], $self->getAttributes($self->tokenStartStack[$stackPos - (6 - 1)], $self->tokenEndStack[$stackPos]));
            $self->fixupAlternativeElse($self->semValue);
        },
        269 => static function ($self, $stackPos) {
            $self->semValue = null;
        },
        270 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Else_($self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        271 => static function ($self, $stackPos) {
            $self->semValue = null;
        },
        272 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Else_($self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
            $self->fixupAlternativeElse($self->semValue);
        },
        273 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (1 - 1)],
                false,
            );
        },
        274 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (2 - 2)],
                true,
            );
        },
        275 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (1 - 1)],
                false,
            );
        },
        276 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->fixupArrayDestructuring($self->semStack[$stackPos - (1 - 1)]),
                false,
            );
        },
        277 => null,
        278 => static function ($self, $stackPos) {
            $self->semValue = array();
        },
        279 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (1 - 1)],
            );
        },
        280 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)];
            $self->semValue = $self->semStack[$stackPos - (3 - 1)];
        },
        281 => static function ($self, $stackPos) {
            $self->semValue = 0;
        },
        282 => static function ($self, $stackPos) {
            $self->checkModifier($self->semStack[$stackPos - (2 - 1)], $self->semStack[$stackPos - (2 - 2)], $stackPos - (2 - 2));
            $self->semValue = $self->semStack[$stackPos - (2 - 1)] | $self->semStack[$stackPos - (2 - 2)];
        },
        283 => static function ($self, $stackPos) {
            $self->semValue = Modifiers::PUBLIC;
        },
        284 => static function ($self, $stackPos) {
            $self->semValue = Modifiers::PROTECTED;
        },
        285 => static function ($self, $stackPos) {
            $self->semValue = Modifiers::PRIVATE;
        },
        286 => static function ($self, $stackPos) {
            $self->semValue = Modifiers::PUBLIC_SET;
        },
        287 => static function ($self, $stackPos) {
            $self->semValue = Modifiers::PROTECTED_SET;
        },
        288 => static function ($self, $stackPos) {
            $self->semValue = Modifiers::PRIVATE_SET;
        },
        289 => static function ($self, $stackPos) {
            $self->semValue = Modifiers::READONLY;
        },
        290 => static function ($self, $stackPos) {
            $self->semValue = new Node\Param($self->semStack[$stackPos - (7 - 6)], null, $self->semStack[$stackPos - (7 - 3)], $self->semStack[$stackPos - (7 - 4)], $self->semStack[$stackPos - (7 - 5)], $self->getAttributes($self->tokenStartStack[$stackPos - (7 - 1)], $self->tokenEndStack[$stackPos]), $self->semStack[$stackPos - (7 - 2)], $self->semStack[$stackPos - (7 - 1)], $self->semStack[$stackPos - (7 - 7)]);
            $self->checkParam($self->semValue);
        },
        291 => static function ($self, $stackPos) {
            $self->semValue = new Node\Param($self->semStack[$stackPos - (9 - 6)], $self->semStack[$stackPos - (9 - 8)], $self->semStack[$stackPos - (9 - 3)], $self->semStack[$stackPos - (9 - 4)], $self->semStack[$stackPos - (9 - 5)], $self->getAttributes($self->tokenStartStack[$stackPos - (9 - 1)], $self->tokenEndStack[$stackPos]), $self->semStack[$stackPos - (9 - 2)], $self->semStack[$stackPos - (9 - 1)], $self->semStack[$stackPos - (9 - 9)]);
            $self->checkParam($self->semValue);
        },
        292 => static function ($self, $stackPos) {
            $self->semValue = new Node\Param(new Expr\Error($self->getAttributes($self->tokenStartStack[$stackPos - (6 - 1)], $self->tokenEndStack[$stackPos])), null, $self->semStack[$stackPos - (6 - 3)], $self->semStack[$stackPos - (6 - 4)], $self->semStack[$stackPos - (6 - 5)], $self->getAttributes($self->tokenStartStack[$stackPos - (6 - 1)], $self->tokenEndStack[$stackPos]), $self->semStack[$stackPos - (6 - 2)], $self->semStack[$stackPos - (6 - 1)]);
        },
        293 => null,
        294 => static function ($self, $stackPos) {
            $self->semValue = new Node\NullableType($self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        295 => static function ($self, $stackPos) {
            $self->semValue = new Node\UnionType($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        296 => null,
        297 => null,
        298 => static function ($self, $stackPos) {
            $self->semValue = new Node\Name('static', $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        299 => static function ($self, $stackPos) {
            $self->semValue = $self->handleBuiltinTypes($self->semStack[$stackPos - (1 - 1)]);
        },
        300 => static function ($self, $stackPos) {
            $self->semValue = new Node\Identifier('array', $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        301 => static function ($self, $stackPos) {
            $self->semValue = new Node\Identifier('callable', $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        302 => null,
        303 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (3 - 2)];
        },
        304 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (3 - 1)],
                $self->semStack[$stackPos - (3 - 3)],
            );
        },
        305 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)];
            $self->semValue = $self->semStack[$stackPos - (3 - 1)];
        },
        306 => null,
        307 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (3 - 2)];
        },
        308 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (3 - 1)],
                $self->semStack[$stackPos - (3 - 3)],
            );
        },
        309 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)];
            $self->semValue = $self->semStack[$stackPos - (3 - 1)];
        },
        310 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (3 - 1)],
                $self->semStack[$stackPos - (3 - 3)],
            );
        },
        311 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)];
            $self->semValue = $self->semStack[$stackPos - (3 - 1)];
        },
        312 => static function ($self, $stackPos) {
            $self->semValue = new Node\IntersectionType($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        313 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (3 - 1)],
                $self->semStack[$stackPos - (3 - 3)],
            );
        },
        314 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)];
            $self->semValue = $self->semStack[$stackPos - (3 - 1)];
        },
        315 => static function ($self, $stackPos) {
            $self->semValue = new Node\IntersectionType($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        316 => null,
        317 => static function ($self, $stackPos) {
            $self->semValue = new Node\NullableType($self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        318 => static function ($self, $stackPos) {
            $self->semValue = new Node\UnionType($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        319 => null,
        320 => static function ($self, $stackPos) {
            $self->semValue = null;
        },
        321 => null,
        322 => static function ($self, $stackPos) {
            $self->semValue = null;
        },
        323 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (2 - 2)];
        },
        324 => static function ($self, $stackPos) {
            $self->semValue = null;
        },
        325 => static function ($self, $stackPos) {
            $self->semValue = array();
        },
        326 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (4 - 2)];
        },
        327 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (3 - 2)],
            );
        },
        328 => static function ($self, $stackPos) {
            $self->semValue = new Node\VariadicPlaceholder($self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        329 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (1 - 1)],
            );
        },
        330 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)];
            $self->semValue = $self->semStack[$stackPos - (3 - 1)];
        },
        331 => static function ($self, $stackPos) {
            $self->semValue = new Node\Arg($self->semStack[$stackPos - (1 - 1)], false, false, $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        332 => static function ($self, $stackPos) {
            $self->semValue = new Node\Arg($self->semStack[$stackPos - (2 - 2)], true, false, $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        333 => static function ($self, $stackPos) {
            $self->semValue = new Node\Arg($self->semStack[$stackPos - (2 - 2)], false, true, $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        334 => static function ($self, $stackPos) {
            $self->semValue = new Node\Arg($self->semStack[$stackPos - (3 - 3)], false, false, $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]), $self->semStack[$stackPos - (3 - 1)]);
        },
        335 => null,
        336 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)];
            $self->semValue = $self->semStack[$stackPos - (3 - 1)];
        },
        337 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (1 - 1)],
            );
        },
        338 => null,
        339 => null,
        340 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)];
            $self->semValue = $self->semStack[$stackPos - (3 - 1)];
        },
        341 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (1 - 1)],
            );
        },
        342 => static function ($self, $stackPos) {
            $self->semValue = new Node\StaticVar($self->semStack[$stackPos - (1 - 1)], null, $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        343 => static function ($self, $stackPos) {
            $self->semValue = new Node\StaticVar($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        344 => static function ($self, $stackPos) {
            if ($self->semStack[$stackPos - (2 - 2)] !== null) {
                $self->semStack[$stackPos - (2 - 1)][] = $self->semStack[$stackPos - (2 - 2)];
                $self->semValue = $self->semStack[$stackPos - (2 - 1)];
            }
            else {
                $self->semValue = $self->semStack[$stackPos - (2 - 1)];
            }
        },
        345 => static function ($self, $stackPos) {
            $self->semValue = array();
        },
        346 => static function ($self, $stackPos) {
            $nop = $self->maybeCreateZeroLengthNop($self->tokenPos);
            if ($nop !== null) {
                $self->semStack[$stackPos - (1 - 1)][] = $nop;
            }
            $self->semValue = $self->semStack[$stackPos - (1 - 1)];
        },
        347 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\Property($self->semStack[$stackPos - (5 - 2)], $self->semStack[$stackPos - (5 - 4)], $self->getAttributes($self->tokenStartStack[$stackPos - (5 - 1)], $self->tokenEndStack[$stackPos]), $self->semStack[$stackPos - (5 - 3)], $self->semStack[$stackPos - (5 - 1)]);
        },
        348 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\ClassConst($self->semStack[$stackPos - (5 - 4)], $self->semStack[$stackPos - (5 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (5 - 1)], $self->tokenEndStack[$stackPos]), $self->semStack[$stackPos - (5 - 1)]);
            $self->checkClassConst($self->semValue, $stackPos - (5 - 2));
        },
        349 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\ClassConst($self->semStack[$stackPos - (6 - 5)], $self->semStack[$stackPos - (6 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (6 - 1)], $self->tokenEndStack[$stackPos]), $self->semStack[$stackPos - (6 - 1)], $self->semStack[$stackPos - (6 - 4)]);
            $self->checkClassConst($self->semValue, $stackPos - (6 - 2));
        },
        350 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\ClassMethod($self->semStack[$stackPos - (10 - 5)], [
                'type' => $self->semStack[$stackPos - (10 - 2)],
                'byRef' => $self->semStack[$stackPos - (10 - 4)],
                'params' => $self->semStack[$stackPos - (10 - 7)],
                'returnType' => $self->semStack[$stackPos - (10 - 9)],
                'stmts' => $self->semStack[$stackPos - (10 - 10)],
                'attrGroups' => $self->semStack[$stackPos - (10 - 1)],
            ], $self->getAttributes($self->tokenStartStack[$stackPos - (10 - 1)], $self->tokenEndStack[$stackPos]));
            $self->checkClassMethod($self->semValue, $stackPos - (10 - 2));
        },
        351 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\TraitUse($self->semStack[$stackPos - (3 - 2)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        352 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\EnumCase($self->semStack[$stackPos - (5 - 3)], $self->semStack[$stackPos - (5 - 4)], $self->semStack[$stackPos - (5 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (5 - 1)], $self->tokenEndStack[$stackPos]));
        },
        353 => static function ($self, $stackPos) {
            $self->semValue = null;
            
            /* will be skipped */
        },
        354 => static function ($self, $stackPos) {
            $self->semValue = array();
        },
        355 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (3 - 2)];
        },
        356 => static function ($self, $stackPos) {
            $self->semValue = array();
        },
        357 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (2 - 1)][] = $self->semStack[$stackPos - (2 - 2)];
            $self->semValue = $self->semStack[$stackPos - (2 - 1)];
        },
        358 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\TraitUseAdaptation\Precedence($self->semStack[$stackPos - (4 - 1)][0], $self->semStack[$stackPos - (4 - 1)][1], $self->semStack[$stackPos - (4 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
        },
        359 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\TraitUseAdaptation\Alias($self->semStack[$stackPos - (5 - 1)][0], $self->semStack[$stackPos - (5 - 1)][1], $self->semStack[$stackPos - (5 - 3)], $self->semStack[$stackPos - (5 - 4)], $self->getAttributes($self->tokenStartStack[$stackPos - (5 - 1)], $self->tokenEndStack[$stackPos]));
        },
        360 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\TraitUseAdaptation\Alias($self->semStack[$stackPos - (4 - 1)][0], $self->semStack[$stackPos - (4 - 1)][1], $self->semStack[$stackPos - (4 - 3)], null, $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
        },
        361 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\TraitUseAdaptation\Alias($self->semStack[$stackPos - (4 - 1)][0], $self->semStack[$stackPos - (4 - 1)][1], null, $self->semStack[$stackPos - (4 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
        },
        362 => static function ($self, $stackPos) {
            $self->semValue = new Stmt\TraitUseAdaptation\Alias($self->semStack[$stackPos - (4 - 1)][0], $self->semStack[$stackPos - (4 - 1)][1], null, $self->semStack[$stackPos - (4 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
        },
        363 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (3 - 1)],
                $self->semStack[$stackPos - (3 - 3)],
            );
        },
        364 => null,
        365 => static function ($self, $stackPos) {
            $self->semValue = array(
                null,
                $self->semStack[$stackPos - (1 - 1)],
            );
        },
        366 => static function ($self, $stackPos) {
            $self->semValue = null;
        },
        367 => null,
        368 => null,
        369 => static function ($self, $stackPos) {
            $self->semValue = 0;
        },
        370 => static function ($self, $stackPos) {
            $self->semValue = 0;
        },
        371 => null,
        372 => null,
        373 => static function ($self, $stackPos) {
            $self->checkModifier($self->semStack[$stackPos - (2 - 1)], $self->semStack[$stackPos - (2 - 2)], $stackPos - (2 - 2));
            $self->semValue = $self->semStack[$stackPos - (2 - 1)] | $self->semStack[$stackPos - (2 - 2)];
        },
        374 => static function ($self, $stackPos) {
            $self->semValue = Modifiers::PUBLIC;
        },
        375 => static function ($self, $stackPos) {
            $self->semValue = Modifiers::PROTECTED;
        },
        376 => static function ($self, $stackPos) {
            $self->semValue = Modifiers::PRIVATE;
        },
        377 => static function ($self, $stackPos) {
            $self->semValue = Modifiers::PUBLIC_SET;
        },
        378 => static function ($self, $stackPos) {
            $self->semValue = Modifiers::PROTECTED_SET;
        },
        379 => static function ($self, $stackPos) {
            $self->semValue = Modifiers::PRIVATE_SET;
        },
        380 => static function ($self, $stackPos) {
            $self->semValue = Modifiers::STATIC;
        },
        381 => static function ($self, $stackPos) {
            $self->semValue = Modifiers::ABSTRACT;
        },
        382 => static function ($self, $stackPos) {
            $self->semValue = Modifiers::FINAL;
        },
        383 => static function ($self, $stackPos) {
            $self->semValue = Modifiers::READONLY;
        },
        384 => null,
        385 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (1 - 1)],
            );
        },
        386 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)];
            $self->semValue = $self->semStack[$stackPos - (3 - 1)];
        },
        387 => static function ($self, $stackPos) {
            $self->semValue = new Node\VarLikeIdentifier(substr($self->semStack[$stackPos - (1 - 1)], 1), $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        388 => static function ($self, $stackPos) {
            $self->semValue = new Node\PropertyItem($self->semStack[$stackPos - (1 - 1)], null, $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        389 => static function ($self, $stackPos) {
            $self->semValue = new Node\PropertyItem($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        390 => static function ($self, $stackPos) {
            $self->semValue = [];
        },
        391 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (2 - 1)][] = $self->semStack[$stackPos - (2 - 2)];
            $self->semValue = $self->semStack[$stackPos - (2 - 1)];
        },
        392 => static function ($self, $stackPos) {
            $self->semValue = [];
        },
        393 => static function ($self, $stackPos) {
            $self->semValue = new Node\PropertyHook($self->semStack[$stackPos - (5 - 4)], $self->semStack[$stackPos - (5 - 5)], [
                'flags' => $self->semStack[$stackPos - (5 - 2)],
                'byRef' => $self->semStack[$stackPos - (5 - 3)],
                'params' => [],
                'attrGroups' => $self->semStack[$stackPos - (5 - 1)],
            ], $self->getAttributes($self->tokenStartStack[$stackPos - (5 - 1)], $self->tokenEndStack[$stackPos]));
            $self->checkPropertyHook($self->semValue, null);
        },
        394 => static function ($self, $stackPos) {
            $self->semValue = new Node\PropertyHook($self->semStack[$stackPos - (8 - 4)], $self->semStack[$stackPos - (8 - 8)], [
                'flags' => $self->semStack[$stackPos - (8 - 2)],
                'byRef' => $self->semStack[$stackPos - (8 - 3)],
                'params' => $self->semStack[$stackPos - (8 - 6)],
                'attrGroups' => $self->semStack[$stackPos - (8 - 1)],
            ], $self->getAttributes($self->tokenStartStack[$stackPos - (8 - 1)], $self->tokenEndStack[$stackPos]));
            $self->checkPropertyHook($self->semValue, $stackPos - (8 - 5));
        },
        395 => static function ($self, $stackPos) {
            $self->semValue = null;
        },
        396 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (3 - 2)];
        },
        397 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (3 - 2)];
        },
        398 => static function ($self, $stackPos) {
            $self->semValue = 0;
        },
        399 => static function ($self, $stackPos) {
            $self->checkPropertyHookModifiers($self->semStack[$stackPos - (2 - 1)], $self->semStack[$stackPos - (2 - 2)], $stackPos - (2 - 2));
            $self->semValue = $self->semStack[$stackPos - (2 - 1)] | $self->semStack[$stackPos - (2 - 2)];
        },
        400 => null,
        401 => null,
        402 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)];
            $self->semValue = $self->semStack[$stackPos - (3 - 1)];
        },
        403 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (1 - 1)],
            );
        },
        404 => static function ($self, $stackPos) {
            $self->semValue = array();
        },
        405 => null,
        406 => null,
        407 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Assign($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        408 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Assign($self->fixupArrayDestructuring($self->semStack[$stackPos - (3 - 1)]), $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        409 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Assign($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        410 => static function ($self, $stackPos) {
            $self->semValue = new Expr\AssignRef($self->semStack[$stackPos - (4 - 1)], $self->semStack[$stackPos - (4 - 4)], $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
        },
        411 => static function ($self, $stackPos) {
            $self->semValue = new Expr\AssignRef($self->semStack[$stackPos - (4 - 1)], $self->semStack[$stackPos - (4 - 4)], $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
            if (!$self->phpVersion
                ->allowsAssignNewByReference()) {
                $self->emitError(new Error('Cannot assign new by reference', $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos])));
            }
        },
        412 => null,
        413 => null,
        414 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Clone_($self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        415 => static function ($self, $stackPos) {
            $self->semValue = new Expr\AssignOp\Plus($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        416 => static function ($self, $stackPos) {
            $self->semValue = new Expr\AssignOp\Minus($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        417 => static function ($self, $stackPos) {
            $self->semValue = new Expr\AssignOp\Mul($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        418 => static function ($self, $stackPos) {
            $self->semValue = new Expr\AssignOp\Div($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        419 => static function ($self, $stackPos) {
            $self->semValue = new Expr\AssignOp\Concat($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        420 => static function ($self, $stackPos) {
            $self->semValue = new Expr\AssignOp\Mod($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        421 => static function ($self, $stackPos) {
            $self->semValue = new Expr\AssignOp\BitwiseAnd($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        422 => static function ($self, $stackPos) {
            $self->semValue = new Expr\AssignOp\BitwiseOr($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        423 => static function ($self, $stackPos) {
            $self->semValue = new Expr\AssignOp\BitwiseXor($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        424 => static function ($self, $stackPos) {
            $self->semValue = new Expr\AssignOp\ShiftLeft($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        425 => static function ($self, $stackPos) {
            $self->semValue = new Expr\AssignOp\ShiftRight($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        426 => static function ($self, $stackPos) {
            $self->semValue = new Expr\AssignOp\Pow($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        427 => static function ($self, $stackPos) {
            $self->semValue = new Expr\AssignOp\Coalesce($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        428 => static function ($self, $stackPos) {
            $self->semValue = new Expr\PostInc($self->semStack[$stackPos - (2 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        429 => static function ($self, $stackPos) {
            $self->semValue = new Expr\PreInc($self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        430 => static function ($self, $stackPos) {
            $self->semValue = new Expr\PostDec($self->semStack[$stackPos - (2 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        431 => static function ($self, $stackPos) {
            $self->semValue = new Expr\PreDec($self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        432 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\BooleanOr($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        433 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\BooleanAnd($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        434 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\LogicalOr($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        435 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\LogicalAnd($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        436 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\LogicalXor($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        437 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\BitwiseOr($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        438 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\BitwiseAnd($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        439 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\BitwiseAnd($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        440 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\BitwiseXor($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        441 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\Concat($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        442 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\Plus($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        443 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\Minus($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        444 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\Mul($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        445 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\Div($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        446 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\Mod($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        447 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\ShiftLeft($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        448 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\ShiftRight($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        449 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\Pow($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        450 => static function ($self, $stackPos) {
            $self->semValue = new Expr\UnaryPlus($self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        451 => static function ($self, $stackPos) {
            $self->semValue = new Expr\UnaryMinus($self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        452 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BooleanNot($self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        453 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BitwiseNot($self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        454 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\Identical($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        455 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\NotIdentical($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        456 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\Equal($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        457 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\NotEqual($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        458 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\Spaceship($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        459 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\Smaller($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        460 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\SmallerOrEqual($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        461 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\Greater($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        462 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\GreaterOrEqual($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        463 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Instanceof_($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        464 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (3 - 2)];
        },
        465 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Ternary($self->semStack[$stackPos - (5 - 1)], $self->semStack[$stackPos - (5 - 3)], $self->semStack[$stackPos - (5 - 5)], $self->getAttributes($self->tokenStartStack[$stackPos - (5 - 1)], $self->tokenEndStack[$stackPos]));
        },
        466 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Ternary($self->semStack[$stackPos - (4 - 1)], null, $self->semStack[$stackPos - (4 - 4)], $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
        },
        467 => static function ($self, $stackPos) {
            $self->semValue = new Expr\BinaryOp\Coalesce($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        468 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Isset_($self->semStack[$stackPos - (4 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
        },
        469 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Empty_($self->semStack[$stackPos - (4 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
        },
        470 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Include_($self->semStack[$stackPos - (2 - 2)], Expr\Include_::TYPE_INCLUDE, $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        471 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Include_($self->semStack[$stackPos - (2 - 2)], Expr\Include_::TYPE_INCLUDE_ONCE, $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        472 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Eval_($self->semStack[$stackPos - (4 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
        },
        473 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Include_($self->semStack[$stackPos - (2 - 2)], Expr\Include_::TYPE_REQUIRE, $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        474 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Include_($self->semStack[$stackPos - (2 - 2)], Expr\Include_::TYPE_REQUIRE_ONCE, $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        475 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Cast\Int_($self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        476 => static function ($self, $stackPos) {
            $attrs = $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]);
            $attrs['kind'] = $self->getFloatCastKind($self->semStack[$stackPos - (2 - 1)]);
            $self->semValue = new Expr\Cast\Double($self->semStack[$stackPos - (2 - 2)], $attrs);
        },
        477 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Cast\String_($self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        478 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Cast\Array_($self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        479 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Cast\Object_($self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        480 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Cast\Bool_($self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        481 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Cast\Unset_($self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        482 => static function ($self, $stackPos) {
            $self->semValue = $self->createExitExpr($self->semStack[$stackPos - (2 - 1)], $stackPos - (2 - 1), $self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        483 => static function ($self, $stackPos) {
            $self->semValue = new Expr\ErrorSuppress($self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        484 => null,
        485 => static function ($self, $stackPos) {
            $self->semValue = new Expr\ShellExec($self->semStack[$stackPos - (3 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        486 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Print_($self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        487 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Yield_(null, null, $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        488 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Yield_($self->semStack[$stackPos - (2 - 2)], null, $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        489 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Yield_($self->semStack[$stackPos - (4 - 4)], $self->semStack[$stackPos - (4 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
        },
        490 => static function ($self, $stackPos) {
            $self->semValue = new Expr\YieldFrom($self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        491 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Throw_($self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        492 => static function ($self, $stackPos) {
            $self->semValue = new Expr\ArrowFunction([
                'static' => false,
                'byRef' => $self->semStack[$stackPos - (8 - 2)],
                'params' => $self->semStack[$stackPos - (8 - 4)],
                'returnType' => $self->semStack[$stackPos - (8 - 6)],
                'expr' => $self->semStack[$stackPos - (8 - 8)],
                'attrGroups' => [],
            ], $self->getAttributes($self->tokenStartStack[$stackPos - (8 - 1)], $self->tokenEndStack[$stackPos]));
        },
        493 => static function ($self, $stackPos) {
            $self->semValue = new Expr\ArrowFunction([
                'static' => true,
                'byRef' => $self->semStack[$stackPos - (9 - 3)],
                'params' => $self->semStack[$stackPos - (9 - 5)],
                'returnType' => $self->semStack[$stackPos - (9 - 7)],
                'expr' => $self->semStack[$stackPos - (9 - 9)],
                'attrGroups' => [],
            ], $self->getAttributes($self->tokenStartStack[$stackPos - (9 - 1)], $self->tokenEndStack[$stackPos]));
        },
        494 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Closure([
                'static' => false,
                'byRef' => $self->semStack[$stackPos - (8 - 2)],
                'params' => $self->semStack[$stackPos - (8 - 4)],
                'uses' => $self->semStack[$stackPos - (8 - 6)],
                'returnType' => $self->semStack[$stackPos - (8 - 7)],
                'stmts' => $self->semStack[$stackPos - (8 - 8)],
                'attrGroups' => [],
            ], $self->getAttributes($self->tokenStartStack[$stackPos - (8 - 1)], $self->tokenEndStack[$stackPos]));
        },
        495 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Closure([
                'static' => true,
                'byRef' => $self->semStack[$stackPos - (9 - 3)],
                'params' => $self->semStack[$stackPos - (9 - 5)],
                'uses' => $self->semStack[$stackPos - (9 - 7)],
                'returnType' => $self->semStack[$stackPos - (9 - 8)],
                'stmts' => $self->semStack[$stackPos - (9 - 9)],
                'attrGroups' => [],
            ], $self->getAttributes($self->tokenStartStack[$stackPos - (9 - 1)], $self->tokenEndStack[$stackPos]));
        },
        496 => static function ($self, $stackPos) {
            $self->semValue = new Expr\ArrowFunction([
                'static' => false,
                'byRef' => $self->semStack[$stackPos - (9 - 3)],
                'params' => $self->semStack[$stackPos - (9 - 5)],
                'returnType' => $self->semStack[$stackPos - (9 - 7)],
                'expr' => $self->semStack[$stackPos - (9 - 9)],
                'attrGroups' => $self->semStack[$stackPos - (9 - 1)],
            ], $self->getAttributes($self->tokenStartStack[$stackPos - (9 - 1)], $self->tokenEndStack[$stackPos]));
        },
        497 => static function ($self, $stackPos) {
            $self->semValue = new Expr\ArrowFunction([
                'static' => true,
                'byRef' => $self->semStack[$stackPos - (10 - 4)],
                'params' => $self->semStack[$stackPos - (10 - 6)],
                'returnType' => $self->semStack[$stackPos - (10 - 8)],
                'expr' => $self->semStack[$stackPos - (10 - 10)],
                'attrGroups' => $self->semStack[$stackPos - (10 - 1)],
            ], $self->getAttributes($self->tokenStartStack[$stackPos - (10 - 1)], $self->tokenEndStack[$stackPos]));
        },
        498 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Closure([
                'static' => false,
                'byRef' => $self->semStack[$stackPos - (9 - 3)],
                'params' => $self->semStack[$stackPos - (9 - 5)],
                'uses' => $self->semStack[$stackPos - (9 - 7)],
                'returnType' => $self->semStack[$stackPos - (9 - 8)],
                'stmts' => $self->semStack[$stackPos - (9 - 9)],
                'attrGroups' => $self->semStack[$stackPos - (9 - 1)],
            ], $self->getAttributes($self->tokenStartStack[$stackPos - (9 - 1)], $self->tokenEndStack[$stackPos]));
        },
        499 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Closure([
                'static' => true,
                'byRef' => $self->semStack[$stackPos - (10 - 4)],
                'params' => $self->semStack[$stackPos - (10 - 6)],
                'uses' => $self->semStack[$stackPos - (10 - 8)],
                'returnType' => $self->semStack[$stackPos - (10 - 9)],
                'stmts' => $self->semStack[$stackPos - (10 - 10)],
                'attrGroups' => $self->semStack[$stackPos - (10 - 1)],
            ], $self->getAttributes($self->tokenStartStack[$stackPos - (10 - 1)], $self->tokenEndStack[$stackPos]));
        },
        500 => static function ($self, $stackPos) {
            $self->semValue = array(
                new Stmt\Class_(null, [
                    'type' => $self->semStack[$stackPos - (8 - 2)],
                    'extends' => $self->semStack[$stackPos - (8 - 4)],
                    'implements' => $self->semStack[$stackPos - (8 - 5)],
                    'stmts' => $self->semStack[$stackPos - (8 - 7)],
                    'attrGroups' => $self->semStack[$stackPos - (8 - 1)],
                ], $self->getAttributes($self->tokenStartStack[$stackPos - (8 - 1)], $self->tokenEndStack[$stackPos])),
                $self->semStack[$stackPos - (8 - 3)],
            );
            $self->checkClass($self->semValue[0], -1);
        },
        501 => static function ($self, $stackPos) {
            $self->semValue = new Expr\New_($self->semStack[$stackPos - (3 - 2)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        502 => static function ($self, $stackPos) {
            list($class, $ctorArgs) = $self->semStack[$stackPos - (2 - 2)];
            $self->semValue = new Expr\New_($class, $ctorArgs, $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        503 => static function ($self, $stackPos) {
            $self->semValue = new Expr\New_($self->semStack[$stackPos - (2 - 2)], [], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        504 => null,
        505 => null,
        506 => static function ($self, $stackPos) {
            $self->semValue = array();
        },
        507 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (4 - 3)];
        },
        508 => null,
        509 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (1 - 1)],
            );
        },
        510 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)];
            $self->semValue = $self->semStack[$stackPos - (3 - 1)];
        },
        511 => static function ($self, $stackPos) {
            $self->semValue = new Node\ClosureUse($self->semStack[$stackPos - (2 - 2)], $self->semStack[$stackPos - (2 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        512 => static function ($self, $stackPos) {
            $self->semValue = new Name($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        513 => static function ($self, $stackPos) {
            $self->semValue = new Expr\FuncCall($self->semStack[$stackPos - (2 - 1)], $self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        514 => static function ($self, $stackPos) {
            $self->semValue = new Expr\FuncCall($self->semStack[$stackPos - (2 - 1)], $self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        515 => static function ($self, $stackPos) {
            $self->semValue = new Expr\FuncCall($self->semStack[$stackPos - (2 - 1)], $self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        516 => static function ($self, $stackPos) {
            $self->semValue = new Expr\StaticCall($self->semStack[$stackPos - (4 - 1)], $self->semStack[$stackPos - (4 - 3)], $self->semStack[$stackPos - (4 - 4)], $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
        },
        517 => static function ($self, $stackPos) {
            $self->semValue = new Name($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        518 => null,
        519 => static function ($self, $stackPos) {
            $self->semValue = new Name($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        520 => static function ($self, $stackPos) {
            $self->semValue = new Name($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        521 => static function ($self, $stackPos) {
            $self->semValue = new Name\FullyQualified(substr($self->semStack[$stackPos - (1 - 1)], 1), $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        522 => static function ($self, $stackPos) {
            $self->semValue = new Name\Relative(substr($self->semStack[$stackPos - (1 - 1)], 10), $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        523 => null,
        524 => null,
        525 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (3 - 2)];
        },
        526 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Error($self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
            $self->errorState = 2;
        },
        527 => null,
        528 => null,
        529 => static function ($self, $stackPos) {
            $self->semValue = array();
        },
        530 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (1 - 1)],
            );
            foreach ($self->semValue as $s) {
                if ($s instanceof Node\InterpolatedStringPart) {
                    $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', $self->phpVersion
                        ->supportsUnicodeEscapes());
                }
            }
        },
        531 => static function ($self, $stackPos) {
            foreach ($self->semStack[$stackPos - (1 - 1)] as $s) {
                if ($s instanceof Node\InterpolatedStringPart) {
                    $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', $self->phpVersion
                        ->supportsUnicodeEscapes());
                }
            }
            $self->semValue = $self->semStack[$stackPos - (1 - 1)];
        },
        532 => static function ($self, $stackPos) {
            $self->semValue = array();
        },
        533 => null,
        534 => static function ($self, $stackPos) {
            $self->semValue = new Expr\ConstFetch($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        535 => static function ($self, $stackPos) {
            $self->semValue = new Scalar\MagicConst\Line($self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        536 => static function ($self, $stackPos) {
            $self->semValue = new Scalar\MagicConst\File($self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        537 => static function ($self, $stackPos) {
            $self->semValue = new Scalar\MagicConst\Dir($self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        538 => static function ($self, $stackPos) {
            $self->semValue = new Scalar\MagicConst\Class_($self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        539 => static function ($self, $stackPos) {
            $self->semValue = new Scalar\MagicConst\Trait_($self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        540 => static function ($self, $stackPos) {
            $self->semValue = new Scalar\MagicConst\Method($self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        541 => static function ($self, $stackPos) {
            $self->semValue = new Scalar\MagicConst\Function_($self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        542 => static function ($self, $stackPos) {
            $self->semValue = new Scalar\MagicConst\Namespace_($self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        543 => static function ($self, $stackPos) {
            $self->semValue = new Scalar\MagicConst\Property($self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        544 => static function ($self, $stackPos) {
            $self->semValue = new Expr\ClassConstFetch($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        545 => static function ($self, $stackPos) {
            $self->semValue = new Expr\ClassConstFetch($self->semStack[$stackPos - (5 - 1)], $self->semStack[$stackPos - (5 - 4)], $self->getAttributes($self->tokenStartStack[$stackPos - (5 - 1)], $self->tokenEndStack[$stackPos]));
        },
        546 => static function ($self, $stackPos) {
            $self->semValue = new Expr\ClassConstFetch($self->semStack[$stackPos - (3 - 1)], new Expr\Error($self->getAttributes($self->tokenStartStack[$stackPos - (3 - 3)], $self->tokenEndStack[$stackPos - (3 - 3)])), $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
            $self->errorState = 2;
        },
        547 => static function ($self, $stackPos) {
            $attrs = $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]);
            $attrs['kind'] = Expr\Array_::KIND_SHORT;
            $self->semValue = new Expr\Array_($self->semStack[$stackPos - (3 - 2)], $attrs);
        },
        548 => static function ($self, $stackPos) {
            $attrs = $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]);
            $attrs['kind'] = Expr\Array_::KIND_LONG;
            $self->semValue = new Expr\Array_($self->semStack[$stackPos - (4 - 3)], $attrs);
            $self->createdArrays
                ->attach($self->semValue);
        },
        549 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (1 - 1)];
            $self->createdArrays
                ->attach($self->semValue);
        },
        550 => static function ($self, $stackPos) {
            $self->semValue = Scalar\String_::fromString($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]), $self->phpVersion
                ->supportsUnicodeEscapes());
        },
        551 => static function ($self, $stackPos) {
            $attrs = $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]);
            $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED;
            foreach ($self->semStack[$stackPos - (3 - 2)] as $s) {
                if ($s instanceof Node\InterpolatedStringPart) {
                    $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '"', $self->phpVersion
                        ->supportsUnicodeEscapes());
                }
            }
            $self->semValue = new Scalar\InterpolatedString($self->semStack[$stackPos - (3 - 2)], $attrs);
        },
        552 => static function ($self, $stackPos) {
            $self->semValue = $self->parseLNumber($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]), $self->phpVersion
                ->allowsInvalidOctals());
        },
        553 => static function ($self, $stackPos) {
            $self->semValue = Scalar\Float_::fromString($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        554 => null,
        555 => null,
        556 => null,
        557 => static function ($self, $stackPos) {
            $self->semValue = $self->parseDocString($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 2)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]), $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 3)], $self->tokenEndStack[$stackPos - (3 - 3)]), true);
        },
        558 => static function ($self, $stackPos) {
            $self->semValue = $self->parseDocString($self->semStack[$stackPos - (2 - 1)], '', $self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]), $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 2)], $self->tokenEndStack[$stackPos - (2 - 2)]), true);
        },
        559 => static function ($self, $stackPos) {
            $self->semValue = $self->parseDocString($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 2)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]), $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 3)], $self->tokenEndStack[$stackPos - (3 - 3)]), true);
        },
        560 => static function ($self, $stackPos) {
            $self->semValue = null;
        },
        561 => null,
        562 => null,
        563 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (3 - 2)];
        },
        564 => null,
        565 => null,
        566 => null,
        567 => null,
        568 => null,
        569 => null,
        570 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (3 - 2)];
        },
        571 => null,
        572 => null,
        573 => null,
        574 => static function ($self, $stackPos) {
            $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos - (4 - 1)], $self->semStack[$stackPos - (4 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
        },
        575 => static function ($self, $stackPos) {
            $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos - (4 - 1)], $self->semStack[$stackPos - (4 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
        },
        576 => null,
        577 => static function ($self, $stackPos) {
            $self->semValue = new Expr\MethodCall($self->semStack[$stackPos - (4 - 1)], $self->semStack[$stackPos - (4 - 3)], $self->semStack[$stackPos - (4 - 4)], $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
        },
        578 => static function ($self, $stackPos) {
            $self->semValue = new Expr\NullsafeMethodCall($self->semStack[$stackPos - (4 - 1)], $self->semStack[$stackPos - (4 - 3)], $self->semStack[$stackPos - (4 - 4)], $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
        },
        579 => static function ($self, $stackPos) {
            $self->semValue = null;
        },
        580 => null,
        581 => null,
        582 => null,
        583 => static function ($self, $stackPos) {
            $self->semValue = new Expr\PropertyFetch($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        584 => static function ($self, $stackPos) {
            $self->semValue = new Expr\NullsafePropertyFetch($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        585 => null,
        586 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Variable($self->semStack[$stackPos - (4 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
        },
        587 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Variable($self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        588 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Variable(new Expr\Error($self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos])), $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
            $self->errorState = 2;
        },
        589 => static function ($self, $stackPos) {
            $var = $self->semStack[$stackPos - (1 - 1)]->name;
            $self->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos])) : $var;
        },
        590 => static function ($self, $stackPos) {
            $self->semValue = new Expr\StaticPropertyFetch($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        591 => null,
        592 => static function ($self, $stackPos) {
            $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos - (4 - 1)], $self->semStack[$stackPos - (4 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
        },
        593 => static function ($self, $stackPos) {
            $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos - (4 - 1)], $self->semStack[$stackPos - (4 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
        },
        594 => static function ($self, $stackPos) {
            $self->semValue = new Expr\PropertyFetch($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        595 => static function ($self, $stackPos) {
            $self->semValue = new Expr\NullsafePropertyFetch($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        596 => static function ($self, $stackPos) {
            $self->semValue = new Expr\StaticPropertyFetch($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        597 => static function ($self, $stackPos) {
            $self->semValue = new Expr\StaticPropertyFetch($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        598 => null,
        599 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (3 - 2)];
        },
        600 => null,
        601 => null,
        602 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (3 - 2)];
        },
        603 => null,
        604 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Error($self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
            $self->errorState = 2;
        },
        605 => static function ($self, $stackPos) {
            $self->semValue = new Expr\List_($self->semStack[$stackPos - (4 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
            $self->semValue
                ->setAttribute('kind', Expr\List_::KIND_LIST);
            $self->postprocessList($self->semValue);
        },
        606 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (1 - 1)];
            $end = count($self->semValue) - 1;
            if ($self->semValue[$end]->value instanceof Expr\Error) {
                array_pop($self->semValue);
            }
        },
        607 => null,
        608 => static function ($self, $stackPos) {
            
            /* do nothing -- prevent default action of $$=$self->semStack[$1]. See $551. */
        },
        609 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (3 - 1)][] = $self->semStack[$stackPos - (3 - 3)];
            $self->semValue = $self->semStack[$stackPos - (3 - 1)];
        },
        610 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (1 - 1)],
            );
        },
        611 => static function ($self, $stackPos) {
            $self->semValue = new Node\ArrayItem($self->semStack[$stackPos - (1 - 1)], null, false, $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        612 => static function ($self, $stackPos) {
            $self->semValue = new Node\ArrayItem($self->semStack[$stackPos - (2 - 2)], null, true, $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        613 => static function ($self, $stackPos) {
            $self->semValue = new Node\ArrayItem($self->semStack[$stackPos - (1 - 1)], null, false, $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        614 => static function ($self, $stackPos) {
            $self->semValue = new Node\ArrayItem($self->semStack[$stackPos - (3 - 3)], $self->semStack[$stackPos - (3 - 1)], false, $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        615 => static function ($self, $stackPos) {
            $self->semValue = new Node\ArrayItem($self->semStack[$stackPos - (4 - 4)], $self->semStack[$stackPos - (4 - 1)], true, $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
        },
        616 => static function ($self, $stackPos) {
            $self->semValue = new Node\ArrayItem($self->semStack[$stackPos - (3 - 3)], $self->semStack[$stackPos - (3 - 1)], false, $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        617 => static function ($self, $stackPos) {
            $self->semValue = new Node\ArrayItem($self->semStack[$stackPos - (2 - 2)], null, false, $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]), true);
        },
        618 => static function ($self, $stackPos) {
            
            /* Create an Error node now to remember the position. We'll later either report an error,
               or convert this into a null element, depending on whether this is a creation or destructuring context. */
            $attrs = $self->createEmptyElemAttributes($self->tokenPos);
            $self->semValue = new Node\ArrayItem(new Expr\Error($attrs), null, false, $attrs);
        },
        619 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (2 - 1)][] = $self->semStack[$stackPos - (2 - 2)];
            $self->semValue = $self->semStack[$stackPos - (2 - 1)];
        },
        620 => static function ($self, $stackPos) {
            $self->semStack[$stackPos - (2 - 1)][] = $self->semStack[$stackPos - (2 - 2)];
            $self->semValue = $self->semStack[$stackPos - (2 - 1)];
        },
        621 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (1 - 1)],
            );
        },
        622 => static function ($self, $stackPos) {
            $self->semValue = array(
                $self->semStack[$stackPos - (2 - 1)],
                $self->semStack[$stackPos - (2 - 2)],
            );
        },
        623 => static function ($self, $stackPos) {
            $attrs = $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]);
            $attrs['rawValue'] = $self->semStack[$stackPos - (1 - 1)];
            $self->semValue = new Node\InterpolatedStringPart($self->semStack[$stackPos - (1 - 1)], $attrs);
        },
        624 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Variable($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        625 => null,
        626 => static function ($self, $stackPos) {
            $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos - (4 - 1)], $self->semStack[$stackPos - (4 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (4 - 1)], $self->tokenEndStack[$stackPos]));
        },
        627 => static function ($self, $stackPos) {
            $self->semValue = new Expr\PropertyFetch($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        628 => static function ($self, $stackPos) {
            $self->semValue = new Expr\NullsafePropertyFetch($self->semStack[$stackPos - (3 - 1)], $self->semStack[$stackPos - (3 - 3)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        629 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Variable($self->semStack[$stackPos - (3 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        630 => static function ($self, $stackPos) {
            $self->semValue = new Expr\Variable($self->semStack[$stackPos - (3 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (3 - 1)], $self->tokenEndStack[$stackPos]));
        },
        631 => static function ($self, $stackPos) {
            $self->semValue = new Expr\ArrayDimFetch($self->semStack[$stackPos - (6 - 2)], $self->semStack[$stackPos - (6 - 4)], $self->getAttributes($self->tokenStartStack[$stackPos - (6 - 1)], $self->tokenEndStack[$stackPos]));
        },
        632 => static function ($self, $stackPos) {
            $self->semValue = $self->semStack[$stackPos - (3 - 2)];
        },
        633 => static function ($self, $stackPos) {
            $self->semValue = new Scalar\String_($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        634 => static function ($self, $stackPos) {
            $self->semValue = $self->parseNumString($self->semStack[$stackPos - (1 - 1)], $self->getAttributes($self->tokenStartStack[$stackPos - (1 - 1)], $self->tokenEndStack[$stackPos]));
        },
        635 => static function ($self, $stackPos) {
            $self->semValue = $self->parseNumString('-' . $self->semStack[$stackPos - (2 - 2)], $self->getAttributes($self->tokenStartStack[$stackPos - (2 - 1)], $self->tokenEndStack[$stackPos]));
        },
        636 => null,
    ];
}
RSS feed
Powered by Drupal