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