Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / vendor / nikic / php-parser / lib / PhpParser / Parser / Php5.php
index f16c811b32b2bf80ed7c5fc37d075113325a6aef..4da2dc9793f1883088784c2a4d42b631d12aff95 100644 (file)
@@ -18,16 +18,16 @@ use PhpParser\Node\Stmt;
 class Php5 extends \PhpParser\ParserAbstract
 {
     protected $tokenToSymbolMapSize = 392;
-    protected $actionTableSize = 1075;
-    protected $gotoTableSize = 700;
+    protected $actionTableSize = 1072;
+    protected $gotoTableSize = 644;
 
     protected $invalidSymbol = 157;
     protected $errorSymbol = 1;
     protected $defaultAction = -32766;
     protected $unexpectedTokenRule = 32767;
 
-    protected $YY2TBLSTATE = 406;
-    protected $numNonLeafStates = 671;
+    protected $YY2TBLSTATE = 403;
+    protected $numNonLeafStates = 672;
 
     protected $symbolToName = array(
         "EOF",
@@ -233,300 +233,300 @@ class Php5 extends \PhpParser\ParserAbstract
     );
 
     protected $action = array(
-          676,  677,  678,  679,  680,-32766,  681,  682,  683,  719,
-          720,  218,  219,  220,  221,  222,  223,  224,  225,  226,
+          677,  678,  679,  680,  681,  279,  682,  683,  684,  720,
+          721,  218,  219,  220,  221,  222,  223,  224,  225,  226,
             0,  227,  228,  229,  230,  231,  232,  233,  234,  235,
           236,  237,  238,-32766,-32766,-32766,-32766,-32766,-32766,-32766,
-        -32766,-32767,-32767,-32767,-32767,  421,  239,  240,-32766,-32766,
-        -32766,-32766,  684,-32766,  311,-32766,-32766,-32766,-32766,-32766,
-        -32766,-32767,-32767,-32767,-32767,-32767,  685,  686,  687,  688,
-          689,  690,  691, 1180,   10,  751,-32766,-32766,-32766,-32766,
-        -32766,  424,  692,  693,  694,  695,  696,  697,  698,  699,
-          700,  701,  702,  722,  723,  724,  725,  726,  714,  715,
-          716,  717,  718,  703,  704,  705,  706,  707,  708,  709,
-          745,  746,  747,  748,  749,  750,  710,  711,  712,  713,
-          743,  734,  732,  733,  729,  730,  282,  721,  727,  728,
-          735,  736,  738,  737,  739,  740,   54,   55,  425,   56,
-           57,  731,  742,  741,   25,   58,   59,  339,   60,-32766,
-        -32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766,    9,-32767,
-        -32767,-32767,-32767,   52,  327,-32766, 1044,  952,  953,  954,
-          951,  950,  949,  944,-32766,-32766,-32766,   48,  770,  771,
-          828,   61,   62,  125, -272,  206,  815,   63, 1180,   64,
-          293,  294,   65,   66,   67,   68,   69,   70,   71,   72,
-          420,   26,  301,   73,  417,-32766,-32766,-32766,-32766, 1095,
-         1096,  755,  753,  758,-32766,  926,  876,  474,-32766,-32766,
-        -32766,  829,  410,-32766,  309,-32766, 1062,-32766,-32766,-32766,
-        -32766,-32766,-32766,  215,  216,  217,  437,-32766,-32766,-32766,
-        -32766,-32766,-32766,-32766,-32766,  122,  498,  952,  953,  954,
-          951,  950,  949,  202,  482,  483,  284,  627,  127,  118,
-          900,  901,  339,  484,  485, -219, 1101, 1102, 1103, 1104,
-         1098, 1099,  312,  499,  353,  423,  433,  499, 1105, 1100,
-          433,  525, -223,-32766,-32766,   41,  422,  335,  323,  907,
-          324,  426, -125, -125, -125,   -4,  829,  473,  101,  102,
-          103,  817,  303, 1044,   40,   21,  427, -125,  475, -125,
-          476, -125,  477, -125,  104,  428,  215,  216,  217,   31,
-           32,  429,  430,  628,   33,  478,  433,  819,   74,  592,
-          930,  351,  352,  479,  480,  877,  202,  243, 1107,  481,
-          297,  769,  800,  847,  431,  432,  300,  236,  237,  238,
+        -32766,-32767,-32767,-32767,-32767,  206,  239,  240,-32766,-32766,
+        -32766,-32766,  685,-32766,  123,-32766,-32766,-32766,-32766,-32766,
+        -32766,-32767,-32767,-32767,-32767,-32767,  686,  687,  688,  689,
+          690,  691,  692,  350,   30,  752,  954,  955,  956,  953,
+          952,  951,  693,  694,  695,  696,  697,  698,  699,  700,
+          701,  702,  703,  723,  724,  725,  726,  727,  715,  716,
+          717,  718,  719,  704,  705,  706,  707,  708,  709,  710,
+          746,  747,  748,  749,  750,  751,  711,  712,  713,  714,
+          744,  735,  733,  734,  730,  731, 1046,  722,  728,  729,
+          736,  737,  739,  738,  740,  741,   54,   55,  422,   56,
+           57,  732,  743,  742, -219,   58,   59,  413,   60,-32766,
+        -32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766, 1046,-32767,
+        -32767,-32767,-32767,-32767,-32767,-32767,-32767,   96,   97,   98,
+           99,  100,-32766,-32766,-32766,-32766,-32766, 1224,   52,  829,
+         1225,   61,   62,-32766,-32766,-32766,  294,   63,  590,   64,
+          290,  291,   65,   66,   67,   68,   69,   70,   71,   72,
+         1046,   26,  298,   73,  414,-32766,-32766,-32766,  877, 1097,
+         1098,  756,  754,  759,  815,  771,  772,  471,-32766,-32766,
+        -32766,  830,  421,  294,  548,-32766, 1182,-32766,-32766,-32766,
+        -32766,-32766,-32766,  215,  216,  217,  434,  420,-32766,  306,
+        -32766,-32766,-32766,-32766,-32766, 1109,  495,  954,  955,  956,
+          953,  952,  951,  202,  479,  480,  215,  216,  217,  407,
+          122,  241,  813,  481,  482, 1046, 1103, 1104, 1105, 1106,
+         1100, 1101,  309,  901,  902,  328,  202,  496, 1107, 1102,
+          430,-32766,  215,  216,  217,   41,  496,  332,  320,  430,
+          321,  423, -125, -125, -125,   -4,  830,  470,  126,  417,
+          336,  818,  202,  907,   40,   21,  424, -125,  472, -125,
+          473, -125,  474, -125,-32766,  425,  215,  216,  217,   31,
+           32,  426,  427,   10,   33,  475,  820,  878,   74,  216,
+          217,  348,  349,  476,  477,  126,  202,  243,  418,  478,
+         1046,  444,  801,  848,  428,  429,  281,  756,  202,  759,
            35,  105,  106,  107,  108,  109,  110,  111,  112,  113,
-          114,  115,  116,  239,  240, 1044,  426,  416,  831,  642,
-         -125,  829,  473,  215,  216,  217,  817, 1146,  241,   40,
-           21,  427,  350,  475,  447,  476, 1107,  477,  297, 1044,
-          428,  983,  985,  202,   31,   32,  429,  430,  408,   33,
-          478, 1195, 1222,   74,  322, 1223,  351,  352,  479,  480,
-        -32766,-32766,-32766, 1044,  481,  814,  925,  762,  847,  431,
-          432,-32767,-32767,-32767,-32767,   96,   97,   98,   99,  100,
-        -32766,   20,-32766,-32766,-32766,-32766, 1194,  123,  336,  810,
-          484,  426,   36,  831,  642,   -4,  829,  473,  900,  901,
-          338,  817,  126, 1044,   40,   21,  427,  906,  475,  299,
-          476,  499,  477, -501,  433,  428, -203, -203, -203,   31,
-           32,  429,  430,  217,   33,  478,  285,  758,   74,  551,
-         1213,  351,  352,  479,  480,-32766,-32766,-32766,  334,  481,
-           51,  202,  800,  847,  431,  432, 1044,  755,   30,  758,
-          126,-32766,-32766,-32766,  448,-32766,  331,-32766,-32766,-32766,
-           49,  450,  753,-32766,-32766,-32766,  426, 1044,  831,  642,
-         -203,-32766,  473,-32766,-32766,  812,  817,-32766,-32766,   40,
-           21,  427, 1072,  475,  121,  476,  202,  477,   29,  296,
-          428, -204, -204, -204,   31,   32,  429,  430,  117,   33,
-          478,  418, 1044,   74,  207,  829,  351,  352,  479,  480,
-          215,  216,  217,  499,  481,  208,  433,  800,  847,  431,
-          432,  438,  120,  335, 1044,  298,   78,   79,   80,-32766,
-          202,  239,  240,  645,  128,   98,   99,  100,  335,  233,
-          234,  235,  119,  831,  642, -204,   34,  295,   81,   82,
+          114,  115,  116,-32766,-32766,-32766,  423, 1064,  832,  643,
+         -125,  830,  470,  215,  216,  217,  818, 1148,  927,   40,
+           21,  424, 1074,  472,  628,  473,-32766,  474,-32766,  419,
+          425,  985,  987,  202,   31,   32,  426,  427,  405,   33,
+          475,  811, 1046,   74,  319, 1046,  348,  349,  476,  477,
+        -32766,-32766,-32766,  496,  478,   25,  430,  763,  848,  428,
+          429,  435,   48,  332,  415,  295,  901,  902,  282, 1147,
+        -32766,  297,-32766,-32766,-32766,-32766, 1182,  347,  333,  496,
+          770,  423,  430,  832,  643,   -4,  830,  470, -223,  331,
+          629,  818,-32766,  430,   40,   21,  424,  932,  472,  308,
+          473,  445,  474, -502,  928,  425, -203, -203, -203,   31,
+           32,  426,  427,  296,   33,  475,  809,  759,   74,  816,
+         1215,  348,  349,  476,  477,-32766,-32766,-32766, 1046,  478,
+          335, 1197,  801,  848,  428,  429,  236,  237,  238,  217,
+           49,-32766,-32766,-32766,  118,-32766,  127,-32766,-32766,-32766,
+          336,  292,  239,  240, 1046, 1196,  423,  202,  832,  643,
+         -203,-32766,  470,-32766,-32766,  481,  818,  208,  131,   40,
+           21,  424,  581,  472,   20,  473,   36,  474,   29,  293,
+          425, -204, -204, -204,   31,   32,  426,  427,   51,   33,
+          475,  447,  121,   74,  202,  830,  348,  349,  476,  477,
+          908,-32766,-32766,-32766,  478,  244,  522,  801,  848,  428,
+          429,  101,  102,  103,    9,  300,   78,   79,   80,  246,
+          324,-32766,  119,  646,  233,  234,  235,  104,   77,  946,
+          130,  754,  332,  832,  643, -204,   34,  245,   81,   82,
            83,   84,   85,   86,   87,   88,   89,   90,   91,   92,
            93,   94,   95,   96,   97,   98,   99,  100,  101,  102,
-          103,  246,  303,  244,  829,  426,  216,  217,  215,  216,
-          217,  473,  808,  499,  104,  817,  433,  131,   40,   21,
-          427,  583,  475,   77,  476,  202,  477,  335,  202,  428,
-          462,  598,  648,   31,   32,  429,  829,  443,   33,  478,
-          644,  245,   74,  457,   22,  351,  352,-32766,-32766,-32766,
-          132,  361,  209,  481,  770,  771,  605,  606,  941,  658,
-          929,  670,  763,  647,  646,  -82,  840,-32766,  303,  649,
-          652,  130,  827,  315,  426,  104,-32766,   53,   46,   47,
-          473,  301,  831,  642,  817,   44,   45,   40,   21,  427,
-          129,  475,   43,  476,   50,  477,  611,  753,  428,  531,
-          758,  755,   31,   32,  429,  829,  426,   33,  478,  756,
-        -32766,   74,  473,  957,  351,  352,  817,  586,  636,   40,
-           21,  427,  481,  475,  446,  476,  615,  477,  849,  848,
-          428,  326, 1106,  655,   31,   32,  429,  829,  623,   33,
-          478,  330,  281,   74,  449,   11,  351,  352,  -80,  589,
-           12,  863,  642,  602,  481, 1145,  328,  467,  441, -219,
-            0,  603,  411,    0,    0,  650,    0,    0,    0,    0,
-            0,    0,    0,    0,    0,  426,    0, -502,    0,    0,
-            0,  473,    0,  831,  642,  817,  325, -501,   40,   21,
-          427,  308,  475,  310,  476,  484,  477, 1152,    0,  428,
-            0,    0,    0,   31,   32,  429,  829,  426,   33,  478,
-            6,  360,   74,  473, -410,  351,  352,  817, -402,    5,
-           40,   21,  427,  481,  475,   14,  476, -411,  477,  842,
-          412,  428,  533,  443,  394,   31,   32,  429,  386,  385,
-           33,  478,  374,  816,   74,  663,  662,  351,  352,   39,
-           38,  767,  831,  642,  766,  481,  809,  811,  935,  813,
-          825,  933,  768,  818,  934,  937,  936,  859,  861,  864,
-          803,  871,  870,  879,  820,  805,  426,  826,  869,  407,
-          333,  332,  473,  124,  831,  642,  817,  406,   77,   40,
-           21,  427,  667,  475,  666,  476,  242,  477,  665,  660,
-          428,  657,  656,  654,   31,   32,  429,  653,  651,   33,
-          478,  643,  340,   74,  210,  211,  351,  352,  942,  834,
-          212, 1047,  213,  843,  481,  772,  775,  774,  868, 1218,
-         1188, 1186, 1171, 1184,  204, 1086,  918, 1192, 1182,  210,
-          211,  773, 1095, 1096, 1058,  212,-32766,  213,  844,  845,
-         1097, 1046,  836,  831,  642,  307, 1220,  764,  765,  204,
-         1221, 1219,  801,  664,  461,  846,    0, 1095, 1096,  306,
-          409,-32766,  305,  304,   24, 1097,   27,  292,  291,  283,
-          415,   28,   37,   42,   75,  205,   76,-32766,    0, -220,
-         1048, 1024, 1023, 1088,  576, 1111,  908,  572, 1052, 1101,
-         1102, 1103, 1104, 1098, 1099,  384, 1049,  633,  566,  471,
-          466, 1105, 1100,  465,  458,  379,   18,   17,  214,  286,
-        -32766,   16,  572,  609, 1101, 1102, 1103, 1104, 1098, 1099,
-          384, 1042, -420,    0, 1166, 1165, 1105, 1100, 1112, 1216,
-         1085, 1183, 1055,  214, 1170,-32766, 1185,    0, 1071, 1056,
-         1057, 1054, 1053,    0, 1151
+          103, -254,  300, 1109,  830,  423,   98,   99,  100,  496,
+          120,  470,  430, 1046,  104,  818,-32766,-32766,   40,   21,
+          424,  117,  472,  828,  473,  440,  474,  207,  645,  425,
+          125,  209,  647,   31,   32,  426,  830,  841,   33,  475,
+        -32766,-32766,   74,  128,  657,  348,  349,  332,  239,  240,
+          459,  597,  654,  478,  312,  454,   22,  132,  358,  771,
+          772,  604,  605,  -82,  660,  300,  943,  663,  931,  671,
+          764,  649,-32766,  104,  423,  756,  757,   53,  612,  959,
+          470,   43,  832,  643,  818,   44,   45,   40,   21,  424,
+          298,  472, -273,  473,   46,  474,   50,   47,  425,  129,
+          759,  754,   31,   32,  426,  830,  423,   33,  475,  637,
+          528,   74,  470,-32766,  348,  349,  818,  624,  850,   40,
+           21,  424,  478,  472,  443,  473,  584,  474,  849,  616,
+          425,  -80, 1108,  655,   31,   32,  426,  830,   11,   33,
+          475,  446,  278,   74,  438,  601,  348,  349,  587,  602,
+          283,  832,  643,  464,  478,  325, 1154,    0,    0,  327,
+            0,    0,    0,    0,    0,  651,    0,    0,    0,  322,
+            0,    0,    0,  323,    0,  423,    0,    0,  307,    0,
+            0,  470,  305,  832,  643,  818, -503, -502,   40,   21,
+          424,  481,  472,    0,  473, -403,  474,   14,    5,  425,
+            0,    0,    6,   31,   32,  426,  830,  423,   33,  475,
+          357, -411,   74,  470,   12,  348,  349,  818, -412,  440,
+           40,   21,  424,  478,  472,  382,  473,  409,  474,  408,
+          383,  425,  391,  371,  530,   31,   32,  426,  843,  329,
+           33,  475,  666,  810,   74,   39,   38,  348,  349,  880,
+          821,  769,  832,  643,  819,  478,  937,  806,  667,  768,
+          827,  936,  939,  812,  767,  814,  826,  872,  804,  938,
+          865,  862,  817,  860,  935,  871,  423,   77,  644,  648,
+          650,  652,  470,  653,  864,  643,  818,  656,  658,   40,
+           21,  424,  659,  472,  661,  473,  242,  474,  662,  330,
+          425,  403,  404,  124,   31,   32,  426,  845,  773,   33,
+          475,  776,  775,   74,  210,  211,  348,  349,  870,  668,
+          212,  802,  213, 1221,  478,  458, 1220, 1190, 1188, 1173,
+         1186, 1088,  919, 1194,  204, 1184,  869,  944,  835,  210,
+          211, 1049, 1097, 1098,  844,  212,-32766,  213, 1048,  837,
+         1099, 1060,  774,  832,  643,   42, 1222,  846,  765,  204,
+          847,  766, 1223, 1044,   37,   28,  412, 1097, 1098,  406,
+          337,-32766,   75,   76,  304, 1099,  303,  302,  301,   27,
+           24,  289,  288,  280,-32766,  205,    0, 1025,  573, 1026,
+         1050, -220, 1090, -219,   16, 1113,  909,  569, 1054, 1103,
+         1104, 1105, 1106, 1100, 1101,  381, 1051,  634,  563,  468,
+          463, 1107, 1102,  462,  455,  376,   18,   17,  214,    0,
+        -32766,  608,  569, -421, 1103, 1104, 1105, 1106, 1100, 1101,
+          381, 1168, 1167, 1114, 1218, 1087, 1107, 1102, 1185, 1057,
+         1172, 1187, 1073,  214, 1058,-32766, 1059,    0, 1056, 1055,
+            0, 1153
     );
 
     protected $actionCheck = array(
-            2,    3,    4,    5,    6,    8,    8,    9,   10,   11,
+            2,    3,    4,    5,    6,   13,    8,    9,   10,   11,
            12,   31,   32,   33,   34,   35,   36,   37,   38,   39,
             0,   41,   42,   43,   44,   45,   46,   47,   48,   49,
            50,   51,   52,    8,    9,   10,   31,   32,   33,   34,
            35,   36,   37,   38,   39,    7,   66,   67,   31,   32,
            33,   34,   54,   28,    7,   30,   31,   32,   33,   34,
            35,   36,   37,   38,   39,   40,   68,   69,   70,   71,
-           72,   73,   74,   79,    7,   77,   31,   32,   33,   34,
-           35,    7,   84,   85,   86,   87,   88,   89,   90,   91,
+           72,   73,   74,    7,    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,
+          122,  123,  124,  125,  126,  127,   12,  129,  130,  131,
           132,  133,  134,  135,  136,  137,    2,    3,    4,    5,
-            6,  143,  144,  145,    7,   11,   12,  153,   14,   31,
-           32,   33,   34,   35,   36,   37,   38,   39,  103,   41,
-           42,   43,   44,   67,  109,   79,   12,  112,  113,  114,
-          115,  116,  117,  118,    8,    9,   10,   67,  102,  103,
-            1,   47,   48,   29,   79,    7,  148,   53,   79,   55,
+            6,  143,  144,  145,  152,   11,   12,    7,   14,   31,
+           32,   33,   34,   35,   36,   37,   38,   39,   12,   41,
+           42,   43,   44,   41,   42,   43,   44,   45,   46,   47,
+           48,   49,   31,   32,   33,   34,   35,   77,   67,    1,
+           80,   47,   48,    8,    9,   10,   35,   53,   82,   55,
            56,   57,   58,   59,   60,   61,   62,   63,   64,   65,
-            7,   67,   68,   69,   70,    8,    9,   10,  103,   75,
-           76,   77,   77,   79,  109,  148,   29,   83,    8,    9,
-           10,    1,  146,  118,  128,   28,  152,   30,   31,   32,
-           33,   34,   35,    8,    9,   10,  102,  151,   28,  153,
-           30,   31,   32,   33,   34,  149,  112,  112,  113,  114,
-          115,  116,  117,   28,  120,  121,    7,   77,  149,  149,
-          130,  131,  153,  129,  130,  152,  132,  133,  134,  135,
-          136,  137,  138,  143,    7,    7,  146,  143,  144,  145,
-          146,   82,  152,    8,    9,  151,    7,  153,  154,  152,
-          156,   71,   72,   73,   74,    0,    1,   77,   50,   51,
-           52,   81,   54,   12,   84,   85,   86,   87,   88,   89,
-           90,   91,   92,   93,   66,   95,    8,    9,   10,   99,
-          100,  101,  102,  143,  104,  105,  146,  148,  108,   82,
-          150,  111,  112,  113,  114,  148,   28,   29,  139,  119,
-           35,  148,  122,  123,  124,  125,   35,   50,   51,   52,
+           12,   67,   68,   69,   70,    8,    9,   10,   29,   75,
+           76,   77,   77,   79,  148,  102,  103,   83,    8,    9,
+           10,    1,    7,   35,   78,   28,   79,   30,   31,   32,
+           33,   34,   35,    8,    9,   10,  102,    7,   28,  128,
+           30,   31,   32,   33,   34,  139,  112,  112,  113,  114,
+          115,  116,  117,   28,  120,  121,    8,    9,   10,  146,
+          149,   13,  148,  129,  130,   12,  132,  133,  134,  135,
+          136,  137,  138,  130,  131,    7,   28,  143,  144,  145,
+          146,    8,    8,    9,   10,  151,  143,  153,  154,  146,
+          156,   71,   72,   73,   74,    0,    1,   77,  147,    7,
+          153,   81,   28,  152,   84,   85,   86,   87,   88,   89,
+           90,   91,   92,   93,   79,   95,    8,    9,   10,   99,
+          100,  101,  102,    7,  104,  105,  148,  148,  108,    9,
+           10,  111,  112,  113,  114,  147,   28,   29,    7,  119,
+           12,   29,  122,  123,  124,  125,    7,   77,   28,   79,
            15,   16,   17,   18,   19,   20,   21,   22,   23,   24,
-           25,   26,   27,   66,   67,   12,   71,    7,  148,  149,
-          150,    1,   77,    8,    9,   10,   81,  152,   13,   84,
-           85,   86,    7,   88,   29,   90,  139,   92,   35,   12,
+           25,   26,   27,   31,   32,   33,   71,  152,  148,  149,
+          150,    1,   77,    8,    9,   10,   81,  152,  148,   84,
+           85,   86,  112,   88,   77,   90,  151,   92,  153,    7,
            95,   56,   57,   28,   99,  100,  101,  102,  103,  104,
-          105,  152,   77,  108,  109,   80,  111,  112,  113,  114,
-            8,    9,   10,   12,  119,  148,  148,  122,  123,  124,
-          125,   41,   42,   43,   44,   45,   46,   47,   48,   49,
-           28,  152,   30,   31,   32,   33,    1,    7,  143,  148,
-          129,   71,   13,  148,  149,  150,    1,   77,  130,  131,
-           67,   81,  147,   12,   84,   85,   86,  152,   88,    7,
-           90,  143,   92,  128,  146,   95,   96,   97,   98,   99,
-          100,  101,  102,   10,  104,  105,   35,   79,  108,   78,
-           82,  111,  112,  113,  114,    8,    9,   10,    7,  119,
-           67,   28,  122,  123,  124,  125,   12,   77,    7,   79,
-          147,    8,    9,   10,  149,   28,    7,   30,   31,   32,
-           67,  128,   77,   31,   32,   33,   71,   12,  148,  149,
-          150,   28,   77,   30,   31,  148,   81,   31,   32,   84,
-           85,   86,  112,   88,   13,   90,   28,   92,  140,  141,
-           95,   96,   97,   98,   99,  100,  101,  102,   15,  104,
-          105,  123,   12,  108,   15,    1,  111,  112,  113,  114,
-            8,    9,   10,  143,  119,   15,  146,  122,  123,  124,
-          125,  151,  149,  153,   12,   35,    8,    9,   10,  151,
-           28,   66,   67,   29,  149,   47,   48,   49,  153,   47,
-           48,   49,  149,  148,  149,  150,   28,   35,   30,   31,
+          105,  148,   12,  108,  109,   12,  111,  112,  113,  114,
+            8,    9,   10,  143,  119,    7,  146,  122,  123,  124,
+          125,  151,   67,  153,  123,   35,  130,  131,   35,  155,
+           28,   35,   30,   31,   32,   33,   79,    7,  143,  143,
+          148,   71,  146,  148,  149,  150,    1,   77,  152,    7,
+          143,   81,  151,  146,   84,   85,   86,  150,   88,    7,
+           90,  149,   92,  128,  148,   95,   96,   97,   98,   99,
+          100,  101,  102,    7,  104,  105,  148,   79,  108,  148,
+           82,  111,  112,  113,  114,    8,    9,   10,   12,  119,
+           67,  152,  122,  123,  124,  125,   50,   51,   52,   10,
+           67,    8,    9,   10,  149,   28,  149,   30,   31,   32,
+          153,   35,   66,   67,   12,    1,   71,   28,  148,  149,
+          150,   28,   77,   30,   31,  129,   81,   15,  149,   84,
+           85,   86,  153,   88,  152,   90,   13,   92,  140,  141,
+           95,   96,   97,   98,   99,  100,  101,  102,   67,  104,
+          105,  128,   13,  108,   28,    1,  111,  112,  113,  114,
+          152,    8,    9,   10,  119,   15,   82,  122,  123,  124,
+          125,   50,   51,   52,  103,   54,    8,    9,   10,   15,
+          109,   28,  149,   29,   47,   48,   49,   66,  149,  118,
+           29,   77,  153,  148,  149,  150,   28,   15,   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,    9,   10,    8,    9,
-           10,   77,  148,  143,   66,   81,  146,  149,   84,   85,
-           86,  153,   88,  149,   90,   28,   92,  153,   28,   95,
-           72,   73,   29,   99,  100,  101,    1,  146,  104,  105,
-          149,   15,  108,   72,   73,  111,  112,    8,    9,   10,
-           97,   98,   15,  119,  102,  103,  106,  107,  148,  149,
-          148,  149,  148,  149,   29,   29,   35,   28,   54,   29,
-           29,   29,   29,   29,   71,   66,   31,   67,   67,   67,
-           77,   68,  148,  149,   81,   67,   67,   84,   85,   86,
-           67,   88,   67,   90,   67,   92,   74,   77,   95,   82,
-           79,   77,   99,  100,  101,    1,   71,  104,  105,   77,
-           82,  108,   77,   79,  111,  112,   81,   87,   89,   84,
-           85,   86,  119,   88,   86,   90,   93,   92,  123,  123,
-           95,  127,  139,   29,   99,  100,  101,    1,   91,  104,
-          105,  126,   94,  108,   94,   94,  111,  112,   94,   96,
-          142,  148,  149,   96,  119,  155,  110,  102,  102,  152,
-           -1,  109,  146,   -1,   -1,   29,   -1,   -1,   -1,   -1,
-           -1,   -1,   -1,   -1,   -1,   71,   -1,  128,   -1,   -1,
-           -1,   77,   -1,  148,  149,   81,  126,  128,   84,   85,
-           86,  128,   88,  128,   90,  129,   92,  139,   -1,   95,
-           -1,   -1,   -1,   99,  100,  101,    1,   71,  104,  105,
-          142,  142,  108,   77,  142,  111,  112,   81,  142,  142,
-           84,   85,   86,  119,   88,  142,   90,  142,   92,  147,
-          146,   95,  146,  146,  146,   99,  100,  101,  146,  146,
-          104,  105,  146,  148,  108,  148,  148,  111,  112,  148,
+           52,  150,   54,  139,    1,   71,   47,   48,   49,  143,
+          149,   77,  146,   12,   66,   81,    8,    9,   84,   85,
+           86,   15,   88,   29,   90,  146,   92,   15,  149,   95,
+           29,   15,   29,   99,  100,  101,    1,   35,  104,  105,
+           31,   32,  108,  149,   29,  111,  112,  153,   66,   67,
+           72,   73,   29,  119,   29,   72,   73,   97,   98,  102,
+          103,  106,  107,   29,   29,   54,  148,  149,  148,  149,
+          148,  149,   31,   66,   71,   77,   77,   67,   74,   79,
+           77,   67,  148,  149,   81,   67,   67,   84,   85,   86,
+           68,   88,   79,   90,   67,   92,   67,   67,   95,   67,
+           79,   77,   99,  100,  101,    1,   71,  104,  105,   89,
+           82,  108,   77,   82,  111,  112,   81,   91,  123,   84,
+           85,   86,  119,   88,   86,   90,   87,   92,  123,   93,
+           95,   94,  139,   29,   99,  100,  101,    1,   94,  104,
+          105,   94,   94,  108,  102,   96,  111,  112,   96,  109,
+          153,  148,  149,  102,  119,  110,  139,   -1,   -1,  126,
+           -1,   -1,   -1,   -1,   -1,   29,   -1,   -1,   -1,  126,
+           -1,   -1,   -1,  127,   -1,   71,   -1,   -1,  128,   -1,
+           -1,   77,  128,  148,  149,   81,  128,  128,   84,   85,
+           86,  129,   88,   -1,   90,  142,   92,  142,  142,   95,
+           -1,   -1,  142,   99,  100,  101,    1,   71,  104,  105,
+          142,  142,  108,   77,  142,  111,  112,   81,  142,  146,
+           84,   85,   86,  119,   88,  146,   90,  146,   92,  146,
+          146,   95,  146,  146,  146,   99,  100,  101,  147,  149,
+          104,  105,  148,  148,  108,  148,  148,  111,  112,  148,
           148,  148,  148,  149,  148,  119,  148,  148,  148,  148,
           148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
-          148,  148,  148,  148,  148,  148,   71,  148,  150,  149,
+          148,  148,  148,  148,  148,  148,   71,  149,  149,  149,
           149,  149,   77,  149,  148,  149,   81,  149,  149,   84,
            85,   86,  149,   88,  149,   90,   29,   92,  149,  149,
-           95,  149,  149,  149,   99,  100,  101,  149,  149,  104,
-          105,  149,  151,  108,   47,   48,  111,  112,  150,  150,
+           95,  149,  149,  149,   99,  100,  101,  150,  150,  104,
+          105,  150,  150,  108,   47,   48,  111,  112,  150,  150,
            53,  150,   55,  150,  119,  150,  150,  150,  150,  150,
           150,  150,  150,  150,   67,  150,  150,  150,  150,   47,
            48,  150,   75,   76,  150,   53,   79,   55,  150,  150,
            83,  150,  150,  148,  149,  151,  150,  150,  150,   67,
-          150,  150,  150,  150,  150,  150,   -1,   75,   76,  151,
+          150,  150,  150,  154,  151,  151,  151,   75,   76,  151,
           151,   79,  151,  151,  151,   83,  151,  151,  151,  151,
-          151,  151,  151,  151,  151,  151,  151,  151,   -1,  152,
+          151,  151,  151,  151,  151,  151,   -1,  152,  152,  152,
           152,  152,  152,  152,  152,  152,  152,  130,  152,  132,
           133,  134,  135,  136,  137,  138,  152,  152,  152,  152,
-          152,  144,  145,  152,  152,  152,  152,  152,  151,  153,
-          153,  152,  130,  155,  132,  133,  134,  135,  136,  137,
-          138,  154,  154,   -1,  155,  155,  144,  145,  155,  155,
+          152,  144,  145,  152,  152,  152,  152,  152,  151,   -1,
+          153,  155,  130,  154,  132,  133,  134,  135,  136,  137,
+          138,  155,  155,  155,  155,  155,  144,  145,  155,  155,
           155,  155,  155,  151,  155,  153,  155,   -1,  155,  155,
-          155,  155,  155,   -1,  156
+           -1,  156
     );
 
     protected $actionBase = array(
-            0,  220,  295,  445,  370,  109,  109,  180,  730,   -2,
-           -2,  135,   -2,   -2,   -2,  655,  756,  724,  756,  554,
-          623,  825,  825,  825,  305,  353,  562,  562,  861,  401,
-          562,  484,  291,  377,  154,  441,  540,  505,  505,  505,
-          505,  134,  134,  505,  505,  505,  505,  505,  505,  505,
-          505,  505,  505,  505,  505,  505,  505,  505,  505,  505,
-          505,  505,  505,  505,  505,  505,  505,  505,  505,  505,
-          505,  505,  505,  505,  505,  505,  505,  505,  505,  505,
-          505,  505,  505,  505,  505,  505,  505,  505,  505,  505,
-          505,  505,  505,  505,  505,  505,  505,  505,  505,  505,
-          505,  505,  505,  505,  505,  505,  505,  505,  505,  505,
-          505,  505,  505,  505,  505,  505,  505,  505,  505,  505,
-          505,  505,  505,  505,  505,  505,  505,  505,  505,  505,
-          505,  505,  505,  187,  179,  521,  429,  728,  729,  731,
-          732,  858,  668,  859,  799,  800,  662,  801,  802,  803,
-          805,  806,  834,  807,  888,  808,  568,  568,  568,  568,
-          568,  568,  568,  568,  568,  568,  568,   -3,  365,  225,
-          308,  620,  275,  552,  552,  552,  552,  552,  552,  552,
-          166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-          166,  166,  166,  166,  166,  166,  166,  617,  659,  659,
-          659,  463,  887,  508,  912,  912,  912,  912,  912,  912,
+            0,  220,  295,  445,  370,  357,  357,  307,  728,   -2,
+           -2,  135,   -2,   -2,   -2,  623,  724,  655,  724,  554,
+          756,  825,  825,  825,  151,  188,  476,  476,  860,  146,
+          476,  328,  253,  114,  621,  393,  390,  502,  502,  502,
+          502,  134,  134,  502,  502,  502,  502,  502,  502,  502,
+          502,  502,  502,  502,  502,  502,  502,  502,  502,  502,
+          502,  502,  502,  502,  502,  502,  502,  502,  502,  502,
+          502,  502,  502,  502,  502,  502,  502,  502,  502,  502,
+          502,  502,  502,  502,  502,  502,  502,  502,  502,  502,
+          502,  502,  502,  502,  502,  502,  502,  502,  502,  502,
+          502,  502,  502,  502,  502,  502,  502,  502,  502,  502,
+          502,  502,  502,  502,  502,  502,  502,  502,  502,  502,
+          502,  502,  502,  502,  502,  502,  502,  502,  502,  502,
+          502,  502,  502,  179,  178,  539,  523,  715,  735,  737,
+          738,  858,  668,  857,  796,  797,  561,  798,  799,  800,
+          801,  802,  795,  803,  886,  805,  568,  568,  568,  568,
+          568,  568,  568,  568,  568,  568,  568,  273,  248,  225,
+          308,  274,  628,  365,  365,  365,  365,  365,  365,  365,
+          175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
+          175,  175,  175,  175,  175,  175,  175,  320,  553,  553,
+          553,  489,  887,  526,  912,  912,  912,  912,  912,  912,
           912,  912,  912,  912,  912,  912,  912,  912,  912,  912,
           912,  912,  912,  912,  912,  912,  912,  912,  912,  912,
           912,  912,  912,  912,  912,  912,  912,  912,  912,  912,
           912,  912,  912,  912,  912,  912,  912,  493,  -20,  -20,
-          477,  665,  402,  496,  210,  482,  197,   25,   25,   25,
-           25,   25,   17,   45,    5,    5,    5,    5,  335,  380,
-          380,  380,  380,  118,  118,  118,  118,  835,  819,  818,
-          814,  311,  311,  686,  686,  633,  754,  538,  538,  542,
-          542,  420,  420,  420,  420,  420,  420,  420,  420,  420,
-          420,  428,  105,  856,  130,  130,  130,  130,  435,  435,
-          435,  318,  199,  678,  918,  318,  248,  248,  248,  297,
-          297,  297,   76,  637,  398,   86,   86,   86,   86,  398,
-           86,   86,  572,  572,  572,  494,  511,  648,  325,  488,
-          490,  443,  673,  798,  677,  748,  532,  705,   96,  636,
-          704,  886,  676,  886,  591,  578,  570,  696,  355,  842,
-           -6,  187,  530,  423,  634,  715,  193,  726,  267,   38,
-          383,  534,  110,  279,  752,  723,  862,  860,  249,  669,
-          634,  634,  634,  137,  247,  751,  758,  110,  113,  515,
-          515,  515,  515,  797,  750,  515,  515,  515,  515,  796,
-          795,   67,  268,  811,   74,  733,  644,  644,  640,  640,
-          644,  644,  644,  644,  654,  651,  644,  850,  843,  843,
-          640,  641,  640,  654,  651,  852,  852,  852,  852,  640,
-          651,  640,  640,  644,  640,  843,  843,  651,  633,  843,
-          491,  651,  680,  644,  635,  635,  852,  718,  717,  640,
-          640,  624,  843,  843,  843,  624,  651,  852,  672,  702,
-          178,  843,  852,  664,  641,  664,  672,  651,  664,  641,
-          641,  664,   20,  656,  645,  851,  853,  839,  782,  626,
-          625,  847,  846,  855,  848,  845,  663,  706,  734,  735,
-          533,  638,  639,  631,  632,  697,  647,  683,  676,  707,
-          629,  629,  629,  679,  688,  679,  629,  629,  629,  629,
-          629,  629,  629,  629,  917,  692,  689,  685,  658,  749,
-          539,  716,  670,  550,  770,  613,  706,  706,  832,  874,
-          883,  898,  897,  652,  842,  876,  679,  907,  722,  430,
-          657,  841,  833,  713,  712,  679,  838,  679,  769,  679,
-          866,  831,  643,  830,  706,  828,  629,  864,  916,  915,
-          914,  913,  911,  909,  899,  906,  630,  905,  747,  650,
-          882,   47,  854,  696,  628,  708,  746,  499,  904,  827,
-          679,  679,  765,  759,  679,  763,  745,  721,  889,  744,
-          881,  903,  613,  878,  679,  675,  900,  499,  660,  642,
-          857,  653,  743,  849,  863,  781,  779,  608,  646,  826,
-          661,  742,  885,  884,  627,  741,  778,  606,  774,  667,
-          822,  773,  824,  740,  821,  793,  875,  674,  707,  703,
-          666,  671,  649,  772,  791,  877,  739,  738,  737,  789,
-          736,  788,    0,    0,    0,    0,    0,    0,    0,    0,
+          477,  661,  402,  629,  210,  332,  197,   25,   25,   25,
+           25,   25,   17,  141,    5,    5,    5,    5,  335,  122,
+          122,  122,  122,  118,  118,  118,  118,  471,  396,  396,
+          682,  682,  642,  774,  579,  579,  537,  537,  270,  270,
+          270,  270,  270,  270,  270,  270,  270,  270,  301,  633,
+          853,  296,  296,  296,  296,  514,  514,  514,  143,  484,
+          637,  915,  143,  521,  521,  521,  446,  446,  446,  113,
+          648,  398,  235,  235,  235,  235,  398,  235,  235,  577,
+          577,  577,  439,  499,  651,  100,  379,  486,  433,  672,
+          806,  669,  788,  540,  696,  111,  703,  701,  617,  662,
+          617,  603,  598,  575,  673,  312,  847,  147,  179,  538,
+          481,  631,  744,  292,  736,   66,  331,  423,  542,  355,
+          382,  710,  731,  856,  855,  339,  678,  631,  631,  631,
+          408,  106,  770,  772,  355,   -8,  602,  602,  602,  602,
+          782,  773,  602,  602,  602,  602,  781,  778,  316,  230,
+          822,  215,  746,  618,  618,  644,  644,  618,  618,  618,
+          618,  620,  622,  618,  834,  849,  849,  644,  641,  644,
+          620,  622,  824,  824,  824,  824,  644,  622,  644,  644,
+          618,  644,  849,  849,  622,  642,  849,   67,  622,  663,
+          618,  653,  653,  824,  714,  730,  644,  644,  666,  849,
+          849,  849,  666,  622,  824,  660,  711,   38,  849,  824,
+          645,  641,  645,  660,  622,  645,  641,  641,  645,   20,
+          654,  634,  833,  841,  838,  749,  625,  615,  851,  850,
+          842,  852,  848,  614,  708,  723,  726,  626,  638,  639,
+          647,  650,  676,  649,  674,  662,  693,  627,  627,  627,
+          679,  680,  679,  627,  627,  627,  627,  627,  627,  627,
+          627,  914,  689,  688,  670,  658,  732,  632,  707,  667,
+          512,  750,  613,  708,  708,  791,  874,  883,  889,  829,
+          619,  847,  876,  679,  904,  718,   47,  636,  846,  789,
+          699,  704,  679,  845,  679,  751,  679,  866,  793,  652,
+          832,  708,  831,  627,  864,  913,  911,  909,  907,  906,
+          905,  896,  903,  630,  900,  729,  659,  882,  452,  854,
+          673,  692,  706,  722,  830,  268,  899,  828,  679,  679,
+          752,  748,  679,  754,  721,  717,  862,  747,  881,  898,
+          613,  878,  679,  671,  827,  897,  268,  643,  624,  859,
+          656,  739,  835,  863,  839,  758,  550,  582,  826,  777,
+          821,  635,  740,  885,  884,  861,  742,  759,  564,  763,
+          646,  819,  765,  843,  743,  818,  814,  875,  657,  693,
+          675,  665,  664,  640,  769,  811,  877,  745,  741,  734,
+          808,  733,  807,    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,  134,  134,   -2,   -2,   -2,   -2,
-            0,    0,   -2,    0,    0,    0,  134,  134,  134,  134,
+            0,    0,    0,  134,  134,  134,  134,   -2,   -2,   -2,
+           -2,    0,    0,   -2,    0,    0,    0,  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,    0,    0,  134,  134,  134,  134,  134,  134,
+          134,  134,  134,    0,    0,  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,
@@ -535,178 +535,173 @@ class Php5 extends \PhpParser\ParserAbstract
           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,  568,  568,  568,  568,  568,  568,
+          134,  134,  134,  134,  134,  568,  568,  568,  568,  568,
           568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
-          568,  568,  568,  568,  568,  568,  568,    0,    0,    0,
-            0,    0,    0,    0,    0,    0,    0,    0,  568,  -20,
-          -20,  -20,  -20,  568,  -20,  -20,  -20,  -20,  -20,  -20,
-          -20,  568,  568,  568,  568,  568,  568,  568,  568,  568,
-          568,  568,  568,  568,  568,  568,  568,  568,  -20,  568,
-          568,  568,  -20,  420,  -20,  420,  420,  420,  420,  420,
-          420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
-          420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
-          420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
-          420,  420,  420,  420,  420,  420,  420,  420,  568,    0,
-            0,  568,  -20,  568,  -20,  568,  -20,  568,  568,  568,
-          568,  568,  568,  -20,  -20,  -20,  -20,  -20,  -20,    0,
-          248,  248,  248,  248,  -20,  -20,  -20,  -20,   55,   55,
-           55,   55,  420,  420,  420,  420,  420,  420,  248,  248,
-          297,  297,    0,    0,    0,    0,    0,    0,    0,    0,
-            0,    0,  420,   55,  420,  644,  644,  644,  644,  641,
-          641,  641,  644,  398,  398,  398,  644,    0,    0,    0,
-            0,    0,    0,  644,  398,    0,  420,  420,  420,  420,
-            0,  420,  420,  644,  644,  644,  641,  644,  398,  641,
-          641,  644,  843,  573,  573,  573,  573,  499,  110,    0,
-          644,  644,  641,  641,  641,    0,    0,    0,  843,    0,
-          640,    0,    0,    0,    0,  629,  430,    0,  375,    0,
-            0,    0,    0,    0,    0,  652,  375,  452,  452,    0,
-          630,  629,  629,  629,    0,    0,  652,  652,    0,    0,
-            0,    0,    0,    0,  481,  652,    0,    0,    0,    0,
-          481,  360,    0,    0,  360,    0,  499
+          568,  568,  568,  568,  568,  568,  568,  568,    0,    0,
+            0,    0,    0,    0,    0,    0,    0,    0,    0,  568,
+          -20,  -20,  -20,  -20,  568,  -20,  -20,  -20,  -20,  -20,
+          -20,  -20,  568,  568,  568,  568,  568,  568,  568,  568,
+          568,  568,  568,  568,  568,  568,  568,  568,  568,  -20,
+          568,  568,  568,  -20,  270,  -20,  270,  270,  270,  270,
+          270,  270,  270,  270,  270,  270,  270,  270,  270,  270,
+          270,  270,  270,  270,  270,  270,  270,  270,  270,  270,
+          270,  270,  270,  270,  270,  270,  270,  270,  270,  270,
+          270,  270,  270,  270,  270,  270,  270,  270,  270,  568,
+            0,    0,  568,  -20,  568,  -20,  568,  -20,  568,  568,
+          568,  568,  568,  568,  -20,  -20,  -20,  -20,  -20,  -20,
+            0,  521,  521,  521,  521,  -20,  -20,  -20,  -20,  -36,
+          270,  270,  270,  270,  270,  270,  521,  521,  446,  446,
+            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+          270,  -36,  270,  618,  618,  618,  618,  641,  641,  641,
+          618,  398,  398,  398,  618,    0,    0,    0,    0,    0,
+            0,  618,  398,    0,  270,  270,  270,  270,    0,  270,
+          270,  618,  618,  618,  641,  618,  398,  641,  641,  618,
+          849,  580,  580,  580,  580,  268,  355,    0,  618,  618,
+          641,  641,  641,    0,    0,    0,  849,    0,  644,    0,
+            0,    0,    0,  627,   47,    0,  430,    0,    0,    0,
+            0,    0,    0,  619,  430,  466,  466,    0,  630,  627,
+          627,  627,    0,    0,  619,  619,    0,    0,    0,    0,
+            0,    0,  442,  619,    0,    0,    0,    0,  442,  140,
+            0,    0,  140,    0,  268
     );
 
     protected $actionDefault = array(
             3,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,  530,  530,32767,32767,
-          485,32767,32767,32767,32767,32767,32767,  291,  291,  291,
-        32767,32767,32767,  518,  518,  518,  518,  518,  518,  518,
-          518,  518,  518,  518,32767,32767,32767,32767,32767,  373,
-        32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
+        32767,32767,32767,32767,32767,32767,  531,  531,32767,32767,
+          486,32767,32767,32767,32767,32767,32767,  292,  292,  292,
+        32767,32767,32767,  519,  519,  519,  519,  519,  519,  519,
+          519,  519,  519,  519,32767,32767,32767,32767,32767,  374,
         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,
-        32767,32767,32767,32767,32767,  379,  535,32767,32767,32767,
         32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
-        32767,32767,32767,32767,32767,32767,  354,  355,  357,  358,
-          290,  519,  240,  380,  534,  289,  242,  318,  489,32767,
-        32767,32767,  320,  119,  251,  196,  488,  122,  288,  227,
-          372,  374,  319,  295,  300,  301,  302,  303,  304,  305,
-          306,  307,  308,  309,  310,  311,  294,  445,  351,  350,
-          349,  447,32767,  446,  482,  482,  485,32767,32767,32767,
+        32767,32767,32767,32767,32767,  380,  536,32767,32767,32767,
         32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
+        32767,32767,32767,32767,32767,32767,  355,  356,  358,  359,
+          291,  520,  240,  381,  535,  290,  242,  319,  490,32767,
+        32767,32767,  321,  119,  251,  196,  489,  122,  289,  227,
+          373,  375,  320,  296,  301,  302,  303,  304,  305,  306,
+          307,  308,  309,  310,  311,  312,  295,  446,  352,  351,
+          350,  448,32767,  447,  483,  483,  486,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,  316,  473,  472,
-          317,  443,  321,  444,  323,  448,  322,  339,  340,  337,
-          338,  341,  450,  449,  466,  467,  464,  465,  293,  342,
-          343,  344,  345,  468,  469,  470,  471,  274,  274,  274,
-          274,32767,32767,  529,  529,32767,32767,  330,  331,  457,
-          458,32767,32767,32767,32767,32767,32767,32767,32767,32767,
-        32767,32767,  275,32767,  231,  231,  231,  231,32767,32767,
-        32767,  231,32767,32767,32767,32767,  325,  326,  324,  452,
-          453,  451,32767,  419,32767,32767,32767,32767,32767,  421,
         32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
-        32767,  490,32767,32767,32767,32767,32767,  503,  408,32767,
-        32767,32767,  401,32767,  215,  217,  164,  476,32767,32767,
-        32767,32767,32767,  508,  335,32767,32767,32767,32767,32767,
-          544,32767,  503,32767,32767,32767,32767,32767,32767,  348,
-          327,  328,  329,32767,32767,32767,32767,  507,  501,  460,
-          461,  462,  463,32767,32767,  454,  455,  456,  459,32767,
+        32767,32767,32767,32767,32767,32767,32767,  317,  474,  473,
+          318,  444,  322,  445,  324,  449,  323,  340,  341,  338,
+          339,  342,  451,  450,  467,  468,  465,  466,  294,  343,
+          344,  345,  346,  469,  470,  471,  472,  275,32767,32767,
+          530,  530,32767,32767,  331,  332,  458,  459,32767,32767,
+        32767,32767,32767,32767,32767,32767,32767,32767,32767,  276,
+        32767,  231,  231,  231,  231,32767,32767,32767,  231,32767,
+        32767,32767,32767,  326,  327,  325,  453,  454,  452,32767,
+          420,32767,32767,32767,32767,32767,  422,32767,32767,32767,
+        32767,32767,32767,32767,32767,32767,32767,32767,  491,32767,
+        32767,32767,32767,32767,  504,  409,32767,32767,32767,  402,
+        32767,  215,  217,  164,  477,32767,32767,32767,32767,32767,
+          509,  336,32767,32767,32767,32767,32767,  545,32767,  504,
+        32767,32767,32767,32767,32767,32767,  349,  328,  329,  330,
+        32767,32767,32767,32767,  508,  502,  461,  462,  463,  464,
+        32767,32767,  455,  456,  457,  460,32767,32767,32767,32767,
         32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
-        32767,32767,32767,32767,32767,  168,32767,  416,  422,  422,
-        32767,32767,32767,32767,  168,32767,32767,32767,32767,32767,
-          168,32767,32767,32767,32767,  506,  505,  168,32767,  402,
-          484,  168,  181,32767,  179,  179,32767,  201,  201,32767,
-        32767,  183,  477,  496,32767,  183,  168,32767,  390,  170,
-          484,32767,32767,  233,32767,  233,  390,  168,  233,32767,
-        32767,  233,32767,   84,  426,32767,32767,32767,32767,32767,
-        32767,32767,32767,32767,32767,32767,32767,  403,32767,32767,
-        32767,  369,  370,  479,  492,32767,  493,32767,  401,32767,
-          333,  334,  336,  313,32767,  315,  359,  360,  361,  362,
-          363,  364,  365,  367,32767,  406,32767,  409,32767,32767,
-        32767,   86,  111,  250,32767,  542,   86,  404,32767,32767,
-          298,  542,32767,32767,32767,32767,  537,32767,32767,  292,
-        32767,32767,32767,   86,   86,  246,32767,  166,32767,  527,
-        32767,  543,32767,  501,  405,32767,  332,32767,32767,32767,
-        32767,32767,32767,32767,32767,32767,  502,32767,32767,32767,
-        32767,  222,32767,  439,32767,   86,32767,  182,32767,32767,
-          296,  241,32767,32767,  536,32767,32767,32767,32767,32767,
-        32767,32767,32767,32767,  167,32767,32767,  184,32767,32767,
-          501,32767,32767,32767,32767,32767,32767,32767,  287,32767,
-        32767,32767,32767,32767,  501,32767,32767,  226,32767,32767,
-        32767,32767,32767,32767,32767,32767,32767,   84,   60,32767,
-          268,32767,32767,32767,32767,32767,32767,32767,32767,32767,
-        32767,32767,  124,  124,    3,  124,  124,    3,  124,  124,
-          124,  124,  124,  124,  124,  124,  124,  124,  124,  209,
-          253,  212,  201,  201,  161,  253,  253,  253,  124,  124,
-          260
+        32767,32767,  168,32767,  417,  423,  423,32767,32767,32767,
+        32767,  168,32767,32767,32767,32767,32767,  168,32767,32767,
+        32767,32767,  507,  506,  168,32767,  403,  485,  168,  181,
+        32767,  179,  179,32767,  201,  201,32767,32767,  183,  478,
+          497,32767,  183,  168,32767,  391,  170,  485,32767,32767,
+          233,32767,  233,  391,  168,  233,32767,32767,  233,32767,
+           84,  427,32767,32767,32767,32767,32767,32767,32767,32767,
+        32767,32767,32767,32767,  404,32767,32767,32767,  370,  371,
+          480,  493,32767,  494,32767,  402,32767,  334,  335,  337,
+          314,32767,  316,  360,  361,  362,  363,  364,  365,  366,
+          368,32767,  407,32767,  410,32767,32767,32767,   86,  111,
+          250,32767,  543,   86,  405,32767,32767,  299,  543,32767,
+        32767,32767,32767,  538,32767,32767,  293,32767,32767,32767,
+           86,   86,  246,32767,  166,32767,  528,32767,  544,32767,
+          502,  406,32767,  333,32767,32767,32767,32767,32767,32767,
+        32767,32767,32767,  503,32767,32767,32767,32767,  222,32767,
+          440,32767,   86,32767,32767,  182,32767,32767,  297,  241,
+        32767,32767,  537,32767,32767,32767,32767,32767,32767,32767,
+        32767,32767,  167,32767,32767,32767,  184,32767,32767,  502,
+        32767,32767,32767,32767,32767,32767,32767,  288,32767,32767,
+        32767,32767,32767,32767,32767,  502,32767,32767,  226,32767,
+        32767,32767,32767,32767,32767,32767,32767,32767,   84,   60,
+        32767,  269,32767,32767,32767,32767,32767,32767,32767,32767,
+        32767,32767,32767,  124,  124,    3,  124,  124,  253,    3,
+          253,  124,  253,  253,  124,  124,  124,  124,  124,  124,
+          124,  124,  124,  124,  209,  212,  201,  201,  161,  124,
+          124,  261
     );
 
     protected $goto = array(
           162,  162,  136,  136,  141,  144,  136,  137,  138,  139,
           146,  183,  164,  160,  160,  160,  160,  141,  141,  161,
           161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
-          156,  157,  158,  159,  180,  135,  181,  500,  501,  364,
-          502,  506,  507,  508,  509,  510,  511,  512,  513,  970,
+          156,  157,  158,  159,  180,  135,  181,  497,  498,  361,
+          499,  503,  504,  505,  506,  507,  508,  509,  510,  972,
           140,  142,  143,  145,  167,  172,  182,  198,  247,  250,
           252,  254,  256,  257,  258,  259,  260,  261,  269,  270,
-          271,  272,  287,  288,  316,  317,  318,  380,  381,  382,
-          556,  184,  185,  186,  187,  188,  189,  190,  191,  192,
+          271,  272,  284,  285,  313,  314,  315,  377,  378,  379,
+          553,  184,  185,  186,  187,  188,  189,  190,  191,  192,
           193,  194,  195,  196,  147,  148,  149,  163,  150,  165,
-          151,  199,  166,  152,  153,  154,  200,  155,  133,  629,
-          574,  761,  574,  574,  574,  574,  574,  574,  574,  574,
-          574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
-          574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
-          574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
-          574,  574,  574,  574,  574, 1108,  637, 1108, 1108, 1108,
-         1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108,
-         1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108,
-         1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108,
-         1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108,
-          343,  791,  504,  504,  504,  504,  504,  504,  517,  515,
-          517,  515,  504,  504,  504,  504,  504,  504,  504,  504,
-          504,  504,  516,  557,  516,    8,  760,  529,  892,  892,
-         1199, 1199,  754,  856,  856,  856,  856,  170,  851,  857,
-          529,  529,  173,  174,  175,  389,  390,  391,  392,  169,
-          197,  201,  203,  251,  253,  255,  262,  263,  264,  265,
-          266,  267,  273,  274,  275,  276,  289,  290,  319,  320,
-          321,  395,  396,  397,  398,  171,  176,  248,  249,  177,
-          178,  179,  388,  614,  549,  549,  580,  545,  590,  593,
-          635,  822,  547,  547,  503,  505,  536,  553,  581,  584,
-          594,  600,  530, 1177,  573, 1177,  573,  573,  573,  573,
-          573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
-          573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
-          573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
-          573,  573,  573,  573,  573,  573,  573,  573,  573,  618,
-          521,  555,  621,  862,  579,  362,  597,  346,  405,  910,
-          526,  526,  526,  550,  526,  558,  559,  560,  561,  562,
-          563,  564,  565,  567,  596,  587,  612,  544,  526,  278,
-          279,  280, 1203,  439,  439,  439,  439,  439,  439, 1084,
-         1083,  784,  604,  439,  439,  439,  439,  439,  439,  439,
-          439,  439,  439, 1073,  365, 1073,  899,  899,  899,  899,
-         1210, 1210, 1157,  899,  344,  345,  613,  899,  784,  784,
-         1196,  329,  314,    3,    4,  377, 1210, 1073, 1073, 1073,
-         1073, 1017, 1073, 1073,  526,  526, 1209, 1209,  543,  575,
-          526,  526,  470,  896,  526,  905, 1169,  370,  370,  370,
-          399,  349, 1209, 1191, 1191, 1191,  780,  371,  370,  370,
-         1212,  527, 1066,  375,  370,  778,  914,  403,  372,  372,
-          372,  554,  370, 1224, 1059,  777,  777,  759,  788,  785,
-          785,  785,  787,  919,  956,  776,  916,  523,  916,  866,
-          878,  860,  858,  860,  659,  372,  518,  887,  882,  387,
-          542,  668,  661,  569,  541,  601,  889,  619,  620,  885,
-          624,  625,  632,  634,  639,  641,  948,  452,  454,  940,
-          640,  455,  468, 1089, 1109,  622,  938, 1064, 1176,  585,
-         1176, 1027,   19,   15,  358, 1193, 1193, 1193,  359, 1154,
-         1069, 1070,    0,    0, 1066,  534,  968,    0,    0,  546,
-            0,    0,  568,  520,  540,    0,  523, 1067, 1168, 1067,
-            0,    0, 1175,   23,  459,  520, 1068,  540,  610,    0,
-            0,    0,    0,    0,  519,   13,  524,  442,    0,  444,
-            0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-            0,    0,    0,    0,  783, 1217,    0,    0,    0,  617,
-            0,    0,    0,    0, 1065,  626,    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,
+          151,  199,  166,  152,  153,  154,  200,  155,  133,  630,
+          571,  792,  571,  571,  571,  571,  571,  571,  571,  571,
+          571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
+          571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
+          571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
+          571,  571,  571,  571,  571, 1110,  762, 1110, 1110, 1110,
+         1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110,
+         1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110,
+         1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110,
+         1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110,
+          501,  501,  501,  501,  501,  501,  512,  638,  512,  761,
+          501,  501,  501,  501,  501,  501,  501,  501,  501,  501,
+          513,  755,  513,  893,  893, 1201, 1201,  527,  585,  613,
+          857,  857,  857,  857,  170,  852,  858, 1086, 1085,  173,
+          174,  175,  386,  387,  388,  389,  169,  197,  201,  203,
+          251,  253,  255,  262,  263,  264,  265,  266,  267,  273,
+          274,  275,  276,  286,  287,  316,  317,  318,  392,  393,
+          394,  395,  171,  176,  248,  249,  177,  178,  179,  385,
+          615,  546,  546,  578,  542, 1212, 1212,  823,  340,  544,
+          544,  500,  502,  533,  550,  579,  582,  592,  599,  619,
+          863, 1212,  622,  911,  570,  359,  570,  570,  570,  570,
+          570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+          570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+          570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+          570,  570,  570,  570,  570,  570,  570,  570,  570,  555,
+          556,  557,  558,  559,  560,  561,  562,  564,  595,  518,
+          554,  326,  311,  594,  526,  609,  610,  949,  552,  523,
+          523,  523,  577,  523,  588,  591,  636,  526,  526,  547,
+          436,  436,  436,  436,  436,  436,  541,  523, 1205,  950,
+          436,  436,  436,  436,  436,  436,  436,  436,  436,  436,
+         1075,  362, 1075,  900,  900,  900,  900,  596,  343,  402,
+          900,  514, 1159,  514,  900, 1179,  603, 1179,    3,    4,
+          367,  367,  367,  614, 1075, 1075, 1075, 1075,  785, 1075,
+         1075,  367,  367, 1178, 1198, 1178, 1171,  367,  374,  467,
+         1195, 1195, 1195,  523,  523,  367, 1226,  540,  572,  523,
+          523, 1019, 1068,  523,  897,  785,  785,  906,  346,  917,
+          520,  917,  396,  368,  781,  372,  915, 1177,  970,  779,
+          524,  539,  669,  665,  566,  400, 1061,  920,  600,  760,
+          551,  890,  620,  621,  886,  625,  626,  633,  635,  640,
+          642,  789,  879,  861,  859,  861,  664, 1091,  515,  888,
+          883, 1193, 1193, 1193,  867, 1029,   19,   15,  355,  341,
+          342,  958,  778,  778,  356, 1066,  786,  786,  786,  788,
+          452,  531,  777, 1156,  465,  543,  565,  583,    0,  520,
+         1071, 1072,    0,    0, 1068,    0,    0,   23, 1211, 1211,
+          456,    0,  611,  369,  369,  369,    0, 1069, 1170, 1069,
+            0,   13,  538,    0, 1211,    0, 1070,  449,  451,  942,
+          641,    0, 1214,    0, 1111,  623,  940,    0,    0,    0,
+          369,    0,  618,    0,  384,    0,    0, 1067,  627,    0,
             0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
             0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+            0,  517,  537,    0,    0,    0,    0,    0,    0,    0,
+            0,    0,    0,  517,    0,  537,    0,    0,    0,    0,
+            0,  532,  516,    0,  521,  439,    0,  441,    0,    0,
             0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-            0,    0,    0,    0,    0,    0,    0,    0,    0,  535
+            0,    0,  784, 1219
     );
 
     protected $gotoCheck = array(
@@ -721,101 +716,96 @@ class Php5 extends \PhpParser\ParserAbstract
            42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
            42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
            42,   42,   42,   42,   42,   42,   42,   42,   42,   56,
-           66,   15,   66,   66,   66,   66,   66,   66,   66,   66,
+           66,   28,   66,   66,   66,   66,   66,   66,   66,   66,
            66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
            66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
            66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
-           66,   66,   66,   66,   66,  123,    8,  123,  123,  123,
-          123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
-          123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
-          123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
-          123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
-           69,   28,  114,  114,  114,  114,  114,  114,  119,   66,
-          119,   66,  114,  114,  114,  114,  114,  114,  114,  114,
-          114,  114,  114,   46,  114,   94,   14,   46,   74,   74,
-           74,   74,    5,   66,   66,   66,   66,   26,   66,   66,
-           46,   46,   26,   26,   26,   26,   26,   26,   26,   26,
+           66,   66,   66,   66,   66,  124,   15,  124,  124,  124,
+          124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
+          124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
+          124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
+          124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
+          115,  115,  115,  115,  115,  115,   66,    8,   66,   14,
+          115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
+          115,    5,  115,   74,   74,   74,   74,   99,   39,   39,
+           66,   66,   66,   66,   26,   66,   66,  122,  122,   26,
            26,   26,   26,   26,   26,   26,   26,   26,   26,   26,
            26,   26,   26,   26,   26,   26,   26,   26,   26,   26,
            26,   26,   26,   26,   26,   26,   26,   26,   26,   26,
-           26,   26,   50,   50,   50,   50,   50,   50,   59,   59,
-           59,   49,   50,   50,   50,   50,   50,   50,   50,   50,
-           50,   50,   98,  115,   56,  115,   56,   56,   56,   56,
+           26,   26,   26,   26,   26,   26,   26,   26,   26,   50,
+           50,   50,   50,   50,   50,  140,  140,   49,   69,   50,
+           50,   50,   50,   50,   50,   50,   50,   50,   50,   60,
+           32,  140,   60,   81,   56,   60,   56,   56,   56,   56,
            56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
            56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
            56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
-           56,   56,   56,   56,   56,   56,   56,   56,   56,   60,
-           10,    2,   60,   32,    2,   60,   67,   67,   67,   81,
-           10,   10,   10,  106,   10,  107,  107,  107,  107,  107,
-          107,  107,  107,  107,  107,   39,   39,   10,   10,   64,
-           64,   64,  137,   56,   56,   56,   56,   56,   56,  121,
-          121,   22,  124,   56,   56,   56,   56,   56,   56,   56,
-           56,   56,   56,   56,   45,   56,   56,   56,   56,   56,
-          139,  139,  128,   56,   69,   69,   48,   56,   22,   22,
-          135,  122,  122,   29,   29,   47,  139,   56,   56,   56,
-           56,   99,   56,   56,   10,   10,  138,  138,   10,   10,
-           10,   10,   56,   76,   10,   78,   79,   12,   12,   12,
-           21,   17,  138,    8,    8,    8,   24,   11,   12,   12,
-          138,   10,   79,   16,   12,   23,   82,   20,  120,  120,
-          120,   10,   12,   12,  110,   22,   22,   13,   25,   22,
-           22,   22,   22,   83,   96,   22,   12,   12,   12,   68,
-           13,   13,   13,   13,   13,  120,   13,   13,   13,  120,
-           31,   71,   31,   31,    8,   31,   31,   31,   31,   31,
-           31,   31,   31,   31,   31,   31,   94,    7,    7,    7,
-            7,   62,  105,   33,    7,    7,    7,  112,  116,   63,
-          116,   33,   33,   33,   33,  116,  116,  116,   57,  127,
-           79,   79,   -1,   -1,   79,   57,   98,   -1,   -1,   57,
-           -1,   -1,   33,    8,    8,   -1,   12,   79,   79,   79,
-           -1,   -1,  116,   33,   57,    8,   79,    8,   33,   -1,
-           -1,   -1,   -1,   -1,    8,   57,    8,    8,   -1,    8,
-           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-           -1,   -1,   -1,   -1,    8,    8,   -1,   -1,   -1,   12,
-           -1,   -1,   -1,   -1,   12,   12,   -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,   -1,
-           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+           56,   56,   56,   56,   56,   56,   56,   56,   56,  108,
+          108,  108,  108,  108,  108,  108,  108,  108,  108,   10,
+           46,  123,  123,   64,   46,   64,   64,   95,    2,   10,
+           10,   10,    2,   10,   59,   59,   59,   46,   46,  107,
+           56,   56,   56,   56,   56,   56,   10,   10,  138,   95,
+           56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+           56,   45,   56,   56,   56,   56,   56,   67,   67,   67,
+           56,  120,  129,  120,   56,  116,  125,  116,   29,   29,
+           12,   12,   12,   48,   56,   56,   56,   56,   22,   56,
+           56,   12,   12,  117,  136,  117,   79,   12,   47,   56,
+          117,  117,  117,   10,   10,   12,   12,   10,   10,   10,
+           10,  100,   79,   10,   76,   22,   22,   78,   17,   12,
+           12,   12,   21,   11,   24,   16,   82,  117,   99,   23,
+           10,   31,   71,   31,   31,   20,  111,   83,   31,   13,
+           10,   31,   31,   31,   31,   31,   31,   31,   31,   31,
+           31,   25,   13,   13,   13,   13,   13,   33,   13,   13,
+           13,    8,    8,    8,   68,   33,   33,   33,   33,   69,
+           69,   97,   22,   22,   57,  113,   22,   22,   22,   22,
+           62,   57,   22,  128,  106,   57,   33,   63,   -1,   12,
+           79,   79,   -1,   -1,   79,   -1,   -1,   33,  139,  139,
+           57,   -1,   33,  121,  121,  121,   -1,   79,   79,   79,
+           -1,   57,    8,   -1,  139,   -1,   79,    7,    7,    7,
+            7,   -1,  139,   -1,    7,    7,    7,   -1,   -1,   -1,
+          121,   -1,   12,   -1,  121,   -1,   -1,   12,   12,   -1,
            -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
            -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+           -1,    8,    8,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+           -1,   -1,   -1,    8,   -1,    8,   -1,   -1,   -1,   -1,
+           -1,   99,    8,   -1,    8,    8,   -1,    8,   -1,   -1,
            -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-           -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   98
+           -1,   -1,    8,    8
     );
 
     protected $gotoBase = array(
-            0,    0, -293,    0,    0,  221,    0,  512,  145,    0,
-           28,  121,  135,  475,  224,  109,  114,  129,    0,    0,
-           60,  117,   69,  115,  122,   58,   35,    0,  191, -245,
-            0, -143,  333,  106,    0,    0,    0,    0,    0,  337,
-            0,    0,  -24,    0,    0,  364,  199,  133,  134,  273,
-            1,    0,    0,    0,    0,    0,  102,  108,    0,  -17,
-         -116,    0,   76,   74, -286,    0,  -92,   30,   67, -248,
-            0,  140,    0,    0,  -53,    0,  132,    0,  130,  105,
-            0,  334,  113,   62,    0,    0,    0,    0,    0,    0,
-            0,    0,    0,    0,  214,    0,   61,    0,  261,  128,
-            0,    0,    0,    0,    0,   56,  336,  321,    0,    0,
-           55,    0,  103,    0,  -79,    2,  227,    0,    0,  -93,
-          160,   80,   98,  -47,  187,    0,    0,   79,  206,    0,
-            0,    0,    0,    0,    0,  136,    0,  352,  123,   97,
-            0,    0
+            0,    0, -277,    0,    0,  210,    0,  552,  196,    0,
+           40,  130,  111,  477,  207,  154,  119,  139,    0,    0,
+           71,  132,  109,  122,  133,   74,   32,    0,  101, -251,
+            0, -173,  280,   83,    0,    0,    0,    0,    0,  190,
+            0,    0,  -24,    0,    0,  361,  336,  149,  144,  269,
+            1,    0,    0,    0,    0,    0,  102,   87,    0,   72,
+         -163,    0,   78,   75, -287,    0,  -92,   84,   85, -157,
+            0,  114,    0,    0,  -55,    0,  146,    0,  145,   98,
+            0,  278,  116,   59,    0,    0,    0,    0,    0,    0,
+            0,    0,    0,    0,    0,   90,    0,   91,    0,  186,
+          151,    0,    0,    0,    0,    0,   61,  352,  305,    0,
+            0,   60,    0,   94,    0,  -78,  117,  135,    0,    0,
+          113,  238,  -69,   41,  -47,  211,    0,    0,   66,  206,
+            0,    0,    0,    0,    0,    0,  153,    0,  358,  228,
+          -25,    0,    0
     );
 
     protected $gotoDefault = array(
-        -32768,  472,  672,    2,  673,  744,  752,  607,  486,  638,
-          487,  522, 1187,  797,  798,  799,  367,  413,  488,  366,
-          400,  393,  786,  779,  781,  789,  168,  401,  792,    1,
-          794,  528,  830, 1018,  354,  802,  355,  599,  804,  538,
-          806,  807,  134,  368,  369,  539,  489,  376,  588,  821,
-          268,  373,  823,  356,  824,  833,  357,  469,  464,  570,
-          616,  434,  451,  582,  277,  548, 1081,  577,  865,  342,
-          873,  669,  881,  884,  490,  571,  895,  456,  903, 1094,
-          383,  909,  915,  920,  923,  414,  402,  595,  927,  928,
-            7,  932,  630,  631,  947,  302,  955,  608,  969,  419,
-         1037, 1039,  491,  492,  532,  463,  514,  537,  493, 1060,
-          445,  404, 1063,  494,  495,  435,  436, 1078,  348, 1162,
-          347,  453,  313, 1149,  591, 1113,  460, 1202, 1158,  341,
-          496,  497,  363, 1181,  378, 1197,  440, 1204, 1211,  337,
-          552,  578
+        -32768,  469,  673,    2,  674,  745,  753,  606,  483,  639,
+          484,  519, 1189,  798,  799,  800,  364,  410,  485,  363,
+          397,  390,  787,  780,  782,  790,  168,  398,  793,    1,
+          795,  525,  831, 1020,  351,  803,  352,  598,  805,  535,
+          807,  808,  134,  365,  366,  536,  486,  373,  586,  822,
+          268,  370,  824,  353,  825,  834,  354,  466,  461,  567,
+          617,  431,  448,  580,  574,  545, 1083,  575,  866,  339,
+          874,  670,  882,  885,  487,  568,  896,  453,  904, 1096,
+          380,  910,  916,  921,  277,  924,  411,  399,  593,  929,
+          930,    7,  934,  631,  632,    8,  299,  957,  607,  971,
+          416, 1039, 1041,  488,  489,  529,  460,  511,  534,  490,
+         1062,  442,  401, 1065,  491,  492,  432,  433, 1080,  345,
+         1164,  344,  450,  310, 1151,  589, 1115,  457, 1204, 1160,
+          338,  493,  494,  360, 1183,  375, 1199,  437, 1206, 1213,
+          334,  549,  576
     );
 
     protected $ruleToNonTerminal = array(
@@ -844,11 +834,11 @@ class Php5 extends \PhpParser\ParserAbstract
            48,   48,   59,   59,   75,   75,   76,   76,   78,   78,
            78,   77,   77,   60,   60,   79,   79,   79,   80,   80,
            81,   81,   81,   43,   43,   82,   82,   82,   44,   44,
-           83,   83,   64,   64,   84,   84,   84,   84,   89,   89,
-           90,   90,   91,   91,   91,   91,   91,   92,   93,   93,
-           88,   88,   85,   85,   87,   87,   95,   95,   94,   94,
-           94,   94,   94,   94,   86,   86,   97,   96,   96,   45,
-           45,   39,   39,   42,   42,   42,   42,   42,   42,   42,
+           83,   83,   84,   84,   64,   85,   85,   85,   85,   90,
+           90,   91,   91,   92,   92,   92,   92,   92,   93,   94,
+           94,   89,   89,   86,   86,   88,   88,   96,   96,   95,
+           95,   95,   95,   95,   95,   87,   87,   98,   97,   97,
+           45,   45,   39,   39,   42,   42,   42,   42,   42,   42,
            42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
            42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
            42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
@@ -856,25 +846,25 @@ class Php5 extends \PhpParser\ParserAbstract
            42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
            42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
            42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
-           42,   42,   42,   42,   42,   42,   42,   33,   33,   46,
-           46,  102,  102,  103,  103,  103,  103,  109,   98,   98,
-          105,  105,  111,  111,  112,  113,  113,  113,  113,  113,
-          113,   66,   66,   56,   56,   56,   99,   99,  117,  117,
-          114,  114,  118,  118,  118,  118,  100,  100,  100,  104,
-          104,  104,  110,  110,  123,  123,  123,  123,  123,  123,
-          123,  123,  123,  123,  123,  123,  123,   26,   26,   26,
-           26,   26,   26,  125,  125,  125,  125,  125,  125,  125,
-          125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
-          125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
-          125,  125,  125,  125,  125,  125,  108,  108,  101,  101,
-          101,  101,  124,  124,  127,  127,  126,  126,  128,  128,
-           50,   50,   50,   50,  130,  130,  129,  129,  129,  129,
-          129,  131,  131,  116,  116,  119,  119,  115,  115,  133,
-          132,  132,  132,  132,  120,  120,  120,  120,  107,  107,
-          121,  121,  121,  121,   74,  134,  134,  135,  135,  135,
-          106,  106,  136,  136,  137,  137,  137,  137,  122,  122,
-          122,  122,  139,  140,  138,  138,  138,  138,  138,  138,
-          138,  141,  141,  141
+           42,   42,   42,   42,   42,   42,   42,   42,   33,   33,
+           46,   46,  103,  103,  104,  104,  104,  104,  110,   99,
+           99,  106,  106,  112,  112,  113,  114,  114,  114,  114,
+          114,  114,   66,   66,   56,   56,   56,  100,  100,  118,
+          118,  115,  115,  119,  119,  119,  119,  101,  101,  101,
+          105,  105,  105,  111,  111,  124,  124,  124,  124,  124,
+          124,  124,  124,  124,  124,  124,  124,  124,   26,   26,
+           26,   26,   26,   26,  126,  126,  126,  126,  126,  126,
+          126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
+          126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
+          126,  126,  126,  126,  126,  126,  126,  109,  109,  102,
+          102,  102,  102,  125,  125,  128,  128,  127,  127,  129,
+          129,   50,   50,   50,   50,  131,  131,  130,  130,  130,
+          130,  130,  132,  132,  117,  117,  120,  120,  116,  116,
+          134,  133,  133,  133,  133,  121,  121,  121,  121,  108,
+          108,  122,  122,  122,  122,   74,  135,  135,  136,  136,
+          136,  107,  107,  137,  137,  138,  138,  138,  138,  123,
+          123,  123,  123,  140,  141,  139,  139,  139,  139,  139,
+          139,  139,  142,  142,  142
     );
 
     protected $ruleToLength = array(
@@ -903,37 +893,37 @@ class Php5 extends \PhpParser\ParserAbstract
             2,    1,    1,    0,    1,    3,    4,    6,    1,    1,
             1,    0,    1,    0,    2,    2,    3,    3,    1,    3,
             1,    2,    2,    3,    1,    1,    2,    4,    3,    1,
-            1,    3,    2,    0,    3,    3,    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,    1,    3,    1,    1,    3,    3,
-            1,    0,    1,    1,    3,    3,    4,    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,
+            1,    3,    2,    0,    1,    3,    3,    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,    1,    3,    1,    1,    3,
+            3,    1,    0,    1,    1,    3,    3,    4,    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,    1,    3,    5,
-            4,    3,    4,    4,    2,    2,    2,    2,    2,    2,
-            2,    2,    2,    2,    2,    2,    2,    2,    1,    1,
-            1,    3,    2,    1,    2,   10,   11,    3,    3,    2,
-            4,    4,    3,    4,    4,    4,    4,    7,    3,    2,
-            0,    4,    1,    3,    2,    2,    4,    6,    2,    2,
-            4,    1,    1,    1,    2,    3,    1,    1,    1,    1,
-            1,    1,    3,    3,    4,    4,    0,    2,    1,    0,
-            1,    1,    0,    1,    1,    1,    1,    1,    1,    1,
-            1,    1,    1,    1,    1,    3,    2,    1,    3,    1,
-            4,    3,    1,    3,    3,    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,    5,    4,    4,    3,    1,    3,    1,    1,
-            3,    3,    0,    2,    0,    1,    3,    1,    3,    1,
-            1,    1,    1,    1,    6,    4,    3,    4,    2,    4,
-            4,    1,    3,    1,    2,    1,    1,    4,    1,    1,
-            3,    6,    4,    4,    4,    4,    1,    4,    0,    1,
-            1,    3,    1,    1,    4,    3,    1,    1,    1,    0,
-            0,    2,    3,    1,    3,    1,    4,    2,    2,    2,
-            1,    2,    1,    1,    1,    4,    3,    3,    3,    6,
-            3,    1,    1,    1
+            3,    3,    3,    3,    2,    2,    2,    2,    3,    3,
+            3,    3,    3,    3,    3,    3,    3,    3,    1,    3,
+            5,    4,    3,    4,    4,    2,    2,    2,    2,    2,
+            2,    2,    2,    2,    2,    2,    2,    2,    2,    1,
+            1,    1,    3,    2,    1,    2,   10,   11,    3,    3,
+            2,    4,    4,    3,    4,    4,    4,    4,    7,    3,
+            2,    0,    4,    1,    3,    2,    2,    4,    6,    2,
+            2,    4,    1,    1,    1,    2,    3,    1,    1,    1,
+            1,    1,    1,    3,    3,    4,    4,    0,    2,    1,
+            0,    1,    1,    0,    1,    1,    1,    1,    1,    1,
+            1,    1,    1,    1,    1,    1,    3,    2,    1,    3,
+            1,    4,    3,    1,    3,    3,    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,    5,    4,    4,    3,    1,    3,    1,
+            1,    3,    3,    0,    2,    0,    1,    3,    1,    3,
+            1,    1,    1,    1,    1,    6,    4,    3,    4,    2,
+            4,    4,    1,    3,    1,    2,    1,    1,    4,    1,
+            1,    3,    6,    4,    4,    4,    4,    1,    4,    0,
+            1,    1,    3,    1,    1,    4,    3,    1,    1,    1,
+            0,    0,    2,    3,    1,    3,    1,    4,    2,    2,
+            2,    1,    2,    1,    1,    1,    4,    3,    3,    3,
+            6,    3,    1,    1,    1
     );
 
     protected function initReduceCallbacks() {
@@ -1713,358 +1703,359 @@ class Php5 extends \PhpParser\ParserAbstract
                  $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             252 => function ($stackPos) {
-                 $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
+                 if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }
             },
             253 => function ($stackPos) {
                  $this->semValue = array();
             },
             254 => function ($stackPos) {
-                 $this->semValue = new Stmt\Property($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->checkProperty($this->semValue, $stackPos-(3-1));
+                 $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($startAttributes + $this->endAttributes); } else { $nop = null; };
+            if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             255 => function ($stackPos) {
-                 $this->semValue = new Stmt\ClassConst($this->semStack[$stackPos-(3-2)], 0, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Stmt\Property($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->checkProperty($this->semValue, $stackPos-(3-1));
             },
             256 => function ($stackPos) {
-                 $this->semValue = new Stmt\ClassMethod($this->semStack[$stackPos-(9-4)], ['type' => $this->semStack[$stackPos-(9-1)], 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-6)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes);
-            $this->checkClassMethod($this->semValue, $stackPos-(9-1));
+                 $this->semValue = new Stmt\ClassConst($this->semStack[$stackPos-(3-2)], 0, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             257 => function ($stackPos) {
-                 $this->semValue = new Stmt\TraitUse($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Stmt\ClassMethod($this->semStack[$stackPos-(9-4)], ['type' => $this->semStack[$stackPos-(9-1)], 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-6)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes);
+            $this->checkClassMethod($this->semValue, $stackPos-(9-1));
             },
             258 => function ($stackPos) {
-                 $this->semValue = array();
+                 $this->semValue = new Stmt\TraitUse($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             259 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(3-2)];
+                 $this->semValue = array();
             },
             260 => function ($stackPos) {
-                 $this->semValue = array();
+                 $this->semValue = $this->semStack[$stackPos-(3-2)];
             },
             261 => function ($stackPos) {
-                 $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
+                 $this->semValue = array();
             },
             262 => function ($stackPos) {
-                 $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+                 $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
             },
             263 => function ($stackPos) {
-                 $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(5-1)][0], $this->semStack[$stackPos-(5-1)][1], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
+                 $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             264 => function ($stackPos) {
-                 $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], null, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+                 $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(5-1)][0], $this->semStack[$stackPos-(5-1)][1], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
             },
             265 => function ($stackPos) {
-                 $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+                 $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], null, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             266 => function ($stackPos) {
                  $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             267 => function ($stackPos) {
-                 $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]);
+                 $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             268 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(1-1)];
+                 $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]);
             },
             269 => function ($stackPos) {
-                 $this->semValue = array(null, $this->semStack[$stackPos-(1-1)]);
+                 $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             270 => function ($stackPos) {
-                 $this->semValue = null;
+                 $this->semValue = array(null, $this->semStack[$stackPos-(1-1)]);
             },
             271 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(3-2)];
+                 $this->semValue = null;
             },
             272 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(1-1)];
