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