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