+                 $this->semValue = $this->semStack[$stackPos-(3-2)];
             },
             273 => function ($stackPos) {
-                 $this->semValue = 0;
+                 $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             274 => function ($stackPos) {
                  $this->semValue = 0;
             },
             275 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(1-1)];
+                 $this->semValue = 0;
             },
             276 => function ($stackPos) {
                  $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             277 => function ($stackPos) {
-                 $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)];
+                 $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             278 => function ($stackPos) {
-                 $this->semValue = Stmt\Class_::MODIFIER_PUBLIC;
+                 $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)];
             },
             279 => function ($stackPos) {
-                 $this->semValue = Stmt\Class_::MODIFIER_PROTECTED;
+                 $this->semValue = Stmt\Class_::MODIFIER_PUBLIC;
             },
             280 => function ($stackPos) {
-                 $this->semValue = Stmt\Class_::MODIFIER_PRIVATE;
+                 $this->semValue = Stmt\Class_::MODIFIER_PROTECTED;
             },
             281 => function ($stackPos) {
-                 $this->semValue = Stmt\Class_::MODIFIER_STATIC;
+                 $this->semValue = Stmt\Class_::MODIFIER_PRIVATE;
             },
             282 => function ($stackPos) {
-                 $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT;
+                 $this->semValue = Stmt\Class_::MODIFIER_STATIC;
             },
             283 => function ($stackPos) {
-                 $this->semValue = Stmt\Class_::MODIFIER_FINAL;
+                 $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT;
             },
             284 => function ($stackPos) {
-                 $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+                 $this->semValue = Stmt\Class_::MODIFIER_FINAL;
             },
             285 => function ($stackPos) {
-                 $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+                 $this->semValue = array($this->semStack[$stackPos-(1-1)]);
             },
             286 => function ($stackPos) {
-                 $this->semValue = new Node\VarLikeIdentifier(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+                 $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
             },
             287 => function ($stackPos) {
-                 $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+                 $this->semValue = new Node\VarLikeIdentifier(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
             },
             288 => function ($stackPos) {
-                 $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
             },
             289 => function ($stackPos) {
-                 $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+                 $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             290 => function ($stackPos) {
-                 $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+                 $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
             },
             291 => function ($stackPos) {
-                 $this->semValue = array();
+                 $this->semValue = array($this->semStack[$stackPos-(1-1)]);
             },
             292 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(1-1)];
+                 $this->semValue = array();
             },
             293 => function ($stackPos) {
                  $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             294 => function ($stackPos) {
-                 $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             295 => function ($stackPos) {
                  $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             296 => function ($stackPos) {
-                 $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             297 => function ($stackPos) {
                  $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             298 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(1-1)];
+                 $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             299 => function ($stackPos) {
-                 $this->semValue = new Expr\Clone_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             300 => function ($stackPos) {
-                 $this->semValue = new Expr\AssignOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\Clone_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             301 => function ($stackPos) {
-                 $this->semValue = new Expr\AssignOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\AssignOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             302 => function ($stackPos) {
-                 $this->semValue = new Expr\AssignOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\AssignOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             303 => function ($stackPos) {
-                 $this->semValue = new Expr\AssignOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\AssignOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             304 => function ($stackPos) {
-                 $this->semValue = new Expr\AssignOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\AssignOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             305 => function ($stackPos) {
-                 $this->semValue = new Expr\AssignOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\AssignOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             306 => function ($stackPos) {
-                 $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\AssignOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             307 => function ($stackPos) {
-                 $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             308 => function ($stackPos) {
-                 $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             309 => function ($stackPos) {
-                 $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             310 => function ($stackPos) {
-                 $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             311 => function ($stackPos) {
-                 $this->semValue = new Expr\AssignOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             312 => function ($stackPos) {
-                 $this->semValue = new Expr\PostInc($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\AssignOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             313 => function ($stackPos) {
-                 $this->semValue = new Expr\PreInc($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\PostInc($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             314 => function ($stackPos) {
-                 $this->semValue = new Expr\PostDec($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\PreInc($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             315 => function ($stackPos) {
-                 $this->semValue = new Expr\PreDec($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\PostDec($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             316 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\PreDec($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             317 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             318 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             319 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             320 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             321 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             322 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             323 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             324 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             325 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             326 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             327 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             328 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             329 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             330 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             331 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             332 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             333 => function ($stackPos) {
-                 $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             334 => function ($stackPos) {
-                 $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             335 => function ($stackPos) {
-                 $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             336 => function ($stackPos) {
-                 $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             337 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             338 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             339 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             340 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             341 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             342 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             343 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             344 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             345 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             346 => function ($stackPos) {
-                 $this->semValue = new Expr\Instanceof_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             347 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(1-1)];
+                 $this->semValue = new Expr\Instanceof_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             348 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(3-2)];
+                 $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             349 => function ($stackPos) {
-                 $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
+                 $this->semValue = $this->semStack[$stackPos-(3-2)];
             },
             350 => function ($stackPos) {
-                 $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
             },
             351 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             352 => function ($stackPos) {
-                 $this->semValue = new Expr\Isset_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             353 => function ($stackPos) {
-                 $this->semValue = new Expr\Empty_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\Isset_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             354 => function ($stackPos) {
-                 $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\Empty_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             355 => function ($stackPos) {
-                 $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             356 => function ($stackPos) {
-                 $this->semValue = new Expr\Eval_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             357 => function ($stackPos) {
-                 $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\Eval_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             358 => function ($stackPos) {
-                 $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             359 => function ($stackPos) {
-                 $this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             360 => function ($stackPos) {
-                 $this->semValue = new Expr\Cast\Double($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             361 => function ($stackPos) {
-                 $this->semValue = new Expr\Cast\String_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\Cast\Double($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             362 => function ($stackPos) {
-                 $this->semValue = new Expr\Cast\Array_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\Cast\String_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             363 => function ($stackPos) {
-                 $this->semValue = new Expr\Cast\Object_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\Cast\Array_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             364 => function ($stackPos) {
-                 $this->semValue = new Expr\Cast\Bool_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\Cast\Object_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             365 => function ($stackPos) {
-                 $this->semValue = new Expr\Cast\Unset_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\Cast\Bool_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             366 => function ($stackPos) {
+                 $this->semValue = new Expr\Cast\Unset_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+            },
+            367 => function ($stackPos) {
                  $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes;
             $attrs['kind'] = strtolower($this->semStack[$stackPos-(2-1)]) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE;
             $this->semValue = new Expr\Exit_($this->semStack[$stackPos-(2-2)], $attrs);
             },
-            367 => function ($stackPos) {
-                 $this->semValue = new Expr\ErrorSuppress($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
-            },
             368 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(1-1)];
+                 $this->semValue = new Expr\ErrorSuppress($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             369 => function ($stackPos) {
                  $this->semValue = $this->semStack[$stackPos-(1-1)];
@@ -2073,116 +2064,116 @@ class Php5 extends \PhpParser\ParserAbstract
                  $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             371 => function ($stackPos) {
-                 $this->semValue = new Expr\ShellExec($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             372 => function ($stackPos) {
-                 $this->semValue = new Expr\Print_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\ShellExec($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             373 => function ($stackPos) {
-                 $this->semValue = new Expr\Yield_(null, null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\Print_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             374 => function ($stackPos) {
-                 $this->semValue = new Expr\YieldFrom($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\Yield_(null, null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
             },
             375 => function ($stackPos) {
-                 $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(10-2)], 'params' => $this->semStack[$stackPos-(10-4)], 'uses' => $this->semStack[$stackPos-(10-6)], 'returnType' => $this->semStack[$stackPos-(10-7)], 'stmts' => $this->semStack[$stackPos-(10-9)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\YieldFrom($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             376 => function ($stackPos) {
-                 $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(11-3)], 'params' => $this->semStack[$stackPos-(11-5)], 'uses' => $this->semStack[$stackPos-(11-7)], 'returnType' => $this->semStack[$stackPos-(11-8)], 'stmts' => $this->semStack[$stackPos-(11-10)]], $this->startAttributeStack[$stackPos-(11-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(10-2)], 'params' => $this->semStack[$stackPos-(10-4)], 'uses' => $this->semStack[$stackPos-(10-6)], 'returnType' => $this->semStack[$stackPos-(10-7)], 'stmts' => $this->semStack[$stackPos-(10-9)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes);
             },
             377 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(3-2)];
+                 $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(11-3)], 'params' => $this->semStack[$stackPos-(11-5)], 'uses' => $this->semStack[$stackPos-(11-7)], 'returnType' => $this->semStack[$stackPos-(11-8)], 'stmts' => $this->semStack[$stackPos-(11-10)]], $this->startAttributeStack[$stackPos-(11-1)] + $this->endAttributes);
             },
             378 => function ($stackPos) {
                  $this->semValue = $this->semStack[$stackPos-(3-2)];
             },
             379 => function ($stackPos) {
-                 $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(2-2)], null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = $this->semStack[$stackPos-(3-2)];
             },
             380 => function ($stackPos) {
-                 $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(2-2)], null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             381 => function ($stackPos) {
+                 $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+            },
+            382 => function ($stackPos) {
                  $attrs = $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_LONG;
             $this->semValue = new Expr\Array_($this->semStack[$stackPos-(4-3)], $attrs);
             },
-            382 => function ($stackPos) {
+            383 => function ($stackPos) {
                  $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_SHORT;
             $this->semValue = new Expr\Array_($this->semStack[$stackPos-(3-2)], $attrs);
             },
-            383 => function ($stackPos) {
+            384 => function ($stackPos) {
                  $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
-            384 => function ($stackPos) {
+            385 => function ($stackPos) {
                  $attrs = $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes; $attrs['kind'] = ($this->semStack[$stackPos-(4-1)][0] === "'" || ($this->semStack[$stackPos-(4-1)][1] === "'" && ($this->semStack[$stackPos-(4-1)][0] === 'b' || $this->semStack[$stackPos-(4-1)][0] === 'B')) ? Scalar\String_::KIND_SINGLE_QUOTED : Scalar\String_::KIND_DOUBLE_QUOTED);
             $this->semValue = new Expr\ArrayDimFetch(new Scalar\String_(Scalar\String_::parse($this->semStack[$stackPos-(4-1)]), $attrs), $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
-            385 => function ($stackPos) {
-                 $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
-            },
             386 => function ($stackPos) {
                  $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             387 => function ($stackPos) {
-                 $this->semValue = array(new Stmt\Class_(null, ['type' => 0, 'extends' => $this->semStack[$stackPos-(7-3)], 'implements' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes), $this->semStack[$stackPos-(7-2)]);
-            $this->checkClass($this->semValue[0], -1);
+                 $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             388 => function ($stackPos) {
-                 $this->semValue = new Expr\New_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = array(new Stmt\Class_(null, ['type' => 0, 'extends' => $this->semStack[$stackPos-(7-3)], 'implements' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes), $this->semStack[$stackPos-(7-2)]);
+            $this->checkClass($this->semValue[0], -1);
             },
             389 => function ($stackPos) {
-                 list($class, $ctorArgs) = $this->semStack[$stackPos-(2-2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\New_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             390 => function ($stackPos) {
-                 $this->semValue = array();
+                 list($class, $ctorArgs) = $this->semStack[$stackPos-(2-2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             391 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(4-3)];
+                 $this->semValue = array();
             },
             392 => function ($stackPos) {
-                 $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+                 $this->semValue = $this->semStack[$stackPos-(4-3)];
             },
             393 => function ($stackPos) {
-                 $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+                 $this->semValue = array($this->semStack[$stackPos-(1-1)]);
             },
             394 => function ($stackPos) {
-                 $this->semValue = new Expr\ClosureUse($this->semStack[$stackPos-(2-2)], $this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
             },
             395 => function ($stackPos) {
-                 $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\ClosureUse($this->semStack[$stackPos-(2-2)], $this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             396 => function ($stackPos) {
-                 $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             397 => function ($stackPos) {
-                 $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             398 => function ($stackPos) {
-                 $this->semValue = $this->fixupPhp5StaticPropCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes);
             },
             399 => function ($stackPos) {
-                 $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = $this->fixupPhp5StaticPropCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             400 => function ($stackPos) {
-                 $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             401 => function ($stackPos) {
-                 $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             402 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(1-1)];
+                 $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
             },
             403 => function ($stackPos) {
-                 $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+                 $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             404 => function ($stackPos) {
-                 $this->semValue = new Name\FullyQualified($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
             },
             405 => function ($stackPos) {
-                 $this->semValue = new Name\Relative($this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Name\FullyQualified($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             406 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(1-1)];
+                 $this->semValue = new Name\Relative($this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             407 => function ($stackPos) {
                  $this->semValue = $this->semStack[$stackPos-(1-1)];
@@ -2200,246 +2191,243 @@ class Php5 extends \PhpParser\ParserAbstract
                  $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             412 => function ($stackPos) {
-                 $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             413 => function ($stackPos) {
                  $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             414 => function ($stackPos) {
-                 $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             415 => function ($stackPos) {
                  $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             416 => function ($stackPos) {
-                 $this->semValue = null;
+                 $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             417 => function ($stackPos) {
                  $this->semValue = null;
             },
             418 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(1-1)];
+                 $this->semValue = null;
             },
             419 => function ($stackPos) {
-                 $this->semValue = array();
+                 $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             420 => function ($stackPos) {
-                 $this->semValue = array(new Scalar\EncapsedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos-(1-1)], '`', false), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes));
+                 $this->semValue = array();
             },
             421 => function ($stackPos) {
-                 foreach ($this->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', false); } }; $this->semValue = $this->semStack[$stackPos-(1-1)];
+                 $this->semValue = array(new Scalar\EncapsedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos-(1-1)], '`', false), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes));
             },
             422 => function ($stackPos) {
-                 $this->semValue = array();
+                 foreach ($this->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', false); } }; $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             423 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(1-1)];
+                 $this->semValue = array();
             },
             424 => function ($stackPos) {
-                 $this->semValue = $this->parseLNumber($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes, true);
+                 $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             425 => function ($stackPos) {
-                 $this->semValue = new Scalar\DNumber(Scalar\DNumber::parse($this->semStack[$stackPos-(1-1)]), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+                 $this->semValue = $this->parseLNumber($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes, true);
             },
             426 => function ($stackPos) {
-                 $attrs = $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes; $attrs['kind'] = ($this->semStack[$stackPos-(1-1)][0] === "'" || ($this->semStack[$stackPos-(1-1)][1] === "'" && ($this->semStack[$stackPos-(1-1)][0] === 'b' || $this->semStack[$stackPos-(1-1)][0] === 'B')) ? Scalar\String_::KIND_SINGLE_QUOTED : Scalar\String_::KIND_DOUBLE_QUOTED);
-            $this->semValue = new Scalar\String_(Scalar\String_::parse($this->semStack[$stackPos-(1-1)], false), $attrs);
+                 $this->semValue = new Scalar\DNumber(Scalar\DNumber::parse($this->semStack[$stackPos-(1-1)]), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
             },
             427 => function ($stackPos) {
-                 $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+                 $attrs = $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes; $attrs['kind'] = ($this->semStack[$stackPos-(1-1)][0] === "'" || ($this->semStack[$stackPos-(1-1)][1] === "'" && ($this->semStack[$stackPos-(1-1)][0] === 'b' || $this->semStack[$stackPos-(1-1)][0] === 'B')) ? Scalar\String_::KIND_SINGLE_QUOTED : Scalar\String_::KIND_DOUBLE_QUOTED);
+            $this->semValue = new Scalar\String_(Scalar\String_::parse($this->semStack[$stackPos-(1-1)], false), $attrs);
             },
             428 => function ($stackPos) {
-                 $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+                 $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
             },
             429 => function ($stackPos) {
-                 $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+                 $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
             },
             430 => function ($stackPos) {
-                 $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+                 $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
             },
             431 => function ($stackPos) {
-                 $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+                 $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
             },
             432 => function ($stackPos) {
-                 $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+                 $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
             },
             433 => function ($stackPos) {
-                 $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+                 $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
             },
             434 => function ($stackPos) {
-                 $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+                 $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
             },
             435 => function ($stackPos) {
-                 $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = strpos($this->semStack[$stackPos-(3-1)], "'") === false ? Scalar\String_::KIND_HEREDOC : Scalar\String_::KIND_NOWDOC; preg_match('/\A[bB]?<<<[ \t]*[\'"]?([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)[\'"]?(?:\r\n|\n|\r)\z/', $this->semStack[$stackPos-(3-1)], $matches); $attrs['docLabel'] = $matches[1];;
-            $this->semValue = new Scalar\String_(Scalar\String_::parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], false), $attrs);
+                 $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
             },
             436 => function ($stackPos) {
-                 $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; $attrs['kind'] = strpos($this->semStack[$stackPos-(2-1)], "'") === false ? Scalar\String_::KIND_HEREDOC : Scalar\String_::KIND_NOWDOC; preg_match('/\A[bB]?<<<[ \t]*[\'"]?([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)[\'"]?(?:\r\n|\n|\r)\z/', $this->semStack[$stackPos-(2-1)], $matches); $attrs['docLabel'] = $matches[1];;
-            $this->semValue = new Scalar\String_('', $attrs);
+                 $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], false);
             },
             437 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(1-1)];
+                 $this->semValue = $this->parseDocString($this->semStack[$stackPos-(2-1)], '', $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(2-2)] + $this->endAttributeStack[$stackPos-(2-2)], false);
             },
             438 => function ($stackPos) {
-                 $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             439 => function ($stackPos) {
-                 $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             440 => function ($stackPos) {
-                 $this->semValue = new Expr\Array_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
             },
             441 => function ($stackPos) {
-                 $this->semValue = new Expr\Array_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\Array_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             442 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(1-1)];
+                 $this->semValue = new Expr\Array_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             443 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             444 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             445 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             446 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             447 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             448 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             449 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             450 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             451 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             452 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             453 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             454 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             455 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             456 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             457 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             458 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             459 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             460 => function ($stackPos) {
-                 $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             461 => function ($stackPos) {
-                 $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             462 => function ($stackPos) {
-                 $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             463 => function ($stackPos) {
-                 $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             464 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             465 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             466 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             467 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             468 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             469 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             470 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             471 => function ($stackPos) {
-                 $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             472 => function ($stackPos) {
-                 $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             473 => function ($stackPos) {
-                 $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes);
             },
             474 => function ($stackPos) {
-                 $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             475 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(3-2)];
+                 $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             476 => function ($stackPos) {
-                 $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+                 $this->semValue = $this->semStack[$stackPos-(3-2)];
             },
             477 => function ($stackPos) {
-                 $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
             },
             478 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(1-1)];
+                 $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             479 => function ($stackPos) {
                  $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             480 => function ($stackPos) {
-                 $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED;
-            foreach ($this->semStack[$stackPos-(3-2)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '"', true); } }; $this->semValue = new Scalar\Encapsed($this->semStack[$stackPos-(3-2)], $attrs);
+                 $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             481 => function ($stackPos) {
-                 $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = strpos($this->semStack[$stackPos-(3-1)], "'") === false ? Scalar\String_::KIND_HEREDOC : Scalar\String_::KIND_NOWDOC; preg_match('/\A[bB]?<<<[ \t]*[\'"]?([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)[\'"]?(?:\r\n|\n|\r)\z/', $this->semStack[$stackPos-(3-1)], $matches); $attrs['docLabel'] = $matches[1];;
-            foreach ($this->semStack[$stackPos-(3-2)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, null, true); } } $s->value = preg_replace('~(\r\n|\n|\r)\z~', '', $s->value); if ('' === $s->value) array_pop($this->semStack[$stackPos-(3-2)]);; $this->semValue = new Scalar\Encapsed($this->semStack[$stackPos-(3-2)], $attrs);
+                 $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED;
+            foreach ($this->semStack[$stackPos-(3-2)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '"', true); } }; $this->semValue = new Scalar\Encapsed($this->semStack[$stackPos-(3-2)], $attrs);
             },
             482 => function ($stackPos) {
-                 $this->semValue = array();
+                 $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true);
             },
             483 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(2-1)];
+                 $this->semValue = array();
             },
             484 => function ($stackPos) {
-                $this->semValue = $this->semStack[$stackPos];
+                 $this->semValue = $this->semStack[$stackPos-(2-1)];
             },
             485 => function ($stackPos) {
                 $this->semValue = $this->semStack[$stackPos];
             },
             486 => function ($stackPos) {
-                 $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+                $this->semValue = $this->semStack[$stackPos];
             },
             487 => function ($stackPos) {
-                 $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+                 $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
             },
             488 => function ($stackPos) {
-                 $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = array($this->semStack[$stackPos-(1-1)]);
             },
             489 => function ($stackPos) {
-                 $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             490 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(1-1)];
+                 $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
             },
             491 => function ($stackPos) {
                  $this->semValue = $this->semStack[$stackPos-(1-1)];
@@ -2451,61 +2439,61 @@ class Php5 extends \PhpParser\ParserAbstract
                  $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             494 => function ($stackPos) {
-                 $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes);
+                 $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             495 => function ($stackPos) {
-                 $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes);
             },
             496 => function ($stackPos) {
-                 $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             497 => function ($stackPos) {
-                 $this->semValue = new Expr\MethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             498 => function ($stackPos) {
-                 $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\MethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             499 => function ($stackPos) {
-                 $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             500 => function ($stackPos) {
                  $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             501 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(1-1)];
+                 $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             502 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(3-2)];
+                 $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             503 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(1-1)];
+                 $this->semValue = $this->semStack[$stackPos-(3-2)];
             },
             504 => function ($stackPos) {
-                 $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             505 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(1-1)];
+                 $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             506 => function ($stackPos) {
                  $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             507 => function ($stackPos) {
-                 $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+                 $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             508 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(1-1)];
+                 $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             509 => function ($stackPos) {
-                 $var = substr($this->semStack[$stackPos-(1-1)], 1); $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes) : $var;
+                 $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             510 => function ($stackPos) {
-                 $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $var = substr($this->semStack[$stackPos-(1-1)], 1); $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes) : $var;
             },
             511 => function ($stackPos) {
-                 $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             512 => function ($stackPos) {
-                 $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes);
             },
             513 => function ($stackPos) {
                  $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
@@ -2517,117 +2505,120 @@ class Php5 extends \PhpParser\ParserAbstract
                  $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             516 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(1-1)];
+                 $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             517 => function ($stackPos) {
-                 $this->semValue = new Expr\Variable($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+                 $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             518 => function ($stackPos) {
-                 $this->semValue = null;
+                 $this->semValue = new Expr\Variable($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             519 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(1-1)];
+                 $this->semValue = null;
             },
             520 => function ($stackPos) {
                  $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             521 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(3-2)];
+                 $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             522 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(1-1)];
+                 $this->semValue = $this->semStack[$stackPos-(3-2)];
             },
             523 => function ($stackPos) {
-                 $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2;
+                 $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             524 => function ($stackPos) {
-                 $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2;
             },
             525 => function ($stackPos) {
-                 $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+                 $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             526 => function ($stackPos) {
-                 $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+                 $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
             },
             527 => function ($stackPos) {
-                 $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+                 $this->semValue = array($this->semStack[$stackPos-(1-1)]);
             },
             528 => function ($stackPos) {
                  $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
             },
             529 => function ($stackPos) {
-                 $this->semValue = null;
+                 $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
             },
             530 => function ($stackPos) {
-                 $this->semValue = array();
+                 $this->semValue = null;
             },
             531 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(2-1)];
+                 $this->semValue = array();
             },
             532 => function ($stackPos) {
-                 $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
+                 $this->semValue = $this->semStack[$stackPos-(2-1)];
             },
             533 => function ($stackPos) {
-                 $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+                 $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)];
             },
             534 => function ($stackPos) {
-                 $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = array($this->semStack[$stackPos-(1-1)]);
             },
             535 => function ($stackPos) {
-                 $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             536 => function ($stackPos) {
-                 $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
             },
             537 => function ($stackPos) {
-                 $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             538 => function ($stackPos) {
-                 $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
+                 $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes);
             },
             539 => function ($stackPos) {
                  $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
             },
             540 => function ($stackPos) {
-                 $this->semValue = array($this->semStack[$stackPos-(1-1)]);
+                 $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)];
             },
             541 => function ($stackPos) {
-                 $this->semValue = array($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]);
+                 $this->semValue = array($this->semStack[$stackPos-(1-1)]);
             },
             542 => function ($stackPos) {
-                 $this->semValue = new Scalar\EncapsedStringPart($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+                 $this->semValue = array($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]);
             },
             543 => function ($stackPos) {
-                 $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+                 $this->semValue = new Scalar\EncapsedStringPart($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
             },
             544 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(1-1)];
+                 $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
             },
             545 => function ($stackPos) {
-                 $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
+                 $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
             546 => function ($stackPos) {
-                 $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes);
             },
             547 => function ($stackPos) {
-                 $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             548 => function ($stackPos) {
                  $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             549 => function ($stackPos) {
-                 $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-4)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes);
+                 $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes);
             },
             550 => function ($stackPos) {
-                 $this->semValue = $this->semStack[$stackPos-(3-2)];
+                 $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-4)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes);
             },
             551 => function ($stackPos) {
-                 $this->semValue = new Scalar\String_($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+                 $this->semValue = $this->semStack[$stackPos-(3-2)];
             },
             552 => function ($stackPos) {
-                 $this->semValue = $this->parseNumString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+                 $this->semValue = new Scalar\String_($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
             },
             553 => function ($stackPos) {
+                 $this->semValue = $this->parseNumString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes);
+            },
+            554 => function ($stackPos) {
                  $this->semValue = $this->semStack[$stackPos-(1-1)];
             },
         ];