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