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