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