Security update for Core, with self-updated composer
[yaffs-website] / vendor / nikic / php-parser / lib / PhpParser / Parser / Php7.php
index b7a63c39eb05905458baa6d9805fa4920d703bf5..591bd61fc99da7c8a1574e6c3dbcfeabd690b5db 100644 (file)
@@ -18,7 +18,7 @@ use PhpParser\Node\Stmt;
 class Php7 extends \PhpParser\ParserAbstract
 {
     protected $tokenToSymbolMapSize = 392;
-    protected $actionTableSize = 891;
+    protected $actionTableSize = 915;
     protected $gotoTableSize = 429;
 
     protected $invalidSymbol = 157;
@@ -26,8 +26,8 @@ class Php7 extends \PhpParser\ParserAbstract
     protected $defaultAction = -32766;
     protected $unexpectedTokenRule = 32767;
 
-    protected $YY2TBLSTATE  = 328;
-    protected $YYNLSTATES   = 576;
+    protected $YY2TBLSTATE  = 330;
+    protected $YYNLSTATES   = 578;
 
     protected $symbolToName = array(
         "EOF",
@@ -233,472 +233,476 @@ class Php7 extends \PhpParser\ParserAbstract
     );
 
     protected $action = array(
-          581,  582,  583,  584,  585,    0,  586,  587,  588,  624,
-          625,  477,   27,   99,  100,  101,  102,  103,  104,  105,
-          106,  107,  108,  109,  110,-32766,-32766,-32766,   95,   96,
-           97,  361,  239,  263, -280,-32766,-32766,-32766, -486, -485,
-         1077,  542, 1080, 1078,   98,-32766,  272,-32766,-32766,-32766,
-        -32766,-32766,  589,  897,  899,-32766,-32766,-32766,-32766,-32766,
-        -32766,-32766,-32766,  240,-32766,  662,  590,  591,  592,  593,
-          594,  595,  596,-32766,  289,  656,  865,  866,  867,  864,
-          863,  862,  597,  598,  599,  600,  601,  602,  603,  604,
-          605,  606,  607,  627,  628,  629,  630,  631,  619,  620,
-          621,  622,  623,  608,  609,  610,  611,  612,  613,  614,
-          650,  651,  652,  653,  654,  655,  615,  616,  617,  618,
-          648,  639,  637,  638,  634,  635,  215,  626,  632,  633,
-          640,  641,  643,  642,  644,  645,   42,   43,  390,   44,
-           45,  636,  647,  646,  224,   46,   47,  980,   48,-32767,
-        -32767,-32767,-32767,   90,   91,   92,   93,   94,  258,  440,
-           22,  865,  866,  867,  864,  863,  862,  857,-32766,-32766,
-        -32766, 1069, 1030, 1030, 1068, 1047,  996,  293, -441,  246,
-          287,   49,   50, -486, -485, -486, -485,   51,-32766,   52,
-          219,  220,   53,   54,   55,   56,   57,   58,   59,   60,
-          125,   22,  232,   61,  345,  973,-32766,-32766,-32766,  997,
-          998,  658,  661, 1030,   28, -475, 1010,  996,-32766,-32766,
-        -32766,  735,  407,  408,  246, 1030,-32766,  246,-32766,-32766,
-        -32766,-32766,   25,  222,  373,  385,  349,  226,-32766, -441,
-        -32766,-32766,-32766, 1033,   65,  342,  416,  216,   41,  264,
-          264, 1044,    7, -441,  403,  404,  120,   21,  973,   24,
-         -441,  820, -444,  407,  408, -225, 1002, 1003, 1004, 1005,
-          999, 1000,  243,  116, -440, -439,  265,  417, 1006, 1001,
-          347,  814,  815, 1074,  992,   63,  369,  255,  362,  260,
-          264,  391, -131, -131, -131,   -4,  735,  392,  658,  224,
-         -439,  725,  264,  -88,   32,   17,  393, -131,  394, -131,
-          395, -131,  396, -131,  128,  397, -131, -131, -131,   34,
-           35,  398,  346,  122,   36,  399,  814,  815,   62,  814,
-          815,  286,  288,  400,  401, -440, -439,  465, -249,  402,
-           38,   40,  711,  756,  405,  406, -170,   22, -230, -440,
-         -439,-32766,-32766,-32766,  374, -171, -440, -439, -443, 1030,
-         -475, -439, 1030,  996,  417, -477,  391,  347,  737,  547,
-         -131,-32766,  392,-32766,-32766, -439,  725,  676,  677,   32,
-           17,  393, -439,  394,  276,  395,  357,  396,  787,  549,
-          397,   71,  973, 1048,   34,   35,  398,  346,  335,   36,
-          399,  247,  248,   62,  254,  735,  286,  288,  400,  401,
-          408,  120,  131,  530,  402,  980,  306,  668,  756,  405,
-          406,  337,  113,  115,-32766,-32766,   72,   73,   74,  242,
-          529,   65,  121,  553,  502,   18,  264,  126,  274,  264,
-        -32766,-32766,-32766,  737,  547,   -4,   26,  749,   75,   76,
-           77,   78,   79,   80,   81,   82,   83,   84,   85,   86,
-           87,   88,   89,   90,   91,   92,   93,   94,   95,   96,
-           97,  111,  239,  118,  735,  391,   92,   93,   94,  531,
-          112,  392,  347, -249,   98,  725,  843,  124,   32,   17,
-          393, -170,  394, 1030,  395,  130,  396,  515,  516,  397,
-         -171,  117,  554,   34,   35,  398,  735,  788,   36,  399,
-         -477,  734,   62,  383,    6,  286,  288,-32766,-32766,-32766,
-          127,  311,  114,  402,  676,  677,  973,  495,  496,  814,
-          815,  854,  565,  119,  552,  842,  575,  343,  223,  564,
-          559,  221,  225,  239,  391,   98,  658,  439,   39,  525,
-          392,  659,  773,  547,  725,  435,  969,   32,   17,  393,
-          358,  394,  356,  395,  299,  396,  319,  692,  397, 1072,
-          264,  451,   34,   35,  398,  735,  391,   36,  399,  453,
-          511,   62,  392,  449,  286,  288,  725,  499,  540,   32,
-           17,  393,  402,  394,  438,  395, 1079,  396,  354,  444,
-          397,-32766,  493,  551,   34,   35,  398,  735,  503,   36,
-          399,  526,  -80,   62,  757,  507,  286,  288,  214,  456,
-           10,  737,  547,  519,  402,  508,  973,  257,   15,    0,
-          338,    0,    0,  259, 1009,  560,  758, 1012,  262,    0,
-            0,    0,    0,    0,    0,  391,    0,    0,    0,    0,
-            0,  392,    0,  737,  547,  725,  227,  256,   32,   17,
-          393,    0,  394,    0,  395,    0,  396,    0,    0,  397,
-            3,    0,    9,   34,   35,  398,  735,  391,   36,  399,
-          305, -398,   62,  392,  751,  286,  288,  725,   22,  339,
-           32,   17,  393,  402,  394,  327,  395,  324,  396,  316,
-         1030,  397,  323,  357,  996,   34,   35,  398,  446,  771,
-           36,  399,   31,  573,   62,  574,  716,  286,  288,  838,
-          848,  790,  737,  547,   30,  402,  847,  850,  849,  846,
-          769,  774,  714,  973,  782,  839,  781,   19,  548,  333,
-          550,  555,  557,  558,  270,  271,  391,  332,  571,  570,
-          407,  408,  392,  568,  737,  547,  725,  566,  563,   32,
-           17,  393,  562,  394,  755,  395,  754,  396,  753,  961,
-          397, -442,   65,  855,   34,   35,  398,  264,  742,   36,
-          399,  960,  959,   62,  752,  744,  286,  288,-32766,-32766,
-        -32766,  679, 1075,  678,  402,  681,  680,  670,  671,  780,
-          567,  712, 1076,  779, 1045, 1042, 1037, 1024,-32766, 1031,
-        -32766,-32766,-32766,-32766,-32766,-32766,-32767,-32767,-32767,-32767,
-        -32767, 1073,  250,  737,  547, -465,  953, -444, -443,   20,
-           23,   29,   33,   37,   64,  336,  334,  273,  238,  237,
-          236,  235,  218,  217,  132,  129,  123,   70,   69,   68,
-           67,   66, -467,    0,  308,  473,  937,  489,  539, -228,
-          940,   11,  965,  821,  994,  936,  984,  536,  388,  -88,
-          381,  378,  375,  309,   16,   14,   13,   12, -225, -226,
-            0, -410,    0,  993,  501, 1071, 1036, 1023, 1022,    0,
-         1011
+          583,  584,  585,  586,  587, 1037,  588,  589,  590,  626,
+          627,  479,   29,  101,  102,  103,  104,  105,  106,  107,
+          108,  109,  110,  111,  112,-32766,-32766,-32766,   97,   98,
+           99,    0,  241,  387, -282,-32766,-32766,-32766,-32766, -487,
+         1081,  544, 1084, 1082,  100,-32766,  664,-32766,-32766,-32766,
+        -32766,-32766,  591,  901,  903,-32766,   30,-32766,-32766,-32766,
+        -32766,-32766,-32766, 1034,-32766,  295,  592,  593,  594,  595,
+          596,  597,  598,-32766,  274,  658,  869,  870,  871,  868,
+          867,  866,  599,  600,  601,  602,  603,  604,  605,  606,
+          607,  608,  609,  629,  630,  631,  632,  633,  621,  622,
+          623,  624,  625,  610,  611,  612,  613,  614,  615,  616,
+          652,  653,  654,  655,  656,  657,  617,  618,  619,  620,
+          650,  641,  639,  640,  636,  637, -251,  628,  634,  635,
+          642,  643,  645,  644,  646,  647,   74,   75,   76,  556,
+          266,  638,  649,  648,  739,   44,   45,  392,   46,   47,
+          375,  680,  681,   73,   48,   49,   28,   50,   77,   78,
+           79,   80,   81,   82,   83,   84,   85,   86,   87,   88,
+           89,   90,   91,   92,   93,   94,   95,   96,   97,   98,
+           99,  218,  241,  996, -487, -443, -487,-32766,-32766,-32766,
+           51,   52,  116,  663,  100,  339,   53,  242,   54,  221,
+          222,   55,   56,   57,   58,   59,   60,   61,   62, -173,
+           24,  234,   63,  347,  393,-32766,-32766,-32766, 1001, 1002,
+          394,  228, 1034,  217,  729,-32766, 1000,   34,   19,  395,
+         1051,  396,  127,  397,  118,  398, -442,   24,  399,  984,
+           43,  267,   36,   37,  400,  351, -443,   38,  401, 1034,
+          248,   64,  289, 1000,  288,  290,  248,-32766,  741,  226,
+         -443, 1034,  404,  405,  406,  442,  291, -443,  371, -446,
+          376, -251,  409,  410,   26, 1006, 1007, 1008, 1009, 1003,
+         1004,  245,  977,-32766,-32766,-32766,  419, 1010, 1005,  349,
+         -488,  226,  549,  278,   65,-32766,  257, -442,  262,  266,
+          410,  660,  467,-32766, 1073,-32766, 1048, 1072,-32766,-32766,
+        -32766, -442,-32766,-32766,-32766, 1078,-32766, 1034, -442,-32766,
+         -445,   67, 1014,-32766,-32766,-32766,  266,-32766,-32766,-32766,
+         -479,  123,-32766,  660, -172,-32766,  418,-32766,  266,  531,
+        -32766,-32766,-32766,-32766,-32766,-32766,-32766,  223,-32766,  560,
+          977,-32766,  818,  819, -173,-32766,-32766,-32766,  818,  819,
+        -32766,-32766, -227,  561,-32766,   27,  224,-32766,  418,-32766,
+        -32766,  122, -441,-32766, -232,-32766,  824,   40,  124,  227,
+          -88,  791,  265,-32766,  984, 1052,-32766,-32766,-32766,  660,
+           94,   95,   96,-32766,  266,  364,-32766,-32766,-32766,   42,
+        -32766,  553,-32766,  122,-32766,-32766,-32766,-32766,-32766,-32766,
+        -32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766,  363,  532,
+        -32766,  660,  554,-32766,  418,-32766, -477,    9,-32766,-32766,
+        -32766,-32766,-32766, -441,-32766, -488,-32766, -488,  249,-32766,
+          248,  660,  121,-32766,-32766,-32766,-32766, -441,-32766,-32766,
+          359,  555,-32766,  551, -441,-32766,  418,  517,  518,  115,
+          250,-32766, 1034,-32766,-32767,-32767,-32767,-32767,   92,   93,
+           94,   95,   96,   23,  308, -479,  504,   20,  344, -172,
+          225,  117,  741,  126,-32766,  533, -441,  564,  349,-32766,
+          660,  133,  847,-32766,-32766,  977,  120,-32766,-32766,-32766,
+          792,-32766,  119,-32766,  114,-32766,  345,  419,-32766,  113,
+          349,  130,-32766,-32766,-32766,  132,-32766,-32766,-32766,  738,
+          741,-32766,  660,  241,-32766,  418,-32766,  244,-32766,-32766,
+        -32766,-32766,-32766,-32766,  128,-32766,  753,-32766,  527,  266,
+        -32766,  741,  818,  819,-32766,-32766,-32766, -441,  100,-32766,
+        -32766,  129,  313,-32766,  680,  681,-32766,  418,   41,-32766,
+          660, -441,-32766,  453,-32766,  660,  321,-32766, -441,-32766,
+          777, -477,-32766,-32766,-32766, 1083,-32766,  261,-32766,  441,
+        -32766,  385,    8,-32766,  437,   24,  360,-32766,-32766,-32766,
+          497,  498,-32766,-32766,-32766,  501,-32766, 1034,-32766,-32766,
+          418, 1000,  818,  819,  660,  846,  575,-32766,-32766,  358,
+           -4,-32766,-32766,-32766,  301,-32766, 1076,-32766,  661,-32766,
+          455,  696,-32766,  858,  565,  513,-32766,-32766,-32766,  440,
+          977,-32766,-32766,  973,  446,-32766,  505,-32766,-32766,  418,
+         -133, -133, -133,-32766,-32766,-32766,-32766,  409,  410,  451,
+          542,  528,  509,  521,  510, -133,   12, -133,  -80, -133,
+          216, -133,  495,-32766,  458,-32766,-32766,-32766,-32766,   67,
+          348,  356,  259,  258,  266, 1016,-32766,-32766,-32766,-32766,
+          260,  402,  403,  869,  870,  871,  868,  867,  866,  861,
+          715,  760,  407,  408,  977,  761,  762,-32766,   11,-32766,
+        -32766,-32766,-32766,-32766,-32766,-32767,-32767,-32767,-32767,-32767,
+          264,  229,  348,  337, 1013,  852,  741,   17, -133,  256,
+         -212, -212, -212,  402,  403, -400,  348,    5,  307,  775,
+          758,   21,  672,  760,  407,  408,  329,  402,  403, -211,
+         -211, -211,  448,   24,  326,  348,  715,  760,  407,  408,
+          341,  340,  318,  276,  325, 1034,  402,  403,  741, 1000,
+           -4,-32766,-32766,-32766,  359,  715,  760,  407,  408,  755,
+          552,   33,  741,  573, -212,  574,  720,  842,  794,  778,
+           32,-32766,  851,-32766,-32766,  854,  853,  850,  977,  773,
+          785,  741,  718, -211,  786,  843,  741,  252,  334,  550,
+          557,  558,  559,  562,  272,  409,  410,  273,  571,  570,
+          568,  566,  563,  335,    0,  757,  965,  783,  859,    0,
+          746,  964,  963,  756,  748,  683,    0,   67, 1079,  682,
+          685,  784,  266,  567,  716, 1080,  675,  674,  684,  759,
+         1049, 1046, 1041, 1077, 1035, 1028,    0, -444, -467, -446,
+         -445,   22,   25,   31,   35,   39,   66,  338,  336,  275,
+          240,  239,  238,  237,  220,  219,  134,  131,  125,   72,
+           71,   70,   69,   68, -469,    0,  310,  475,  941,  491,
+          541,  944,   13,  969,  825,  998,  940,  988, -230,  -88,
+          538,  390,  383,  380,  377,  311,   18,   16,   15,   14,
+         -227, -228,    0,  957, -412,    0,  503,    0, 1040, 1075,
+         1026, 1027,  997,    0, 1015
     );
 
     protected $actionCheck = array(
-            2,    3,    4,    5,    6,    0,    8,    9,   10,   11,
+            2,    3,    4,    5,    6,    1,    8,    9,   10,   11,
            12,   48,   15,   16,   17,   18,   19,   20,   21,   22,
            23,   24,   25,   26,   27,    8,    9,   10,   50,   51,
-           52,    7,   54,    7,   79,    8,    9,   10,    7,    7,
-           77,   77,   79,   80,   66,   28,    7,   30,   31,   32,
-           33,   34,   54,   56,   57,   28,    8,   30,   31,   32,
-           33,   34,   35,    7,  109,    1,   68,   69,   70,   71,
+           52,    0,   54,    7,   79,    8,    9,   10,    8,    7,
+           77,   77,   79,   80,   66,   28,    1,   30,   31,   32,
+           33,   34,   54,   56,   57,   28,   13,   30,   31,   32,
+           33,   34,   35,   79,  109,    7,   68,   69,   70,   71,
            72,   73,   74,  118,    7,   77,  112,  113,  114,  115,
           116,  117,   84,   85,   86,   87,   88,   89,   90,   91,
            92,   93,   94,   95,   96,   97,   98,   99,  100,  101,
           102,  103,  104,  105,  106,  107,  108,  109,  110,  111,
           112,  113,  114,  115,  116,  117,  118,  119,  120,  121,
-          122,  123,  124,  125,  126,  127,   13,  129,  130,  131,
-          132,  133,  134,  135,  136,  137,    2,    3,    4,    5,
-            6,  143,  144,  145,   35,   11,   12,    1,   14,   41,
-           42,   43,   44,   45,   46,   47,   48,   49,  109,   82,
-           67,  112,  113,  114,  115,  116,  117,  118,    8,    9,
-           10,   79,   79,   79,   82,    1,   83,    7,   67,   28,
-            7,   47,   48,  152,  152,  154,  154,   53,   28,   55,
-           56,   57,   58,   59,   60,   61,   62,   63,   64,   65,
-           67,   67,   68,   69,   70,  112,    8,    9,   10,   75,
-           76,   77,  148,   79,   13,    7,  139,   83,    8,    9,
-           10,    1,  129,  130,   28,   79,   28,   28,   30,   31,
-           32,   33,  140,  141,   29,    7,  102,    7,   28,  128,
-           30,   31,   32,    1,  151,    7,  112,   13,    7,  156,
-          156,   77,    7,  142,  120,  121,  147,    7,  112,    7,
-          149,  152,  151,  129,  130,  152,  132,  133,  134,  135,
-          136,  137,  138,    7,   67,   67,   67,  143,  144,  145,
-          146,  130,  131,  150,    1,  151,    7,  153,    7,  155,
-          156,   71,   72,   73,   74,    0,    1,   77,   77,   35,
-           67,   81,  156,  152,   84,   85,   86,   87,   88,   89,
-           90,   91,   92,   93,   15,   95,   96,   97,   98,   99,
-          100,  101,  102,  149,  104,  105,  130,  131,  108,  130,
-          131,  111,  112,  113,  114,  128,  128,  128,    7,  119,
-           67,   67,  122,  123,  124,  125,    7,   67,  152,  142,
-          142,    8,    9,   10,  149,    7,  149,  149,  151,   79,
-          152,  128,   79,   83,  143,    7,   71,  146,  148,  149,
-          150,   28,   77,   30,   31,  142,   81,  102,  103,   84,
-           85,   86,  149,   88,   33,   90,  146,   92,   29,  149,
-           95,  149,  112,  152,   99,  100,  101,  102,  103,  104,
-          105,  128,  128,  108,  109,    1,  111,  112,  113,  114,
-          130,  147,   15,   77,  119,    1,  142,  122,  123,  124,
-          125,  146,  149,  149,    8,    9,    8,    9,   10,   29,
-           79,  151,  149,   29,   72,   73,  156,   29,  143,  156,
-            8,    9,   10,  148,  149,  150,   28,   35,   30,   31,
+          122,  123,  124,  125,  126,  127,    7,  129,  130,  131,
+          132,  133,  134,  135,  136,  137,    8,    9,   10,   29,
+          156,  143,  144,  145,    1,    2,    3,    4,    5,    6,
+           29,  102,  103,  149,   11,   12,   28,   14,   30,   31,
            32,   33,   34,   35,   36,   37,   38,   39,   40,   41,
            42,   43,   44,   45,   46,   47,   48,   49,   50,   51,
-           52,   15,   54,   15,    1,   71,   47,   48,   49,  143,
-           15,   77,  146,  152,   66,   81,  150,   15,   84,   85,
-           86,  152,   88,   79,   90,   15,   92,   72,   73,   95,
-          152,   15,   29,   99,  100,  101,    1,  148,  104,  105,
-          152,   29,  108,  102,  103,  111,  112,    8,    9,   10,
-           97,   98,   13,  119,  102,  103,  112,  106,  107,  130,
-          131,  148,  149,   29,   29,  148,  149,  123,   35,   29,
-           29,   35,   35,   54,   71,   66,   77,   77,   67,   74,
-           77,   77,  148,  149,   81,   77,   79,   84,   85,   86,
-           77,   88,   77,   90,   77,   92,   78,   77,   95,   77,
-          156,   77,   99,  100,  101,    1,   71,  104,  105,   77,
-           79,  108,   77,   86,  111,  112,   81,   79,   89,   84,
-           85,   86,  119,   88,   79,   90,   80,   92,  102,   82,
-           95,   82,  109,   29,   99,  100,  101,    1,   87,  104,
-          105,   91,   94,  108,  123,   93,  111,  112,   94,   94,
-           94,  148,  149,   96,  119,   96,  112,  127,  152,   -1,
-          146,   -1,   -1,  110,  139,   29,  123,  139,  126,   -1,
-           -1,   -1,   -1,   -1,   -1,   71,   -1,   -1,   -1,   -1,
-           -1,   77,   -1,  148,  149,   81,   35,  126,   84,   85,
-           86,   -1,   88,   -1,   90,   -1,   92,   -1,   -1,   95,
-          142,   -1,  142,   99,  100,  101,    1,   71,  104,  105,
-          142,  142,  108,   77,  147,  111,  112,   81,   67,  146,
-           84,   85,   86,  119,   88,  146,   90,  146,   92,  146,
-           79,   95,  146,  146,   83,   99,  100,  101,  146,  148,
-          104,  105,  148,  148,  108,  148,  148,  111,  112,  148,
-          148,  148,  148,  149,  148,  119,  148,  148,  148,  148,
-          148,  148,  148,  112,  148,  148,  148,  152,  149,  149,
-          149,  149,  149,  149,  149,  149,   71,  149,  149,  149,
-          129,  130,   77,  149,  148,  149,   81,  149,  149,   84,
-           85,   86,  149,   88,  150,   90,  150,   92,  150,  150,
-           95,  151,  151,  150,   99,  100,  101,  156,  150,  104,
-          105,  150,  150,  108,  150,  150,  111,  112,    8,    9,
-           10,  150,  150,  150,  119,  150,  150,  150,  150,  150,
-          150,  150,  150,  150,  150,  150,  150,  150,   28,  150,
-           30,   31,   32,   33,   34,   35,   36,   37,   38,   39,
-           40,  150,  152,  148,  149,  151,  153,  151,  151,  151,
+           52,   13,   54,    1,  152,   67,  154,    8,    9,   10,
+           47,   48,   13,  148,   66,  146,   53,    7,   55,   56,
+           57,   58,   59,   60,   61,   62,   63,   64,   65,    7,
+           67,   68,   69,   70,   71,    8,    9,   10,   75,   76,
+           77,    7,   79,   13,   81,    1,   83,   84,   85,   86,
+            1,   88,   67,   90,    7,   92,   67,   67,   95,    1,
+            7,   67,   99,  100,  101,  102,  128,  104,  105,   79,
+           28,  108,    7,   83,  111,  112,   28,    1,  148,   35,
+          142,   79,  119,  120,  121,   82,    7,  149,    7,  151,
+          149,  152,  129,  130,    7,  132,  133,  134,  135,  136,
+          137,  138,  112,    8,    9,   10,  143,  144,  145,  146,
+            7,   35,  149,   33,  151,   71,  153,  128,  155,  156,
+          130,   77,  128,   28,   79,   81,   77,   82,   84,   85,
+           86,  142,   88,    1,   90,  150,   92,   79,  149,   95,
+          151,  151,  139,   99,  100,  101,  156,   71,  104,  105,
+            7,  149,  108,   77,    7,  111,  112,   81,  156,   79,
+           84,   85,   86,  119,   88,    1,   90,   35,   92,   29,
+          112,   95,  130,  131,  152,   99,  100,  101,  130,  131,
+          104,  105,  152,   29,  108,  140,  141,  111,  112,    8,
+            9,  147,   67,  149,  152,  119,  152,   67,  149,   35,
+          152,   29,    7,   71,    1,  152,    8,    9,   10,   77,
+           47,   48,   49,   81,  156,    7,   84,   85,   86,   67,
+           88,   29,   90,  147,   92,  149,   28,   95,   30,   31,
+           32,   99,  100,  101,    1,   71,  104,  105,    7,   77,
+          108,   77,   29,  111,  112,   81,    7,    7,   84,   85,
+           86,  119,   88,  128,   90,  152,   92,  154,  128,   95,
+           28,   77,   29,   99,  100,  101,    1,  142,  104,  105,
+          146,   29,  108,  149,  149,  111,  112,   72,   73,  149,
+          128,  149,   79,  119,   41,   42,   43,   44,   45,   46,
+           47,   48,   49,    7,  142,  152,   72,   73,    7,  152,
+           35,  149,  148,   15,   71,  143,   67,   29,  146,    1,
+           77,   15,  150,  149,   81,  112,   15,   84,   85,   86,
+          148,   88,   15,   90,   15,   92,  123,  143,   95,   15,
+          146,   15,   99,  100,  101,   15,   71,  104,  105,   29,
+          148,  108,   77,   54,  111,  112,   81,   29,    1,   84,
+           85,   86,  119,   88,   29,   90,   35,   92,   74,  156,
+           95,  148,  130,  131,   99,  100,  101,  128,   66,  104,
+          105,   97,   98,  108,  102,  103,  111,  112,   67,   71,
+           77,  142,  149,   77,  119,   77,   78,   82,  149,   81,
+          148,  152,   84,   85,   86,   80,   88,  110,   90,   77,
+           92,  102,  103,   95,   77,   67,   77,   99,  100,  101,
+          106,  107,  104,  105,  149,   79,  108,   79,   71,  111,
+          112,   83,  130,  131,   77,  148,  149,  119,   81,   77,
+            0,   84,   85,   86,   77,   88,   77,   90,   77,   92,
+           77,   77,   95,  148,  149,   79,   99,  100,  101,   79,
+          112,  104,  105,   79,   82,  108,   87,  149,  111,  112,
+           72,   73,   74,    8,    9,   10,  119,  129,  130,   86,
+           89,   91,   93,   96,   96,   87,   94,   89,   94,   91,
+           94,   93,  109,   28,   94,   30,   31,   32,   33,  151,
+          102,  102,  127,  126,  156,  139,  149,    8,    9,   10,
+          109,  113,  114,  112,  113,  114,  115,  116,  117,  118,
+          122,  123,  124,  125,  112,  123,  123,   28,  142,   30,
+           31,   32,   33,   34,   35,   36,   37,   38,   39,   40,
+          126,   35,  102,  103,  139,  148,  148,  152,  150,  109,
+           96,   97,   98,  113,  114,  142,  102,  142,  142,  148,
+          150,  152,  122,  123,  124,  125,  146,  113,  114,   96,
+           97,   98,  146,   67,  146,  102,  122,  123,  124,  125,
+          146,  146,  146,  143,  146,   79,  113,  114,  148,   83,
+          150,    8,    9,   10,  146,  122,  123,  124,  125,  147,
+          149,  148,  148,  148,  150,  148,  148,  148,  148,  148,
+          148,   28,  148,   30,   31,  148,  148,  148,  112,  148,
+          148,  148,  148,  150,  148,  148,  148,  152,  149,  149,
+          149,  149,  149,  149,  149,  129,  130,  149,  149,  149,
+          149,  149,  149,  149,   -1,  150,  150,  150,  150,   -1,
+          150,  150,  150,  150,  150,  150,   -1,  151,  150,  150,
+          150,  150,  156,  150,  150,  150,  150,  150,  150,  150,
+          150,  150,  150,  150,  150,  150,   -1,  151,  151,  151,
           151,  151,  151,  151,  151,  151,  151,  151,  151,  151,
           151,  151,  151,  151,  151,  151,  151,  151,  151,  151,
-          151,  151,  151,   -1,  152,  152,  152,  152,  152,  152,
+          151,  151,  151,  151,  151,   -1,  152,  152,  152,  152,
           152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
           152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
-           -1,  153,   -1,  154,  154,  154,  154,  154,  154,   -1,
-          155
+          152,  152,   -1,  153,  153,   -1,  154,   -1,  154,  154,
+          154,  154,  154,   -1,  155
     );
 
     protected $actionBase = array(
-            0,  220,  295,  283,  336,  572,   -2,   -2,   -2,   -2,
-          -36,  505,  473,  606,  473,  574,  404,  675,  675,  675,
-          109,  264,  506,  506,  506,  488,  504,  503,  507,  134,
-          134,  134,  134,  134,  134,  134,  134,  134,  134,  134,
-          134,  134,  134,  134,  134,  134,  134,  134,  134,  134,
-          134,  134,  134,  134,  134,  134,  134,  134,  134,  134,
-          134,  134,  134,  134,  134,  134,  134,  134,  134,  134,
-          134,  134,  134,  134,  134,  134,  134,  134,  134,  134,
-          134,  134,  134,  134,  134,  134,  134,  134,  134,  134,
-          134,  134,  134,  134,  134,  134,  134,  134,  134,  134,
-          134,  134,  134,  134,  134,  134,  134,  134,  134,  134,
-          134,  134,  134,  134,  134,  134,  134,  134,  134,  134,
-          134,  134,  134,  134,  134,  134,  134,  134,  134,  134,
-          134,  134,  134,   64,   64,  359,  201,  670,  708,  703,
-          476,  709,  524,  702,  704,  234,  671,  659,  408,  657,
-          656,  655,  654,  705,  730,  585,  706,  418,  418,  418,
-          418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
-          418,  418,  418,   48,  509,  416,  432,  432,  432,  432,
-          432,  432,  432,  432,  432,  432,  432,  432,  432,  432,
-          432,  432,  432,  432,  432,  160,  160,  160,  343,  210,
-          208,  198,   17,  233,   27,  780,  780,  780,  780,  780,
-          108,  108,  108,  108,  621,  621,   93,  280,  280,  280,
-          280,  280,  280,  280,  280,  280,  280,  280,  614,  616,
-          618,  619,  414,  429,  429,  196,  196,  196,  196,  146,
-          151,  -45,  199,   77,  498,  735,  399,  174,  174,  111,
-          207,  -22,  -22,  -22,  275,  517,  514,  514,  514,  514,
-           92,   92,  514,  514,  242,  -37,  233,  233,  274,  233,
-          422,  422,  422,  221,  240,  519,  221,  591,  529,  653,
-          527,  649,  273,   31,   32,  484,   94,  543,  496,   94,
-          421,  362,  425,  717,   64,  539,   64,   64,   64,   64,
-           64,   64,   64,   64,   64,   94,   94,   64,  205,   64,
-          387,  359,  383,  489,  502,  209,  595,  339,  241,  133,
-          489,  489,  489,  596,  598,  331,  113,  590,  348,  411,
-          358,  351,  469,  469,  412,  478,  494,  469,  469,  469,
-          469,  508,  469,  678,  678,  682,  412,  469,  678,  412,
-          266,   24,  173,   67,  412,  281,  531,  469,  512,  512,
-          279,  478,  515,  230,  250,  500,  678,  678,  500,  494,
-           56,  412,   26,  565,  567,  493,  537,   39,  400,  400,
-          238,  493,  228,  412,  400,  508,  245,  170,  400,    5,
-          683,  700,  482,  699,  680,  698,  684,  697,  487,  589,
-          491,  513,  692,  691,  696,  470,  485,  681,  679,  562,
-          483,  456,  465,  528,  481,  620,  496,  557,  479,  479,
-          479,  481,  676,  479,  479,  479,  479,  479,  479,  479,
-          479,  729,  252,  538,  497,  486,  553,  525,  458,  608,
-          495,  562,  562,  651,  728,  673,  474,  690,  714,  695,
-          576,  472,  722,  689,  650,  556,  490,  551,  688,  721,
-          713,  604,  456,  712,  652,  492,  562,  648,  479,  674,
-          701,  734,  733,  677,  732,  720,  549,  516,  731,  647,
-          711,  600,  599,  564,  725,  707,  719,  646,  718,  568,
-          521,  727,  522,  685,  501,  686,  592,  645,  643,  299,
-          571,  642,  694,  573,  724,  723,  726,  583,  588,  593,
-          594,  480,  641,  397,  587,  693,  511,  475,  520,  586,
-          477,  710,  635,  613,  687,  584,  561,  634,  632,  715,
-          518,  557,  530,  523,  526,  499,  609,  631,  716,  510,
-          582,  581,  580,  579,  628,  578,  623,    0,    0,    0,
-            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-            0,    0,    0,    0,    0,    0,    0,  134,  134,   -2,
-           -2,   -2,    0,    0,    0,    0,   -2,  134,  134,  134,
-          134,  134,  134,  134,  134,  134,  134,  134,  134,  134,
-          134,  134,  134,  134,  134,    0,    0,    0,    0,    0,
-            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+            0,  568,  610,  624,  643,  182,  342,  567,   -2,   -2,
+           -2,   -2,  -36,  393,  110,  334,  110,  372,  422,  648,
+          648,  648,  224,  256,  312,  312,  312,  488,  413,  445,
+          344,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+          527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+          527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+          527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+          527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+          527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+          527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+          527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+          527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+          527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+          527,  527,  527,  527,  527,   45,   45,  352,   43,  645,
+          729,  725,  565,  730,  566,  724,  726,  168,  693,  694,
+          505,  695,  692,  691,  690,  727,  752,  579,  728,  128,
+          128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
+          128,  128,  128,  128,  128,   30,  179,  361,  207,  207,
+          207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
+          207,  207,  207,  207,  207,  207,  207,  275,  275,  275,
+          753,  378,  419,  635,   17,  305,   27,  669,  669,  669,
+          669,  669,  423,  423,  423,  423,  676,  676,  518,  170,
+          170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+          689,  580,  665,  666,  383,  343,  343,  222,  222,  222,
+          222,  238,  228,  -45,  412,  183,  536,  759,  472,  229,
+          229,  118,  169,  -22,  -22,  -22,   49,  552,  582,  582,
+          582,  582,  225,  225,  582,  582,    4,  -37,  305,  305,
+          332,  305,  452,  452,  452,  364,  304,  485,  364,  621,
+          558,  667,  557,  681,  310,  283,   32,  605,  -16,  604,
+          569,  -16,  484,  404,  385,  737,   45,  583,   45,   45,
+           45,   45,   45,   45,   45,   45,   45,  -16,  -16,   45,
+          121,   45,  457,  352,  475,  469,  543,  174,  655,  327,
+          233,  165,  469,  469,  469,  658,  649,  119,  210,  664,
+          202,  479,  323,  260,  483,  483,  501,  507,  486,  483,
+          483,  483,  483,  516,  483,  700,  700,  704,  501,  483,
+          700,  501,  227,  411,  245,  259,  501,  388,  547,  483,
+          584,  584,  261,  507,  550,  214,  466,  545,  700,  700,
+          545,  486,  190,  501,  375,  625,  627,  553,  622,   67,
+          498,  498,  471,  553,   26,  501,  498,  516,  420,   58,
+          498,   31,  705,  722,  490,  721,  702,  720,  706,  719,
+          537,  650,  572,  573,  714,  713,  718,  502,  532,  703,
+          701,  596,  509,  494,  489,  585,  491,  696,  569,  618,
+          482,  482,  482,  491,  698,  482,  482,  482,  482,  482,
+          482,  482,  482,  758,  267,  586,  563,  487,  606,  570,
+          481,  662,  575,  596,  596,  684,  751,  750,  541,  712,
+          735,  717,  632,  468,  744,  711,  683,  608,  544,  598,
+          710,  743,  734,  661,  494,  733,  685,  539,  596,  686,
+          482,  697,  723,  756,  757,  699,  754,  742,  590,  495,
+          755,  687,  732,  660,  659,  623,  747,  736,  741,  688,
+          740,  628,  549,  749,  559,  707,  546,  708,  651,  680,
+          679,  496,  629,  678,  716,  630,  746,  745,  748,  631,
+          642,  652,  653,  500,  675,  476,  647,  715,  320,  464,
+          560,  646,  554,  731,  674,  654,  709,  644,  581,  673,
+          672,  738,  564,  618,  556,  467,  562,  561,  663,  671,
+          739,  458,  641,  639,  638,  637,  670,  634,  668,    0,
             0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
             0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+            0,    0,    0,    0,    0,    0,    0,    0,    0,  143,
+          143,  143,  143,   -2,   -2,   -2,    0,    0,    0,    0,
+           -2,  143,  143,  143,  143,  143,  143,  143,  143,  143,
+          143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
+          143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
+          143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
+          143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
+          143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
+          143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
+          143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
+          143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
+          143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
+          143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
+          143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
+          143,  143,  143,  128,  128,  128,  128,  128,  128,  128,
+          128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
+          128,  128,  128,  128,  128,  128,  128,    0,    0,    0,
             0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+            0,    0,    0,  128,  128,  128,  128,  128,  128,  128,
+          128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
+          128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
+           -3,  128,  128,   -3,  128,  128,  128,  128,  128,  128,
+          -22,  -22,  -22,  -22,  364,  364,  364,  364,  364,  364,
+          364,  364,  364,  364,  364,  364,  364,  364,  571,  571,
+          571,  571,  364,  -22,  -22,  364,  364,  364,  364,  364,
+          364,  571,  364,  225,  225,  225,  364,  -16,  -16,    0,
+            0,    0,    0,    0,  483,  225,  364,  364,  364,  364,
+            0,    0,  364,  364,  -16,    0,    0,    0,    0,    0,
+          483,  483,  483,    0,  483,  225,    0,   45,  454,  454,
+          454,  454,    0,    0,    0,  483,    0,  483,  550,    0,
+            0,    0,    0,  501,    0,  700,    0,    0,    0,    0,
             0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-            0,    0,    0,    0,    0,    0,    0,    0,    0,  418,
-          418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
-          418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
-          418,  418,  418,    0,    0,    0,    0,    0,    0,    0,
-            0,    0,    0,    0,    0,    0,    0,    0,    0,  418,
-          418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
-          418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
-          418,  418,  418,  418,  418,  418,   -3,  418,  418,   -3,
-          418,  418,  418,  418,  418,  418,  -22,  -22,  -22,  -22,
-          221,  221,  221,  221,  221,  221,  221,  221,  221,  221,
-          221,  221,  221,  221,   49,   49,   49,   49,  221,  -22,
-          -22,  221,  221,  221,  221,  221,  221,   49,  221,   92,
-           92,   92,  221,   94,   94,    0,    0,    0,    0,    0,
-          469,   92,  221,  221,  221,  221,    0,    0,  221,  221,
-           94,    0,    0,    0,    0,    0,  469,  469,  469,    0,
-          469,   92,    0,   64,  423,  423,  423,  423,    0,    0,
-            0,  469,    0,  469,  515,    0,    0,    0,    0,  412,
-            0,  678,    0,    0,    0,    0,    0,    0,    0,    0,
-            0,    0,    0,    0,    0,    0,    0,    0,    0,  479,
-          690,    0,  474,    0,    0,    0,  479,  479,  479,  474,
-          474,    0,    0,  474
+            0,    0,    0,  482,  712,    0,  541,    0,    0,    0,
+          482,  482,  482,  541,  541,    0,    0,  541
     );
 
     protected $actionDefault = array(
-            3,32767,32767,32767,32767,32767,32767,   88,32767,32767,
+            3,32767,32767,32767,32767,32767,32767,32767,32767,   88,
+        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
+        32767,32767,32767,   88,  489,  489,  489,32767,32767,32767,
+        32767,  302,  302,  302,32767,  481,  439,  439,  439,  439,
+          439,  439,  439,  481,32767,32767,32767,32767,32767,  381,
         32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
-        32767,   88,  487,  487,  487,32767,32767,32767,32767,  300,
-          300,  300,32767,  479,  437,  437,  437,  437,  437,  437,
-          437,  479,32767,32767,32767,32767,32767,  379,32767,32767,
         32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
         32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
         32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
         32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
         32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
+        32767,32767,32767,32767,32767,32767,32767,32767,   88,32767,
         32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
-        32767,32767,32767,32767,32767,32767,   88,32767,32767,32767,
+        32767,32767,32767,32767,32767,32767,32767,32767,  486,32767,
         32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
-        32767,32767,32767,32767,32767,32767,  484,32767,32767,32767,
+        32767,32767,32767,32767,32767,32767,32767,32767,32767,  364,
+          365,  367,  368,  301,  440,  250,  485,  300,  126,  261,
+          252,  204,  298,  236,  130,  329,  382,  331,  380,  384,
+          330,  307,  311,  312,  313,  314,  315,  316,  317,  318,
+          319,  320,  321,  322,  305,  306,  383,  361,  360,  359,
+          327,  328,  304,  332,  334,  304,  333,  350,  351,  348,
+          349,  352,  353,  354,  355,  356,32767,32767,32767,32767,
+        32767,32767,32767,32767,32767,32767,32767,32767,   88,32767,
+          284,  284,  284,  284,32767,  341,  342,  242,  242,  242,
+          242,32767,  242,  285,32767,32767,32767,32767,32767,32767,
+        32767,  433,  358,  336,  337,  335,32767,  411,32767,32767,
+        32767,32767,32767,  413,32767,   88,32767,32767,  324,  326,
+          405,  308,32767,32767,   90,32767,32767,32767,32767,32767,
+        32767,32767,32767,32767,  408,  441,  441,32767,32767,   88,
+          399,   88,  169,  223,  225,  174,32767,  416,32767,32767,
         32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
-        32767,32767,32767,32767,32767,32767,32767,  362,  363,  365,
-          366,  299,  438,  248,  483,  298,  124,  259,  250,  202,
-          296,  234,  128,  327,  380,  329,  378,  382,  328,  305,
-          309,  310,  311,  312,  313,  314,  315,  316,  317,  318,
-          319,  320,  303,  304,  381,  359,  358,  357,  325,  326,
-          302,  330,  332,  302,  331,  348,  349,  346,  347,  350,
-          351,  352,  353,  354,32767,32767,32767,32767,32767,32767,
-        32767,32767,32767,32767,32767,32767,   88,32767,  282,  282,
-          282,  282,32767,  339,  340,  240,  240,  240,  240,32767,
-          240,  283,32767,32767,32767,32767,32767,32767,32767,  431,
-          356,  334,  335,  333,32767,  409,32767,32767,32767,32767,
-        32767,  411,32767,   88,32767,32767,  322,  324,  403,  306,
-        32767,32767,   88,32767,32767,32767,32767,32767,32767,32767,
-        32767,32767,  406,  439,  439,32767,32767,   88,  397,   88,
-          167,  221,  223,  172,32767,  414,32767,32767,32767,32767,
+        32767,32767,32767,32767,32767,  346,32767,  496,32767,  441,
+        32767,32767,  338,  339,  340,32767,32767,  441,  441,32767,
+          441,32767,  441,32767,32767,32767,  174,32767,32767,32767,
+        32767,32767,32767,32767,   90,  414,  414,  409,  174,32767,
+        32767,  174,   87,   87,   87,   87,  174,   87,  187,32767,
+          185,  185,   87,   88,   88,   87,   87,  189,32767,  455,
+          189,   88,   87,  174,   87,  209,  209,  390,  176,   89,
+          244,  244,   89,  390,   87,  174,  244,   88,   87,   87,
+          244,32767,32767,32767,   82,32767,32767,32767,32767,32767,
         32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
-        32767,32767,32767,  344,32767,  494,32767,  439,32767,32767,
-          336,  337,  338,32767,32767,  439,  439,32767,  439,32767,
-          439,32767,32767,32767,  172,32767,32767,32767,32767,32767,
-        32767,32767,   88,  412,  412,  407,  172,32767,32767,  172,
-           87,   87,   87,   87,  172,   87,  185,32767,  183,  183,
-           87,   88,   88,   87,   87,  187,32767,  453,  187,   88,
-           87,  172,   87,  207,  207,  388,  174,   87,  242,  242,
-           87,  388,   87,  172,  242,   88,   87,   87,  242,32767,
-        32767,32767,   82,32767,32767,32767,32767,32767,32767,32767,
-        32767,32767,32767,32767,32767,32767,32767,32767,32767,  399,
-        32767,32767,  419,32767,  432,  451,  397,32767,  342,  343,
-          345,32767,  441,  367,  368,  369,  370,  371,  372,  373,
-          375,32767,  480,  402,32767,32767,   84,  115,  258,32767,
-          492,   84,  400,32767,  492,32767,32767,32767,32767,32767,
-        32767,32767,32767,32767,32767,   84,32767,   84,32767,32767,
-        32767,32767,  476,32767,  439,32767,  401,32767,  341,  415,
-          458,32767,32767,  440,32767,32767,   84,32767,32767,32767,
-        32767,32767,32767,32767,32767,  419,32767,32767,32767,32767,
-        32767,  439,32767,32767,32767,32767,32767,32767,32767,  295,
-        32767,32767,32767,32767,32767,32767,  439,32767,32767,32767,
-        32767,  233,32767,32767,32767,32767,32767,32767,32767,32767,
+        32767,  401,32767,32767,  421,32767,  434,  453,  399,32767,
+          344,  345,  347,32767,  443,  369,  370,  371,  372,  373,
+          374,  375,  377,32767,  482,  404,32767,32767,   84,  117,
+          260,32767,  494,   84,  402,32767,  494,32767,32767,32767,
+        32767,32767,32767,32767,32767,32767,32767,   84,32767,   84,
+        32767,32767,32767,32767,  478,32767,  441,32767,  403,32767,
+          343,  417,  460,32767,32767,  442,32767,32767,   84,32767,
+        32767,32767,32767,32767,32767,32767,32767,  421,32767,32767,
+        32767,32767,32767,  441,32767,32767,32767,32767,32767,32767,
+        32767,  297,32767,32767,32767,32767,32767,32767,  441,32767,
+        32767,32767,32767,  235,32767,32767,32767,32767,32767,32767,
         32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
-           82,   60,32767,  276,32767,32767,32767,32767,32767,32767,
-        32767,32767,32767,32767,32767,32767,32767,  130,  130,    3,
-            3,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-          130,  130,  130,  130,  130,  130,  261,  162,  261,  215,
-          261,  261,  218,  207,  207,  268
+        32767,32767,   82,   60,32767,  278,32767,32767,32767,32767,
+        32767,32767,32767,32767,32767,32767,32767,32767,32767,  132,
+          132,    3,    3,  132,  132,  132,  132,  132,  132,  132,
+          132,  132,  132,  132,  132,  132,  263,  164,  263,  217,
+          263,  263,  220,  209,  209,  270,  132,  132
     );
 
     protected $goto = array(
-          163,  163,  136,  136,  136,  146,  148,  179,  164,  161,
-          161,  161,  161,  145,  162,  162,  162,  162,  162,  162,
-          162,  145,  157,  158,  159,  160,  176,  174,  177,  418,
-          419,  313,  420,  423,  424,  425,  426,  427,  428,  429,
-          430,  884,  134,  137,  138,  139,  140,  141,  142,  143,
-          144,  147,  173,  175,  178,  195,  198,  199,  201,  202,
-          204,  205,  206,  207,  208,  209,  210,  211,  212,  213,
-          233,  234,  251,  252,  253,  320,  321,  322,  468,  180,
-          181,  182,  183,  184,  185,  186,  187,  188,  189,  190,
-          191,  192,  193,  149,  194,  150,  165,  166,  167,  196,
-          168,  151,  152,  153,  169,  154,  197,  135,  170,  155,
-          171,  172,  156,  532,  200,  436,  732,  279,  469,  853,
-          545,    5,  200,  524,  851,  470,  667,  708,  665,  261,
-          462,  441,  441,  441,  245,  441,  666,  789,  462,  768,
-          702,  569,  433,  434,  798,  793,  457,  454,  441,  433,
-          572,  490,  492,  518,  522,  786,  527,  528,  800,  535,
-          785,  537,  544,  796,  546,  543,  766,  766,  766,  766,
-          483,  504,  760,  767, 1065, 1065,  697,  685,  827,  314,
-          831,  510,  447,  467,  479,  775,  523,  458,  745,  480,
-          312, 1065,  729,  441,  441,  805,  772,  765,  455,  476,
-          441,  441,  688,  441,  376,  682,  823,  868,  442,  463,
-         1049,  701,  966,  486,  488,  538,    8, 1057,  466,  421,
-          421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
-          421,  421,  421,  422,  422,  422,  422,  422,  422,  422,
-          422,  422,  422,  422,  422,  422,  422,  298,  301,  448,
-          471,  472,  474,  229,  296,  230,  231,  970,  505,  669,
-          485,  485,  995,  995,  995,  995,  995,  995,  995,  995,
-          995,  995,  995,  995,  460,  931,  674,  808,  724,  719,
-          720,  733,  675,  721,  672,  722,  723,  819,  812,  673,
-          689,  727,  764,  310,  541,  326,  506,  330,  317,  317,
-          266,  267,  283,  464,  269,  325,  284,  328,  491,  693,
-          971,  803,  803, 1054, 1038,  285,  280,  281,  497, 1064,
-         1064,  686,  277,  307,  556,  512,  368,  967,  972, 1026,
-          828,  962,  698,  482,  832,  777, 1064,  384,  870,    0,
-          693,  974,  693,    0,  813,  813,  813,  813,  974,  813,
-         1067,  813,  861,    0, 1035,  813,    0,    0,    0,    0,
-            0, 1035,    0,    0,    0,  974,  974,  974,  974, 1046,
-         1046,  974,  974,    0,    0,    0,    0,    0,    0,    0,
-            0,    0,  740,    0,    0,  741, 1032,  684,  684,    0,
-            0,    0,  694,  694,  694,  696,    0,  683,    0,    0,
-            0,    0,    0,    0,    0,    0,    0,    0,  830,    0,
-            0,  830,    0,    0,    0,    0,    0,    0,    0,    0,
-            0,    0,    0,    0,    0,    0,    0, 1039, 1040
+          165,  165,  138,  138,  138,  148,  150,  181,  166,  163,
+          163,  163,  163,  147,  164,  164,  164,  164,  164,  164,
+          164,  147,  159,  160,  161,  162,  178,  176,  179,  420,
+          421,  315,  422,  425,  426,  427,  428,  429,  430,  431,
+          432,  888,  136,  139,  140,  141,  142,  143,  144,  145,
+          146,  149,  175,  177,  180,  197,  200,  201,  203,  204,
+          206,  207,  208,  209,  210,  211,  212,  213,  214,  215,
+          235,  236,  253,  254,  255,  322,  323,  324,  470,  182,
+          183,  184,  185,  186,  187,  188,  189,  190,  191,  192,
+          193,  194,  195,  151,  196,  152,  167,  168,  169,  198,
+          170,  153,  154,  155,  171,  156,  199,  137,  172,  157,
+          173,  174,  158,  534,  202,  438,  736,  281,  471,  857,
+          547,    7,  202,  526,  855,  472,  669,  231,  464,  232,
+          233,  443,  443,  443,  671,  443,  464,  793,  774,  772,
+          774,  569,  670,  436,  802,  797,  459,  456,  443,  545,
+          572,  492,  494,  520,  524,  529,  530,  804,  537,  539,
+          546,  800,  548,  424,  424,  424,  424,  424,  424,  424,
+          424,  424,  424,  424,  424,  424,  424,  423,  423,  423,
+          423,  423,  423,  423,  423,  423,  423,  423,  423,  423,
+          423,  485,  506,  443,  443,  488,  490,  540,  457,  478,
+          443,  443,  974,  443,  768,  312,  543,  706,  444,  300,
+          303,  450,  473,  474,  476,  469,  481,  733,  468,  487,
+          487,  999,  999,  999,  999,  999,  999,  999,  999,  999,
+          999,  999,  999,  701,  689,  831,  435,  835,  776,  697,
+         1068, 1068,  779,  435,  263,  749,  482,    3,    4,  247,
+          316,  827,  809,  449,  769,  975,  465, 1068,  460,  673,
+          770,  770,  770,  770,  872, 1061,  764,  771,  705,  970,
+          697, 1071,  697,  976, 1030,  378,  678,  298,  728,  723,
+          724,  737,  679,  725,  676,  726,  727,   10, 1053,  677,
+          507,  731,  462,  935,  823,  328,  508,  332,  319,  319,
+          268,  269,  285,  466,  271,  327,  286,  330,  493,  807,
+          807, 1058, 1069, 1069,  282,  283,  812,  688,  688,  816,
+         1042,  512,  698,  698,  698,  700,  525,  687,  499, 1069,
+          314,  287,  693,  279,  309,  690,  832,  576,  966,  514,
+          370,  978,  971,  484,  817,  817,  817,  817,  978,  817,
+          836,  817,  865,  702, 1039,  817,  781,  686,  874,  386,
+            0, 1039,    0,    0,    0,  978,  978,  978,  978, 1050,
+         1050,  978,  978,    0,    0,    0,    0,    0,    0,    0,
+            0,    0,  744,    0,    0,  745, 1036,    0,    0,    0,
+            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+            0,    0,    0,    0,    0,    0,    0,    0,  834,    0,
+            0,  834,    0,    0,    0,    0,    0,    0,    0,    0,
+            0,    0,    0,    0,    0,    0,    0, 1043, 1044
     );
 
     protected $gotoCheck = array(
-           29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-           29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-           29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-           29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-           29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-           29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-           29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-           29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-           29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-           29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-           29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-           29,   29,   29,   59,   52,    8,   10,   75,    7,    7,
-            7,  105,   52,    7,    7,   92,   14,   12,   12,  127,
-           80,    8,    8,    8,  127,    8,   13,   12,   80,   12,
-           32,   12,   70,   12,   12,   12,    8,   35,    8,   70,
-           35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
-           35,   35,   35,   35,   35,    5,   70,   70,   70,   70,
-           42,   42,   70,   70,  139,  139,   11,   11,   11,   61,
-           11,   64,   61,    2,    2,   11,   64,   61,   11,   11,
-           64,  139,   51,    8,    8,   11,   36,   11,    8,    8,
-            8,    8,   11,    8,   61,   11,   89,   11,    8,  129,
-          135,   11,   11,   63,   63,   63,   61,  137,    8,  128,
-          128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
-          128,  128,  128,  130,  130,  130,  130,  130,  130,  130,
-          130,  130,  130,  130,  130,  130,  130,   45,   45,   45,
-           45,   45,   45,   68,   48,   68,   68,   87,   50,   10,
-           81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
-           81,   81,   81,   81,   49,  111,   10,   83,   10,   10,
-           10,   10,   10,   10,   10,   10,   10,   85,   86,   10,
-           26,   10,   71,   71,   71,   52,   52,   52,   52,   52,
-           52,   52,   52,   52,   52,   52,   52,   52,   52,   22,
-           87,   80,   80,   80,  132,   16,   75,   75,   20,  138,
-          138,   24,    9,   15,   77,   19,   66,  120,   87,   87,
-           91,  117,   28,   67,   94,   74,  138,  115,  108,   -1,
-           22,   59,   22,   -1,   59,   59,   59,   59,   59,   59,
-          138,   59,  105,   -1,   92,   59,   -1,   -1,   -1,   -1,
-           -1,   92,   -1,   -1,   -1,   59,   59,   59,   59,   92,
-           92,   59,   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-           -1,   -1,   59,   -1,   -1,   59,   92,   22,   22,   -1,
-           -1,   -1,   22,   22,   22,   22,   -1,   22,   -1,   -1,
-           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   92,   -1,
-           -1,   92,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-           -1,   -1,   -1,   -1,   -1,   -1,   -1,   92,   92
+           30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
+           30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
+           30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
+           30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
+           30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
+           30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
+           30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
+           30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
+           30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
+           30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
+           30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
+           30,   30,   30,   60,   53,    8,   10,   76,    7,    7,
+            7,  106,   53,    7,    7,   93,   13,   69,   81,   69,
+           69,    8,    8,    8,   15,    8,   81,   13,   13,   13,
+           13,   13,   14,   13,   13,   13,    8,   36,    8,    5,
+           36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+           36,   36,   36,  131,  131,  131,  131,  131,  131,  131,
+          131,  131,  131,  131,  131,  131,  131,  129,  129,  129,
+          129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+          129,   43,   43,    8,    8,   64,   64,   64,    8,    8,
+            8,    8,   88,    8,   72,   72,   72,   33,    8,   46,
+           46,   46,   46,   46,   46,    2,    2,   52,    8,   82,
+           82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
+           82,   82,   82,   11,   11,   11,   71,   11,   37,   23,
+          139,  139,   11,   71,  128,   11,   11,   34,   34,  128,
+           62,   90,   11,   62,   11,   88,  130,  139,   62,   10,
+           71,   71,   71,   71,   11,  138,   71,   71,   11,   11,
+           23,  139,   23,   88,   88,   62,   10,   49,   10,   10,
+           10,   10,   10,   10,   10,   10,   10,   62,  136,   10,
+           51,   10,   50,  112,   86,   53,   53,   53,   53,   53,
+           53,   53,   53,   53,   53,   53,   53,   53,   53,   81,
+           81,   81,  140,  140,   76,   76,   84,   23,   23,   87,
+          133,   65,   23,   23,   23,   23,   65,   23,   21,  140,
+           65,   17,   27,    9,   16,   25,   92,   78,  118,   20,
+           67,   60,  121,   68,   60,   60,   60,   60,   60,   60,
+           95,   60,  106,   29,   93,   60,   75,   12,  109,  116,
+           -1,   93,   -1,   -1,   -1,   60,   60,   60,   60,   93,
+           93,   60,   60,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+           -1,   -1,   60,   -1,   -1,   60,   93,   -1,   -1,   -1,
+           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,
+           -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+           -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   93
     );
 
     protected $gotoBase = array(
-            0,    0, -366,    0,    0,  155,    0,  115, -139,   48,
-          -18, -175,  126,  134,  124,   38,   61,    0,    0,   -8,
-           47,    0,   55,    0,   34,    0,   18,    0,  -29,  -20,
-            0,    0,  133,    0,    0, -401,  180,    0,    0,    0,
-            0,    0,  140,    0,    0,  212,    0,    0,  222,   56,
-           43,  178,   81,    0,    0,    0,    0,    0,    0,  109,
-            0, -167,    0,  -23, -198,    0,  -33,  -35, -315,    0,
-          -90,   35,    0,    0,  -34, -257,    0,   13,    0,    0,
-           97,   46,    0,   37,    0,   45,   42,  -38,    0,  185,
-            0,   41,  122,    0,  -28,    0,    0,    0,    0,    0,
-            0,    0,    0,    0,    0,  111,    0,    0,  -47,    0,
-            0,   36,    0,    0,    0,  -44,    0,  -13,    0,    0,
-           -7,    0,    0,    0,    0,    0,    0, -126,    5,  186,
-           19,    0,   66,    0,    0,  169,    0,  193,   75,  -70,
-            0,    0
+            0,    0, -336,    0,    0,  137,    0,  113, -141,   57,
+          -20, -120,  -25,  124,  140,  132,   47,   75,    0,    0,
+            4,   55,    0,  -17,    0,   46,    0,   58,    0,  -10,
+          -22,    0,    0,  198, -329,    0, -403,  220,    0,    0,
+            0,    0,    0,  159,    0,    0,  172,    0,    0,  243,
+           72,   73,  201,   79,    0,    0,    0,    0,    0,    0,
+          107,    0,  -98,    0,  -43,  -60,    0,  -21,  -27, -441,
+            0,    2,  -55,    0,    0,  -15, -259,    0,   24,    0,
+            0,   93,    3,    0,   74,    0,   50,   71,  -95,    0,
+          228,    0,   45,  120,    0,  -14,    0,    0,    0,    0,
+            0,    0,    0,    0,    0,    0,  109,    0,    0,  -29,
+            0,    0,   52,    0,    0,    0,  -24,    0,   -8,    0,
+            0,    6,    0,    0,    0,    0,    0,    0,  -13,  -39,
+          231,  -53,    0,   70,    0,    0,  245,    0,  239,   -6,
+           66,    0,    0
     );
 
     protected $gotoDefault = array(
-        -32768,  389,  577,    2,  578,  649,  657,  513,  409,  437,
-          726,  873,  770,  709,  710,  302,  340,  294,  300,  498,
-          487,  380,  695,  352,  687,  377,  690,  351,  699,  133,
-          514,  386,  703,    1,  705,  443,  736,  291,  713,  292,
-          517,  715,  450,  717,  718,  297,  303,  304,  877,  459,
-          484,  728,  203,  452,  730,  290,  731,  739,  331,  295,
-          363,  520,  494,  475,  509,  410,  365,  481,  228,  461,
-          981,  762,  372,  360,  776,  278,  784,  561,  792,  795,
-          411,  412,  370,  807,  371,  817,  811,  989,  364,  822,
-          353,  829, 1021,  355,  833,  836,  341,  500,  329,  840,
-          841,    4,  845,  533,  534,  860,  241,  382,  869,  350,
-          883,  344,  950,  952,  445,  379,  963,  359,  521,  387,
-          968, 1025,  348,  413,  366,  268,  282,  244,  414,  431,
-          249,  415,  367, 1028,  318, 1050,  432, 1058, 1066,  275,
-          315,  478
+        -32768,  391,  579,    2,  580,  651,  659,  515,  411,  439,
+          730,  877,  692,  712,  713,  714,  304,  342,  296,  302,
+          500,  489,  382,  699,  354,  691,  379,  694,  353,  703,
+          135,  516,  388,  707,    1,  709,  445,  740,  293,  717,
+          294,  519,  719,  452,  721,  722,  299,  305,  306,  881,
+          461,  486,  732,  205,  454,  734,  292,  735,  743,  333,
+          297,  365,  522,  496,  477,  511,  412,  367,  483,  230,
+          463,  985,  766,  374,  362,  780,  280,  788,  577,  796,
+          799,  413,  414,  372,  811,  373,  821,  815,  993,  366,
+          826,  355,  833, 1025,  357,  837,  840,  343,  502,  331,
+          844,  845,    6,  849,  535,  536,  864,  243,  384,  873,
+          352,  887,  346,  954,  956,  447,  381,  967,  361,  523,
+          389,  972, 1029,  350,  415,  368,  270,  284,  246,  416,
+          433,  251,  417,  369, 1032,  320, 1054,  434, 1062, 1070,
+          277,  317,  480
     );
 
     protected $ruleToNonTerminal = array(
@@ -710,49 +714,49 @@ class Php7 extends \PhpParser\ParserAbstract
             5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
             5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
             5,    5,    5,    6,    6,    6,    6,    6,    6,    6,
-            7,    7,    8,    8,    9,   10,   10,   11,   11,    4,
-            4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
-           16,   16,   17,   17,   17,   17,   19,   21,   21,   15,
-           23,   23,   20,   25,   25,   22,   22,   24,   24,   26,
-           26,   18,   27,   27,   28,   30,   31,   31,   32,   33,
-           33,   35,   34,   34,   34,   34,   36,   36,   36,   36,
-           36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
-           36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
-           12,   12,   55,   55,   58,   58,   57,   56,   56,   49,
-           60,   60,   61,   61,   62,   62,   13,   14,   14,   14,
-           65,   65,   65,   66,   66,   69,   69,   67,   67,   71,
-           72,   72,   43,   43,   51,   51,   54,   54,   54,   53,
-           73,   73,   74,   44,   44,   44,   44,   75,   75,   76,
-           76,   77,   77,   41,   41,   37,   37,   78,   39,   39,
-           79,   38,   38,   40,   40,   50,   50,   50,   50,   63,
-           63,   82,   82,   83,   83,   85,   85,   86,   86,   86,
-           84,   84,   64,   64,   87,   87,   88,   88,   89,   89,
-           89,   46,   90,   90,   91,   47,   93,   93,   94,   94,
-           68,   68,   95,   95,   95,   95,  100,  100,  101,  101,
-          102,  102,  102,  102,  102,  103,  104,  104,   99,   99,
-           96,   96,   98,   98,  106,  106,  105,  105,  105,  105,
-          105,  105,   97,  107,  107,  108,  108,   48,  109,  109,
-           42,   42,   29,   29,   29,   29,   29,   29,   29,   29,
-           29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-           29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-           29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-           29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-           29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-           29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-           29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-           29,   29,   29,   29,   29,  116,  110,  110,  115,  115,
-          118,  119,  119,  120,  121,  121,  121,   70,   70,   59,
-           59,   59,  111,  111,  111,  123,  123,  112,  112,  114,
-          114,  114,  117,  117,  128,  128,  128,   81,  130,  130,
-          130,  113,  113,  113,  113,  113,  113,  113,  113,  113,
-          113,  113,  113,  113,  113,  113,  113,   45,   45,  126,
-          126,  126,  122,  122,  122,  131,  131,  131,  131,  131,
-          131,   52,   52,   52,   92,   92,   92,   92,  133,  125,
-          125,  125,  125,  125,  125,  124,  124,  124,  132,  132,
-          132,  132,   80,  134,  134,  135,  135,  135,  135,  135,
-          129,  136,  136,  137,  137,  137,  137,  137,  127,  127,
-          127,  127,  139,  140,  138,  138,  138,  138,  138,  138,
-          138,  141,  141,  141,  141
+            7,    7,    8,    8,    9,   10,   10,   11,   11,   12,
+           12,    4,    4,    4,    4,    4,    4,    4,    4,    4,
+            4,    4,   17,   17,   18,   18,   18,   18,   20,   22,
+           22,   16,   24,   24,   21,   26,   26,   23,   23,   25,
+           25,   27,   27,   19,   28,   28,   29,   31,   32,   32,
+           33,   34,   34,   36,   35,   35,   35,   35,   37,   37,
+           37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
+           37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
+           37,   37,   13,   13,   56,   56,   59,   59,   58,   57,
+           57,   50,   61,   61,   62,   62,   63,   63,   14,   15,
+           15,   15,   66,   66,   66,   67,   67,   70,   70,   68,
+           68,   72,   73,   73,   44,   44,   52,   52,   55,   55,
+           55,   54,   74,   74,   75,   45,   45,   45,   45,   76,
+           76,   77,   77,   78,   78,   42,   42,   38,   38,   79,
+           40,   40,   80,   39,   39,   41,   41,   51,   51,   51,
+           51,   64,   64,   83,   83,   84,   84,   86,   86,   87,
+           87,   87,   85,   85,   65,   65,   88,   88,   89,   89,
+           90,   90,   90,   47,   91,   91,   92,   48,   94,   94,
+           95,   95,   69,   69,   96,   96,   96,   96,  101,  101,
+          102,  102,  103,  103,  103,  103,  103,  104,  105,  105,
+          100,  100,   97,   97,   99,   99,  107,  107,  106,  106,
+          106,  106,  106,  106,   98,  108,  108,  109,  109,   49,
+          110,  110,   43,   43,   30,   30,   30,   30,   30,   30,
+           30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
+           30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
+           30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
+           30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
+           30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
+           30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
+           30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
+           30,   30,   30,   30,   30,   30,   30,  117,  111,  111,
+          116,  116,  119,  120,  120,  121,  122,  122,  122,   71,
+           71,   60,   60,   60,  112,  112,  112,  124,  124,  113,
+          113,  115,  115,  115,  118,  118,  129,  129,  129,   82,
+          131,  131,  131,  114,  114,  114,  114,  114,  114,  114,
+          114,  114,  114,  114,  114,  114,  114,  114,  114,   46,
+           46,  127,  127,  127,  123,  123,  123,  132,  132,  132,
+          132,  132,  132,   53,   53,   53,   93,   93,   93,   93,
+          134,  126,  126,  126,  126,  126,  126,  125,  125,  125,
+          133,  133,  133,  133,   81,  135,  135,  136,  136,  136,
+          136,  136,  130,  137,  137,  138,  138,  138,  138,  138,
+          128,  128,  128,  128,  140,  141,  139,  139,  139,  139,
+          139,  139,  139,  142,  142,  142,  142
     );
 
     protected $ruleToLength = array(
@@ -764,49 +768,49 @@ class Php7 extends \PhpParser\ParserAbstract
             1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
             1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
             1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-            1,    1,    1,    3,    1,    1,    1,    0,    1,    1,
-            1,    1,    1,    3,    5,    4,    3,    4,    2,    3,
-            1,    1,    7,    8,    6,    7,    2,    3,    1,    2,
-            3,    1,    2,    3,    1,    1,    3,    1,    2,    1,
-            2,    2,    3,    1,    3,    2,    3,    1,    3,    2,
-            0,    1,    1,    1,    1,    1,    3,    7,   10,    5,
-            7,    9,    5,    3,    3,    3,    3,    3,    3,    1,
-            2,    5,    7,    9,    5,    6,    3,    3,    2,    1,
-            1,    1,    0,    2,    1,    3,    8,    0,    4,    2,
-            1,    3,    0,    1,    0,    1,   10,    7,    6,    5,
-            1,    2,    2,    0,    2,    0,    2,    0,    2,    2,
-            1,    3,    1,    4,    1,    4,    1,    1,    4,    2,
-            1,    3,    3,    3,    4,    4,    5,    0,    2,    4,
-            3,    1,    1,    1,    4,    0,    2,    5,    0,    2,
-            6,    0,    2,    0,    3,    1,    2,    1,    1,    2,
-            0,    1,    3,    4,    6,    1,    2,    1,    1,    1,
-            0,    1,    0,    2,    2,    4,    1,    3,    1,    2,
-            2,    2,    3,    1,    1,    2,    3,    1,    1,    3,
-            2,    0,    3,    4,    9,    3,    1,    3,    0,    2,
-            4,    5,    4,    4,    4,    3,    1,    1,    1,    3,
-            1,    1,    0,    1,    1,    2,    1,    1,    1,    1,
-            1,    1,    2,    1,    3,    1,    3,    2,    3,    1,
-            0,    1,    1,    3,    3,    3,    4,    1,    2,    3,
-            3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-            3,    2,    2,    2,    2,    3,    3,    3,    3,    3,
+            1,    1,    1,    3,    1,    1,    1,    0,    1,    0,
+            1,    1,    1,    1,    1,    3,    5,    4,    3,    4,
+            2,    3,    1,    1,    7,    8,    6,    7,    2,    3,
+            1,    2,    3,    1,    2,    3,    1,    1,    3,    1,
+            2,    1,    2,    2,    3,    1,    3,    2,    3,    1,
+            3,    2,    0,    1,    1,    1,    1,    1,    3,    7,
+           10,    5,    7,    9,    5,    3,    3,    3,    3,    3,
+            3,    1,    2,    5,    7,    9,    5,    6,    3,    3,
+            2,    1,    1,    1,    0,    2,    1,    3,    8,    0,
+            4,    2,    1,    3,    0,    1,    0,    1,   10,    7,
+            6,    5,    1,    2,    2,    0,    2,    0,    2,    0,
+            2,    2,    1,    3,    1,    4,    1,    4,    1,    1,
+            4,    2,    1,    3,    3,    3,    4,    4,    5,    0,
+            2,    4,    3,    1,    1,    1,    4,    0,    2,    5,
+            0,    2,    6,    0,    2,    0,    3,    1,    2,    1,
+            1,    2,    0,    1,    3,    4,    6,    1,    2,    1,
+            1,    1,    0,    1,    0,    2,    2,    4,    1,    3,
+            1,    2,    2,    2,    3,    1,    1,    2,    3,    1,
+            1,    3,    2,    0,    3,    4,    9,    3,    1,    3,
+            0,    2,    4,    5,    4,    4,    4,    3,    1,    1,
+            1,    3,    1,    1,    0,    1,    1,    2,    1,    1,
+            1,    1,    1,    1,    2,    1,    3,    1,    3,    2,
+            3,    1,    0,    1,    1,    3,    3,    3,    4,    1,
+            2,    3,    3,    3,    3,    3,    3,    3,    3,    3,
+            3,    3,    3,    2,    2,    2,    2,    3,    3,    3,
             3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-            3,    3,    2,    2,    2,    2,    3,    3,    3,    3,
-            3,    3,    3,    3,    3,    3,    3,    5,    4,    3,
-            4,    4,    2,    2,    4,    2,    2,    2,    2,    2,
-            2,    2,    2,    2,    2,    2,    1,    3,    2,    1,
-            2,    4,    2,   10,   11,    7,    3,    2,    0,    4,
-            2,    1,    3,    2,    2,    2,    4,    1,    1,    1,
-            2,    3,    1,    1,    1,    1,    1,    0,    3,    0,
-            1,    1,    0,    1,    1,    3,    3,    3,    4,    1,
-            1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-            1,    1,    1,    3,    2,    3,    3,    0,    1,    1,
-            3,    1,    1,    3,    1,    1,    4,    4,    4,    1,
-            4,    1,    1,    3,    1,    4,    2,    2,    3,    1,
-            4,    4,    3,    3,    3,    1,    3,    1,    1,    3,
-            1,    1,    4,    3,    1,    1,    1,    3,    3,    0,
-            1,    3,    1,    3,    1,    4,    2,    0,    2,    2,
-            1,    2,    1,    1,    1,    4,    3,    3,    3,    6,
-            3,    1,    1,    2,    1
+            3,    3,    3,    3,    2,    2,    2,    2,    3,    3,
+            3,    3,    3,    3,    3,    3,    3,    3,    3,    5,
+            4,    3,    4,    4,    2,    2,    4,    2,    2,    2,
+            2,    2,    2,    2,    2,    2,    2,    2,    1,    3,
+            2,    1,    2,    4,    2,   10,   11,    7,    3,    2,
+            0,    4,    2,    1,    3,    2,    2,    2,    4,    1,
+            1,    1,    2,    3,    1,    1,    1,    1,    1,    0,
+            3,    0,    1,    1,    0,    1,    1,    3,    3,    3,
+            4,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+            1,    1,    1,    1,    1,    3,    2,    3,    3,    0,
+            1,    1,    3,    1,    1,    3,    1,    1,    4,    4,
+            4,    1,    4,    1,    1,    3,    1,    4,    2,    2,
+            3,    1,    4,    4,    3,    3,    3,    1,    3,    1,
+            1,    3,    1,    1,    4,    3,    1,    1,    1,    3,
+            3,    0,    1,    3,    1,    3,    1,    4,    2,    0,
+            2,    2,    1,    2,    1,    1,    1,    4,    3,    3,
+            3,    6,    3,    1,    1,    2,    1
     );
 
     protected function reduceRule0() {
@@ -1167,11 +1171,11 @@ class Php7 extends \PhpParser\ParserAbstract
     }
 
     protected function reduceRule89() {
-         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
+        $this->semValue = $this->semStack[$this->stackPos];
     }
 
     protected function reduceRule90() {
-         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
+        $this->semValue = $this->semStack[$this->stackPos];
     }
 
     protected function reduceRule91() {
@@ -1179,172 +1183,178 @@ class Php7 extends \PhpParser\ParserAbstract
     }
 
     protected function reduceRule92() {
-         $this->semValue = new Stmt\HaltCompiler($this->lexer->handleHaltCompiler(), $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
+         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
     protected function reduceRule93() {
-         $this->semValue = new Stmt\Namespace_($this->semStack[$this->stackPos-(3-2)], null, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); $this->checkNamespace($this->semValue);
+         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
     protected function reduceRule94() {
-         $this->semValue = new Stmt\Namespace_($this->semStack[$this->stackPos-(5-2)], $this->semStack[$this->stackPos-(5-4)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes); $this->checkNamespace($this->semValue);
+         $this->semValue = new Stmt\HaltCompiler($this->lexer->handleHaltCompiler(), $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
     protected function reduceRule95() {
-         $this->semValue = new Stmt\Namespace_(null, $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); $this->checkNamespace($this->semValue);
+         $this->semValue = new Stmt\Namespace_($this->semStack[$this->stackPos-(3-2)], null, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+            $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_SEMICOLON);
+            $this->checkNamespace($this->semValue);
     }
 
     protected function reduceRule96() {
-         $this->semValue = new Stmt\Use_($this->semStack[$this->stackPos-(3-2)], Stmt\Use_::TYPE_NORMAL, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\Namespace_($this->semStack[$this->stackPos-(5-2)], $this->semStack[$this->stackPos-(5-4)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes);
+            $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_BRACED);
+            $this->checkNamespace($this->semValue);
     }
 
     protected function reduceRule97() {
-         $this->semValue = new Stmt\Use_($this->semStack[$this->stackPos-(4-3)], $this->semStack[$this->stackPos-(4-2)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\Namespace_(null, $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
+            $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_BRACED);
+            $this->checkNamespace($this->semValue);
     }
 
     protected function reduceRule98() {
-         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
+         $this->semValue = new Stmt\Use_($this->semStack[$this->stackPos-(3-2)], Stmt\Use_::TYPE_NORMAL, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule99() {
-         $this->semValue = new Stmt\Const_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\Use_($this->semStack[$this->stackPos-(4-3)], $this->semStack[$this->stackPos-(4-2)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
     }
 
     protected function reduceRule100() {
-         $this->semValue = Stmt\Use_::TYPE_FUNCTION;
+         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
     }
 
     protected function reduceRule101() {
-         $this->semValue = Stmt\Use_::TYPE_CONSTANT;
+         $this->semValue = new Stmt\Const_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule102() {
-         $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$this->stackPos-(7-3)], $this->startAttributeStack[$this->stackPos-(7-3)] + $this->endAttributeStack[$this->stackPos-(7-3)]), $this->semStack[$this->stackPos-(7-6)], $this->semStack[$this->stackPos-(7-2)], $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes);
+         $this->semValue = Stmt\Use_::TYPE_FUNCTION;
     }
 
     protected function reduceRule103() {
-         $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$this->stackPos-(8-4)], $this->startAttributeStack[$this->stackPos-(8-4)] + $this->endAttributeStack[$this->stackPos-(8-4)]), $this->semStack[$this->stackPos-(8-7)], $this->semStack[$this->stackPos-(8-2)], $this->startAttributeStack[$this->stackPos-(8-1)] + $this->endAttributes);
+         $this->semValue = Stmt\Use_::TYPE_CONSTANT;
     }
 
     protected function reduceRule104() {
-         $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$this->stackPos-(6-2)], $this->startAttributeStack[$this->stackPos-(6-2)] + $this->endAttributeStack[$this->stackPos-(6-2)]), $this->semStack[$this->stackPos-(6-5)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$this->stackPos-(7-3)], $this->startAttributeStack[$this->stackPos-(7-3)] + $this->endAttributeStack[$this->stackPos-(7-3)]), $this->semStack[$this->stackPos-(7-6)], $this->semStack[$this->stackPos-(7-2)], $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes);
     }
 
     protected function reduceRule105() {
-         $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$this->stackPos-(7-3)], $this->startAttributeStack[$this->stackPos-(7-3)] + $this->endAttributeStack[$this->stackPos-(7-3)]), $this->semStack[$this->stackPos-(7-6)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$this->stackPos-(8-4)], $this->startAttributeStack[$this->stackPos-(8-4)] + $this->endAttributeStack[$this->stackPos-(8-4)]), $this->semStack[$this->stackPos-(8-7)], $this->semStack[$this->stackPos-(8-2)], $this->startAttributeStack[$this->stackPos-(8-1)] + $this->endAttributes);
     }
 
     protected function reduceRule106() {
-         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
+         $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$this->stackPos-(6-2)], $this->startAttributeStack[$this->stackPos-(6-2)] + $this->endAttributeStack[$this->stackPos-(6-2)]), $this->semStack[$this->stackPos-(6-5)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes);
     }
 
     protected function reduceRule107() {
-         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
+         $this->semValue = new Stmt\GroupUse(new Name($this->semStack[$this->stackPos-(7-3)], $this->startAttributeStack[$this->stackPos-(7-3)] + $this->endAttributeStack[$this->stackPos-(7-3)]), $this->semStack[$this->stackPos-(7-6)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes);
     }
 
     protected function reduceRule108() {
-         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
+         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
     }
 
     protected function reduceRule109() {
-         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
+         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
     }
 
     protected function reduceRule110() {
-         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
+         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
     }
 
     protected function reduceRule111() {
-         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
+         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
     }
 
     protected function reduceRule112() {
-         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
+         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
     }
 
     protected function reduceRule113() {
-         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
+         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
     }
 
     protected function reduceRule114() {
-         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
+         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
     }
 
     protected function reduceRule115() {
-         $this->semValue = new Stmt\UseUse($this->semStack[$this->stackPos-(1-1)], null, Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $this->stackPos-(1-1));
+         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
     }
 
     protected function reduceRule116() {
-         $this->semValue = new Stmt\UseUse($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $this->stackPos-(3-3));
+         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
     }
 
     protected function reduceRule117() {
-         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
+         $this->semValue = new Stmt\UseUse($this->semStack[$this->stackPos-(1-1)], null, Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $this->stackPos-(1-1));
     }
 
     protected function reduceRule118() {
-         $this->semValue = $this->semStack[$this->stackPos-(2-2)];
+         $this->semValue = new Stmt\UseUse($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $this->stackPos-(3-3));
     }
 
     protected function reduceRule119() {
-         $this->semValue = $this->semStack[$this->stackPos-(1-1)]; $this->semValue->type = Stmt\Use_::TYPE_NORMAL;
+         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
     protected function reduceRule120() {
-         $this->semValue = $this->semStack[$this->stackPos-(2-2)]; $this->semValue->type = $this->semStack[$this->stackPos-(2-1)];
+         $this->semValue = $this->semStack[$this->stackPos-(2-2)];
     }
 
     protected function reduceRule121() {
-         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
+         $this->semValue = $this->semStack[$this->stackPos-(1-1)]; $this->semValue->type = Stmt\Use_::TYPE_NORMAL;
     }
 
     protected function reduceRule122() {
-         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
+         $this->semValue = $this->semStack[$this->stackPos-(2-2)]; $this->semValue->type = $this->semStack[$this->stackPos-(2-1)];
     }
 
     protected function reduceRule123() {
-         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
+         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
     }
 
     protected function reduceRule124() {
-         $this->semValue = new Node\Const_($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
     }
 
     protected function reduceRule125() {
-         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
+         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
     }
 
     protected function reduceRule126() {
-         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
+         $this->semValue = new Node\Const_($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule127() {
-         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
+         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
     }
 
     protected function reduceRule128() {
-         $this->semValue = new Node\Const_($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
     }
 
     protected function reduceRule129() {
-         if (is_array($this->semStack[$this->stackPos-(2-2)])) { $this->semValue = array_merge($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)]); } else { $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)]; };
+         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
     }
 
     protected function reduceRule130() {
-         $this->semValue = array();
+         $this->semValue = new Node\Const_($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule131() {
-         $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop(['comments' => $startAttributes['comments']]); } else { $nop = null; };
-            if ($nop !== null) { $this->semStack[$this->stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$this->stackPos-(1-1)];
+         if (is_array($this->semStack[$this->stackPos-(2-2)])) { $this->semValue = array_merge($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)]); } else { $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)]; };
     }
 
     protected function reduceRule132() {
-         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
+         $this->semValue = array();
     }
 
     protected function reduceRule133() {
-         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
+         $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop(['comments' => $startAttributes['comments']]); } else { $nop = null; };
+            if ($nop !== null) { $this->semStack[$this->stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
     protected function reduceRule134() {
@@ -1352,160 +1362,167 @@ class Php7 extends \PhpParser\ParserAbstract
     }
 
     protected function reduceRule135() {
-         throw new Error('__HALT_COMPILER() can only be used from the outermost scope', $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
+         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
     protected function reduceRule136() {
-         $this->semValue = $this->semStack[$this->stackPos-(3-2)]; $attrs = $this->startAttributeStack[$this->stackPos-(3-1)]; $stmts = $this->semValue; if (!empty($attrs['comments']) && isset($stmts[0])) {$stmts[0]->setAttribute('comments', array_merge($attrs['comments'], $stmts[0]->getAttribute('comments', []))); };
+         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
     protected function reduceRule137() {
-         $this->semValue = new Stmt\If_($this->semStack[$this->stackPos-(7-3)], ['stmts' => is_array($this->semStack[$this->stackPos-(7-5)]) ? $this->semStack[$this->stackPos-(7-5)] : array($this->semStack[$this->stackPos-(7-5)]), 'elseifs' => $this->semStack[$this->stackPos-(7-6)], 'else' => $this->semStack[$this->stackPos-(7-7)]], $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes);
+         throw new Error('__HALT_COMPILER() can only be used from the outermost scope', $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
     protected function reduceRule138() {
-         $this->semValue = new Stmt\If_($this->semStack[$this->stackPos-(10-3)], ['stmts' => $this->semStack[$this->stackPos-(10-6)], 'elseifs' => $this->semStack[$this->stackPos-(10-7)], 'else' => $this->semStack[$this->stackPos-(10-8)]], $this->startAttributeStack[$this->stackPos-(10-1)] + $this->endAttributes);
+
+        if ($this->semStack[$this->stackPos-(3-2)]) {
+            $this->semValue = $this->semStack[$this->stackPos-(3-2)]; $attrs = $this->startAttributeStack[$this->stackPos-(3-1)]; $stmts = $this->semValue; if (!empty($attrs['comments'])) {$stmts[0]->setAttribute('comments', array_merge($attrs['comments'], $stmts[0]->getAttribute('comments', []))); };
+        } else {
+            $startAttributes = $this->startAttributeStack[$this->stackPos-(3-1)]; if (isset($startAttributes['comments'])) { $this->semValue = new Stmt\Nop(['comments' => $startAttributes['comments']]); } else { $this->semValue = null; };
+            if (null === $this->semValue) { $this->semValue = array(); }
+        }
+
     }
 
     protected function reduceRule139() {
-         $this->semValue = new Stmt\While_($this->semStack[$this->stackPos-(5-3)], $this->semStack[$this->stackPos-(5-5)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\If_($this->semStack[$this->stackPos-(7-3)], ['stmts' => is_array($this->semStack[$this->stackPos-(7-5)]) ? $this->semStack[$this->stackPos-(7-5)] : array($this->semStack[$this->stackPos-(7-5)]), 'elseifs' => $this->semStack[$this->stackPos-(7-6)], 'else' => $this->semStack[$this->stackPos-(7-7)]], $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes);
     }
 
     protected function reduceRule140() {
-         $this->semValue = new Stmt\Do_($this->semStack[$this->stackPos-(7-5)], is_array($this->semStack[$this->stackPos-(7-2)]) ? $this->semStack[$this->stackPos-(7-2)] : array($this->semStack[$this->stackPos-(7-2)]), $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\If_($this->semStack[$this->stackPos-(10-3)], ['stmts' => $this->semStack[$this->stackPos-(10-6)], 'elseifs' => $this->semStack[$this->stackPos-(10-7)], 'else' => $this->semStack[$this->stackPos-(10-8)]], $this->startAttributeStack[$this->stackPos-(10-1)] + $this->endAttributes);
     }
 
     protected function reduceRule141() {
-         $this->semValue = new Stmt\For_(['init' => $this->semStack[$this->stackPos-(9-3)], 'cond' => $this->semStack[$this->stackPos-(9-5)], 'loop' => $this->semStack[$this->stackPos-(9-7)], 'stmts' => $this->semStack[$this->stackPos-(9-9)]], $this->startAttributeStack[$this->stackPos-(9-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\While_($this->semStack[$this->stackPos-(5-3)], $this->semStack[$this->stackPos-(5-5)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes);
     }
 
     protected function reduceRule142() {
-         $this->semValue = new Stmt\Switch_($this->semStack[$this->stackPos-(5-3)], $this->semStack[$this->stackPos-(5-5)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\Do_($this->semStack[$this->stackPos-(7-5)], is_array($this->semStack[$this->stackPos-(7-2)]) ? $this->semStack[$this->stackPos-(7-2)] : array($this->semStack[$this->stackPos-(7-2)]), $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes);
     }
 
     protected function reduceRule143() {
-         $this->semValue = new Stmt\Break_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\For_(['init' => $this->semStack[$this->stackPos-(9-3)], 'cond' => $this->semStack[$this->stackPos-(9-5)], 'loop' => $this->semStack[$this->stackPos-(9-7)], 'stmts' => $this->semStack[$this->stackPos-(9-9)]], $this->startAttributeStack[$this->stackPos-(9-1)] + $this->endAttributes);
     }
 
     protected function reduceRule144() {
-         $this->semValue = new Stmt\Continue_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\Switch_($this->semStack[$this->stackPos-(5-3)], $this->semStack[$this->stackPos-(5-5)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes);
     }
 
     protected function reduceRule145() {
-         $this->semValue = new Stmt\Return_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\Break_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule146() {
-         $this->semValue = new Stmt\Global_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\Continue_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule147() {
-         $this->semValue = new Stmt\Static_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\Return_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule148() {
-         $this->semValue = new Stmt\Echo_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\Global_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule149() {
-         $this->semValue = new Stmt\InlineHTML($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\Static_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule150() {
-         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
+         $this->semValue = new Stmt\Echo_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule151() {
-         $this->semValue = new Stmt\Unset_($this->semStack[$this->stackPos-(5-3)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\InlineHTML($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
     protected function reduceRule152() {
-         $this->semValue = new Stmt\Foreach_($this->semStack[$this->stackPos-(7-3)], $this->semStack[$this->stackPos-(7-5)][0], ['keyVar' => null, 'byRef' => $this->semStack[$this->stackPos-(7-5)][1], 'stmts' => $this->semStack[$this->stackPos-(7-7)]], $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes);
+         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
     }
 
     protected function reduceRule153() {
-         $this->semValue = new Stmt\Foreach_($this->semStack[$this->stackPos-(9-3)], $this->semStack[$this->stackPos-(9-7)][0], ['keyVar' => $this->semStack[$this->stackPos-(9-5)], 'byRef' => $this->semStack[$this->stackPos-(9-7)][1], 'stmts' => $this->semStack[$this->stackPos-(9-9)]], $this->startAttributeStack[$this->stackPos-(9-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\Unset_($this->semStack[$this->stackPos-(5-3)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes);
     }
 
     protected function reduceRule154() {
-         $this->semValue = new Stmt\Declare_($this->semStack[$this->stackPos-(5-3)], $this->semStack[$this->stackPos-(5-5)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\Foreach_($this->semStack[$this->stackPos-(7-3)], $this->semStack[$this->stackPos-(7-5)][0], ['keyVar' => null, 'byRef' => $this->semStack[$this->stackPos-(7-5)][1], 'stmts' => $this->semStack[$this->stackPos-(7-7)]], $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes);
     }
 
     protected function reduceRule155() {
-         $this->semValue = new Stmt\TryCatch($this->semStack[$this->stackPos-(6-3)], $this->semStack[$this->stackPos-(6-5)], $this->semStack[$this->stackPos-(6-6)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes); $this->checkTryCatch($this->semValue);
+         $this->semValue = new Stmt\Foreach_($this->semStack[$this->stackPos-(9-3)], $this->semStack[$this->stackPos-(9-7)][0], ['keyVar' => $this->semStack[$this->stackPos-(9-5)], 'byRef' => $this->semStack[$this->stackPos-(9-7)][1], 'stmts' => $this->semStack[$this->stackPos-(9-9)]], $this->startAttributeStack[$this->stackPos-(9-1)] + $this->endAttributes);
     }
 
     protected function reduceRule156() {
-         $this->semValue = new Stmt\Throw_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\Declare_($this->semStack[$this->stackPos-(5-3)], $this->semStack[$this->stackPos-(5-5)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes);
     }
 
     protected function reduceRule157() {
-         $this->semValue = new Stmt\Goto_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\TryCatch($this->semStack[$this->stackPos-(6-3)], $this->semStack[$this->stackPos-(6-5)], $this->semStack[$this->stackPos-(6-6)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes); $this->checkTryCatch($this->semValue);
     }
 
     protected function reduceRule158() {
-         $this->semValue = new Stmt\Label($this->semStack[$this->stackPos-(2-1)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\Throw_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule159() {
-         $this->semValue = array(); /* means: no statement */
+         $this->semValue = new Stmt\Goto_($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule160() {
-         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
+         $this->semValue = new Stmt\Label($this->semStack[$this->stackPos-(2-1)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
     protected function reduceRule161() {
-         $startAttributes = $this->startAttributeStack[$this->stackPos-(1-1)]; if (isset($startAttributes['comments'])) { $this->semValue = new Stmt\Nop(['comments' => $startAttributes['comments']]); } else { $this->semValue = null; };
-            if ($this->semValue === null) $this->semValue = array(); /* means: no statement */
+         $this->semValue = array(); /* means: no statement */
     }
 
     protected function reduceRule162() {
-         $this->semValue = array();
+         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
     protected function reduceRule163() {
-         $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)];
+         $startAttributes = $this->startAttributeStack[$this->stackPos-(1-1)]; if (isset($startAttributes['comments'])) { $this->semValue = new Stmt\Nop(['comments' => $startAttributes['comments']]); } else { $this->semValue = null; };
+            if ($this->semValue === null) $this->semValue = array(); /* means: no statement */
     }
 
     protected function reduceRule164() {
-         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
+         $this->semValue = array();
     }
 
     protected function reduceRule165() {
-         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
+         $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)];
     }
 
     protected function reduceRule166() {
-         $this->semValue = new Stmt\Catch_($this->semStack[$this->stackPos-(8-3)], substr($this->semStack[$this->stackPos-(8-4)], 1), $this->semStack[$this->stackPos-(8-7)], $this->startAttributeStack[$this->stackPos-(8-1)] + $this->endAttributes);
+         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
     }
 
     protected function reduceRule167() {
-         $this->semValue = null;
+         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
     }
 
     protected function reduceRule168() {
-         $this->semValue = new Stmt\Finally_($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\Catch_($this->semStack[$this->stackPos-(8-3)], substr($this->semStack[$this->stackPos-(8-4)], 1), $this->semStack[$this->stackPos-(8-7)], $this->startAttributeStack[$this->stackPos-(8-1)] + $this->endAttributes);
     }
 
     protected function reduceRule169() {
-         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
+         $this->semValue = null;
     }
 
     protected function reduceRule170() {
-         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
+         $this->semValue = new Stmt\Finally_($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
     }
 
     protected function reduceRule171() {
-         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
+         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
     }
 
     protected function reduceRule172() {
-         $this->semValue = false;
+         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
     }
 
     protected function reduceRule173() {
-         $this->semValue = true;
+         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
     }
 
     protected function reduceRule174() {
@@ -1517,45 +1534,45 @@ class Php7 extends \PhpParser\ParserAbstract
     }
 
     protected function reduceRule176() {
-         $this->semValue = new Stmt\Function_($this->semStack[$this->stackPos-(10-3)], ['byRef' => $this->semStack[$this->stackPos-(10-2)], 'params' => $this->semStack[$this->stackPos-(10-5)], 'returnType' => $this->semStack[$this->stackPos-(10-7)], 'stmts' => $this->semStack[$this->stackPos-(10-9)]], $this->startAttributeStack[$this->stackPos-(10-1)] + $this->endAttributes);
+         $this->semValue = false;
     }
 
     protected function reduceRule177() {
-         $this->semValue = new Stmt\Class_($this->semStack[$this->stackPos-(7-2)], ['type' => $this->semStack[$this->stackPos-(7-1)], 'extends' => $this->semStack[$this->stackPos-(7-3)], 'implements' => $this->semStack[$this->stackPos-(7-4)], 'stmts' => $this->semStack[$this->stackPos-(7-6)]], $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes);
-            $this->checkClass($this->semValue, $this->stackPos-(7-2));
+         $this->semValue = true;
     }
 
     protected function reduceRule178() {
-         $this->semValue = new Stmt\Interface_($this->semStack[$this->stackPos-(6-2)], ['extends' => $this->semStack[$this->stackPos-(6-3)], 'stmts' => $this->semStack[$this->stackPos-(6-5)]], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes);
-            $this->checkInterface($this->semValue, $this->stackPos-(6-2));
+         $this->semValue = new Stmt\Function_($this->semStack[$this->stackPos-(10-3)], ['byRef' => $this->semStack[$this->stackPos-(10-2)], 'params' => $this->semStack[$this->stackPos-(10-5)], 'returnType' => $this->semStack[$this->stackPos-(10-7)], 'stmts' => $this->semStack[$this->stackPos-(10-9)]], $this->startAttributeStack[$this->stackPos-(10-1)] + $this->endAttributes);
     }
 
     protected function reduceRule179() {
-         $this->semValue = new Stmt\Trait_($this->semStack[$this->stackPos-(5-2)], ['stmts' => $this->semStack[$this->stackPos-(5-4)]], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\Class_($this->semStack[$this->stackPos-(7-2)], ['type' => $this->semStack[$this->stackPos-(7-1)], 'extends' => $this->semStack[$this->stackPos-(7-3)], 'implements' => $this->semStack[$this->stackPos-(7-4)], 'stmts' => $this->semStack[$this->stackPos-(7-6)]], $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes);
+            $this->checkClass($this->semValue, $this->stackPos-(7-2));
     }
 
     protected function reduceRule180() {
-         $this->semValue = 0;
+         $this->semValue = new Stmt\Interface_($this->semStack[$this->stackPos-(6-2)], ['extends' => $this->semStack[$this->stackPos-(6-3)], 'stmts' => $this->semStack[$this->stackPos-(6-5)]], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes);
+            $this->checkInterface($this->semValue, $this->stackPos-(6-2));
     }
 
     protected function reduceRule181() {
-         $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT;
+         $this->semValue = new Stmt\Trait_($this->semStack[$this->stackPos-(5-2)], ['stmts' => $this->semStack[$this->stackPos-(5-4)]], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes);
     }
 
     protected function reduceRule182() {
-         $this->semValue = Stmt\Class_::MODIFIER_FINAL;
+         $this->semValue = 0;
     }
 
     protected function reduceRule183() {
-         $this->semValue = null;
+         $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT;
     }
 
     protected function reduceRule184() {
-         $this->semValue = $this->semStack[$this->stackPos-(2-2)];
+         $this->semValue = Stmt\Class_::MODIFIER_FINAL;
     }
 
     protected function reduceRule185() {
-         $this->semValue = array();
+         $this->semValue = null;
     }
 
     protected function reduceRule186() {
@@ -1571,23 +1588,23 @@ class Php7 extends \PhpParser\ParserAbstract
     }
 
     protected function reduceRule189() {
-         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
+         $this->semValue = array();
     }
 
     protected function reduceRule190() {
-         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
+         $this->semValue = $this->semStack[$this->stackPos-(2-2)];
     }
 
     protected function reduceRule191() {
-         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
+         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
     }
 
     protected function reduceRule192() {
-         $this->semValue = is_array($this->semStack[$this->stackPos-(1-1)]) ? $this->semStack[$this->stackPos-(1-1)] : array($this->semStack[$this->stackPos-(1-1)]);
+         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
     }
 
     protected function reduceRule193() {
-         $this->semValue = $this->semStack[$this->stackPos-(4-2)];
+         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
     }
 
     protected function reduceRule194() {
@@ -1603,107 +1620,107 @@ class Php7 extends \PhpParser\ParserAbstract
     }
 
     protected function reduceRule197() {
-         $this->semValue = null;
+         $this->semValue = $this->semStack[$this->stackPos-(4-2)];
     }
 
     protected function reduceRule198() {
-         $this->semValue = $this->semStack[$this->stackPos-(4-2)];
+         $this->semValue = is_array($this->semStack[$this->stackPos-(1-1)]) ? $this->semStack[$this->stackPos-(1-1)] : array($this->semStack[$this->stackPos-(1-1)]);
     }
 
     protected function reduceRule199() {
-         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
+         $this->semValue = null;
     }
 
     protected function reduceRule200() {
-         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
+         $this->semValue = $this->semStack[$this->stackPos-(4-2)];
     }
 
     protected function reduceRule201() {
-         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
+         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
     }
 
     protected function reduceRule202() {
-         $this->semValue = new Stmt\DeclareDeclare($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
     }
 
     protected function reduceRule203() {
-         $this->semValue = $this->semStack[$this->stackPos-(3-2)];
+         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
     }
 
     protected function reduceRule204() {
-         $this->semValue = $this->semStack[$this->stackPos-(4-3)];
+         $this->semValue = new Stmt\DeclareDeclare($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule205() {
-         $this->semValue = $this->semStack[$this->stackPos-(4-2)];
+         $this->semValue = $this->semStack[$this->stackPos-(3-2)];
     }
 
     protected function reduceRule206() {
-         $this->semValue = $this->semStack[$this->stackPos-(5-3)];
+         $this->semValue = $this->semStack[$this->stackPos-(4-3)];
     }
 
     protected function reduceRule207() {
-         $this->semValue = array();
+         $this->semValue = $this->semStack[$this->stackPos-(4-2)];
     }
 
     protected function reduceRule208() {
-         $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)];
+         $this->semValue = $this->semStack[$this->stackPos-(5-3)];
     }
 
     protected function reduceRule209() {
-         $this->semValue = new Stmt\Case_($this->semStack[$this->stackPos-(4-2)], $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
+         $this->semValue = array();
     }
 
     protected function reduceRule210() {
-         $this->semValue = new Stmt\Case_(null, $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)];
     }
 
     protected function reduceRule211() {
-        $this->semValue = $this->semStack[$this->stackPos];
+         $this->semValue = new Stmt\Case_($this->semStack[$this->stackPos-(4-2)], $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
     }
 
     protected function reduceRule212() {
-        $this->semValue = $this->semStack[$this->stackPos];
+         $this->semValue = new Stmt\Case_(null, $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule213() {
-         $this->semValue = is_array($this->semStack[$this->stackPos-(1-1)]) ? $this->semStack[$this->stackPos-(1-1)] : array($this->semStack[$this->stackPos-(1-1)]);
+        $this->semValue = $this->semStack[$this->stackPos];
     }
 
     protected function reduceRule214() {
-         $this->semValue = $this->semStack[$this->stackPos-(4-2)];
+        $this->semValue = $this->semStack[$this->stackPos];
     }
 
     protected function reduceRule215() {
-         $this->semValue = array();
+         $this->semValue = is_array($this->semStack[$this->stackPos-(1-1)]) ? $this->semStack[$this->stackPos-(1-1)] : array($this->semStack[$this->stackPos-(1-1)]);
     }
 
     protected function reduceRule216() {
-         $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)];
+         $this->semValue = $this->semStack[$this->stackPos-(4-2)];
     }
 
     protected function reduceRule217() {
-         $this->semValue = new Stmt\ElseIf_($this->semStack[$this->stackPos-(5-3)], is_array($this->semStack[$this->stackPos-(5-5)]) ? $this->semStack[$this->stackPos-(5-5)] : array($this->semStack[$this->stackPos-(5-5)]), $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes);
+         $this->semValue = array();
     }
 
     protected function reduceRule218() {
-         $this->semValue = array();
+         $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)];
     }
 
     protected function reduceRule219() {
-         $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)];
+         $this->semValue = new Stmt\ElseIf_($this->semStack[$this->stackPos-(5-3)], is_array($this->semStack[$this->stackPos-(5-5)]) ? $this->semStack[$this->stackPos-(5-5)] : array($this->semStack[$this->stackPos-(5-5)]), $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes);
     }
 
     protected function reduceRule220() {
-         $this->semValue = new Stmt\ElseIf_($this->semStack[$this->stackPos-(6-3)], $this->semStack[$this->stackPos-(6-6)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes);
+         $this->semValue = array();
     }
 
     protected function reduceRule221() {
-         $this->semValue = null;
+         $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)];
     }
 
     protected function reduceRule222() {
-         $this->semValue = new Stmt\Else_(is_array($this->semStack[$this->stackPos-(2-2)]) ? $this->semStack[$this->stackPos-(2-2)] : array($this->semStack[$this->stackPos-(2-2)]), $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\ElseIf_($this->semStack[$this->stackPos-(6-3)], $this->semStack[$this->stackPos-(6-6)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes);
     }
 
     protected function reduceRule223() {
@@ -1711,15 +1728,15 @@ class Php7 extends \PhpParser\ParserAbstract
     }
 
     protected function reduceRule224() {
-         $this->semValue = new Stmt\Else_($this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\Else_(is_array($this->semStack[$this->stackPos-(2-2)]) ? $this->semStack[$this->stackPos-(2-2)] : array($this->semStack[$this->stackPos-(2-2)]), $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
     protected function reduceRule225() {
-         $this->semValue = array($this->semStack[$this->stackPos-(1-1)], false);
+         $this->semValue = null;
     }
 
     protected function reduceRule226() {
-         $this->semValue = array($this->semStack[$this->stackPos-(2-2)], true);
+         $this->semValue = new Stmt\Else_($this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule227() {
@@ -1727,59 +1744,59 @@ class Php7 extends \PhpParser\ParserAbstract
     }
 
     protected function reduceRule228() {
-         $this->semValue = array($this->semStack[$this->stackPos-(1-1)], false);
+         $this->semValue = array($this->semStack[$this->stackPos-(2-2)], true);
     }
 
     protected function reduceRule229() {
-         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
+         $this->semValue = array($this->semStack[$this->stackPos-(1-1)], false);
     }
 
     protected function reduceRule230() {
-         $this->semValue = array();
+         $this->semValue = array($this->semStack[$this->stackPos-(1-1)], false);
     }
 
     protected function reduceRule231() {
-         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
+         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
     }
 
     protected function reduceRule232() {
-         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
+         $this->semValue = array();
     }
 
     protected function reduceRule233() {
-         $this->semValue = new Node\Param(substr($this->semStack[$this->stackPos-(4-4)], 1), null, $this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-2)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); $this->checkParam($this->semValue);
+         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
     }
 
     protected function reduceRule234() {
-         $this->semValue = new Node\Param(substr($this->semStack[$this->stackPos-(6-4)], 1), $this->semStack[$this->stackPos-(6-6)], $this->semStack[$this->stackPos-(6-1)], $this->semStack[$this->stackPos-(6-2)], $this->semStack[$this->stackPos-(6-3)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes); $this->checkParam($this->semValue);
+         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
     }
 
     protected function reduceRule235() {
-         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
+         $this->semValue = new Node\Param(substr($this->semStack[$this->stackPos-(4-4)], 1), null, $this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-2)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); $this->checkParam($this->semValue);
     }
 
     protected function reduceRule236() {
-         $this->semValue = new Node\NullableType($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+         $this->semValue = new Node\Param(substr($this->semStack[$this->stackPos-(6-4)], 1), $this->semStack[$this->stackPos-(6-6)], $this->semStack[$this->stackPos-(6-1)], $this->semStack[$this->stackPos-(6-2)], $this->semStack[$this->stackPos-(6-3)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes); $this->checkParam($this->semValue);
     }
 
     protected function reduceRule237() {
-         $this->semValue = $this->handleBuiltinTypes($this->semStack[$this->stackPos-(1-1)]);
+         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
     protected function reduceRule238() {
-         $this->semValue = 'array';
+         $this->semValue = new Node\NullableType($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
     protected function reduceRule239() {
-         $this->semValue = 'callable';
+         $this->semValue = $this->handleBuiltinTypes($this->semStack[$this->stackPos-(1-1)]);
     }
 
     protected function reduceRule240() {
-         $this->semValue = null;
+         $this->semValue = 'array';
     }
 
     protected function reduceRule241() {
-         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
+         $this->semValue = 'callable';
     }
 
     protected function reduceRule242() {
@@ -1787,104 +1804,104 @@ class Php7 extends \PhpParser\ParserAbstract
     }
 
     protected function reduceRule243() {
-         $this->semValue = $this->semStack[$this->stackPos-(2-2)];
+         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
     protected function reduceRule244() {
-         $this->semValue = array();
+         $this->semValue = null;
     }
 
     protected function reduceRule245() {
-         $this->semValue = $this->semStack[$this->stackPos-(4-2)];
+         $this->semValue = $this->semStack[$this->stackPos-(2-2)];
     }
 
     protected function reduceRule246() {
-         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
+         $this->semValue = array();
     }
 
     protected function reduceRule247() {
-         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
+         $this->semValue = $this->semStack[$this->stackPos-(4-2)];
     }
 
     protected function reduceRule248() {
-         $this->semValue = new Node\Arg($this->semStack[$this->stackPos-(1-1)], false, false, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
+         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
     }
 
     protected function reduceRule249() {
-         $this->semValue = new Node\Arg($this->semStack[$this->stackPos-(2-2)], true, false, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
     }
 
     protected function reduceRule250() {
-         $this->semValue = new Node\Arg($this->semStack[$this->stackPos-(2-2)], false, true, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+         $this->semValue = new Node\Arg($this->semStack[$this->stackPos-(1-1)], false, false, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
     protected function reduceRule251() {
-         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
+         $this->semValue = new Node\Arg($this->semStack[$this->stackPos-(2-2)], true, false, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
     protected function reduceRule252() {
-         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
+         $this->semValue = new Node\Arg($this->semStack[$this->stackPos-(2-2)], false, true, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
     protected function reduceRule253() {
-         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
+         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
     }
 
     protected function reduceRule254() {
-         $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
+         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
     }
 
     protected function reduceRule255() {
-         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
+         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
     }
 
     protected function reduceRule256() {
-         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
+         $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
     protected function reduceRule257() {
-         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
+         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
     }
 
     protected function reduceRule258() {
-         $this->semValue = new Stmt\StaticVar(substr($this->semStack[$this->stackPos-(1-1)], 1), null, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
+         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
     }
 
     protected function reduceRule259() {
-         $this->semValue = new Stmt\StaticVar(substr($this->semStack[$this->stackPos-(3-1)], 1), $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
     }
 
     protected function reduceRule260() {
-         $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)];
+         $this->semValue = new Stmt\StaticVar(substr($this->semStack[$this->stackPos-(1-1)], 1), null, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
     protected function reduceRule261() {
-         $this->semValue = array();
+         $this->semValue = new Stmt\StaticVar(substr($this->semStack[$this->stackPos-(3-1)], 1), $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule262() {
-         $this->semValue = new Stmt\Property($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); $this->checkProperty($this->semValue, $this->stackPos-(3-1));
+         $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)];
     }
 
     protected function reduceRule263() {
-         $this->semValue = new Stmt\ClassConst($this->semStack[$this->stackPos-(4-3)], $this->semStack[$this->stackPos-(4-1)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); $this->checkClassConst($this->semValue, $this->stackPos-(4-1));
+         $this->semValue = array();
     }
 
     protected function reduceRule264() {
-         $this->semValue = new Stmt\ClassMethod($this->semStack[$this->stackPos-(9-4)], ['type' => $this->semStack[$this->stackPos-(9-1)], 'byRef' => $this->semStack[$this->stackPos-(9-3)], 'params' => $this->semStack[$this->stackPos-(9-6)], 'returnType' => $this->semStack[$this->stackPos-(9-8)], 'stmts' => $this->semStack[$this->stackPos-(9-9)]], $this->startAttributeStack[$this->stackPos-(9-1)] + $this->endAttributes);
-            $this->checkClassMethod($this->semValue, $this->stackPos-(9-1));
+         $this->semValue = new Stmt\Property($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); $this->checkProperty($this->semValue, $this->stackPos-(3-1));
     }
 
     protected function reduceRule265() {
-         $this->semValue = new Stmt\TraitUse($this->semStack[$this->stackPos-(3-2)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\ClassConst($this->semStack[$this->stackPos-(4-3)], $this->semStack[$this->stackPos-(4-1)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes); $this->checkClassConst($this->semValue, $this->stackPos-(4-1));
     }
 
     protected function reduceRule266() {
-         $this->semValue = array();
+         $this->semValue = new Stmt\ClassMethod($this->semStack[$this->stackPos-(9-4)], ['type' => $this->semStack[$this->stackPos-(9-1)], 'byRef' => $this->semStack[$this->stackPos-(9-3)], 'params' => $this->semStack[$this->stackPos-(9-6)], 'returnType' => $this->semStack[$this->stackPos-(9-8)], 'stmts' => $this->semStack[$this->stackPos-(9-9)]], $this->startAttributeStack[$this->stackPos-(9-1)] + $this->endAttributes);
+            $this->checkClassMethod($this->semValue, $this->stackPos-(9-1));
     }
 
     protected function reduceRule267() {
-         $this->semValue = $this->semStack[$this->stackPos-(3-2)];
+         $this->semValue = new Stmt\TraitUse($this->semStack[$this->stackPos-(3-2)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule268() {
@@ -1892,147 +1909,147 @@ class Php7 extends \PhpParser\ParserAbstract
     }
 
     protected function reduceRule269() {
-         $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)];
+         $this->semValue = $this->semStack[$this->stackPos-(3-2)];
     }
 
     protected function reduceRule270() {
-         $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$this->stackPos-(4-1)][0], $this->semStack[$this->stackPos-(4-1)][1], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
+         $this->semValue = array();
     }
 
     protected function reduceRule271() {
-         $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$this->stackPos-(5-1)][0], $this->semStack[$this->stackPos-(5-1)][1], $this->semStack[$this->stackPos-(5-3)], $this->semStack[$this->stackPos-(5-4)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes);
+         $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)];
     }
 
     protected function reduceRule272() {
-         $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$this->stackPos-(4-1)][0], $this->semStack[$this->stackPos-(4-1)][1], $this->semStack[$this->stackPos-(4-3)], null, $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$this->stackPos-(4-1)][0], $this->semStack[$this->stackPos-(4-1)][1], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
     }
 
     protected function reduceRule273() {
-         $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$this->stackPos-(4-1)][0], $this->semStack[$this->stackPos-(4-1)][1], null, $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$this->stackPos-(5-1)][0], $this->semStack[$this->stackPos-(5-1)][1], $this->semStack[$this->stackPos-(5-3)], $this->semStack[$this->stackPos-(5-4)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes);
     }
 
     protected function reduceRule274() {
-         $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$this->stackPos-(4-1)][0], $this->semStack[$this->stackPos-(4-1)][1], null, $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
+         $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$this->stackPos-(4-1)][0], $this->semStack[$this->stackPos-(4-1)][1], $this->semStack[$this->stackPos-(4-3)], null, $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
     }
 
     protected function reduceRule275() {
-         $this->semValue = array($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)]);
+         $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$this->stackPos-(4-1)][0], $this->semStack[$this->stackPos-(4-1)][1], null, $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
     }
 
     protected function reduceRule276() {
-         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
+         $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$this->stackPos-(4-1)][0], $this->semStack[$this->stackPos-(4-1)][1], null, $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
     }
 
     protected function reduceRule277() {
-         $this->semValue = array(null, $this->semStack[$this->stackPos-(1-1)]);
+         $this->semValue = array($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)]);
     }
 
     protected function reduceRule278() {
-         $this->semValue = null;
+         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
     protected function reduceRule279() {
-         $this->semValue = $this->semStack[$this->stackPos-(3-2)];
+         $this->semValue = array(null, $this->semStack[$this->stackPos-(1-1)]);
     }
 
     protected function reduceRule280() {
-         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
+         $this->semValue = null;
     }
 
     protected function reduceRule281() {
-         $this->semValue = 0;
+         $this->semValue = $this->semStack[$this->stackPos-(3-2)];
     }
 
     protected function reduceRule282() {
-         $this->semValue = 0;
+         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
     protected function reduceRule283() {
-         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
+         $this->semValue = 0;
     }
 
     protected function reduceRule284() {
-         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
+         $this->semValue = 0;
     }
 
     protected function reduceRule285() {
-         $this->checkModifier($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)], $this->stackPos-(2-2)); $this->semValue = $this->semStack[$this->stackPos-(2-1)] | $this->semStack[$this->stackPos-(2-2)];
+         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
     protected function reduceRule286() {
-         $this->semValue = Stmt\Class_::MODIFIER_PUBLIC;
+         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
     protected function reduceRule287() {
-         $this->semValue = Stmt\Class_::MODIFIER_PROTECTED;
+         $this->checkModifier($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)], $this->stackPos-(2-2)); $this->semValue = $this->semStack[$this->stackPos-(2-1)] | $this->semStack[$this->stackPos-(2-2)];
     }
 
     protected function reduceRule288() {
-         $this->semValue = Stmt\Class_::MODIFIER_PRIVATE;
+         $this->semValue = Stmt\Class_::MODIFIER_PUBLIC;
     }
 
     protected function reduceRule289() {
-         $this->semValue = Stmt\Class_::MODIFIER_STATIC;
+         $this->semValue = Stmt\Class_::MODIFIER_PROTECTED;
     }
 
     protected function reduceRule290() {
-         $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT;
+         $this->semValue = Stmt\Class_::MODIFIER_PRIVATE;
     }
 
     protected function reduceRule291() {
-         $this->semValue = Stmt\Class_::MODIFIER_FINAL;
+         $this->semValue = Stmt\Class_::MODIFIER_STATIC;
     }
 
     protected function reduceRule292() {
-         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
+         $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT;
     }
 
     protected function reduceRule293() {
-         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
+         $this->semValue = Stmt\Class_::MODIFIER_FINAL;
     }
 
     protected function reduceRule294() {
-         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
+         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
     }
 
     protected function reduceRule295() {
-         $this->semValue = new Stmt\PropertyProperty(substr($this->semStack[$this->stackPos-(1-1)], 1), null, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
+         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
     }
 
     protected function reduceRule296() {
-         $this->semValue = new Stmt\PropertyProperty(substr($this->semStack[$this->stackPos-(3-1)], 1), $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
     }
 
     protected function reduceRule297() {
-         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
+         $this->semValue = new Stmt\PropertyProperty(substr($this->semStack[$this->stackPos-(1-1)], 1), null, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
     protected function reduceRule298() {
-         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
+         $this->semValue = new Stmt\PropertyProperty(substr($this->semStack[$this->stackPos-(3-1)], 1), $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule299() {
-         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
+         $this->semValue = $this->semStack[$this->stackPos-(2-1)];
     }
 
     protected function reduceRule300() {
-         $this->semValue = array();
+         $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
     }
 
     protected function reduceRule301() {
-         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
+         $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
     }
 
     protected function reduceRule302() {
-         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
+         $this->semValue = array();
     }
 
     protected function reduceRule303() {
-         $this->semValue = new Expr\Assign($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
     protected function reduceRule304() {
-         $this->semValue = new Expr\Assign($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
     protected function reduceRule305() {
@@ -2040,808 +2057,816 @@ class Php7 extends \PhpParser\ParserAbstract
     }
 
     protected function reduceRule306() {
-         $this->semValue = new Expr\AssignRef($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
+         $this->semValue = new Expr\Assign($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule307() {
-         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
+         $this->semValue = new Expr\Assign($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule308() {
-         $this->semValue = new Expr\Clone_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+         $this->semValue = new Expr\AssignRef($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
     }
 
     protected function reduceRule309() {
-         $this->semValue = new Expr\AssignOp\Plus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
     protected function reduceRule310() {
-         $this->semValue = new Expr\AssignOp\Minus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\Clone_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
     protected function reduceRule311() {
-         $this->semValue = new Expr\AssignOp\Mul($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\AssignOp\Plus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule312() {
-         $this->semValue = new Expr\AssignOp\Div($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\AssignOp\Minus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule313() {
-         $this->semValue = new Expr\AssignOp\Concat($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\AssignOp\Mul($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule314() {
-         $this->semValue = new Expr\AssignOp\Mod($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\AssignOp\Div($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule315() {
-         $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\AssignOp\Concat($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule316() {
-         $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\AssignOp\Mod($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule317() {
-         $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule318() {
-         $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule319() {
-         $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule320() {
-         $this->semValue = new Expr\AssignOp\Pow($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule321() {
-         $this->semValue = new Expr\PostInc($this->semStack[$this->stackPos-(2-1)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+         $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule322() {
-         $this->semValue = new Expr\PreInc($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+         $this->semValue = new Expr\AssignOp\Pow($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule323() {
-         $this->semValue = new Expr\PostDec($this->semStack[$this->stackPos-(2-1)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+         $this->semValue = new Expr\PostInc($this->semStack[$this->stackPos-(2-1)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
     protected function reduceRule324() {
-         $this->semValue = new Expr\PreDec($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+         $this->semValue = new Expr\PreInc($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
     protected function reduceRule325() {
-         $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\PostDec($this->semStack[$this->stackPos-(2-1)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
     protected function reduceRule326() {
-         $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\PreDec($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
     protected function reduceRule327() {
-         $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule328() {
-         $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule329() {
-         $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule330() {
-         $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule331() {
-         $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule332() {
-         $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule333() {
-         $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule334() {
-         $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule335() {
-         $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule336() {
-         $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule337() {
-         $this->semValue = new Expr\BinaryOp\Div($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule338() {
-         $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule339() {
-         $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BinaryOp\Div($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule340() {
-         $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule341() {
-         $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule342() {
-         $this->semValue = new Expr\UnaryPlus($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule343() {
-         $this->semValue = new Expr\UnaryMinus($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule344() {
-         $this->semValue = new Expr\BooleanNot($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+         $this->semValue = new Expr\UnaryPlus($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
     protected function reduceRule345() {
-         $this->semValue = new Expr\BitwiseNot($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+         $this->semValue = new Expr\UnaryMinus($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
     protected function reduceRule346() {
-         $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BooleanNot($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
     protected function reduceRule347() {
-         $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BitwiseNot($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
     protected function reduceRule348() {
-         $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule349() {
-         $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule350() {
-         $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule351() {
-         $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule352() {
-         $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule353() {
-         $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule354() {
-         $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule355() {
-         $this->semValue = new Expr\Instanceof_($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule356() {
-         $this->semValue = $this->semStack[$this->stackPos-(3-2)];
+         $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule357() {
-         $this->semValue = new Expr\Ternary($this->semStack[$this->stackPos-(5-1)], $this->semStack[$this->stackPos-(5-3)], $this->semStack[$this->stackPos-(5-5)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes);
+         $this->semValue = new Expr\Instanceof_($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule358() {
-         $this->semValue = new Expr\Ternary($this->semStack[$this->stackPos-(4-1)], null, $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
+         $this->semValue = $this->semStack[$this->stackPos-(3-2)];
     }
 
     protected function reduceRule359() {
-         $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
+         $this->semValue = new Expr\Ternary($this->semStack[$this->stackPos-(5-1)], $this->semStack[$this->stackPos-(5-3)], $this->semStack[$this->stackPos-(5-5)], $this->startAttributeStack[$this->stackPos-(5-1)] + $this->endAttributes);
     }
 
     protected function reduceRule360() {
-         $this->semValue = new Expr\Isset_($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
+         $this->semValue = new Expr\Ternary($this->semStack[$this->stackPos-(4-1)], null, $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
     }
 
     protected function reduceRule361() {
-         $this->semValue = new Expr\Empty_($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
+         $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
     protected function reduceRule362() {
-         $this->semValue = new Expr\Include_($this->semStack[$this->stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+         $this->semValue = new Expr\Isset_($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
     }
 
     protected function reduceRule363() {
-         $this->semValue = new Expr\Include_($this->semStack[$this->stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+         $this->semValue = new Expr\Empty_($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
     }
 
     protected function reduceRule364() {
-         $this->semValue = new Expr\Eval_($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
+         $this->semValue = new Expr\Include_($this->semStack[$this->stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
     protected function reduceRule365() {
-         $this->semValue = new Expr\Include_($this->semStack[$this->stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+         $this->semValue = new Expr\Include_($this->semStack[$this->stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
     protected function reduceRule366() {
-         $this->semValue = new Expr\Include_($this->semStack[$this->stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+         $this->semValue = new Expr\Eval_($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
     }
 
     protected function reduceRule367() {
-         $this->semValue = new Expr\Cast\Int_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+         $this->semValue = new Expr\Include_($this->semStack[$this->stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
     protected function reduceRule368() {
-         $this->semValue = new Expr\Cast\Double($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+         $this->semValue = new Expr\Include_($this->semStack[$this->stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
     protected function reduceRule369() {
-         $this->semValue = new Expr\Cast\String_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+         $this->semValue = new Expr\Cast\Int_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
     protected function reduceRule370() {
-         $this->semValue = new Expr\Cast\Array_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+         $this->semValue = new Expr\Cast\Double($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
     protected function reduceRule371() {
-         $this->semValue = new Expr\Cast\Object_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+         $this->semValue = new Expr\Cast\String_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
     protected function reduceRule372() {
-         $this->semValue = new Expr\Cast\Bool_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+         $this->semValue = new Expr\Cast\Array_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
     protected function reduceRule373() {
-         $this->semValue = new Expr\Cast\Unset_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+         $this->semValue = new Expr\Cast\Object_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
     protected function reduceRule374() {
+         $this->semValue = new Expr\Cast\Bool_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+    }
+
+    protected function reduceRule375() {
+         $this->semValue = new Expr\Cast\Unset_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
+    }
+
+    protected function reduceRule376() {
          $attrs = $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes;
             $attrs['kind'] = strtolower($this->semStack[$this->stackPos-(2-1)]) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE;
             $this->semValue = new Expr\Exit_($this->semStack[$this->stackPos-(2-2)], $attrs);
     }
 
-    protected function reduceRule375() {
+    protected function reduceRule377() {
          $this->semValue = new Expr\ErrorSuppress($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule376() {
+    protected function reduceRule378() {
          $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
-    protected function reduceRule377() {
+    protected function reduceRule379() {
          $this->semValue = new Expr\ShellExec($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule378() {
+    protected function reduceRule380() {
          $this->semValue = new Expr\Print_($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule379() {
+    protected function reduceRule381() {
          $this->semValue = new Expr\Yield_(null, null, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule380() {
+    protected function reduceRule382() {
          $this->semValue = new Expr\Yield_($this->semStack[$this->stackPos-(2-2)], null, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule381() {
+    protected function reduceRule383() {
          $this->semValue = new Expr\Yield_($this->semStack[$this->stackPos-(4-4)], $this->semStack[$this->stackPos-(4-2)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule382() {
+    protected function reduceRule384() {
          $this->semValue = new Expr\YieldFrom($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule383() {
+    protected function reduceRule385() {
          $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$this->stackPos-(10-2)], 'params' => $this->semStack[$this->stackPos-(10-4)], 'uses' => $this->semStack[$this->stackPos-(10-6)], 'returnType' => $this->semStack[$this->stackPos-(10-7)], 'stmts' => $this->semStack[$this->stackPos-(10-9)]], $this->startAttributeStack[$this->stackPos-(10-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule384() {
+    protected function reduceRule386() {
          $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$this->stackPos-(11-3)], 'params' => $this->semStack[$this->stackPos-(11-5)], 'uses' => $this->semStack[$this->stackPos-(11-7)], 'returnType' => $this->semStack[$this->stackPos-(11-8)], 'stmts' => $this->semStack[$this->stackPos-(11-10)]], $this->startAttributeStack[$this->stackPos-(11-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule385() {
+    protected function reduceRule387() {
          $this->semValue = array(new Stmt\Class_(null, ['type' => 0, 'extends' => $this->semStack[$this->stackPos-(7-3)], 'implements' => $this->semStack[$this->stackPos-(7-4)], 'stmts' => $this->semStack[$this->stackPos-(7-6)]], $this->startAttributeStack[$this->stackPos-(7-1)] + $this->endAttributes), $this->semStack[$this->stackPos-(7-2)]);
             $this->checkClass($this->semValue[0], -1);
     }
 
-    protected function reduceRule386() {
+    protected function reduceRule388() {
          $this->semValue = new Expr\New_($this->semStack[$this->stackPos-(3-2)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule387() {
+    protected function reduceRule389() {
          list($class, $ctorArgs) = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule388() {
+    protected function reduceRule390() {
          $this->semValue = array();
     }
 
-    protected function reduceRule389() {
+    protected function reduceRule391() {
          $this->semValue = $this->semStack[$this->stackPos-(4-3)];
     }
 
-    protected function reduceRule390() {
+    protected function reduceRule392() {
          $this->semValue = $this->semStack[$this->stackPos-(2-1)];
     }
 
-    protected function reduceRule391() {
+    protected function reduceRule393() {
          $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
     }
 
-    protected function reduceRule392() {
+    protected function reduceRule394() {
          $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
     }
 
-    protected function reduceRule393() {
+    protected function reduceRule395() {
          $this->semValue = new Expr\ClosureUse(substr($this->semStack[$this->stackPos-(2-2)], 1), $this->semStack[$this->stackPos-(2-1)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule394() {
+    protected function reduceRule396() {
          $this->semValue = new Expr\FuncCall($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule395() {
+    protected function reduceRule397() {
          $this->semValue = new Expr\FuncCall($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule396() {
+    protected function reduceRule398() {
          $this->semValue = new Expr\StaticCall($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule397() {
+    protected function reduceRule399() {
          $this->semValue = new Name($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule398() {
+    protected function reduceRule400() {
          $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
-    protected function reduceRule399() {
+    protected function reduceRule401() {
          $this->semValue = new Name($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule400() {
+    protected function reduceRule402() {
          $this->semValue = new Name\FullyQualified($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule401() {
+    protected function reduceRule403() {
          $this->semValue = new Name\Relative($this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule402() {
+    protected function reduceRule404() {
          $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
-    protected function reduceRule403() {
+    protected function reduceRule405() {
          $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
-    protected function reduceRule404() {
+    protected function reduceRule406() {
          $this->semValue = new Expr\Error($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2;
     }
 
-    protected function reduceRule405() {
+    protected function reduceRule407() {
          $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
-    protected function reduceRule406() {
+    protected function reduceRule408() {
          $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
-    protected function reduceRule407() {
+    protected function reduceRule409() {
          $this->semValue = null;
     }
 
-    protected function reduceRule408() {
+    protected function reduceRule410() {
          $this->semValue = $this->semStack[$this->stackPos-(3-2)];
     }
 
-    protected function reduceRule409() {
+    protected function reduceRule411() {
          $this->semValue = array();
     }
 
-    protected function reduceRule410() {
+    protected function reduceRule412() {
          $this->semValue = array(new Scalar\EncapsedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$this->stackPos-(1-1)], '`'), $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes));
     }
 
-    protected function reduceRule411() {
+    protected function reduceRule413() {
          foreach ($this->semStack[$this->stackPos-(1-1)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', true); } }; $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
-    protected function reduceRule412() {
+    protected function reduceRule414() {
          $this->semValue = array();
     }
 
-    protected function reduceRule413() {
+    protected function reduceRule415() {
          $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
-    protected function reduceRule414() {
+    protected function reduceRule416() {
          $this->semValue = new Expr\ConstFetch($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule415() {
+    protected function reduceRule417() {
          $this->semValue = new Expr\ClassConstFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule416() {
+    protected function reduceRule418() {
          $this->semValue = new Expr\ClassConstFetch($this->semStack[$this->stackPos-(3-1)], new Expr\Error($this->startAttributeStack[$this->stackPos-(3-3)] + $this->endAttributeStack[$this->stackPos-(3-3)]), $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes); $this->errorState = 2;
     }
 
-    protected function reduceRule417() {
+    protected function reduceRule419() {
          $attrs = $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_SHORT;
             $this->semValue = new Expr\Array_($this->semStack[$this->stackPos-(3-2)], $attrs);
     }
 
-    protected function reduceRule418() {
+    protected function reduceRule420() {
          $attrs = $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_LONG;
             $this->semValue = new Expr\Array_($this->semStack[$this->stackPos-(4-3)], $attrs);
     }
 
-    protected function reduceRule419() {
+    protected function reduceRule421() {
          $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
-    protected function reduceRule420() {
+    protected function reduceRule422() {
          $attrs = $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes; $attrs['kind'] = ($this->semStack[$this->stackPos-(1-1)][0] === "'" || ($this->semStack[$this->stackPos-(1-1)][1] === "'" && ($this->semStack[$this->stackPos-(1-1)][0] === 'b' || $this->semStack[$this->stackPos-(1-1)][0] === 'B')) ? Scalar\String_::KIND_SINGLE_QUOTED : Scalar\String_::KIND_DOUBLE_QUOTED);
             $this->semValue = new Scalar\String_(Scalar\String_::parse($this->semStack[$this->stackPos-(1-1)]), $attrs);
     }
 
-    protected function reduceRule421() {
+    protected function reduceRule423() {
          $this->semValue = $this->parseLNumber($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule422() {
+    protected function reduceRule424() {
          $this->semValue = new Scalar\DNumber(Scalar\DNumber::parse($this->semStack[$this->stackPos-(1-1)]), $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule423() {
+    protected function reduceRule425() {
          $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule424() {
+    protected function reduceRule426() {
          $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule425() {
+    protected function reduceRule427() {
          $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule426() {
+    protected function reduceRule428() {
          $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule427() {
+    protected function reduceRule429() {
          $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule428() {
+    protected function reduceRule430() {
          $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule429() {
+    protected function reduceRule431() {
          $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule430() {
+    protected function reduceRule432() {
          $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule431() {
+    protected function reduceRule433() {
          $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
-    protected function reduceRule432() {
+    protected function reduceRule434() {
          $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
-    protected function reduceRule433() {
+    protected function reduceRule435() {
          $attrs = $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = strpos($this->semStack[$this->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[$this->stackPos-(3-1)], $matches); $attrs['docLabel'] = $matches[1];;
             $this->semValue = new Scalar\String_(Scalar\String_::parseDocString($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-2)]), $attrs);
     }
 
-    protected function reduceRule434() {
+    protected function reduceRule436() {
          $attrs = $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes; $attrs['kind'] = strpos($this->semStack[$this->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[$this->stackPos-(2-1)], $matches); $attrs['docLabel'] = $matches[1];;
             $this->semValue = new Scalar\String_('', $attrs);
     }
 
-    protected function reduceRule435() {
+    protected function reduceRule437() {
          $attrs = $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED;
             foreach ($this->semStack[$this->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[$this->stackPos-(3-2)], $attrs);
     }
 
-    protected function reduceRule436() {
+    protected function reduceRule438() {
          $attrs = $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = strpos($this->semStack[$this->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[$this->stackPos-(3-1)], $matches); $attrs['docLabel'] = $matches[1];;
             foreach ($this->semStack[$this->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[$this->stackPos-(3-2)]);; $this->semValue = new Scalar\Encapsed($this->semStack[$this->stackPos-(3-2)], $attrs);
     }
 
-    protected function reduceRule437() {
+    protected function reduceRule439() {
          $this->semValue = null;
     }
 
-    protected function reduceRule438() {
+    protected function reduceRule440() {
          $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
-    protected function reduceRule439() {
+    protected function reduceRule441() {
          $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
-    protected function reduceRule440() {
+    protected function reduceRule442() {
          $this->semValue = $this->semStack[$this->stackPos-(3-2)];
     }
 
-    protected function reduceRule441() {
+    protected function reduceRule443() {
          $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
-    protected function reduceRule442() {
+    protected function reduceRule444() {
          $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
-    protected function reduceRule443() {
+    protected function reduceRule445() {
          $this->semValue = $this->semStack[$this->stackPos-(3-2)];
     }
 
-    protected function reduceRule444() {
+    protected function reduceRule446() {
          $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
-    protected function reduceRule445() {
+    protected function reduceRule447() {
          $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule446() {
+    protected function reduceRule448() {
          $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule447() {
+    protected function reduceRule449() {
          $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule448() {
+    protected function reduceRule450() {
          $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule449() {
+    protected function reduceRule451() {
          $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
-    protected function reduceRule450() {
+    protected function reduceRule452() {
          $this->semValue = new Expr\MethodCall($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->semStack[$this->stackPos-(4-4)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule451() {
+    protected function reduceRule453() {
          $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
-    protected function reduceRule452() {
+    protected function reduceRule454() {
          $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
-    protected function reduceRule453() {
+    protected function reduceRule455() {
          $this->semValue = new Expr\PropertyFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule454() {
+    protected function reduceRule456() {
          $this->semValue = substr($this->semStack[$this->stackPos-(1-1)], 1);
     }
 
-    protected function reduceRule455() {
+    protected function reduceRule457() {
          $this->semValue = $this->semStack[$this->stackPos-(4-3)];
     }
 
-    protected function reduceRule456() {
+    protected function reduceRule458() {
          $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule457() {
+    protected function reduceRule459() {
          $this->semValue = new Expr\Error($this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes); $this->errorState = 2;
     }
 
-    protected function reduceRule458() {
+    protected function reduceRule460() {
          $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule459() {
+    protected function reduceRule461() {
          $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule460() {
+    protected function reduceRule462() {
          $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule461() {
+    protected function reduceRule463() {
          $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule462() {
+    protected function reduceRule464() {
          $this->semValue = new Expr\PropertyFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule463() {
+    protected function reduceRule465() {
          $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule464() {
+    protected function reduceRule466() {
          $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule465() {
+    protected function reduceRule467() {
          $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
-    protected function reduceRule466() {
+    protected function reduceRule468() {
          $this->semValue = $this->semStack[$this->stackPos-(3-2)];
     }
 
-    protected function reduceRule467() {
+    protected function reduceRule469() {
          $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule468() {
+    protected function reduceRule470() {
          $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
-    protected function reduceRule469() {
+    protected function reduceRule471() {
          $this->semValue = $this->semStack[$this->stackPos-(3-2)];
     }
 
-    protected function reduceRule470() {
+    protected function reduceRule472() {
          $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule471() {
+    protected function reduceRule473() {
          $this->semValue = new Expr\Error($this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2;
     }
 
-    protected function reduceRule472() {
+    protected function reduceRule474() {
          $this->semValue = new Expr\List_($this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule473() {
+    protected function reduceRule475() {
          $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
     }
 
-    protected function reduceRule474() {
+    protected function reduceRule476() {
          $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
     }
 
-    protected function reduceRule475() {
+    protected function reduceRule477() {
          $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(1-1)], null, false, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule476() {
+    protected function reduceRule478() {
          $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(1-1)], null, false, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule477() {
+    protected function reduceRule479() {
          $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(3-3)], $this->semStack[$this->stackPos-(3-1)], false, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule478() {
+    protected function reduceRule480() {
          $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(3-3)], $this->semStack[$this->stackPos-(3-1)], false, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule479() {
+    protected function reduceRule481() {
          $this->semValue = null;
     }
 
-    protected function reduceRule480() {
+    protected function reduceRule482() {
          $this->semValue = $this->semStack[$this->stackPos-(1-1)]; $end = count($this->semValue)-1; if ($this->semValue[$end] === null) unset($this->semValue[$end]);
     }
 
-    protected function reduceRule481() {
+    protected function reduceRule483() {
          $this->semStack[$this->stackPos-(3-1)][] = $this->semStack[$this->stackPos-(3-3)]; $this->semValue = $this->semStack[$this->stackPos-(3-1)];
     }
 
-    protected function reduceRule482() {
+    protected function reduceRule484() {
          $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
     }
 
-    protected function reduceRule483() {
+    protected function reduceRule485() {
          $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(3-3)], $this->semStack[$this->stackPos-(3-1)], false, $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule484() {
+    protected function reduceRule486() {
          $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(1-1)], null, false, $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule485() {
+    protected function reduceRule487() {
          $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(4-4)], $this->semStack[$this->stackPos-(4-1)], true, $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule486() {
+    protected function reduceRule488() {
          $this->semValue = new Expr\ArrayItem($this->semStack[$this->stackPos-(2-2)], null, true, $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule487() {
+    protected function reduceRule489() {
          $this->semValue = null;
     }
 
-    protected function reduceRule488() {
+    protected function reduceRule490() {
          $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)];
     }
 
-    protected function reduceRule489() {
+    protected function reduceRule491() {
          $this->semStack[$this->stackPos-(2-1)][] = $this->semStack[$this->stackPos-(2-2)]; $this->semValue = $this->semStack[$this->stackPos-(2-1)];
     }
 
-    protected function reduceRule490() {
+    protected function reduceRule492() {
          $this->semValue = array($this->semStack[$this->stackPos-(1-1)]);
     }
 
-    protected function reduceRule491() {
+    protected function reduceRule493() {
          $this->semValue = array($this->semStack[$this->stackPos-(2-1)], $this->semStack[$this->stackPos-(2-2)]);
     }
 
-    protected function reduceRule492() {
+    protected function reduceRule494() {
          $this->semValue = new Scalar\EncapsedStringPart($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule493() {
+    protected function reduceRule495() {
          $this->semValue = new Expr\Variable(substr($this->semStack[$this->stackPos-(1-1)], 1), $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule494() {
+    protected function reduceRule496() {
          $this->semValue = $this->semStack[$this->stackPos-(1-1)];
     }
 
-    protected function reduceRule495() {
+    protected function reduceRule497() {
          $this->semValue = new Expr\ArrayDimFetch($this->semStack[$this->stackPos-(4-1)], $this->semStack[$this->stackPos-(4-3)], $this->startAttributeStack[$this->stackPos-(4-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule496() {
+    protected function reduceRule498() {
          $this->semValue = new Expr\PropertyFetch($this->semStack[$this->stackPos-(3-1)], $this->semStack[$this->stackPos-(3-3)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule497() {
+    protected function reduceRule499() {
          $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule498() {
+    protected function reduceRule500() {
          $this->semValue = new Expr\Variable($this->semStack[$this->stackPos-(3-2)], $this->startAttributeStack[$this->stackPos-(3-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule499() {
+    protected function reduceRule501() {
          $this->semValue = new Expr\ArrayDimFetch(new Expr\Variable($this->semStack[$this->stackPos-(6-2)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes), $this->semStack[$this->stackPos-(6-4)], $this->startAttributeStack[$this->stackPos-(6-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule500() {
+    protected function reduceRule502() {
          $this->semValue = $this->semStack[$this->stackPos-(3-2)];
     }
 
-    protected function reduceRule501() {
+    protected function reduceRule503() {
          $this->semValue = new Scalar\String_($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule502() {
+    protected function reduceRule504() {
          $this->semValue = $this->parseNumString($this->semStack[$this->stackPos-(1-1)], $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule503() {
+    protected function reduceRule505() {
          $this->semValue = $this->parseNumString('-' . $this->semStack[$this->stackPos-(2-2)], $this->startAttributeStack[$this->stackPos-(2-1)] + $this->endAttributes);
     }
 
-    protected function reduceRule504() {
+    protected function reduceRule506() {
          $this->semValue = new Expr\Variable(substr($this->semStack[$this->stackPos-(1-1)], 1), $this->startAttributeStack[$this->stackPos-(1-1)] + $this->endAttributes);
     }
 }