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