xref: /PHP-Parser/lib/PhpParser/Parser/Php8.php (revision 7b0384cd)
1<?php declare(strict_types=1);
2
3namespace PhpParser\Parser;
4
5use PhpParser\Error;
6use PhpParser\Modifiers;
7use PhpParser\Node;
8use PhpParser\Node\Expr;
9use PhpParser\Node\Name;
10use PhpParser\Node\Scalar;
11use PhpParser\Node\Stmt;
12
13/* This is an automatically GENERATED file, which should not be manually edited.
14 * Instead edit one of the following:
15 *  * the grammar file grammar/php.y
16 *  * the skeleton file grammar/parser.template
17 *  * the preprocessing script grammar/rebuildParsers.php
18 */
19class Php8 extends \PhpParser\ParserAbstract
20{
21    public const YYERRTOK = 256;
22    public const T_THROW = 257;
23    public const T_INCLUDE = 258;
24    public const T_INCLUDE_ONCE = 259;
25    public const T_EVAL = 260;
26    public const T_REQUIRE = 261;
27    public const T_REQUIRE_ONCE = 262;
28    public const T_LOGICAL_OR = 263;
29    public const T_LOGICAL_XOR = 264;
30    public const T_LOGICAL_AND = 265;
31    public const T_PRINT = 266;
32    public const T_YIELD = 267;
33    public const T_DOUBLE_ARROW = 268;
34    public const T_YIELD_FROM = 269;
35    public const T_PLUS_EQUAL = 270;
36    public const T_MINUS_EQUAL = 271;
37    public const T_MUL_EQUAL = 272;
38    public const T_DIV_EQUAL = 273;
39    public const T_CONCAT_EQUAL = 274;
40    public const T_MOD_EQUAL = 275;
41    public const T_AND_EQUAL = 276;
42    public const T_OR_EQUAL = 277;
43    public const T_XOR_EQUAL = 278;
44    public const T_SL_EQUAL = 279;
45    public const T_SR_EQUAL = 280;
46    public const T_POW_EQUAL = 281;
47    public const T_COALESCE_EQUAL = 282;
48    public const T_COALESCE = 283;
49    public const T_BOOLEAN_OR = 284;
50    public const T_BOOLEAN_AND = 285;
51    public const T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG = 286;
52    public const T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG = 287;
53    public const T_IS_EQUAL = 288;
54    public const T_IS_NOT_EQUAL = 289;
55    public const T_IS_IDENTICAL = 290;
56    public const T_IS_NOT_IDENTICAL = 291;
57    public const T_SPACESHIP = 292;
58    public const T_IS_SMALLER_OR_EQUAL = 293;
59    public const T_IS_GREATER_OR_EQUAL = 294;
60    public const T_SL = 295;
61    public const T_SR = 296;
62    public const T_INSTANCEOF = 297;
63    public const T_INC = 298;
64    public const T_DEC = 299;
65    public const T_INT_CAST = 300;
66    public const T_DOUBLE_CAST = 301;
67    public const T_STRING_CAST = 302;
68    public const T_ARRAY_CAST = 303;
69    public const T_OBJECT_CAST = 304;
70    public const T_BOOL_CAST = 305;
71    public const T_UNSET_CAST = 306;
72    public const T_POW = 307;
73    public const T_NEW = 308;
74    public const T_CLONE = 309;
75    public const T_EXIT = 310;
76    public const T_IF = 311;
77    public const T_ELSEIF = 312;
78    public const T_ELSE = 313;
79    public const T_ENDIF = 314;
80    public const T_LNUMBER = 315;
81    public const T_DNUMBER = 316;
82    public const T_STRING = 317;
83    public const T_STRING_VARNAME = 318;
84    public const T_VARIABLE = 319;
85    public const T_NUM_STRING = 320;
86    public const T_INLINE_HTML = 321;
87    public const T_ENCAPSED_AND_WHITESPACE = 322;
88    public const T_CONSTANT_ENCAPSED_STRING = 323;
89    public const T_ECHO = 324;
90    public const T_DO = 325;
91    public const T_WHILE = 326;
92    public const T_ENDWHILE = 327;
93    public const T_FOR = 328;
94    public const T_ENDFOR = 329;
95    public const T_FOREACH = 330;
96    public const T_ENDFOREACH = 331;
97    public const T_DECLARE = 332;
98    public const T_ENDDECLARE = 333;
99    public const T_AS = 334;
100    public const T_SWITCH = 335;
101    public const T_MATCH = 336;
102    public const T_ENDSWITCH = 337;
103    public const T_CASE = 338;
104    public const T_DEFAULT = 339;
105    public const T_BREAK = 340;
106    public const T_CONTINUE = 341;
107    public const T_GOTO = 342;
108    public const T_FUNCTION = 343;
109    public const T_FN = 344;
110    public const T_CONST = 345;
111    public const T_RETURN = 346;
112    public const T_TRY = 347;
113    public const T_CATCH = 348;
114    public const T_FINALLY = 349;
115    public const T_USE = 350;
116    public const T_INSTEADOF = 351;
117    public const T_GLOBAL = 352;
118    public const T_STATIC = 353;
119    public const T_ABSTRACT = 354;
120    public const T_FINAL = 355;
121    public const T_PRIVATE = 356;
122    public const T_PROTECTED = 357;
123    public const T_PUBLIC = 358;
124    public const T_READONLY = 359;
125    public const T_VAR = 360;
126    public const T_UNSET = 361;
127    public const T_ISSET = 362;
128    public const T_EMPTY = 363;
129    public const T_HALT_COMPILER = 364;
130    public const T_CLASS = 365;
131    public const T_TRAIT = 366;
132    public const T_INTERFACE = 367;
133    public const T_ENUM = 368;
134    public const T_EXTENDS = 369;
135    public const T_IMPLEMENTS = 370;
136    public const T_OBJECT_OPERATOR = 371;
137    public const T_NULLSAFE_OBJECT_OPERATOR = 372;
138    public const T_LIST = 373;
139    public const T_ARRAY = 374;
140    public const T_CALLABLE = 375;
141    public const T_CLASS_C = 376;
142    public const T_TRAIT_C = 377;
143    public const T_METHOD_C = 378;
144    public const T_FUNC_C = 379;
145    public const T_LINE = 380;
146    public const T_FILE = 381;
147    public const T_START_HEREDOC = 382;
148    public const T_END_HEREDOC = 383;
149    public const T_DOLLAR_OPEN_CURLY_BRACES = 384;
150    public const T_CURLY_OPEN = 385;
151    public const T_PAAMAYIM_NEKUDOTAYIM = 386;
152    public const T_NAMESPACE = 387;
153    public const T_NS_C = 388;
154    public const T_DIR = 389;
155    public const T_NS_SEPARATOR = 390;
156    public const T_ELLIPSIS = 391;
157    public const T_NAME_FULLY_QUALIFIED = 392;
158    public const T_NAME_QUALIFIED = 393;
159    public const T_NAME_RELATIVE = 394;
160    public const T_ATTRIBUTE = 395;
161
162    protected int $tokenToSymbolMapSize = 396;
163    protected int $actionTableSize = 1272;
164    protected int $gotoTableSize = 689;
165
166    protected int $invalidSymbol = 168;
167    protected int $errorSymbol = 1;
168    protected int $defaultAction = -32766;
169    protected int $unexpectedTokenRule = 32767;
170
171    protected int $YY2TBLSTATE = 437;
172    protected int $numNonLeafStates = 743;
173
174    protected array $symbolToName = array(
175        "EOF",
176        "error",
177        "T_THROW",
178        "T_INCLUDE",
179        "T_INCLUDE_ONCE",
180        "T_EVAL",
181        "T_REQUIRE",
182        "T_REQUIRE_ONCE",
183        "','",
184        "T_LOGICAL_OR",
185        "T_LOGICAL_XOR",
186        "T_LOGICAL_AND",
187        "T_PRINT",
188        "T_YIELD",
189        "T_DOUBLE_ARROW",
190        "T_YIELD_FROM",
191        "'='",
192        "T_PLUS_EQUAL",
193        "T_MINUS_EQUAL",
194        "T_MUL_EQUAL",
195        "T_DIV_EQUAL",
196        "T_CONCAT_EQUAL",
197        "T_MOD_EQUAL",
198        "T_AND_EQUAL",
199        "T_OR_EQUAL",
200        "T_XOR_EQUAL",
201        "T_SL_EQUAL",
202        "T_SR_EQUAL",
203        "T_POW_EQUAL",
204        "T_COALESCE_EQUAL",
205        "'?'",
206        "':'",
207        "T_COALESCE",
208        "T_BOOLEAN_OR",
209        "T_BOOLEAN_AND",
210        "'|'",
211        "'^'",
212        "T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG",
213        "T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG",
214        "T_IS_EQUAL",
215        "T_IS_NOT_EQUAL",
216        "T_IS_IDENTICAL",
217        "T_IS_NOT_IDENTICAL",
218        "T_SPACESHIP",
219        "'<'",
220        "T_IS_SMALLER_OR_EQUAL",
221        "'>'",
222        "T_IS_GREATER_OR_EQUAL",
223        "'.'",
224        "T_SL",
225        "T_SR",
226        "'+'",
227        "'-'",
228        "'*'",
229        "'/'",
230        "'%'",
231        "'!'",
232        "T_INSTANCEOF",
233        "'~'",
234        "T_INC",
235        "T_DEC",
236        "T_INT_CAST",
237        "T_DOUBLE_CAST",
238        "T_STRING_CAST",
239        "T_ARRAY_CAST",
240        "T_OBJECT_CAST",
241        "T_BOOL_CAST",
242        "T_UNSET_CAST",
243        "'@'",
244        "T_POW",
245        "'['",
246        "T_NEW",
247        "T_CLONE",
248        "T_EXIT",
249        "T_IF",
250        "T_ELSEIF",
251        "T_ELSE",
252        "T_ENDIF",
253        "T_LNUMBER",
254        "T_DNUMBER",
255        "T_STRING",
256        "T_STRING_VARNAME",
257        "T_VARIABLE",
258        "T_NUM_STRING",
259        "T_INLINE_HTML",
260        "T_ENCAPSED_AND_WHITESPACE",
261        "T_CONSTANT_ENCAPSED_STRING",
262        "T_ECHO",
263        "T_DO",
264        "T_WHILE",
265        "T_ENDWHILE",
266        "T_FOR",
267        "T_ENDFOR",
268        "T_FOREACH",
269        "T_ENDFOREACH",
270        "T_DECLARE",
271        "T_ENDDECLARE",
272        "T_AS",
273        "T_SWITCH",
274        "T_MATCH",
275        "T_ENDSWITCH",
276        "T_CASE",
277        "T_DEFAULT",
278        "T_BREAK",
279        "T_CONTINUE",
280        "T_GOTO",
281        "T_FUNCTION",
282        "T_FN",
283        "T_CONST",
284        "T_RETURN",
285        "T_TRY",
286        "T_CATCH",
287        "T_FINALLY",
288        "T_USE",
289        "T_INSTEADOF",
290        "T_GLOBAL",
291        "T_STATIC",
292        "T_ABSTRACT",
293        "T_FINAL",
294        "T_PRIVATE",
295        "T_PROTECTED",
296        "T_PUBLIC",
297        "T_READONLY",
298        "T_VAR",
299        "T_UNSET",
300        "T_ISSET",
301        "T_EMPTY",
302        "T_HALT_COMPILER",
303        "T_CLASS",
304        "T_TRAIT",
305        "T_INTERFACE",
306        "T_ENUM",
307        "T_EXTENDS",
308        "T_IMPLEMENTS",
309        "T_OBJECT_OPERATOR",
310        "T_NULLSAFE_OBJECT_OPERATOR",
311        "T_LIST",
312        "T_ARRAY",
313        "T_CALLABLE",
314        "T_CLASS_C",
315        "T_TRAIT_C",
316        "T_METHOD_C",
317        "T_FUNC_C",
318        "T_LINE",
319        "T_FILE",
320        "T_START_HEREDOC",
321        "T_END_HEREDOC",
322        "T_DOLLAR_OPEN_CURLY_BRACES",
323        "T_CURLY_OPEN",
324        "T_PAAMAYIM_NEKUDOTAYIM",
325        "T_NAMESPACE",
326        "T_NS_C",
327        "T_DIR",
328        "T_NS_SEPARATOR",
329        "T_ELLIPSIS",
330        "T_NAME_FULLY_QUALIFIED",
331        "T_NAME_QUALIFIED",
332        "T_NAME_RELATIVE",
333        "T_ATTRIBUTE",
334        "';'",
335        "']'",
336        "'('",
337        "')'",
338        "'{'",
339        "'}'",
340        "'`'",
341        "'\"'",
342        "'$'"
343    );
344
345    protected array $tokenToSymbol = array(
346            0,  168,  168,  168,  168,  168,  168,  168,  168,  168,
347          168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
348          168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
349          168,  168,  168,   56,  166,  168,  167,   55,  168,  168,
350          161,  162,   53,   51,    8,   52,   48,   54,  168,  168,
351          168,  168,  168,  168,  168,  168,  168,  168,   31,  159,
352           44,   16,   46,   30,   68,  168,  168,  168,  168,  168,
353          168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
354          168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
355          168,   70,  168,  160,   36,  168,  165,  168,  168,  168,
356          168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
357          168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
358          168,  168,  168,  163,   35,  164,   58,  168,  168,  168,
359          168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
360          168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
361          168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
362          168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
363          168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
364          168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
365          168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
366          168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
367          168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
368          168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
369          168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
370          168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
371          168,  168,  168,  168,  168,  168,    1,    2,    3,    4,
372            5,    6,    7,    9,   10,   11,   12,   13,   14,   15,
373           17,   18,   19,   20,   21,   22,   23,   24,   25,   26,
374           27,   28,   29,   32,   33,   34,   37,   38,   39,   40,
375           41,   42,   43,   45,   47,   49,   50,   57,   59,   60,
376           61,   62,   63,   64,   65,   66,   67,   69,   71,   72,
377           73,   74,   75,   76,   77,   78,   79,   80,   81,   82,
378           83,   84,   85,   86,   87,   88,   89,   90,   91,   92,
379           93,   94,   95,   96,   97,   98,   99,  100,  101,  102,
380          103,  104,  105,  106,  107,  108,  109,  110,  111,  112,
381          113,  114,  115,  116,  117,  118,  119,  120,  121,  122,
382          123,  124,  125,  126,  127,  128,  129,  130,  131,  132,
383          133,  134,  135,  136,  137,  138,  139,  140,  141,  142,
384          143,  144,  145,  146,  147,  148,  149,  150,  151,  152,
385          153,  154,  155,  156,  157,  158
386    );
387
388    protected array $action = array(
389          133,  134,  135,  586,  136,  137,    0,  755,  756,  757,
390          138,   38,  329,-32766,-32766,-32766,-32766,-32766,-32766,  841,
391          830,-32767,-32767,-32767,-32767,  102,  103,  104, 1116, 1117,
392         1118, 1115, 1114, 1113, 1119,  749,  748,-32766, 1031,-32766,
393        -32766,-32766,-32766,-32766,-32766,-32766,-32767,-32767,-32767,-32767,
394        -32767, 1252,-32766,-32766, 1331,  758, 1116, 1117, 1118, 1115,
395         1114, 1113, 1119,  461,  462,  463,    2,  994, 1315,  265,
396          139,  406,  762,  763,  764,  765,  470,  471,  431,  839,
397          610,  -16, 1350,   23,  293,  819,  766,  767,  768,  769,
398          770,  771,  772,  773,  774,  775,  795,  587,  796,  797,
399          798,  799,  787,  788,  347,  348,  790,  791,  776,  777,
400          778,  780,  781,  782,  358,  822,  823,  824,  825,  826,
401          588,  783,  784,  589,  590,  945,  807,  805,  806,  818,
402          802,  803,  839,  830,  591,  592,  801,  593,  594,  595,
403          596,  597,  598, -328,   36,  250,   35, -194,  804,  599,
404          600, -193,  140,  -85,  133,  134,  135,  586,  136,  137,
405         1064,  755,  756,  757,  138,   38,  129, -110, -110, -590,
406        -32766, -590, -110,-32766,-32766,-32766,  241,  840, -110,  145,
407          963,  964,-32766,-32766,-32766,  965, -599,-32766,  485,  749,
408          748,  959, 1040, -599,-32766,  995,-32766,-32766,-32766,-32766,
409        -32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766,  301,  758,
410          835,   75,-32766,-32766,-32766,  292,  142,  328,  242,  -85,
411          328,  384,  383,  265,  139,  406,  762,  763,  764,  765,
412           82,  425,  431,-32766,  328,-32766,-32766,-32766,-32766,  819,
413          766,  767,  768,  769,  770,  771,  772,  773,  774,  775,
414          795,  587,  796,  797,  798,  799,  787,  788,  347,  348,
415          790,  791,  776,  777,  778,  780,  781,  782,  358,  822,
416          823,  824,  825,  826,  588,  783,  784,  589,  590,  253,
417          807,  805,  806,  818,  802,  803,  836,  729,  591,  592,
418          801,  593,  594,  595,  596,  597,  598, -328,   83,   84,
419           85, -194,  804,  599,  600, -193,  149,  779,  750,  751,
420          752,  753,  754,  151,  755,  756,  757,  792,  793,   37,
421          486,   86,   87,   88,   89,   90,   91,   92,   93,   94,
422           95,   96,   97,   98,   99,  100,  101,  102,  103,  104,
423          105,  106,  107,  108,  109, -599,  275, -599,-32766,-32766,
424        -32766,-32766,-32766,-32766,  312, 1093,  127,  314,  110,  741,
425         1335,   21,  758,-32766,-32766,-32766, -272, 1334,-32766,-32766,
426         1092,-32766,-32766,-32766,-32766,-32766,  759,  760,  761,  762,
427          763,  764,  765, 1108,-32766,  828,-32766,-32766, -550,  560,
428         1040, 1273,  819,  766,  767,  768,  769,  770,  771,  772,
429          773,  774,  775,  795,  817,  796,  797,  798,  799,  787,
430          788,  789,  816,  790,  791,  776,  777,  778,  780,  781,
431          782,  821,  822,  823,  824,  825,  826,  827,  783,  784,
432          785,  786, 1037,  807,  805,  806,  818,  802,  803,  749,
433          748,  794,  800,  801,  808,  809,  811,  810,  812,  813,
434         1285,  325, -550, -550, 1040,  804,  815,  814,   50,   51,
435           52,  516,   53,   54,  866,  341,  867, -550,   55,   56,
436         -110,   57,  839,  924, -367, -110, -367, -110,  293, -556,
437          152, -550,  308,  103,  104, -110, -110, -110, -110, -110,
438         -110, -110, -110,  105,  106,  107,  108,  109,  947,  275,
439          342,  924, 1252,  719,-32766,-32766,-32766,   58,   59, -549,
440          372,  110,   60,  838,   61,  247,  248,   62,   63,   64,
441           65,   66,   67,   68,   69,-32766,   28,  267,   70,  446,
442          517,  720,  376, -342, 1279, 1280,  518,  359,  839, -548,
443          391, -546, 1277,   42,   25,  519,  947,  520,  616,  521,
444          924,  522,  442,  141,  523,  524,  914,  328,  443,   44,
445           45,  447,  379,  378,-32766,   46,  525, 1027, 1026, 1025,
446         1028,  370,  340, -549, -549,  444, 1360,  431, 1238, 1361,
447          527,  528,  529,  839,  914,  364, 1040,  445, -549,-32766,
448        -32766,-32766,  531,  532,  845, 1266, 1267, 1268, 1269, 1263,
449         1264,  300, -549, -548, -548, -546, -546, 1270, 1265,  292,
450        -32766, 1247, 1246, 1248,  301,  749,  748,   71, -548,  -78,
451         -546,  323,  324,  328, -153, -153, -153,  393,-32766,    7,
452         -555,  926, -548,  914, -546,  714,  660,   26,-32766, -153,
453          832, -153,  866, -153,  867, -153,  382,  383,   28,  268,
454         1040,  154, 1247, 1246, 1248,  377,  425,  155, -596,  926,
455          839, 1094,   75,  714, 1277, -596,  963,  964,  328, -547,
456          156,  526,  158,  292, 1245,   33,  900,  959, -110, -110,
457         -110,   32,  111,  112,  113,  114,  115,  116,  117,  118,
458          119,  120,  121,  122,  123,  679,  680,  -58,  301,  -57,
459         1238,  124,  924,  749,  748, 1252,  150,  409,  926,  125,
460         1243,  924,  714, -153,  531,  532,  834, 1266, 1267, 1268,
461         1269, 1263, 1264,  716, 1154, 1156,  -87,   -4,  924, 1270,
462         1265, 1039,  721, -547, -547, -546,  130,  749,  748,   73,
463        -32766,  724,  131, -552,  324,  328, 1245,  144, -547, 1247,
464         1246, 1248,  159,-32766,-32766,-32766, 1037,-32766,  160,-32766,
465         -554,-32766, -547,  161,-32766,  380,  381,  924,  162,-32766,
466        -32766,-32766,  163,   49,-32766,-32766,-32766,  -84, 1040,  -78,
467         1245,-32766,  422,   48,  924,  914,  839,-32766,-32766,-32766,
468        -32766,-32766,  -73,-32766,  914,-32766,  -72,  731,-32766, -546,
469         -546,  283,  -71,-32766,-32766,-32766,  -70, -552, -552,-32766,
470        -32766,  914,  385,  386, -546,-32766,  422, -596,  -69, -596,
471           74, -110, -110,  -68,-32766,  -50, -110,  -67, -546,  651,
472          652,  -66, -110,  377,  -65,  438, -552,  304,  305,  -46,
473          299,-32766,  -18,  148,  963,  964,  274,  302,  303,  526,
474          914,  284,  375,  730,  530,  959, -110, -110, -110,  132,
475          980,  733,  301,  923,  714,   75,  128,  914,-32766,  926,
476          147,  328, -302,  714, 1245, -298,  126,   10, 1063,  281,
477          282,-32766,-32766,-32766,  285,-32766,  926,-32766,  286,-32766,
478          714,   -4,-32766,  334,  288,  275,  289,-32766,-32766,-32766,
479          294,  295,-32766,-32766,-32766,  924,  941,  287, 1245,-32766,
480          422,  110,  689,  146,  830,-32766,-32766,-32766,-32766,-32766,
481          565,-32766,  666,-32766, 1362,  926,-32766,  705,  839,  714,
482         1123,-32766,-32766,-32766,-32766,-32766,  667,-32766,-32766,  309,
483         1245,  661,  926,-32766,  422,  924,  714,-32766,-32766,-32766,
484          682,-32766,-32766,-32766,  707,-32766,  306,  960,-32766,  313,
485        -32766,  683,  491,-32766,-32766,-32766,-32766,   20,  467,-32766,
486        -32766,  496, 1245,  578,  571,-32766,  422,  301,  649,-32766,
487        -32766,-32766, -511,-32766,-32766,-32766,    0,-32766,  914,    0,
488        -32766,    0,    0, 1037,    0,-32766,-32766,-32766, 1284,  307,
489         1286,-32766,-32766,    0, -250, -250, -250,-32766,  422,  943,
490          377,    0,    0,   28,  267, 1040,-32766,    0, -501,    0,
491          614,  963,  964,    0,    8,  839,  526,   24,  914, 1277,
492          374,  900,  959, -110, -110, -110, 1274,  838,  283,   40,
493         -584,    0,   41,  738, -249, -249, -249,  739,   28,  268,
494          377,  850,  287,  858,  905, 1004,  981,  988,  978,  989,
495          839,  963,  964,  926, 1277, 1238,  526,  714, -250,  903,
496          976,  900,  959, -110, -110, -110, 1097, 1100, 1101, 1098,
497          532, 1099, 1266, 1267, 1268, 1269, 1263, 1264, 1105, -583,
498         1301, 1319, 1353,  654, 1270, 1265, -582, -556, -555, -554,
499         1238, -553,  694,  926,   73,   34, -495,  714, -249,  324,
500          328,    1,   29,   30,   39,  532,   43, 1266, 1267, 1268,
501         1269, 1263, 1264,   47,   72,   76,   77,   78,   79, 1270,
502         1265,   80,   81,  143,-32766,  153,  157,  245,  695,   73,
503         1245,  330,  359,  360,  324,  328,  361,-32766,-32766,-32766,
504          362,-32766,  363,-32766,  364,-32766,  365,  366,-32766,  696,
505          697,  367,  368,-32766,-32766,-32766,  369,  371,  439,-32766,
506        -32766,  559,  322, -275, -273,-32766,  422, 1247, 1246, 1248,
507         -272,   13,   14,  283,-32766,   15,   16,   18,  408,  487,
508          488,  495,  498,  499,  500,  501,  505,  506,  507,  514,
509          576,  700, 1256, 1194, 1275, 1066, 1065, 1046, 1233, 1042,
510         -277, -102,   12,   17,   27,  298,  407,  607,  611,  640,
511          706, 1198,    0, 1251, 1195, 1332,    0,  373,  715,  718,
512          722,  723,  725,  726,  727,  728,  732,  717,    0,  735,
513          901, 1357, 1359,  861,  860,  869,  953,  996,  868, 1358,
514          952,  950,  951,  954, 1226,  934,  944,  932,  986,  987,
515          638, 1356, 1313, 1302, 1320, 1329,    0, 1211,    0, 1278,
516            0,  328
517    );
518
519    protected array $actionCheck = array(
520            2,    3,    4,    5,    6,    7,    0,    9,   10,   11,
521           12,   13,   70,    9,   10,   11,    9,   10,   11,    1,
522           80,   44,   45,   46,   47,   48,   49,   50,  116,  117,
523          118,  119,  120,  121,  122,   37,   38,   30,    1,   32,
524           33,   34,   35,   36,   37,   38,   39,   40,   41,   42,
525           43,    1,    9,   10,    1,   57,  116,  117,  118,  119,
526          120,  121,  122,  129,  130,  131,    8,   31,    1,   71,
527           72,   73,   74,   75,   76,   77,  134,  135,   80,   82,
528            1,   31,   85,    8,   30,   87,   88,   89,   90,   91,
529           92,   93,   94,   95,   96,   97,   98,   99,  100,  101,
530          102,  103,  104,  105,  106,  107,  108,  109,  110,  111,
531          112,  113,  114,  115,  116,  117,  118,  119,  120,  121,
532          122,  123,  124,  125,  126,    1,  128,  129,  130,  131,
533          132,  133,   82,   80,  136,  137,  138,  139,  140,  141,
534          142,  143,  144,    8,  147,  148,    8,    8,  150,  151,
535          152,    8,  154,   31,    2,    3,    4,    5,    6,    7,
536          162,    9,   10,   11,   12,   13,    8,  117,  118,  160,
537          116,  162,  122,    9,   10,   11,   97,  159,  128,    8,
538          117,  118,    9,   10,   11,  122,    1,  137,   31,   37,
539           38,  128,  138,    8,   30,  159,   32,   33,   34,   35,
540           36,   37,   38,   30,    9,   32,   33,   34,  158,   57,
541           80,  161,    9,   10,   11,  161,  163,  167,   14,   97,
542          167,  106,  107,   71,   72,   73,   74,   75,   76,   77,
543          163,  116,   80,   30,  167,   32,   33,   34,   35,   87,
544           88,   89,   90,   91,   92,   93,   94,   95,   96,   97,
545           98,   99,  100,  101,  102,  103,  104,  105,  106,  107,
546          108,  109,  110,  111,  112,  113,  114,  115,  116,  117,
547          118,  119,  120,  121,  122,  123,  124,  125,  126,    8,
548          128,  129,  130,  131,  132,  133,  156,  163,  136,  137,
549          138,  139,  140,  141,  142,  143,  144,  162,    9,   10,
550           11,  162,  150,  151,  152,  162,  154,    2,    3,    4,
551            5,    6,    7,   14,    9,   10,   11,   12,   13,   30,
552          163,   32,   33,   34,   35,   36,   37,   38,   39,   40,
553           41,   42,   43,   44,   45,   46,   47,   48,   49,   50,
554           51,   52,   53,   54,   55,  160,   57,  162,    9,   10,
555           11,    9,   10,   11,    8,  159,   14,    8,   69,  163,
556            1,  101,   57,    9,   10,   11,  162,    8,  116,   30,
557            1,   32,   33,   34,   35,   36,   71,   72,   73,   74,
558           75,   76,   77,  123,   30,   80,   32,   33,   70,   85,
559          138,    1,   87,   88,   89,   90,   91,   92,   93,   94,
560           95,   96,   97,   98,   99,  100,  101,  102,  103,  104,
561          105,  106,  107,  108,  109,  110,  111,  112,  113,  114,
562          115,  116,  117,  118,  119,  120,  121,  122,  123,  124,
563          125,  126,  116,  128,  129,  130,  131,  132,  133,   37,
564           38,  136,  137,  138,  139,  140,  141,  142,  143,  144,
565          146,    8,  134,  135,  138,  150,  151,  152,    2,    3,
566            4,    5,    6,    7,  106,    8,  108,  149,   12,   13,
567          101,   15,   82,    1,  106,  106,  108,  108,   30,  161,
568           14,  163,  113,   49,   50,  116,  117,  118,  119,  120,
569          121,  122,  123,   51,   52,   53,   54,   55,  122,   57,
570            8,    1,    1,   31,    9,   10,   11,   51,   52,   70,
571            8,   69,   56,  155,   58,   59,   60,   61,   62,   63,
572           64,   65,   66,   67,   68,   30,   70,   71,   72,   73,
573           74,   31,    8,  164,   78,   79,   80,  161,   82,   70,
574            8,   70,   86,   87,   88,   89,  122,   91,   52,   93,
575            1,   95,    8,  163,   98,   99,   84,  167,    8,  103,
576          104,  105,  106,  107,  116,  109,  110,  119,  120,  121,
577          122,  115,  116,  134,  135,    8,   80,   80,  122,   83,
578          124,  125,  126,   82,   84,  161,  138,    8,  149,  116,
579           51,   52,  136,  137,    8,  139,  140,  141,  142,  143,
580          144,  145,  163,  134,  135,  134,  135,  151,  152,  161,
581          137,  155,  156,  157,  158,   37,   38,  161,  149,   16,
582          149,  165,  166,  167,   75,   76,   77,  106,  116,  108,
583          161,  159,  163,   84,  163,  163,   75,   76,  137,   90,
584           80,   92,  106,   94,  108,   96,  106,  107,   70,   71,
585          138,   14,  155,  156,  157,  106,  116,   14,    1,  159,
586           82,  164,  161,  163,   86,    8,  117,  118,  167,   70,
587           14,  122,   14,  161,   80,   14,  127,  128,  129,  130,
588          131,   16,   17,   18,   19,   20,   21,   22,   23,   24,
589           25,   26,   27,   28,   29,   75,   76,   16,  158,   16,
590          122,   16,    1,   37,   38,    1,  101,  102,  159,   16,
591          116,    1,  163,  164,  136,  137,  156,  139,  140,  141,
592          142,  143,  144,  163,   59,   60,   31,    0,    1,  151,
593          152,  137,   31,  134,  135,   70,   16,   37,   38,  161,
594           74,   31,   16,   70,  166,  167,   80,   16,  149,  155,
595          156,  157,   16,   87,   88,   89,  116,   91,   16,   93,
596          161,   95,  163,   16,   98,  106,  107,    1,   16,  103,
597          104,  105,   16,   70,   74,  109,  110,   31,  138,   31,
598           80,  115,  116,   70,    1,   84,   82,   87,   88,   89,
599          124,   91,   31,   93,   84,   95,   31,   31,   98,  134,
600          135,  161,   31,  103,  104,  105,   31,  134,  135,  109,
601          110,   84,  106,  107,  149,  115,  116,  160,   31,  162,
602          154,  117,  118,   31,  124,   31,  122,   31,  163,  111,
603          112,   31,  128,  106,   31,  108,  163,  134,  135,   31,
604          113,  137,   31,   31,  117,  118,   31,  134,  135,  122,
605           84,   31,  149,   31,  127,  128,  129,  130,  131,   31,
606          159,   31,  158,   31,  163,  161,  163,   84,   74,  159,
607           31,  167,   35,  163,   80,   35,  163,  150,    1,   35,
608           35,   87,   88,   89,   35,   91,  159,   93,   35,   95,
609          163,  164,   98,   35,   37,   57,   37,  103,  104,  105,
610           37,   37,   74,  109,  110,    1,   38,   30,   80,  115,
611          116,   69,   77,   70,   80,   87,   88,   89,  124,   91,
612           89,   93,   96,   95,   83,  159,   98,   80,   82,  163,
613           82,  103,  104,  105,   74,   85,  100,  109,  110,  114,
614           80,   90,  159,  115,  116,    1,  163,   87,   88,   89,
615           94,   91,  124,   93,   92,   95,  132,  128,   98,  132,
616          137,  100,  102,  103,  104,  105,   74,   97,   97,  109,
617          110,   97,   80,   81,  153,  115,  116,  158,  113,   87,
618           88,   89,  149,   91,  124,   93,   -1,   95,   84,   -1,
619           98,   -1,   -1,  116,   -1,  103,  104,  105,  146,  133,
620          146,  109,  110,   -1,  100,  101,  102,  115,  116,  154,
621          106,   -1,   -1,   70,   71,  138,  124,   -1,  149,   -1,
622          153,  117,  118,   -1,  149,   82,  122,  149,   84,   86,
623          149,  127,  128,  129,  130,  131,  160,  155,  161,  159,
624          161,   -1,  159,  159,  100,  101,  102,  159,   70,   71,
625          106,  160,   30,  159,  159,  159,  159,  159,  159,  159,
626           82,  117,  118,  159,   86,  122,  122,  163,  164,  159,
627          159,  127,  128,  129,  130,  131,  159,  159,  159,  159,
628          137,  159,  139,  140,  141,  142,  143,  144,  159,  161,
629          160,  160,  160,  160,  151,  152,  161,  161,  161,  161,
630          122,  161,   80,  159,  161,  163,  161,  163,  164,  166,
631          167,  161,  161,  161,  161,  137,  161,  139,  140,  141,
632          142,  143,  144,  161,  161,  161,  161,  161,  161,  151,
633          152,  161,  161,  161,   74,  161,  161,  161,  116,  161,
634           80,  161,  161,  161,  166,  167,  161,   87,   88,   89,
635          161,   91,  161,   93,  161,   95,  161,  161,   98,  137,
636          138,  161,  161,  103,  104,  105,  161,  161,  161,  109,
637          110,  161,  163,  162,  162,  115,  116,  155,  156,  157,
638          162,  162,  162,  161,  124,  162,  162,  162,  162,  162,
639          162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
640          162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
641          162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
642          162,  162,   -1,  162,  162,  162,   -1,  163,  163,  163,
643          163,  163,  163,  163,  163,  163,  163,  163,   -1,  164,
644          164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
645          164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
646          164,  164,  164,  164,  164,  164,   -1,  165,   -1,  166,
647           -1,  167
648    );
649
650    protected array $actionBase = array(
651            0,   -2,  152,  549,  727,  904,  944, 1022,  390,  497,
652          560,  922,  500,  710,  710,  766,  710,  472,  701,  847,
653          -60,  305,  305,  847,  305,  783,  783,  783,  666,  666,
654          666,  666,  700,  700,  860,  860,  892,  828,  794, 1060,
655         1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060,
656         1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060,
657         1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060,
658         1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060,
659         1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060,
660         1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060,
661         1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060,
662         1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060,
663         1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060,
664         1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060,
665         1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060,
666         1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060,
667         1060, 1060, 1060, 1060,   18,   36,   79,  661, 1053, 1059,
668         1055, 1061, 1051, 1050, 1054, 1056, 1062, 1097, 1098,  839,
669         1099, 1100, 1096, 1101, 1057,  933, 1052, 1058,  289,  289,
670          289,  289,  289,  289,  289,  289,  289,  289,  289,  289,
671          289,  289,  289,  289,  289,  289,  289,  289,  289,  289,
672          289,  289,  289,  289,  289,  195,  342,   43,    4,    4,
673            4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
674            4,    4,    4,    4,    4,    4,    4,    4,  495,  495,
675          495,  578,  578,  354,  173,  978,  943,  978,  978,  978,
676          978,  978,  978,  978,  978,  203,  665,  339,  164,  164,
677            7,    7,    7,    7,    7,   50,  369,  704,  704,  -23,
678          -23,  -23,  -23,  448,  877,  501,  260,  368,  434,   54,
679          540,  640,  640,  316,  316,  512,  512,  316,  316,  316,
680          442,  442,  252,  252,  252,  252,  318,  469,  599,  358,
681          304,  823,   53,   53,   53,   53,  823,  823,  823,  823,
682          854, 1103,  823,  823,  823,  439,  471,  471,  703,  539,
683          539,  471,  536,   -3,   -3,  536,   63,   -3,   67,  496,
684          473,  829,  115,    9,  473,  673,  713,  657,  185,  882,
685          659,  882, 1049,  376,  850,  850,  424,  808,  761,  929,
686         1074, 1063,  836, 1094,  861, 1095,  -66,  -58,  748, 1048,
687         1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048,
688         1104,  402, 1049,  130, 1104, 1104, 1104,  402,  402,  402,
689          402,  402,  402,  402,  402,  402,  402,  718,  130,  561,
690          620,  130,  858,  402,   18,  869,   18,   18,   18,   18,
691           18,   18,   18,   18,   18,   18,  811,  157,   18,   36,
692          124,  124,  196,   37,  124,  124,  124,  124,   18,   18,
693           18,   18,  659,  838,  821,  706,  867,  143,  838,  838,
694          838,  122,  135,  204,  139,  837,  840,  521,  834,  834,
695          848,  950,  834,  846,  834,  848,  962,  834,  834,  950,
696          950,  819,  950,  158,  544,  457,  524,  550,  950,  346,
697          834,  834,  834,  834,  827,  950,  567,  834,  271,  171,
698          834,  834,  827,  824,  820,   58,  866,  950,  950,  950,
699          827,  502,  866,  866,  866,  884,  888,  865,  815,  443,
700          349,  586,  138,  868,  815,  815,  834,  532,  865,  815,
701          865,  815,  855,  815,  815,  815,  865,  815,  846,  492,
702          815,  736,  579,   75,  815,    6,  963,  964,  695,  965,
703          953,  966, 1007,  967,  970, 1065,  945,  976,  955,  971,
704         1010,  952,  951,  832,  685,  693,  875,  833,  940,  842,
705          842,  842,  936,  937,  842,  842,  842,  842,  842,  842,
706          842,  842,  685,  876,  881,  831,  982,  720,  726, 1038,
707          852, 1076, 1102,  981, 1040,  972,  880,  731, 1025,  985,
708         1075, 1009,  989,  991, 1026, 1041,  894, 1042, 1077,  843,
709         1078, 1079,  891,  995, 1066,  842,  963,  970,  746,  955,
710          971,  952,  951,  803,  800,  792,  796,  787,  775,  765,
711          771,  812, 1043,  935,  879,  930,  993,  938,  685,  931,
712         1019,  942, 1027, 1028, 1064,  871,  841,  932, 1080,  996,
713         1000, 1001, 1067, 1044, 1068,  883, 1020, 1011, 1029,  874,
714         1081, 1030, 1031, 1032, 1033, 1069, 1082, 1070,  928, 1071,
715          895,  851, 1012,  826, 1083,  299,  849,  853,  864, 1006,
716          466,  980, 1072, 1084, 1085, 1034, 1035, 1036, 1086, 1087,
717          974,  896, 1023,  856, 1024, 1018,  897,  898,  637,  863,
718         1045,  844,  845,  859,  643,  656, 1088, 1089, 1090,  975,
719          822,  835,  899,  900, 1046,  857, 1047, 1091,  658,  910,
720          742, 1092, 1039,  747,  752,  603,  683,  681,  756,  862,
721         1073,  878,  825,  870, 1005,  752,  830,  911, 1093,  917,
722          918,  919, 1037,  920,    0,    0,    0,    0,    0,    0,
723            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
724            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
725            0,    0,    0,    0,  456,  456,  456,  456,  456,  456,
726          305,  305,  305,  305,  305,  456,  456,  456,  456,  456,
727          456,  456,  305,  305,    0,    0,  305,    0,  456,  456,
728          456,  456,  456,  456,  456,  456,  456,  456,  456,  456,
729          456,  456,  456,  456,  456,  456,  456,  456,  456,  456,
730          456,  456,  456,  456,  456,  456,  456,  456,  456,  456,
731          456,  456,  456,  456,  456,  456,  456,  456,  456,  456,
732          456,  456,  456,  456,  456,  456,  456,  456,  456,  456,
733          456,  456,  456,  456,  456,  456,  456,  456,  456,  456,
734          456,  456,  456,  456,  456,  456,  456,  456,  456,  456,
735          456,  456,  456,  456,  456,  456,  456,  456,  456,  456,
736          456,  456,  456,  456,  456,  456,  456,  456,  456,  456,
737          456,  456,  456,  456,  456,  456,  456,  456,  456,  456,
738          456,  456,  456,  456,  456,  456,  456,  456,  456,  456,
739          456,  456,  456,  456,  456,  456,  456,  456,  456,  456,
740          456,  456,  456,  456,  456,  456,  456,  456,  456,  456,
741          456,  456,  456,  456,  456,  456,  456,  289,  289,  289,
742          289,  289,  289,  289,  289,  289,  289,  289,  289,  289,
743          289,  289,  289,  289,  289,  289,  289,  289,  289,  289,
744          289,    0,    0,    0,    0,    0,    0,    0,    0,    0,
745            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
746            0,    0,    0,    0,    0,    0,    0,    0,  289,  289,
747          289,  289,  289,  289,  289,  289,  289,  289,  289,  289,
748          289,  289,  289,  289,  289,  289,  289,  289,  289,  289,
749          289,  289,  289,  289,  594,  594,  289,  289,  594,  594,
750          594,  594,  594,  594,  594,  594,  594,  594,  289,    0,
751          289,  289,  289,  289,  289,  289,  289,  289,  594,  819,
752          594,  594,  442,  442,  442,  442,  594,  594,  594,  -88,
753          -88,  442,  594,   63,  594,  594,  594,  594,  594,  594,
754          594,  594,  594,    0,    0,  594,  594,  594,  594,    0,
755            0,    0,  130,   -3,  594,  846,  846,  846,  846,  594,
756          594,  594,  594,   -3,   -3,  594,  594,  594,    0,    0,
757            0,    0,  442,  442,    0,  130,    0,    0,  130,    0,
758            0,  846,  846,  594,   63,  819,  359,  594,    0,    0,
759            0,    0,  130,  846,  130,  402,  834,   -3,   -3,  834,
760          402,  402,  124,   18,  359,  605,  605,  605,  605,    0,
761            0,  659,  819,  819,  819,  819,  819,  819,  819,  819,
762          819,  819,  819,  846,    0,  819,    0,  846,  846,  846,
763            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
764            0,    0,    0,    0,    0,  846,    0,    0,  950,    0,
765            0,    0,    0,    0,    0,    0,    0,    0,    0,  962,
766            0,    0,    0,    0,    0,    0,  846,    0,    0,    0,
767            0,    0,    0,    0,    0,    0,  842,  871,    0,  871,
768            0,  842,  842,  842,    0,    0,    0,    0,  863,  857
769    );
770
771    protected array $actionDefault = array(
772            3,32767,  102,32767,32767,32767,32767,32767,32767,32767,
773        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
774        32767,32767,32767,  100,32767,32767,32767,32767,  602,  602,
775          602,  602,32767,32767,  254,  102,32767,32767,  470,  387,
776          387,  387,32767,32767,  544,  544,  544,  544,  544,  544,
777        32767,32767,32767,32767,32767,32767,  470,32767,32767,32767,
778        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
779        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
780        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
781        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
782        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
783        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
784        32767,32767,32767,32767,32767,32767,32767,32767,32767,  100,
785        32767,32767,32767,   36,    7,    8,   10,   11,   49,   17,
786          324,32767,32767,32767,32767,  102,32767,32767,32767,32767,
787        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
788        32767,32767,32767,32767,32767,32767,32767,  595,32767,32767,
789        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
790        32767,32767,32767,32767,32767,32767,32767,32767,  474,  453,
791          454,  456,  457,  386,  545,  601,  327,  598,  385,  145,
792          339,  329,  242,  330,  258,  475,  259,  476,  479,  480,
793          215,  287,  382,  149,  150,  417,  471,  419,  469,  473,
794          418,  392,  398,  399,  400,  401,  402,  403,  404,  405,
795          406,  407,  408,  409,  410,  390,  391,  472,  450,  449,
796          448,32767,32767,  415,  416,32767,32767,32767,32767,32767,
797        32767,32767,32767,  102,32767,  420,  389,  423,  421,  422,
798          439,  440,  437,  438,  441,32767,32767,32767,32767,  442,
799          443,  444,  445,  316,32767,32767,  366,  364,  424,  316,
800          111,32767,32767,32767,32767,32767,32767,32767,32767,32767,
801          430,  431,32767,32767,32767,32767,  487,  538,  447,32767,
802        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
803        32767,32767,  102,32767,  100,  540,  412,  414,  507,  425,
804          426,  393,32767,  514,32767,  102,32767,  516,32767,32767,
805        32767,32767,32767,32767,32767,  539,32767,  546,  546,32767,
806          500,  100,  195,32767,32767,  515,32767,  195,  195,32767,
807        32767,32767,32767,32767,32767,32767,32767,  609,  500,  110,
808          110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
809        32767,  195,  110,32767,32767,32767,  100,  195,  195,  195,
810          195,  195,  195,  195,  195,  195,  195,  190,32767,  268,
811          270,  102,  563,  195,32767,  519,32767,32767,32767,32767,
812        32767,32767,32767,32767,32767,32767,  512,32767,32767,32767,
813        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
814        32767,32767,  500,  435,  138,32767,  138,  546,  427,  428,
815          429,  502,  546,  546,  546,  312,  289,32767,32767,32767,
816        32767,  517,  100,  100,  100,  100,  512,32767,32767,32767,
817        32767,  111,  486,   99,   99,   99,   99,   99,  103,  101,
818        32767,32767,32767,32767,  223,32767,   99,32767,  101,  101,
819        32767,32767,  223,  225,  212,  101,  227,32767,  567,  568,
820          223,  101,  227,  227,  227,  247,  247,  489,  318,  101,
821           99,  101,  101,  197,  318,  318,32767,  101,  489,  318,
822          489,  318,  199,  318,  318,  318,  489,  318,32767,  101,
823          318,  214,   99,   99,  318,32767,32767,32767,  502,32767,
824        32767,32767,32767,32767,32767,32767,  222,32767,32767,32767,
825        32767,32767,32767,32767,32767,  533,32767,  551,  565,  433,
826          434,  436,  550,  548,  458,  459,  460,  461,  462,  463,
827          464,  466,  597,32767,  506,32767,32767,32767,  338,32767,
828          607,32767,32767,32767,32767,32767,32767,32767,32767,32767,
829        32767,32767,32767,32767,32767,32767,32767,32767,  608,32767,
830          546,32767,32767,32767,32767,  432,    9,   74,  495,   42,
831           43,   51,   57,  523,  524,  525,  526,  520,  521,  527,
832          522,32767,32767,  528,  573,32767,32767,  547,  600,32767,
833        32767,32767,32767,32767,32767,  138,32767,32767,32767,32767,
834        32767,32767,32767,32767,32767,32767,32767,  533,32767,  136,
835        32767,32767,32767,32767,32767,32767,32767,32767,  529,32767,
836        32767,32767,  546,32767,32767,32767,32767,  314,  311,32767,
837        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
838        32767,32767,32767,32767,32767,  546,32767,32767,32767,32767,
839        32767,  291,32767,  308,32767,32767,32767,32767,32767,32767,
840        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
841          286,32767,32767,  381,  502,  294,  296,  297,32767,32767,
842        32767,32767,  360,32767,32767,32767,32767,32767,32767,32767,
843        32767,32767,32767,32767,  152,  152,    3,    3,  341,  152,
844          152,  152,  341,  341,  152,  341,  341,  341,  152,  152,
845          152,  152,  152,  152,  280,  185,  262,  265,  247,  247,
846          152,  352,  152
847    );
848
849    protected array $goto = array(
850          196,  196, 1038, 1069,  701,  353,  433,  665,  856,  710,
851          427,  321,  316,  317,  337,  580,  432,  338,  434,  642,
852          658,  659,  421,  676,  677,  678,  857,  167,  167,  167,
853          167,  221,  197,  193,  193,  177,  179,  216,  193,  193,
854          193,  193,  193,  194,  194,  194,  194,  194,  194,  188,
855          189,  190,  191,  192,  218,  216,  219,  539,  540,  423,
856          541,  544,  545,  546,  547,  548,  549,  550,  551, 1140,
857          168,  169,  170,  195,  171,  172,  173,  166,  174,  175,
858          176,  178,  215,  217,  220,  238,  243,  244,  255,  257,
859          258,  259,  260,  261,  262,  263,  264,  269,  270,  271,
860          272,  278,  290,  291,  319,  320,  428,  429,  430,  585,
861          222,  223,  224,  225,  226,  227,  228,  229,  230,  231,
862          232,  233,  234,  235,  236,  180,  237,  181,  198,  199,
863          200,  239,  188,  189,  190,  191,  192,  218, 1140,  201,
864          182,  183,  184,  202,  198,  185,  240,  203,  201,  165,
865          204,  205,  186,  206,  207,  208,  187,  209,  210,  211,
866          212,  213,  214,  859,  613,  628,  631,  632,  633,  634,
867          655,  656,  657,  712,  460,  979,  280,  280,  280,  280,
868          479, 1321, 1322,  627,  627,  831,  604, 1276, 1276, 1276,
869         1276, 1276, 1276, 1276, 1276, 1276, 1276,  398,  401,  564,
870          605,  609,  890,  552,  552,  552,  552,  864,  608,  913,
871          908,  909,  922,  865,  910,  862,  911,  912,  863,  465,
872          441,  916, 1041, 1041,  685,  956, 1189,  357, 1033, 1049,
873         1050, 1091, 1086, 1087, 1088, 1295, 1295,  357,  357, 1295,
874         1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295,  698,
875          357,  357,  833,  917,  357,  918, 1363,  354,  355,  577,
876         1244,  698, 1244, 1244,  426,  698,  615,  558, 1038, 1038,
877         1244,  357,  357,    5, 1038,    6, 1038, 1038, 1038, 1038,
878         1038, 1038, 1038, 1038, 1038,  625,  662, 1038, 1038, 1038,
879         1038, 1328, 1328, 1328, 1328,  351, 1244,  356,  356,  356,
880          356, 1244, 1244, 1244, 1244, 1111, 1112, 1244, 1244, 1244,
881          344,  563,  556,  897,  855,  897,  897, 1336,  554, 1307,
882          554,  554,  482,  603, 1104,  930,  713, 1000,  554,  931,
883          484,  396,  946,  345,  344,  946,  511,  704,  872, 1102,
884          690,  343,  556,  563,  572,  573,  346,  583,  606,  620,
885          621,  575,  852,  884,  458,  664,  871,   22, 1137,  973,
886          973,  973,  973, 1044, 1043,  458,  967,  974, 1292, 1292,
887          558, 1062, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292,
888         1292, 1292,  543,  543, 1047, 1048,  543,  543,  543,  543,
889          543,  543,  543,  543,  543,  543,  570,  469,  469,  440,
890          737,  641,  643,  670,  852,  663,  469,  327,  311,  687,
891          691, 1014,  699,  708, 1010,  686, 1017, 1017, 1220,  948,
892         1323, 1324, 1221, 1224,  949, 1225,  849,  557,  567,  581,
893          618,  557,  339,  567,  877, 1237,  399,  464,  451,  451,
894          451,  451,  405, 1318,  837, 1318, 1318,  251,  251,  472,
895          584,  473,  474, 1318,  962, 1022,  882,  542,  542, 1354,
896         1355,  542,  874,  542,  542,  542,  542,  542,  542,  542,
897          542,  971,  412,  709,  249,  249,  249,  249,  246,  252,
898         1330, 1330, 1330, 1330,  837,  880,  837,  410,  411,  635,
899          637,  639,  674,  619,  675, 1075,  414,  415,  416, 1235,
900          688,  740,  886,  417, 1079,    0, 1314,  349,  435,  984,
901          885,  873, 1074, 1078,  435, 1122,  503,    0,  504, 1239,
902         1045, 1045,  982,  852,  510,    0,    0,  669, 1056, 1052,
903         1053,    0,  451,  451,  451,  451,  451,  451,  451,  451,
904          451,  451,  451,  935, 1127,  451,  972,    0, 1077,    0,
905          623,    0, 1316, 1316, 1077,    0, 1019,    0,    0,  326,
906          276,  326,  326,    0,  876, 1261,  668,  998, 1120,  889,
907         1346, 1346,  870, 1240, 1241, 1003,    0,    0,  975,    0,
908          736,    0,  847,    0, 1234,    0,    0, 1346,  555, 1012,
909         1007,    0,    0,    0,    0,    0,    0,    0,    0,    0,
910            0, 1242, 1304, 1305, 1349, 1349,    0,    0,    0,    0,
911            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
912            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
913            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
914            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
915            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
916            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
917            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
918            0,    0,    0,    0,    0,    0,    0,  254,  254
919    );
920
921    protected array $gotoCheck = array(
922           42,   42,   73,  127,   73,   97,   66,   66,   26,    9,
923           66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
924           86,   86,   43,   86,   86,   86,   27,   42,   42,   42,
925           42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
926           42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
927           42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
928           42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
929           42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
930           42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
931           42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
932           42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
933           42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
934           42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
935           42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
936           42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
937           42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
938           42,   42,   42,   15,   81,   81,   81,   81,   81,   81,
939           81,   81,   81,   81,   83,   49,   23,   23,   23,   23,
940          178,  178,  178,  108,  108,    6,  130,  108,  108,  108,
941          108,  108,  108,  108,  108,  108,  108,   59,   59,   59,
942           59,   59,   45,  107,  107,  107,  107,   15,  107,   15,
943           15,   15,   15,   15,   15,   15,   15,   15,   15,  151,
944           83,   15,   89,   89,   89,   89,  151,   14,   89,   89,
945           89,   15,   15,   15,   15,  172,  172,   14,   14,  172,
946          172,  172,  172,  172,  172,  172,  172,  172,  172,    7,
947           14,   14,    7,   65,   14,   65,   14,   97,   97,  174,
948           73,    7,   73,   73,   13,    7,   13,   14,   73,   73,
949           73,   14,   14,   46,   73,   46,   73,   73,   73,   73,
950           73,   73,   73,   73,   73,   56,   56,   73,   73,   73,
951           73,    9,    9,    9,    9,  181,   73,   24,   24,   24,
952           24,   73,   73,   73,   73,  144,  144,   73,   73,   73,
953          170,   76,   76,   25,   25,   25,   25,  183,   19,   14,
954           19,   19,   84,    8,    8,   73,    8,  103,   19,   73,
955           84,   62,    9,  170,  170,    9,    8,    8,   35,    8,
956           14,   76,   76,   76,   76,   76,   76,   76,   76,   76,
957           76,  104,   22,   35,   19,   64,   35,   76,  150,   19,
958           19,   19,   19,  118,  118,   19,   19,   19,  173,  173,
959           14,  114,  173,  173,  173,  173,  173,  173,  173,  173,
960          173,  173,  175,  175,  119,  119,  175,  175,  175,  175,
961          175,  175,  175,  175,  175,  175,   48,  149,  149,  113,
962           48,   48,   48,  120,   22,   48,  149,  171,  171,   48,
963           48,   48,   48,   48,   48,  116,  107,  107,   79,   79,
964          180,  180,   79,   79,   79,   79,   18,    9,    9,    2,
965            2,    9,   29,    9,   39,   14,    9,    9,   23,   23,
966           23,   23,   28,  130,   12,  130,  130,    5,    5,    9,
967            9,    9,    9,  130,   92,  110,    9,  158,  158,    9,
968            9,  158,   37,  158,  158,  158,  158,  158,  158,  158,
969          158,   93,   93,   93,    5,    5,    5,    5,    5,    5,
970          130,  130,  130,  130,   12,    9,   12,   82,   82,   85,
971           85,   85,   82,   80,   82,  129,   82,   82,   82,  162,
972           82,   99,   41,   82,  132,   -1,  130,   82,  117,   96,
973           16,   16,   16,   16,  117,  147,  155,   -1,  155,   20,
974          117,  117,   16,   22,  155,   -1,   -1,  117,  117,  117,
975          117,   -1,   23,   23,   23,   23,   23,   23,   23,   23,
976           23,   23,   23,   17,   17,   23,   16,   -1,  130,   -1,
977           17,   -1,  130,  130,  130,   -1,   17,   -1,   -1,   24,
978           24,   24,   24,   -1,   17,   20,   17,   17,   16,   16,
979          184,  184,   17,   20,   20,   50,   -1,   -1,   50,   -1,
980           50,   -1,   20,   -1,   17,   -1,   -1,  184,   50,   50,
981           50,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
982           -1,   20,   20,   20,  184,  184,   -1,   -1,   -1,   -1,
983           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
984           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
985           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
986           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
987           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
988           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
989           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
990           -1,   -1,   -1,   -1,   -1,   -1,   -1,    5,    5
991    );
992
993    protected array $gotoBase = array(
994            0,    0, -287,    0,    0,  446,  165,  242,  315,  -11,
995            0,    0,  145,  -75,  -73, -187,   56,   75,  114,   53,
996          124,    0,   72,  173,  294,  310,    4,   22,  103,  133,
997            0,    0,    0,    0,    0,  -35,    0,  121,    0,  109,
998            0,   60,   -1,    3,    0,  179, -467,    0, -319,  157,
999          563,    0,    0,    0,    0,    0,  245,    0,    0,  152,
1000            0,    0,  289,    0,  113,  239, -235,    0,    0,    0,
1001            0,    0,    0,   -5,    0,    0,  -36,    0,    0,    8,
1002          147, -196,   -7, -106, -150,    7, -702,    0,    0,  -59,
1003            0,    0,  123,  164,    0,    0,   65, -481,    0,   92,
1004            0,    0,    0,  292,  308,    0,    0,  175,  -58,    0,
1005           83,    0,    0,  120,   97,    0,  132,  235,   82,   99,
1006          111,    0,    0,    0,    0,    0,    0,    1,    0,  119,
1007          178,    0,   61,    0,    0,    0,    0,    0,    0,    0,
1008            0,    0,    0,    0,   29,    0,    0,   70,    0,  363,
1009          112,  -49,    0,    0,    0,   18,    0,    0,  216,    0,
1010            0,    0,  128,    0,    0,    0,    0,    0,    0,    0,
1011           10,   84,   -6,  127,  230,  141,    0,    0, -123,    0,
1012           46,  265,    0,  286,  260,    0,    0
1013    );
1014
1015    protected array $gotoDefault = array(
1016        -32768,  515,  744,    4,  745,  939,  820,  829,  601,  533,
1017          711,  350,  629,  424, 1312,  915, 1126,  582,  848, 1253,
1018         1227,  459,  851,  332,  734,  927,  898,  899,  402,  388,
1019          394,  400,  653,  630,  497,  883,  455,  875,  489,  878,
1020          454,  887,  164,  420,  513,  891,    3,  894,  561,  925,
1021          977,  389,  902,  390,  681,  904,  566,  906,  907,  397,
1022          403,  404, 1131,  574,  626,  919,  256,  568,  920,  387,
1023          921,  929,  392,  395,  692,  468,  508,  502,  413, 1106,
1024          569,  612,  650,  448,  476,  624,  636,  622,  483,  436,
1025          418,  331,  961,  969,  490,  466,  983,  352,  991,  742,
1026         1139,  644,  492,  999,  645, 1006, 1009,  534,  535,  481,
1027         1021,  273, 1024,  493,   19,  671, 1035, 1036,  672,  646,
1028         1058,  647,  673,  648, 1060,  475,  602, 1068,  456, 1076,
1029         1300,  457, 1080,  266, 1083,  279,  419,  437, 1089, 1090,
1030            9, 1096,  702,  703,   11,  277,  512, 1121,  693,  453,
1031         1138,  452, 1208, 1210,  562,  494, 1228,  480,  296, 1231,
1032          684,  509, 1236,  449, 1303,  450,  536,  477,  318,  537,
1033         1347,  310,  335,  315,  553,  297,  336,  538,  478, 1309,
1034         1317,  333,   31, 1337, 1348,  579,  617
1035    );
1036
1037    protected array $ruleToNonTerminal = array(
1038            0,    1,    3,    3,    2,    5,    5,    6,    6,    6,
1039            6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
1040            6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
1041            6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
1042            6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
1043            6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
1044            6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
1045            6,    6,    6,    6,    6,    6,    6,    7,    7,    7,
1046            7,    7,    7,    7,    7,    8,    8,    9,   10,   11,
1047           11,   11,   12,   12,   13,   13,   14,   15,   15,   16,
1048           16,   17,   17,   18,   18,   21,   21,   22,   23,   23,
1049           24,   24,    4,    4,    4,    4,    4,    4,    4,    4,
1050            4,    4,    4,   29,   29,   30,   30,   32,   34,   34,
1051           28,   36,   36,   33,   38,   38,   35,   35,   37,   37,
1052           39,   39,   31,   40,   40,   41,   43,   44,   44,   45,
1053           45,   46,   46,   48,   47,   47,   47,   47,   49,   49,
1054           49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
1055           49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
1056           49,   49,   25,   25,   50,   69,   69,   72,   72,   71,
1057           70,   70,   63,   75,   75,   76,   76,   77,   77,   78,
1058           78,   79,   79,   80,   80,   26,   26,   27,   27,   27,
1059           27,   27,   88,   88,   90,   90,   83,   83,   91,   91,
1060           92,   92,   92,   84,   84,   87,   87,   85,   85,   93,
1061           94,   94,   57,   57,   65,   65,   68,   68,   68,   67,
1062           95,   95,   96,   58,   58,   58,   58,   97,   97,   98,
1063           98,   99,   99,  100,  101,  101,  102,  102,  103,  103,
1064           55,   55,   51,   51,  105,   53,   53,  106,   52,   52,
1065           54,   54,   64,   64,   64,   64,   81,   81,  109,  109,
1066          111,  111,  112,  112,  112,  112,  110,  110,  110,  114,
1067          114,  114,  114,   89,   89,  117,  117,  117,  118,  118,
1068          115,  115,  119,  119,  121,  121,  122,  122,  116,  123,
1069          123,  120,  124,  124,  124,  124,  113,  113,   82,   82,
1070           82,   20,   20,   20,  126,  125,  125,  127,  127,  127,
1071          127,   60,  128,  128,  129,   61,  131,  131,  132,  132,
1072          133,  133,   86,  134,  134,  134,  134,  134,  134,  134,
1073          139,  139,  140,  140,  141,  141,  141,  141,  141,  142,
1074          143,  143,  138,  138,  135,  135,  137,  137,  145,  145,
1075          144,  144,  144,  144,  144,  144,  144,  136,  146,  146,
1076          148,  147,  147,   62,  104,  149,  149,   56,   56,   42,
1077           42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
1078           42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
1079           42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
1080           42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
1081           42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
1082           42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
1083           42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
1084           42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
1085           42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
1086           42,   42,   42,  156,  158,  158,  159,  150,  150,  155,
1087          155,  160,  161,  161,  162,  163,  164,  164,  164,  164,
1088           19,   19,   73,   73,   73,   73,  151,  151,  151,  151,
1089          166,  166,  152,  152,  154,  154,  154,  157,  157,  172,
1090          172,  172,  172,  172,  172,  172,  172,  172,  173,  173,
1091          173,  108,  175,  175,  175,  175,  153,  153,  153,  153,
1092          153,  153,  153,  153,   59,   59,  169,  169,  169,  169,
1093          169,  176,  176,  165,  165,  165,  165,  177,  177,  177,
1094          177,  177,  177,   74,   74,   66,   66,   66,   66,  130,
1095          130,  130,  130,  180,  179,  168,  168,  168,  168,  168,
1096          168,  168,  167,  167,  167,  178,  178,  178,  178,  107,
1097          174,  182,  182,  181,  181,  183,  183,  183,  183,  183,
1098          183,  183,  183,  171,  171,  171,  171,  170,  185,  184,
1099          184,  184,  184,  184,  184,  184,  184,  186,  186,  186,
1100          186
1101    );
1102
1103    protected array $ruleToLength = array(
1104            1,    1,    2,    0,    1,    1,    1,    1,    1,    1,
1105            1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1106            1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1107            1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1108            1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1109            1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1110            1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1111            1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1112            1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1113            1,    1,    1,    1,    1,    1,    1,    1,    1,    0,
1114            1,    0,    1,    1,    2,    1,    3,    4,    1,    2,
1115            0,    1,    1,    1,    1,    4,    3,    5,    4,    3,
1116            4,    2,    3,    1,    1,    7,    6,    2,    3,    1,
1117            2,    3,    1,    2,    3,    1,    1,    3,    1,    3,
1118            1,    2,    2,    3,    1,    3,    2,    3,    1,    3,
1119            3,    2,    0,    1,    1,    1,    1,    1,    3,    7,
1120           10,    5,    7,    9,    5,    3,    3,    3,    3,    3,
1121            3,    1,    2,    5,    7,    9,    6,    5,    6,    3,
1122            2,    1,    1,    1,    1,    0,    2,    1,    3,    8,
1123            0,    4,    2,    1,    3,    0,    1,    0,    1,    0,
1124            1,    3,    1,    1,    1,    8,    9,    7,    8,    7,
1125            6,    8,    0,    2,    0,    2,    1,    2,    1,    2,
1126            1,    1,    1,    0,    2,    0,    2,    0,    2,    2,
1127            1,    3,    1,    4,    1,    4,    1,    1,    4,    2,
1128            1,    3,    3,    3,    4,    4,    5,    0,    2,    4,
1129            3,    1,    1,    7,    0,    2,    1,    3,    3,    4,
1130            1,    4,    0,    2,    5,    0,    2,    6,    0,    2,
1131            0,    3,    1,    2,    1,    1,    2,    0,    1,    3,
1132            0,    2,    1,    1,    1,    1,    6,    8,    6,    1,
1133            2,    1,    1,    1,    1,    1,    1,    1,    1,    3,
1134            3,    3,    1,    3,    3,    3,    3,    3,    1,    3,
1135            3,    1,    1,    2,    1,    1,    0,    1,    0,    2,
1136            2,    2,    4,    3,    1,    1,    3,    1,    2,    2,
1137            3,    2,    3,    1,    1,    2,    3,    1,    1,    3,
1138            2,    0,    1,    5,    5,    6,   10,    3,    5,    1,
1139            1,    3,    0,    2,    4,    5,    4,    4,    4,    3,
1140            1,    1,    1,    1,    1,    1,    0,    1,    1,    2,
1141            1,    1,    1,    1,    1,    1,    1,    2,    1,    3,
1142            1,    1,    3,    2,    2,    3,    1,    0,    1,    1,
1143            3,    3,    3,    4,    4,    1,    1,    2,    3,    3,
1144            3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
1145            3,    2,    2,    2,    2,    3,    3,    3,    3,    3,
1146            3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
1147            3,    3,    3,    2,    2,    2,    2,    3,    3,    3,
1148            3,    3,    3,    3,    3,    3,    3,    3,    5,    4,
1149            3,    4,    4,    2,    2,    4,    2,    2,    2,    2,
1150            2,    2,    2,    2,    2,    2,    2,    1,    3,    2,
1151            1,    2,    4,    2,    2,    8,    9,    8,    9,    9,
1152           10,    9,   10,    8,    3,    2,    2,    1,    1,    0,
1153            4,    2,    1,    3,    2,    1,    2,    2,    2,    4,
1154            1,    1,    1,    1,    1,    1,    1,    1,    3,    1,
1155            1,    1,    0,    3,    0,    1,    1,    0,    1,    1,
1156            1,    1,    1,    1,    1,    1,    1,    1,    3,    5,
1157            3,    3,    4,    1,    1,    3,    1,    1,    1,    1,
1158            1,    3,    2,    3,    0,    1,    1,    3,    1,    1,
1159            1,    1,    1,    1,    3,    1,    1,    1,    4,    4,
1160            1,    4,    4,    0,    1,    1,    1,    3,    3,    1,
1161            4,    2,    2,    1,    3,    1,    4,    4,    3,    3,
1162            3,    3,    1,    3,    1,    1,    3,    1,    1,    4,
1163            1,    1,    1,    3,    1,    1,    2,    1,    3,    4,
1164            3,    2,    0,    2,    2,    1,    2,    1,    1,    1,
1165            4,    3,    3,    3,    3,    6,    3,    1,    1,    2,
1166            1
1167    );
1168
1169    protected function initReduceCallbacks(): void {
1170        $this->reduceCallbacks = [
1171            0 => null,
1172            1 => static function ($self, $stackPos) {
1173                 $self->semValue = $self->handleNamespaces($self->semStack[$stackPos-(1-1)]);
1174            },
1175            2 => static function ($self, $stackPos) {
1176                 if ($self->semStack[$stackPos-(2-2)] !== null) { $self->semStack[$stackPos-(2-1)][] = $self->semStack[$stackPos-(2-2)]; } $self->semValue = $self->semStack[$stackPos-(2-1)];;
1177            },
1178            3 => static function ($self, $stackPos) {
1179                 $self->semValue = array();
1180            },
1181            4 => static function ($self, $stackPos) {
1182                 $nop = $self->maybeCreateZeroLengthNop($self->tokenPos);;
1183            if ($nop !== null) { $self->semStack[$stackPos-(1-1)][] = $nop; } $self->semValue = $self->semStack[$stackPos-(1-1)];
1184            },
1185            5 => null,
1186            6 => null,
1187            7 => null,
1188            8 => null,
1189            9 => null,
1190            10 => null,
1191            11 => null,
1192            12 => null,
1193            13 => null,
1194            14 => null,
1195            15 => null,
1196            16 => null,
1197            17 => null,
1198            18 => null,
1199            19 => null,
1200            20 => null,
1201            21 => null,
1202            22 => null,
1203            23 => null,
1204            24 => null,
1205            25 => null,
1206            26 => null,
1207            27 => null,
1208            28 => null,
1209            29 => null,
1210            30 => null,
1211            31 => null,
1212            32 => null,
1213            33 => null,
1214            34 => null,
1215            35 => null,
1216            36 => null,
1217            37 => null,
1218            38 => null,
1219            39 => null,
1220            40 => null,
1221            41 => null,
1222            42 => null,
1223            43 => null,
1224            44 => null,
1225            45 => null,
1226            46 => null,
1227            47 => null,
1228            48 => null,
1229            49 => null,
1230            50 => null,
1231            51 => null,
1232            52 => null,
1233            53 => null,
1234            54 => null,
1235            55 => null,
1236            56 => null,
1237            57 => null,
1238            58 => null,
1239            59 => null,
1240            60 => null,
1241            61 => null,
1242            62 => null,
1243            63 => null,
1244            64 => null,
1245            65 => null,
1246            66 => null,
1247            67 => null,
1248            68 => null,
1249            69 => null,
1250            70 => null,
1251            71 => null,
1252            72 => null,
1253            73 => null,
1254            74 => null,
1255            75 => null,
1256            76 => static function ($self, $stackPos) {
1257                 $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])));
1258            },
1259            77 => null,
1260            78 => null,
1261            79 => null,
1262            80 => null,
1263            81 => null,
1264            82 => null,
1265            83 => null,
1266            84 => null,
1267            85 => static function ($self, $stackPos) {
1268                 $self->semValue = new Node\Identifier($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
1269            },
1270            86 => static function ($self, $stackPos) {
1271                 $self->semValue = new Node\Identifier($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
1272            },
1273            87 => static function ($self, $stackPos) {
1274                 $self->semValue = new Node\Identifier($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
1275            },
1276            88 => static function ($self, $stackPos) {
1277                 $self->semValue = new Node\Identifier($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
1278            },
1279            89 => static function ($self, $stackPos) {
1280                 $self->semValue = new Name($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
1281            },
1282            90 => static function ($self, $stackPos) {
1283                 $self->semValue = new Name($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
1284            },
1285            91 => static function ($self, $stackPos) {
1286                 $self->semValue = new Name($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
1287            },
1288            92 => static function ($self, $stackPos) {
1289                 $self->semValue = new Name($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
1290            },
1291            93 => static function ($self, $stackPos) {
1292                 $self->semValue = new Name($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
1293            },
1294            94 => null,
1295            95 => static function ($self, $stackPos) {
1296                 $self->semValue = new Name(substr($self->semStack[$stackPos-(1-1)], 1), $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
1297            },
1298            96 => static function ($self, $stackPos) {
1299                 $self->semValue = new Expr\Variable(substr($self->semStack[$stackPos-(1-1)], 1), $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
1300            },
1301            97 => static function ($self, $stackPos) {
1302                 /* nothing */
1303            },
1304            98 => static function ($self, $stackPos) {
1305                 /* nothing */
1306            },
1307            99 => static function ($self, $stackPos) {
1308                 /* nothing */
1309            },
1310            100 => static function ($self, $stackPos) {
1311                 $self->emitError(new Error('A trailing comma is not allowed here', $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])));
1312            },
1313            101 => null,
1314            102 => null,
1315            103 => static function ($self, $stackPos) {
1316                 $self->semValue = new Node\Attribute($self->semStack[$stackPos-(1-1)], [], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
1317            },
1318            104 => static function ($self, $stackPos) {
1319                 $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]));
1320            },
1321            105 => static function ($self, $stackPos) {
1322                 $self->semValue = array($self->semStack[$stackPos-(1-1)]);
1323            },
1324            106 => static function ($self, $stackPos) {
1325                 $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)];
1326            },
1327            107 => static function ($self, $stackPos) {
1328                 $self->semValue = new Node\AttributeGroup($self->semStack[$stackPos-(4-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos]));
1329            },
1330            108 => static function ($self, $stackPos) {
1331                 $self->semValue = array($self->semStack[$stackPos-(1-1)]);
1332            },
1333            109 => static function ($self, $stackPos) {
1334                 $self->semStack[$stackPos-(2-1)][] = $self->semStack[$stackPos-(2-2)]; $self->semValue = $self->semStack[$stackPos-(2-1)];
1335            },
1336            110 => static function ($self, $stackPos) {
1337                 $self->semValue = [];
1338            },
1339            111 => null,
1340            112 => null,
1341            113 => null,
1342            114 => null,
1343            115 => static function ($self, $stackPos) {
1344                 $self->semValue = new Stmt\HaltCompiler($self->handleHaltCompiler(), $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos]));
1345            },
1346            116 => static function ($self, $stackPos) {
1347                 $self->semValue = new Stmt\Namespace_($self->semStack[$stackPos-(3-2)], null, $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos]));
1348            $self->semValue->setAttribute('kind', Stmt\Namespace_::KIND_SEMICOLON);
1349            $self->checkNamespace($self->semValue);
1350            },
1351            117 => static function ($self, $stackPos) {
1352                 $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]));
1353            $self->semValue->setAttribute('kind', Stmt\Namespace_::KIND_BRACED);
1354            $self->checkNamespace($self->semValue);
1355            },
1356            118 => static function ($self, $stackPos) {
1357                 $self->semValue = new Stmt\Namespace_(null, $self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos]));
1358            $self->semValue->setAttribute('kind', Stmt\Namespace_::KIND_BRACED);
1359            $self->checkNamespace($self->semValue);
1360            },
1361            119 => static function ($self, $stackPos) {
1362                 $self->semValue = new Stmt\Use_($self->semStack[$stackPos-(3-2)], Stmt\Use_::TYPE_NORMAL, $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos]));
1363            },
1364            120 => static function ($self, $stackPos) {
1365                 $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]));
1366            },
1367            121 => null,
1368            122 => static function ($self, $stackPos) {
1369                 $self->semValue = new Stmt\Const_($self->semStack[$stackPos-(3-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos]));
1370            },
1371            123 => static function ($self, $stackPos) {
1372                 $self->semValue = Stmt\Use_::TYPE_FUNCTION;
1373            },
1374            124 => static function ($self, $stackPos) {
1375                 $self->semValue = Stmt\Use_::TYPE_CONSTANT;
1376            },
1377            125 => static function ($self, $stackPos) {
1378                 $self->semValue = new Stmt\GroupUse($self->semStack[$stackPos-(7-3)], $self->semStack[$stackPos-(7-6)], $self->semStack[$stackPos-(7-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(7-1)], $self->tokenEndStack[$stackPos]));
1379            },
1380            126 => static function ($self, $stackPos) {
1381                 $self->semValue = new Stmt\GroupUse($self->semStack[$stackPos-(6-2)], $self->semStack[$stackPos-(6-5)], Stmt\Use_::TYPE_UNKNOWN, $self->getAttributes($self->tokenStartStack[$stackPos-(6-1)], $self->tokenEndStack[$stackPos]));
1382            },
1383            127 => null,
1384            128 => static function ($self, $stackPos) {
1385                 $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)];
1386            },
1387            129 => static function ($self, $stackPos) {
1388                 $self->semValue = array($self->semStack[$stackPos-(1-1)]);
1389            },
1390            130 => null,
1391            131 => static function ($self, $stackPos) {
1392                 $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)];
1393            },
1394            132 => static function ($self, $stackPos) {
1395                 $self->semValue = array($self->semStack[$stackPos-(1-1)]);
1396            },
1397            133 => null,
1398            134 => static function ($self, $stackPos) {
1399                 $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)];
1400            },
1401            135 => static function ($self, $stackPos) {
1402                 $self->semValue = array($self->semStack[$stackPos-(1-1)]);
1403            },
1404            136 => static function ($self, $stackPos) {
1405                 $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));
1406            },
1407            137 => static function ($self, $stackPos) {
1408                 $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));
1409            },
1410            138 => static function ($self, $stackPos) {
1411                 $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));
1412            },
1413            139 => static function ($self, $stackPos) {
1414                 $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));
1415            },
1416            140 => static function ($self, $stackPos) {
1417                 $self->semValue = $self->semStack[$stackPos-(1-1)]; $self->semValue->type = Stmt\Use_::TYPE_NORMAL;
1418            },
1419            141 => static function ($self, $stackPos) {
1420                 $self->semValue = $self->semStack[$stackPos-(2-2)]; $self->semValue->type = $self->semStack[$stackPos-(2-1)];
1421            },
1422            142 => null,
1423            143 => static function ($self, $stackPos) {
1424                 $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)];
1425            },
1426            144 => static function ($self, $stackPos) {
1427                 $self->semValue = array($self->semStack[$stackPos-(1-1)]);
1428            },
1429            145 => static function ($self, $stackPos) {
1430                 $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]));
1431            },
1432            146 => null,
1433            147 => static function ($self, $stackPos) {
1434                 $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)];
1435            },
1436            148 => static function ($self, $stackPos) {
1437                 $self->semValue = array($self->semStack[$stackPos-(1-1)]);
1438            },
1439            149 => static function ($self, $stackPos) {
1440                 $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]));
1441            },
1442            150 => static function ($self, $stackPos) {
1443                 $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]));
1444            },
1445            151 => static function ($self, $stackPos) {
1446                 if ($self->semStack[$stackPos-(2-2)] !== null) { $self->semStack[$stackPos-(2-1)][] = $self->semStack[$stackPos-(2-2)]; } $self->semValue = $self->semStack[$stackPos-(2-1)];;
1447            },
1448            152 => static function ($self, $stackPos) {
1449                 $self->semValue = array();
1450            },
1451            153 => static function ($self, $stackPos) {
1452                 $nop = $self->maybeCreateZeroLengthNop($self->tokenPos);;
1453            if ($nop !== null) { $self->semStack[$stackPos-(1-1)][] = $nop; } $self->semValue = $self->semStack[$stackPos-(1-1)];
1454            },
1455            154 => null,
1456            155 => null,
1457            156 => null,
1458            157 => static function ($self, $stackPos) {
1459                 throw new Error('__HALT_COMPILER() can only be used from the outermost scope', $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
1460            },
1461            158 => static function ($self, $stackPos) {
1462                 $self->semValue = new Stmt\Block($self->semStack[$stackPos-(3-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos]));
1463            },
1464            159 => static function ($self, $stackPos) {
1465                 $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]));
1466            },
1467            160 => static function ($self, $stackPos) {
1468                 $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]));
1469            },
1470            161 => static function ($self, $stackPos) {
1471                 $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]));
1472            },
1473            162 => static function ($self, $stackPos) {
1474                 $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]));
1475            },
1476            163 => static function ($self, $stackPos) {
1477                 $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]));
1478            },
1479            164 => static function ($self, $stackPos) {
1480                 $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]));
1481            },
1482            165 => static function ($self, $stackPos) {
1483                 $self->semValue = new Stmt\Break_($self->semStack[$stackPos-(3-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos]));
1484            },
1485            166 => static function ($self, $stackPos) {
1486                 $self->semValue = new Stmt\Continue_($self->semStack[$stackPos-(3-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos]));
1487            },
1488            167 => static function ($self, $stackPos) {
1489                 $self->semValue = new Stmt\Return_($self->semStack[$stackPos-(3-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos]));
1490            },
1491            168 => static function ($self, $stackPos) {
1492                 $self->semValue = new Stmt\Global_($self->semStack[$stackPos-(3-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos]));
1493            },
1494            169 => static function ($self, $stackPos) {
1495                 $self->semValue = new Stmt\Static_($self->semStack[$stackPos-(3-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos]));
1496            },
1497            170 => static function ($self, $stackPos) {
1498                 $self->semValue = new Stmt\Echo_($self->semStack[$stackPos-(3-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos]));
1499            },
1500            171 => static function ($self, $stackPos) {
1501
1502        $self->semValue = new Stmt\InlineHTML($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
1503        $self->semValue->setAttribute('hasLeadingNewline', $self->inlineHtmlHasLeadingNewline($stackPos-(1-1)));
1504
1505            },
1506            172 => static function ($self, $stackPos) {
1507                 $self->semValue = new Stmt\Expression($self->semStack[$stackPos-(2-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
1508            },
1509            173 => static function ($self, $stackPos) {
1510                 $self->semValue = new Stmt\Unset_($self->semStack[$stackPos-(5-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(5-1)], $self->tokenEndStack[$stackPos]));
1511            },
1512            174 => static function ($self, $stackPos) {
1513                 $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]));
1514            },
1515            175 => static function ($self, $stackPos) {
1516                 $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]));
1517            },
1518            176 => static function ($self, $stackPos) {
1519                 $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]));
1520            },
1521            177 => static function ($self, $stackPos) {
1522                 $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]));
1523            },
1524            178 => static function ($self, $stackPos) {
1525                 $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);
1526            },
1527            179 => static function ($self, $stackPos) {
1528                 $self->semValue = new Stmt\Goto_($self->semStack[$stackPos-(3-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos]));
1529            },
1530            180 => static function ($self, $stackPos) {
1531                 $self->semValue = new Stmt\Label($self->semStack[$stackPos-(2-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
1532            },
1533            181 => static function ($self, $stackPos) {
1534                 $self->semValue = null; /* means: no statement */
1535            },
1536            182 => null,
1537            183 => static function ($self, $stackPos) {
1538                 $self->semValue = $self->maybeCreateNop($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]);
1539            },
1540            184 => static function ($self, $stackPos) {
1541                 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)]]; };
1542            },
1543            185 => static function ($self, $stackPos) {
1544                 $self->semValue = array();
1545            },
1546            186 => static function ($self, $stackPos) {
1547                 $self->semStack[$stackPos-(2-1)][] = $self->semStack[$stackPos-(2-2)]; $self->semValue = $self->semStack[$stackPos-(2-1)];
1548            },
1549            187 => static function ($self, $stackPos) {
1550                 $self->semValue = array($self->semStack[$stackPos-(1-1)]);
1551            },
1552            188 => static function ($self, $stackPos) {
1553                 $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)];
1554            },
1555            189 => static function ($self, $stackPos) {
1556                 $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]));
1557            },
1558            190 => static function ($self, $stackPos) {
1559                 $self->semValue = null;
1560            },
1561            191 => static function ($self, $stackPos) {
1562                 $self->semValue = new Stmt\Finally_($self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos]));
1563            },
1564            192 => null,
1565            193 => static function ($self, $stackPos) {
1566                 $self->semValue = array($self->semStack[$stackPos-(1-1)]);
1567            },
1568            194 => static function ($self, $stackPos) {
1569                 $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)];
1570            },
1571            195 => static function ($self, $stackPos) {
1572                 $self->semValue = false;
1573            },
1574            196 => static function ($self, $stackPos) {
1575                 $self->semValue = true;
1576            },
1577            197 => static function ($self, $stackPos) {
1578                 $self->semValue = false;
1579            },
1580            198 => static function ($self, $stackPos) {
1581                 $self->semValue = true;
1582            },
1583            199 => static function ($self, $stackPos) {
1584                 $self->semValue = false;
1585            },
1586            200 => static function ($self, $stackPos) {
1587                 $self->semValue = true;
1588            },
1589            201 => static function ($self, $stackPos) {
1590                 $self->semValue = $self->semStack[$stackPos-(3-2)];
1591            },
1592            202 => static function ($self, $stackPos) {
1593                 $self->semValue = [];
1594            },
1595            203 => null,
1596            204 => static function ($self, $stackPos) {
1597                 $self->semValue = new Node\Identifier($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
1598            },
1599            205 => static function ($self, $stackPos) {
1600                 $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]));
1601            },
1602            206 => static function ($self, $stackPos) {
1603                 $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]));
1604            },
1605            207 => static function ($self, $stackPos) {
1606                 $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]));
1607            $self->checkClass($self->semValue, $stackPos-(7-2));
1608            },
1609            208 => static function ($self, $stackPos) {
1610                 $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]));
1611            $self->checkClass($self->semValue, $stackPos-(8-3));
1612            },
1613            209 => static function ($self, $stackPos) {
1614                 $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]));
1615            $self->checkInterface($self->semValue, $stackPos-(7-3));
1616            },
1617            210 => static function ($self, $stackPos) {
1618                 $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]));
1619            },
1620            211 => static function ($self, $stackPos) {
1621                 $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]));
1622            $self->checkEnum($self->semValue, $stackPos-(8-3));
1623            },
1624            212 => static function ($self, $stackPos) {
1625                 $self->semValue = null;
1626            },
1627            213 => static function ($self, $stackPos) {
1628                 $self->semValue = $self->semStack[$stackPos-(2-2)];
1629            },
1630            214 => static function ($self, $stackPos) {
1631                 $self->semValue = null;
1632            },
1633            215 => static function ($self, $stackPos) {
1634                 $self->semValue = $self->semStack[$stackPos-(2-2)];
1635            },
1636            216 => static function ($self, $stackPos) {
1637                 $self->semValue = 0;
1638            },
1639            217 => null,
1640            218 => null,
1641            219 => static function ($self, $stackPos) {
1642                 $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)];
1643            },
1644            220 => static function ($self, $stackPos) {
1645                 $self->semValue = Modifiers::ABSTRACT;
1646            },
1647            221 => static function ($self, $stackPos) {
1648                 $self->semValue = Modifiers::FINAL;
1649            },
1650            222 => static function ($self, $stackPos) {
1651                 $self->semValue = Modifiers::READONLY;
1652            },
1653            223 => static function ($self, $stackPos) {
1654                 $self->semValue = null;
1655            },
1656            224 => static function ($self, $stackPos) {
1657                 $self->semValue = $self->semStack[$stackPos-(2-2)];
1658            },
1659            225 => static function ($self, $stackPos) {
1660                 $self->semValue = array();
1661            },
1662            226 => static function ($self, $stackPos) {
1663                 $self->semValue = $self->semStack[$stackPos-(2-2)];
1664            },
1665            227 => static function ($self, $stackPos) {
1666                 $self->semValue = array();
1667            },
1668            228 => static function ($self, $stackPos) {
1669                 $self->semValue = $self->semStack[$stackPos-(2-2)];
1670            },
1671            229 => null,
1672            230 => static function ($self, $stackPos) {
1673                 $self->semValue = array($self->semStack[$stackPos-(1-1)]);
1674            },
1675            231 => static function ($self, $stackPos) {
1676                 $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)];
1677            },
1678            232 => null,
1679            233 => static function ($self, $stackPos) {
1680                 $self->semValue = $self->semStack[$stackPos-(4-2)];
1681            },
1682            234 => null,
1683            235 => static function ($self, $stackPos) {
1684                 $self->semValue = $self->semStack[$stackPos-(4-2)];
1685            },
1686            236 => static function ($self, $stackPos) {
1687                 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)]]; };
1688            },
1689            237 => static function ($self, $stackPos) {
1690                 $self->semValue = null;
1691            },
1692            238 => static function ($self, $stackPos) {
1693                 $self->semValue = $self->semStack[$stackPos-(4-2)];
1694            },
1695            239 => null,
1696            240 => static function ($self, $stackPos) {
1697                 $self->semValue = array($self->semStack[$stackPos-(1-1)]);
1698            },
1699            241 => static function ($self, $stackPos) {
1700                 $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)];
1701            },
1702            242 => static function ($self, $stackPos) {
1703                 $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]));
1704            },
1705            243 => static function ($self, $stackPos) {
1706                 $self->semValue = $self->semStack[$stackPos-(3-2)];
1707            },
1708            244 => static function ($self, $stackPos) {
1709                 $self->semValue = $self->semStack[$stackPos-(4-3)];
1710            },
1711            245 => static function ($self, $stackPos) {
1712                 $self->semValue = $self->semStack[$stackPos-(4-2)];
1713            },
1714            246 => static function ($self, $stackPos) {
1715                 $self->semValue = $self->semStack[$stackPos-(5-3)];
1716            },
1717            247 => static function ($self, $stackPos) {
1718                 $self->semValue = array();
1719            },
1720            248 => static function ($self, $stackPos) {
1721                 $self->semStack[$stackPos-(2-1)][] = $self->semStack[$stackPos-(2-2)]; $self->semValue = $self->semStack[$stackPos-(2-1)];
1722            },
1723            249 => static function ($self, $stackPos) {
1724                 $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]));
1725            },
1726            250 => static function ($self, $stackPos) {
1727                 $self->semValue = new Stmt\Case_(null, $self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos]));
1728            },
1729            251 => null,
1730            252 => null,
1731            253 => static function ($self, $stackPos) {
1732                 $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]));
1733            },
1734            254 => static function ($self, $stackPos) {
1735                 $self->semValue = [];
1736            },
1737            255 => null,
1738            256 => static function ($self, $stackPos) {
1739                 $self->semValue = array($self->semStack[$stackPos-(1-1)]);
1740            },
1741            257 => static function ($self, $stackPos) {
1742                 $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)];
1743            },
1744            258 => static function ($self, $stackPos) {
1745                 $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]));
1746            },
1747            259 => static function ($self, $stackPos) {
1748                 $self->semValue = new Node\MatchArm(null, $self->semStack[$stackPos-(4-4)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos]));
1749            },
1750            260 => static function ($self, $stackPos) {
1751                 $self->semValue = $self->semStack[$stackPos-(1-1)];
1752            },
1753            261 => static function ($self, $stackPos) {
1754                 $self->semValue = $self->semStack[$stackPos-(4-2)];
1755            },
1756            262 => static function ($self, $stackPos) {
1757                 $self->semValue = array();
1758            },
1759            263 => static function ($self, $stackPos) {
1760                 $self->semStack[$stackPos-(2-1)][] = $self->semStack[$stackPos-(2-2)]; $self->semValue = $self->semStack[$stackPos-(2-1)];
1761            },
1762            264 => static function ($self, $stackPos) {
1763                 $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]));
1764            },
1765            265 => static function ($self, $stackPos) {
1766                 $self->semValue = array();
1767            },
1768            266 => static function ($self, $stackPos) {
1769                 $self->semStack[$stackPos-(2-1)][] = $self->semStack[$stackPos-(2-2)]; $self->semValue = $self->semStack[$stackPos-(2-1)];
1770            },
1771            267 => static function ($self, $stackPos) {
1772                 $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);
1773            },
1774            268 => static function ($self, $stackPos) {
1775                 $self->semValue = null;
1776            },
1777            269 => static function ($self, $stackPos) {
1778                 $self->semValue = new Stmt\Else_($self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
1779            },
1780            270 => static function ($self, $stackPos) {
1781                 $self->semValue = null;
1782            },
1783            271 => static function ($self, $stackPos) {
1784                 $self->semValue = new Stmt\Else_($self->semStack[$stackPos-(3-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos])); $self->fixupAlternativeElse($self->semValue);
1785            },
1786            272 => static function ($self, $stackPos) {
1787                 $self->semValue = array($self->semStack[$stackPos-(1-1)], false);
1788            },
1789            273 => static function ($self, $stackPos) {
1790                 $self->semValue = array($self->semStack[$stackPos-(2-2)], true);
1791            },
1792            274 => static function ($self, $stackPos) {
1793                 $self->semValue = array($self->semStack[$stackPos-(1-1)], false);
1794            },
1795            275 => static function ($self, $stackPos) {
1796                 $self->semValue = array($self->fixupArrayDestructuring($self->semStack[$stackPos-(1-1)]), false);
1797            },
1798            276 => null,
1799            277 => static function ($self, $stackPos) {
1800                 $self->semValue = array();
1801            },
1802            278 => static function ($self, $stackPos) {
1803                 $self->semValue = array($self->semStack[$stackPos-(1-1)]);
1804            },
1805            279 => static function ($self, $stackPos) {
1806                 $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)];
1807            },
1808            280 => static function ($self, $stackPos) {
1809                 $self->semValue = 0;
1810            },
1811            281 => static function ($self, $stackPos) {
1812                 $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)];
1813            },
1814            282 => static function ($self, $stackPos) {
1815                 $self->semValue = Modifiers::PUBLIC;
1816            },
1817            283 => static function ($self, $stackPos) {
1818                 $self->semValue = Modifiers::PROTECTED;
1819            },
1820            284 => static function ($self, $stackPos) {
1821                 $self->semValue = Modifiers::PRIVATE;
1822            },
1823            285 => static function ($self, $stackPos) {
1824                 $self->semValue = Modifiers::READONLY;
1825            },
1826            286 => static function ($self, $stackPos) {
1827                 $self->semValue = new Node\Param($self->semStack[$stackPos-(6-6)], 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)]);
1828            $self->checkParam($self->semValue);
1829            },
1830            287 => static function ($self, $stackPos) {
1831                 $self->semValue = new Node\Param($self->semStack[$stackPos-(8-6)], $self->semStack[$stackPos-(8-8)], $self->semStack[$stackPos-(8-3)], $self->semStack[$stackPos-(8-4)], $self->semStack[$stackPos-(8-5)], $self->getAttributes($self->tokenStartStack[$stackPos-(8-1)], $self->tokenEndStack[$stackPos]), $self->semStack[$stackPos-(8-2)], $self->semStack[$stackPos-(8-1)]);
1832            $self->checkParam($self->semValue);
1833            },
1834            288 => static function ($self, $stackPos) {
1835                 $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)]);
1836            },
1837            289 => null,
1838            290 => static function ($self, $stackPos) {
1839                 $self->semValue = new Node\NullableType($self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
1840            },
1841            291 => static function ($self, $stackPos) {
1842                 $self->semValue = new Node\UnionType($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
1843            },
1844            292 => null,
1845            293 => null,
1846            294 => static function ($self, $stackPos) {
1847                 $self->semValue = new Node\Name('static', $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
1848            },
1849            295 => static function ($self, $stackPos) {
1850                 $self->semValue = $self->handleBuiltinTypes($self->semStack[$stackPos-(1-1)]);
1851            },
1852            296 => static function ($self, $stackPos) {
1853                 $self->semValue = new Node\Identifier('array', $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
1854            },
1855            297 => static function ($self, $stackPos) {
1856                 $self->semValue = new Node\Identifier('callable', $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
1857            },
1858            298 => null,
1859            299 => static function ($self, $stackPos) {
1860                 $self->semValue = $self->semStack[$stackPos-(3-2)];
1861            },
1862            300 => static function ($self, $stackPos) {
1863                 $self->semValue = array($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)]);
1864            },
1865            301 => static function ($self, $stackPos) {
1866                 $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)];
1867            },
1868            302 => null,
1869            303 => static function ($self, $stackPos) {
1870                 $self->semValue = $self->semStack[$stackPos-(3-2)];
1871            },
1872            304 => static function ($self, $stackPos) {
1873                 $self->semValue = array($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)]);
1874            },
1875            305 => static function ($self, $stackPos) {
1876                 $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)];
1877            },
1878            306 => static function ($self, $stackPos) {
1879                 $self->semValue = array($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)]);
1880            },
1881            307 => static function ($self, $stackPos) {
1882                 $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)];
1883            },
1884            308 => static function ($self, $stackPos) {
1885                 $self->semValue = new Node\IntersectionType($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
1886            },
1887            309 => static function ($self, $stackPos) {
1888                 $self->semValue = array($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)]);
1889            },
1890            310 => static function ($self, $stackPos) {
1891                 $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)];
1892            },
1893            311 => static function ($self, $stackPos) {
1894                 $self->semValue = new Node\IntersectionType($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
1895            },
1896            312 => null,
1897            313 => static function ($self, $stackPos) {
1898                 $self->semValue = new Node\NullableType($self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
1899            },
1900            314 => static function ($self, $stackPos) {
1901                 $self->semValue = new Node\UnionType($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
1902            },
1903            315 => null,
1904            316 => static function ($self, $stackPos) {
1905                 $self->semValue = null;
1906            },
1907            317 => null,
1908            318 => static function ($self, $stackPos) {
1909                 $self->semValue = null;
1910            },
1911            319 => static function ($self, $stackPos) {
1912                 $self->semValue = $self->semStack[$stackPos-(2-2)];
1913            },
1914            320 => static function ($self, $stackPos) {
1915                 $self->semValue = null;
1916            },
1917            321 => static function ($self, $stackPos) {
1918                 $self->semValue = array();
1919            },
1920            322 => static function ($self, $stackPos) {
1921                 $self->semValue = $self->semStack[$stackPos-(4-2)];
1922            },
1923            323 => static function ($self, $stackPos) {
1924                 $self->semValue = array($self->semStack[$stackPos-(3-2)]);
1925            },
1926            324 => static function ($self, $stackPos) {
1927                 $self->semValue = new Node\VariadicPlaceholder($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
1928            },
1929            325 => static function ($self, $stackPos) {
1930                 $self->semValue = array($self->semStack[$stackPos-(1-1)]);
1931            },
1932            326 => static function ($self, $stackPos) {
1933                 $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)];
1934            },
1935            327 => static function ($self, $stackPos) {
1936                 $self->semValue = new Node\Arg($self->semStack[$stackPos-(1-1)], false, false, $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
1937            },
1938            328 => static function ($self, $stackPos) {
1939                 $self->semValue = new Node\Arg($self->semStack[$stackPos-(2-2)], true, false, $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
1940            },
1941            329 => static function ($self, $stackPos) {
1942                 $self->semValue = new Node\Arg($self->semStack[$stackPos-(2-2)], false, true, $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
1943            },
1944            330 => static function ($self, $stackPos) {
1945                 $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)]);
1946            },
1947            331 => null,
1948            332 => static function ($self, $stackPos) {
1949                 $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)];
1950            },
1951            333 => static function ($self, $stackPos) {
1952                 $self->semValue = array($self->semStack[$stackPos-(1-1)]);
1953            },
1954            334 => null,
1955            335 => null,
1956            336 => static function ($self, $stackPos) {
1957                 $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)];
1958            },
1959            337 => static function ($self, $stackPos) {
1960                 $self->semValue = array($self->semStack[$stackPos-(1-1)]);
1961            },
1962            338 => static function ($self, $stackPos) {
1963                 $self->semValue = new Node\StaticVar($self->semStack[$stackPos-(1-1)], null, $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
1964            },
1965            339 => static function ($self, $stackPos) {
1966                 $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]));
1967            },
1968            340 => static function ($self, $stackPos) {
1969                 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)]; }
1970            },
1971            341 => static function ($self, $stackPos) {
1972                 $self->semValue = array();
1973            },
1974            342 => static function ($self, $stackPos) {
1975                 $nop = $self->maybeCreateZeroLengthNop($self->tokenPos);;
1976            if ($nop !== null) { $self->semStack[$stackPos-(1-1)][] = $nop; } $self->semValue = $self->semStack[$stackPos-(1-1)];
1977            },
1978            343 => static function ($self, $stackPos) {
1979                 $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)]);
1980            $self->checkProperty($self->semValue, $stackPos-(5-2));
1981            },
1982            344 => static function ($self, $stackPos) {
1983                 $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)]);
1984            $self->checkClassConst($self->semValue, $stackPos-(5-2));
1985            },
1986            345 => static function ($self, $stackPos) {
1987                 $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)]);
1988            $self->checkClassConst($self->semValue, $stackPos-(6-2));
1989            },
1990            346 => static function ($self, $stackPos) {
1991                 $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]));
1992            $self->checkClassMethod($self->semValue, $stackPos-(10-2));
1993            },
1994            347 => static function ($self, $stackPos) {
1995                 $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]));
1996            },
1997            348 => static function ($self, $stackPos) {
1998                 $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]));
1999            },
2000            349 => static function ($self, $stackPos) {
2001                 $self->semValue = null; /* will be skipped */
2002            },
2003            350 => static function ($self, $stackPos) {
2004                 $self->semValue = array();
2005            },
2006            351 => static function ($self, $stackPos) {
2007                 $self->semValue = $self->semStack[$stackPos-(3-2)];
2008            },
2009            352 => static function ($self, $stackPos) {
2010                 $self->semValue = array();
2011            },
2012            353 => static function ($self, $stackPos) {
2013                 $self->semStack[$stackPos-(2-1)][] = $self->semStack[$stackPos-(2-2)]; $self->semValue = $self->semStack[$stackPos-(2-1)];
2014            },
2015            354 => static function ($self, $stackPos) {
2016                 $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]));
2017            },
2018            355 => static function ($self, $stackPos) {
2019                 $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]));
2020            },
2021            356 => static function ($self, $stackPos) {
2022                 $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]));
2023            },
2024            357 => static function ($self, $stackPos) {
2025                 $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]));
2026            },
2027            358 => static function ($self, $stackPos) {
2028                 $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]));
2029            },
2030            359 => static function ($self, $stackPos) {
2031                 $self->semValue = array($self->semStack[$stackPos-(3-1)], $self->semStack[$stackPos-(3-3)]);
2032            },
2033            360 => null,
2034            361 => static function ($self, $stackPos) {
2035                 $self->semValue = array(null, $self->semStack[$stackPos-(1-1)]);
2036            },
2037            362 => static function ($self, $stackPos) {
2038                 $self->semValue = null;
2039            },
2040            363 => null,
2041            364 => null,
2042            365 => static function ($self, $stackPos) {
2043                 $self->semValue = 0;
2044            },
2045            366 => static function ($self, $stackPos) {
2046                 $self->semValue = 0;
2047            },
2048            367 => null,
2049            368 => null,
2050            369 => static function ($self, $stackPos) {
2051                 $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)];
2052            },
2053            370 => static function ($self, $stackPos) {
2054                 $self->semValue = Modifiers::PUBLIC;
2055            },
2056            371 => static function ($self, $stackPos) {
2057                 $self->semValue = Modifiers::PROTECTED;
2058            },
2059            372 => static function ($self, $stackPos) {
2060                 $self->semValue = Modifiers::PRIVATE;
2061            },
2062            373 => static function ($self, $stackPos) {
2063                 $self->semValue = Modifiers::STATIC;
2064            },
2065            374 => static function ($self, $stackPos) {
2066                 $self->semValue = Modifiers::ABSTRACT;
2067            },
2068            375 => static function ($self, $stackPos) {
2069                 $self->semValue = Modifiers::FINAL;
2070            },
2071            376 => static function ($self, $stackPos) {
2072                 $self->semValue = Modifiers::READONLY;
2073            },
2074            377 => null,
2075            378 => static function ($self, $stackPos) {
2076                 $self->semValue = array($self->semStack[$stackPos-(1-1)]);
2077            },
2078            379 => static function ($self, $stackPos) {
2079                 $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)];
2080            },
2081            380 => static function ($self, $stackPos) {
2082                 $self->semValue = new Node\VarLikeIdentifier(substr($self->semStack[$stackPos-(1-1)], 1), $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
2083            },
2084            381 => static function ($self, $stackPos) {
2085                 $self->semValue = new Node\PropertyItem($self->semStack[$stackPos-(1-1)], null, $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
2086            },
2087            382 => static function ($self, $stackPos) {
2088                 $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]));
2089            },
2090            383 => null,
2091            384 => null,
2092            385 => static function ($self, $stackPos) {
2093                 $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)];
2094            },
2095            386 => static function ($self, $stackPos) {
2096                 $self->semValue = array($self->semStack[$stackPos-(1-1)]);
2097            },
2098            387 => static function ($self, $stackPos) {
2099                 $self->semValue = array();
2100            },
2101            388 => null,
2102            389 => null,
2103            390 => static function ($self, $stackPos) {
2104                 $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]));
2105            },
2106            391 => static function ($self, $stackPos) {
2107                 $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]));
2108            },
2109            392 => static function ($self, $stackPos) {
2110                 $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]));
2111            },
2112            393 => static function ($self, $stackPos) {
2113                 $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]));
2114            },
2115            394 => static function ($self, $stackPos) {
2116                 $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]));
2117            if (!$self->phpVersion->allowsAssignNewByReference()) {
2118                $self->emitError(new Error('Cannot assign new by reference', $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos])));
2119            }
2120
2121            },
2122            395 => null,
2123            396 => null,
2124            397 => static function ($self, $stackPos) {
2125                 $self->semValue = new Expr\Clone_($self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
2126            },
2127            398 => static function ($self, $stackPos) {
2128                 $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]));
2129            },
2130            399 => static function ($self, $stackPos) {
2131                 $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]));
2132            },
2133            400 => static function ($self, $stackPos) {
2134                 $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]));
2135            },
2136            401 => static function ($self, $stackPos) {
2137                 $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]));
2138            },
2139            402 => static function ($self, $stackPos) {
2140                 $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]));
2141            },
2142            403 => static function ($self, $stackPos) {
2143                 $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]));
2144            },
2145            404 => static function ($self, $stackPos) {
2146                 $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]));
2147            },
2148            405 => static function ($self, $stackPos) {
2149                 $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]));
2150            },
2151            406 => static function ($self, $stackPos) {
2152                 $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]));
2153            },
2154            407 => static function ($self, $stackPos) {
2155                 $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]));
2156            },
2157            408 => static function ($self, $stackPos) {
2158                 $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]));
2159            },
2160            409 => static function ($self, $stackPos) {
2161                 $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]));
2162            },
2163            410 => static function ($self, $stackPos) {
2164                 $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]));
2165            },
2166            411 => static function ($self, $stackPos) {
2167                 $self->semValue = new Expr\PostInc($self->semStack[$stackPos-(2-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
2168            },
2169            412 => static function ($self, $stackPos) {
2170                 $self->semValue = new Expr\PreInc($self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
2171            },
2172            413 => static function ($self, $stackPos) {
2173                 $self->semValue = new Expr\PostDec($self->semStack[$stackPos-(2-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
2174            },
2175            414 => static function ($self, $stackPos) {
2176                 $self->semValue = new Expr\PreDec($self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
2177            },
2178            415 => static function ($self, $stackPos) {
2179                 $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]));
2180            },
2181            416 => static function ($self, $stackPos) {
2182                 $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]));
2183            },
2184            417 => static function ($self, $stackPos) {
2185                 $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]));
2186            },
2187            418 => static function ($self, $stackPos) {
2188                 $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]));
2189            },
2190            419 => static function ($self, $stackPos) {
2191                 $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]));
2192            },
2193            420 => static function ($self, $stackPos) {
2194                 $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]));
2195            },
2196            421 => static function ($self, $stackPos) {
2197                 $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]));
2198            },
2199            422 => static function ($self, $stackPos) {
2200                 $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]));
2201            },
2202            423 => static function ($self, $stackPos) {
2203                 $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]));
2204            },
2205            424 => static function ($self, $stackPos) {
2206                 $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]));
2207            },
2208            425 => static function ($self, $stackPos) {
2209                 $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]));
2210            },
2211            426 => static function ($self, $stackPos) {
2212                 $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]));
2213            },
2214            427 => static function ($self, $stackPos) {
2215                 $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]));
2216            },
2217            428 => static function ($self, $stackPos) {
2218                 $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]));
2219            },
2220            429 => static function ($self, $stackPos) {
2221                 $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]));
2222            },
2223            430 => static function ($self, $stackPos) {
2224                 $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]));
2225            },
2226            431 => static function ($self, $stackPos) {
2227                 $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]));
2228            },
2229            432 => static function ($self, $stackPos) {
2230                 $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]));
2231            },
2232            433 => static function ($self, $stackPos) {
2233                 $self->semValue = new Expr\UnaryPlus($self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
2234            },
2235            434 => static function ($self, $stackPos) {
2236                 $self->semValue = new Expr\UnaryMinus($self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
2237            },
2238            435 => static function ($self, $stackPos) {
2239                 $self->semValue = new Expr\BooleanNot($self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
2240            },
2241            436 => static function ($self, $stackPos) {
2242                 $self->semValue = new Expr\BitwiseNot($self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
2243            },
2244            437 => static function ($self, $stackPos) {
2245                 $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]));
2246            },
2247            438 => static function ($self, $stackPos) {
2248                 $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]));
2249            },
2250            439 => static function ($self, $stackPos) {
2251                 $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]));
2252            },
2253            440 => static function ($self, $stackPos) {
2254                 $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]));
2255            },
2256            441 => static function ($self, $stackPos) {
2257                 $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]));
2258            },
2259            442 => static function ($self, $stackPos) {
2260                 $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]));
2261            },
2262            443 => static function ($self, $stackPos) {
2263                 $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]));
2264            },
2265            444 => static function ($self, $stackPos) {
2266                 $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]));
2267            },
2268            445 => static function ($self, $stackPos) {
2269                 $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]));
2270            },
2271            446 => static function ($self, $stackPos) {
2272                 $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]));
2273            },
2274            447 => static function ($self, $stackPos) {
2275                 $self->semValue = $self->semStack[$stackPos-(3-2)];
2276            },
2277            448 => static function ($self, $stackPos) {
2278                 $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]));
2279            },
2280            449 => static function ($self, $stackPos) {
2281                 $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]));
2282            },
2283            450 => static function ($self, $stackPos) {
2284                 $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]));
2285            },
2286            451 => static function ($self, $stackPos) {
2287                 $self->semValue = new Expr\Isset_($self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos]));
2288            },
2289            452 => static function ($self, $stackPos) {
2290                 $self->semValue = new Expr\Empty_($self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos]));
2291            },
2292            453 => static function ($self, $stackPos) {
2293                 $self->semValue = new Expr\Include_($self->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
2294            },
2295            454 => static function ($self, $stackPos) {
2296                 $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]));
2297            },
2298            455 => static function ($self, $stackPos) {
2299                 $self->semValue = new Expr\Eval_($self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos]));
2300            },
2301            456 => static function ($self, $stackPos) {
2302                 $self->semValue = new Expr\Include_($self->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
2303            },
2304            457 => static function ($self, $stackPos) {
2305                 $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]));
2306            },
2307            458 => static function ($self, $stackPos) {
2308                 $self->semValue = new Expr\Cast\Int_($self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
2309            },
2310            459 => static function ($self, $stackPos) {
2311                 $attrs = $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]);
2312            $attrs['kind'] = $self->getFloatCastKind($self->semStack[$stackPos-(2-1)]);
2313            $self->semValue = new Expr\Cast\Double($self->semStack[$stackPos-(2-2)], $attrs);
2314            },
2315            460 => static function ($self, $stackPos) {
2316                 $self->semValue = new Expr\Cast\String_($self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
2317            },
2318            461 => static function ($self, $stackPos) {
2319                 $self->semValue = new Expr\Cast\Array_($self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
2320            },
2321            462 => static function ($self, $stackPos) {
2322                 $self->semValue = new Expr\Cast\Object_($self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
2323            },
2324            463 => static function ($self, $stackPos) {
2325                 $self->semValue = new Expr\Cast\Bool_($self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
2326            },
2327            464 => static function ($self, $stackPos) {
2328                 $self->semValue = new Expr\Cast\Unset_($self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
2329            },
2330            465 => static function ($self, $stackPos) {
2331                 $attrs = $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]);
2332            $attrs['kind'] = strtolower($self->semStack[$stackPos-(2-1)]) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE;
2333            $self->semValue = new Expr\Exit_($self->semStack[$stackPos-(2-2)], $attrs);
2334            },
2335            466 => static function ($self, $stackPos) {
2336                 $self->semValue = new Expr\ErrorSuppress($self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
2337            },
2338            467 => null,
2339            468 => static function ($self, $stackPos) {
2340                 $self->semValue = new Expr\ShellExec($self->semStack[$stackPos-(3-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos]));
2341            },
2342            469 => static function ($self, $stackPos) {
2343                 $self->semValue = new Expr\Print_($self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
2344            },
2345            470 => static function ($self, $stackPos) {
2346                 $self->semValue = new Expr\Yield_(null, null, $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
2347            },
2348            471 => static function ($self, $stackPos) {
2349                 $self->semValue = new Expr\Yield_($self->semStack[$stackPos-(2-2)], null, $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
2350            },
2351            472 => static function ($self, $stackPos) {
2352                 $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]));
2353            },
2354            473 => static function ($self, $stackPos) {
2355                 $self->semValue = new Expr\YieldFrom($self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
2356            },
2357            474 => static function ($self, $stackPos) {
2358                 $self->semValue = new Expr\Throw_($self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
2359            },
2360            475 => static function ($self, $stackPos) {
2361                 $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]));
2362            },
2363            476 => static function ($self, $stackPos) {
2364                 $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]));
2365            },
2366            477 => static function ($self, $stackPos) {
2367                 $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]));
2368            },
2369            478 => static function ($self, $stackPos) {
2370                 $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]));
2371            },
2372            479 => static function ($self, $stackPos) {
2373                 $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]));
2374            },
2375            480 => static function ($self, $stackPos) {
2376                 $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]));
2377            },
2378            481 => static function ($self, $stackPos) {
2379                 $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]));
2380            },
2381            482 => static function ($self, $stackPos) {
2382                 $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]));
2383            },
2384            483 => static function ($self, $stackPos) {
2385                 $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)]);
2386            $self->checkClass($self->semValue[0], -1);
2387            },
2388            484 => static function ($self, $stackPos) {
2389                 $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]));
2390            },
2391            485 => static function ($self, $stackPos) {
2392                 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]));
2393            },
2394            486 => static function ($self, $stackPos) {
2395                 $self->semValue = new Expr\New_($self->semStack[$stackPos-(2-2)], [], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
2396            },
2397            487 => null,
2398            488 => null,
2399            489 => static function ($self, $stackPos) {
2400                 $self->semValue = array();
2401            },
2402            490 => static function ($self, $stackPos) {
2403                 $self->semValue = $self->semStack[$stackPos-(4-3)];
2404            },
2405            491 => null,
2406            492 => static function ($self, $stackPos) {
2407                 $self->semValue = array($self->semStack[$stackPos-(1-1)]);
2408            },
2409            493 => static function ($self, $stackPos) {
2410                 $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)];
2411            },
2412            494 => static function ($self, $stackPos) {
2413                 $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]));
2414            },
2415            495 => static function ($self, $stackPos) {
2416                 $self->semValue = new Name($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
2417            },
2418            496 => static function ($self, $stackPos) {
2419                 $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]));
2420            },
2421            497 => static function ($self, $stackPos) {
2422                 $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]));
2423            },
2424            498 => static function ($self, $stackPos) {
2425                 $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]));
2426            },
2427            499 => static function ($self, $stackPos) {
2428                 $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]));
2429            },
2430            500 => static function ($self, $stackPos) {
2431                 $self->semValue = new Name($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
2432            },
2433            501 => null,
2434            502 => static function ($self, $stackPos) {
2435                 $self->semValue = new Name($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
2436            },
2437            503 => static function ($self, $stackPos) {
2438                 $self->semValue = new Name($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
2439            },
2440            504 => static function ($self, $stackPos) {
2441                 $self->semValue = new Name\FullyQualified(substr($self->semStack[$stackPos-(1-1)], 1), $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
2442            },
2443            505 => static function ($self, $stackPos) {
2444                 $self->semValue = new Name\Relative(substr($self->semStack[$stackPos-(1-1)], 10), $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
2445            },
2446            506 => null,
2447            507 => null,
2448            508 => static function ($self, $stackPos) {
2449                 $self->semValue = $self->semStack[$stackPos-(3-2)];
2450            },
2451            509 => static function ($self, $stackPos) {
2452                 $self->semValue = new Expr\Error($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); $self->errorState = 2;
2453            },
2454            510 => null,
2455            511 => null,
2456            512 => static function ($self, $stackPos) {
2457                 $self->semValue = null;
2458            },
2459            513 => static function ($self, $stackPos) {
2460                 $self->semValue = $self->semStack[$stackPos-(3-2)];
2461            },
2462            514 => static function ($self, $stackPos) {
2463                 $self->semValue = array();
2464            },
2465            515 => static function ($self, $stackPos) {
2466                 $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()); } };
2467            },
2468            516 => static function ($self, $stackPos) {
2469                 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)];
2470            },
2471            517 => static function ($self, $stackPos) {
2472                 $self->semValue = array();
2473            },
2474            518 => null,
2475            519 => static function ($self, $stackPos) {
2476                 $self->semValue = new Expr\ConstFetch($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
2477            },
2478            520 => static function ($self, $stackPos) {
2479                 $self->semValue = new Scalar\MagicConst\Line($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
2480            },
2481            521 => static function ($self, $stackPos) {
2482                 $self->semValue = new Scalar\MagicConst\File($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
2483            },
2484            522 => static function ($self, $stackPos) {
2485                 $self->semValue = new Scalar\MagicConst\Dir($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
2486            },
2487            523 => static function ($self, $stackPos) {
2488                 $self->semValue = new Scalar\MagicConst\Class_($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
2489            },
2490            524 => static function ($self, $stackPos) {
2491                 $self->semValue = new Scalar\MagicConst\Trait_($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
2492            },
2493            525 => static function ($self, $stackPos) {
2494                 $self->semValue = new Scalar\MagicConst\Method($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
2495            },
2496            526 => static function ($self, $stackPos) {
2497                 $self->semValue = new Scalar\MagicConst\Function_($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
2498            },
2499            527 => static function ($self, $stackPos) {
2500                 $self->semValue = new Scalar\MagicConst\Namespace_($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
2501            },
2502            528 => static function ($self, $stackPos) {
2503                 $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]));
2504            },
2505            529 => static function ($self, $stackPos) {
2506                 $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]));
2507            },
2508            530 => static function ($self, $stackPos) {
2509                 $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;
2510            },
2511            531 => static function ($self, $stackPos) {
2512                 $attrs = $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos]); $attrs['kind'] = Expr\Array_::KIND_SHORT;
2513            $self->semValue = new Expr\Array_($self->semStack[$stackPos-(3-2)], $attrs);
2514            },
2515            532 => static function ($self, $stackPos) {
2516                 $attrs = $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos]); $attrs['kind'] = Expr\Array_::KIND_LONG;
2517            $self->semValue = new Expr\Array_($self->semStack[$stackPos-(4-3)], $attrs);
2518            $self->createdArrays->attach($self->semValue);
2519            },
2520            533 => static function ($self, $stackPos) {
2521                 $self->semValue = $self->semStack[$stackPos-(1-1)]; $self->createdArrays->attach($self->semValue);
2522            },
2523            534 => static function ($self, $stackPos) {
2524                 $self->semValue = Scalar\String_::fromString($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]), $self->phpVersion->supportsUnicodeEscapes());
2525            },
2526            535 => static function ($self, $stackPos) {
2527                 $attrs = $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos]); $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED;
2528            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);
2529            },
2530            536 => static function ($self, $stackPos) {
2531                 $self->semValue = $self->parseLNumber($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]), $self->phpVersion->allowsInvalidOctals());
2532            },
2533            537 => static function ($self, $stackPos) {
2534                 $self->semValue = Scalar\Float_::fromString($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
2535            },
2536            538 => null,
2537            539 => null,
2538            540 => null,
2539            541 => static function ($self, $stackPos) {
2540                 $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);
2541            },
2542            542 => static function ($self, $stackPos) {
2543                 $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);
2544            },
2545            543 => static function ($self, $stackPos) {
2546                 $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);
2547            },
2548            544 => static function ($self, $stackPos) {
2549                 $self->semValue = null;
2550            },
2551            545 => null,
2552            546 => null,
2553            547 => static function ($self, $stackPos) {
2554                 $self->semValue = $self->semStack[$stackPos-(3-2)];
2555            },
2556            548 => null,
2557            549 => null,
2558            550 => null,
2559            551 => null,
2560            552 => null,
2561            553 => null,
2562            554 => static function ($self, $stackPos) {
2563                 $self->semValue = $self->semStack[$stackPos-(3-2)];
2564            },
2565            555 => null,
2566            556 => null,
2567            557 => null,
2568            558 => static function ($self, $stackPos) {
2569                 $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]));
2570            },
2571            559 => static function ($self, $stackPos) {
2572                 $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]));
2573            },
2574            560 => null,
2575            561 => static function ($self, $stackPos) {
2576                 $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]));
2577            },
2578            562 => static function ($self, $stackPos) {
2579                 $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]));
2580            },
2581            563 => static function ($self, $stackPos) {
2582                 $self->semValue = null;
2583            },
2584            564 => null,
2585            565 => null,
2586            566 => null,
2587            567 => static function ($self, $stackPos) {
2588                 $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]));
2589            },
2590            568 => static function ($self, $stackPos) {
2591                 $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]));
2592            },
2593            569 => null,
2594            570 => static function ($self, $stackPos) {
2595                 $self->semValue = new Expr\Variable($self->semStack[$stackPos-(4-3)], $self->getAttributes($self->tokenStartStack[$stackPos-(4-1)], $self->tokenEndStack[$stackPos]));
2596            },
2597            571 => static function ($self, $stackPos) {
2598                 $self->semValue = new Expr\Variable($self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
2599            },
2600            572 => static function ($self, $stackPos) {
2601                 $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;
2602            },
2603            573 => static function ($self, $stackPos) {
2604                 $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;
2605            },
2606            574 => static function ($self, $stackPos) {
2607                 $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]));
2608            },
2609            575 => null,
2610            576 => static function ($self, $stackPos) {
2611                 $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]));
2612            },
2613            577 => static function ($self, $stackPos) {
2614                 $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]));
2615            },
2616            578 => static function ($self, $stackPos) {
2617                 $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]));
2618            },
2619            579 => static function ($self, $stackPos) {
2620                 $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]));
2621            },
2622            580 => static function ($self, $stackPos) {
2623                 $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]));
2624            },
2625            581 => static function ($self, $stackPos) {
2626                 $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]));
2627            },
2628            582 => null,
2629            583 => static function ($self, $stackPos) {
2630                 $self->semValue = $self->semStack[$stackPos-(3-2)];
2631            },
2632            584 => null,
2633            585 => null,
2634            586 => static function ($self, $stackPos) {
2635                 $self->semValue = $self->semStack[$stackPos-(3-2)];
2636            },
2637            587 => null,
2638            588 => static function ($self, $stackPos) {
2639                 $self->semValue = new Expr\Error($self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos])); $self->errorState = 2;
2640            },
2641            589 => static function ($self, $stackPos) {
2642                 $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);
2643            $self->postprocessList($self->semValue);
2644            },
2645            590 => static function ($self, $stackPos) {
2646                 $self->semValue = $self->semStack[$stackPos-(1-1)]; $end = count($self->semValue)-1; if ($self->semValue[$end]->value instanceof Expr\Error) array_pop($self->semValue);
2647            },
2648            591 => null,
2649            592 => static function ($self, $stackPos) {
2650                 /* do nothing -- prevent default action of $$=$self->semStack[$1]. See $551. */
2651            },
2652            593 => static function ($self, $stackPos) {
2653                 $self->semStack[$stackPos-(3-1)][] = $self->semStack[$stackPos-(3-3)]; $self->semValue = $self->semStack[$stackPos-(3-1)];
2654            },
2655            594 => static function ($self, $stackPos) {
2656                 $self->semValue = array($self->semStack[$stackPos-(1-1)]);
2657            },
2658            595 => static function ($self, $stackPos) {
2659                 $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(1-1)], null, false, $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
2660            },
2661            596 => static function ($self, $stackPos) {
2662                 $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(2-2)], null, true, $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
2663            },
2664            597 => static function ($self, $stackPos) {
2665                 $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(1-1)], null, false, $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
2666            },
2667            598 => static function ($self, $stackPos) {
2668                 $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]));
2669            },
2670            599 => static function ($self, $stackPos) {
2671                 $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]));
2672            },
2673            600 => static function ($self, $stackPos) {
2674                 $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]));
2675            },
2676            601 => static function ($self, $stackPos) {
2677                 $self->semValue = new Node\ArrayItem($self->semStack[$stackPos-(2-2)], null, false, $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]), true);
2678            },
2679            602 => static function ($self, $stackPos) {
2680                 /* Create an Error node now to remember the position. We'll later either report an error,
2681             or convert this into a null element, depending on whether this is a creation or destructuring context. */
2682          $attrs = $self->createEmptyElemAttributes($self->tokenPos);
2683          $self->semValue = new Node\ArrayItem(new Expr\Error($attrs), null, false, $attrs);
2684            },
2685            603 => static function ($self, $stackPos) {
2686                 $self->semStack[$stackPos-(2-1)][] = $self->semStack[$stackPos-(2-2)]; $self->semValue = $self->semStack[$stackPos-(2-1)];
2687            },
2688            604 => static function ($self, $stackPos) {
2689                 $self->semStack[$stackPos-(2-1)][] = $self->semStack[$stackPos-(2-2)]; $self->semValue = $self->semStack[$stackPos-(2-1)];
2690            },
2691            605 => static function ($self, $stackPos) {
2692                 $self->semValue = array($self->semStack[$stackPos-(1-1)]);
2693            },
2694            606 => static function ($self, $stackPos) {
2695                 $self->semValue = array($self->semStack[$stackPos-(2-1)], $self->semStack[$stackPos-(2-2)]);
2696            },
2697            607 => static function ($self, $stackPos) {
2698                 $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);
2699            },
2700            608 => static function ($self, $stackPos) {
2701                 $self->semValue = new Expr\Variable($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
2702            },
2703            609 => null,
2704            610 => static function ($self, $stackPos) {
2705                 $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]));
2706            },
2707            611 => static function ($self, $stackPos) {
2708                 $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]));
2709            },
2710            612 => static function ($self, $stackPos) {
2711                 $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]));
2712            },
2713            613 => static function ($self, $stackPos) {
2714                 $self->semValue = new Expr\Variable($self->semStack[$stackPos-(3-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos]));
2715            },
2716            614 => static function ($self, $stackPos) {
2717                 $self->semValue = new Expr\Variable($self->semStack[$stackPos-(3-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(3-1)], $self->tokenEndStack[$stackPos]));
2718            },
2719            615 => static function ($self, $stackPos) {
2720                 $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]));
2721            },
2722            616 => static function ($self, $stackPos) {
2723                 $self->semValue = $self->semStack[$stackPos-(3-2)];
2724            },
2725            617 => static function ($self, $stackPos) {
2726                 $self->semValue = new Scalar\String_($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
2727            },
2728            618 => static function ($self, $stackPos) {
2729                 $self->semValue = $self->parseNumString($self->semStack[$stackPos-(1-1)], $self->getAttributes($self->tokenStartStack[$stackPos-(1-1)], $self->tokenEndStack[$stackPos]));
2730            },
2731            619 => static function ($self, $stackPos) {
2732                 $self->semValue = $self->parseNumString('-' . $self->semStack[$stackPos-(2-2)], $self->getAttributes($self->tokenStartStack[$stackPos-(2-1)], $self->tokenEndStack[$stackPos]));
2733            },
2734            620 => null,
2735        ];
2736    }
2737}
2738