diff --git a/CHANGELOG.md b/CHANGELOG.md index 18b7000..b2a06de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,9 @@ Version 4.12.1-dev ------------------ -Nothing yet. +### Added + +* [PHP 8.1] Added support for intersection types using a new `IntersectionType` node. Version 4.12.0 (2021-07-21) --------------------------- diff --git a/grammar/php7.y b/grammar/php7.y index e7030d6..f3ea2de 100644 --- a/grammar/php7.y +++ b/grammar/php7.y @@ -561,6 +561,7 @@ type_expr: type { $$ = $1; } | '?' type { $$ = Node\NullableType[$2]; } | union_type { $$ = Node\UnionType[$1]; } + | intersection_type { $$ = Node\IntersectionType[$1]; } ; type: @@ -584,10 +585,24 @@ union_type_without_static: | union_type_without_static '|' type_without_static { push($1, $3); } ; +intersection_type: + type T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG type { init($1, $3); } + | intersection_type T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG type + { push($1, $3); } +; + +intersection_type_without_static: + type_without_static T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG type_without_static + { init($1, $3); } + | intersection_type_without_static T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG type_without_static + { push($1, $3); } +; + type_expr_without_static: type_without_static { $$ = $1; } | '?' type_without_static { $$ = Node\NullableType[$2]; } | union_type_without_static { $$ = Node\UnionType[$1]; } + | intersection_type_without_static { $$ = Node\IntersectionType[$1]; } ; optional_type_without_static: diff --git a/lib/PhpParser/BuilderHelpers.php b/lib/PhpParser/BuilderHelpers.php index 2f0e912..c0e3fbd 100644 --- a/lib/PhpParser/BuilderHelpers.php +++ b/lib/PhpParser/BuilderHelpers.php @@ -5,6 +5,7 @@ namespace PhpParser; use PhpParser\Node\ComplexType; use PhpParser\Node\Expr; use PhpParser\Node\Identifier; +use PhpParser\Node\IntersectionType; use PhpParser\Node\Name; use PhpParser\Node\NullableType; use PhpParser\Node\Scalar; diff --git a/lib/PhpParser/Node/IntersectionType.php b/lib/PhpParser/Node/IntersectionType.php new file mode 100644 index 0000000..9208e13 --- /dev/null +++ b/lib/PhpParser/Node/IntersectionType.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->types = $types; + } + + public function getSubNodeNames() : array { + return ['types']; + } + + public function getType() : string { + return 'IntersectionType'; + } +} diff --git a/lib/PhpParser/NodeVisitor/NameResolver.php b/lib/PhpParser/NodeVisitor/NameResolver.php index 79bbc45..8e259c5 100644 --- a/lib/PhpParser/NodeVisitor/NameResolver.php +++ b/lib/PhpParser/NodeVisitor/NameResolver.php @@ -189,7 +189,7 @@ class NameResolver extends NodeVisitorAbstract $node->type = $this->resolveType($node->type); return $node; } - if ($node instanceof Node\UnionType) { + if ($node instanceof Node\UnionType || $node instanceof Node\IntersectionType) { foreach ($node->types as &$type) { $type = $this->resolveType($type); } diff --git a/lib/PhpParser/Parser/Php7.php b/lib/PhpParser/Parser/Php7.php index 6f5fa20..bc8c34c 100644 --- a/lib/PhpParser/Parser/Php7.php +++ b/lib/PhpParser/Parser/Php7.php @@ -18,16 +18,16 @@ use PhpParser\Node\Stmt; class Php7 extends \PhpParser\ParserAbstract { protected $tokenToSymbolMapSize = 396; - protected $actionTableSize = 1189; - protected $gotoTableSize = 697; + protected $actionTableSize = 1195; + protected $gotoTableSize = 583; protected $invalidSymbol = 168; protected $errorSymbol = 1; protected $defaultAction = -32766; protected $unexpectedTokenRule = 32767; - protected $YY2TBLSTATE = 414; - protected $numNonLeafStates = 702; + protected $YY2TBLSTATE = 418; + protected $numNonLeafStates = 708; protected $symbolToName = array( "EOF", @@ -244,125 +244,126 @@ class Php7 extends \PhpParser\ParserAbstract ); protected $action = array( - 131, 132, 133, 562, 134, 135, 0, 714, 715, 716, - 136, 36, 826, 903, 827, 461,-32766,-32766,-32766,-32767, - -32767,-32767,-32767, 100, 101, 102, 103, 104, 1052, 1053, - 1054, 1051, 1050, 1049, 1055, 708, 707,-32766,-32766,-32766, + 131, 132, 133, 568, 134, 135, 0, 720, 721, 722, + 136, 36, 832, 909, 833, 467,-32766,-32766,-32766,-32767, + -32767,-32767,-32767, 100, 101, 102, 103, 104, 1064, 1065, + 1066, 1063, 1062, 1061, 1067, 714, 713,-32766,-32766,-32766, -32766,-32766,-32766,-32766,-32766,-32766,-32767,-32767,-32767,-32767, - -32767, 538, 539,-32766,-32766, 717,-32766,-32766,-32766, 989, - 990, 798, 914, 439, 440, 441, 364, 365, 2, 265, - 137, 390, 721, 722, 723, 724, 408,-32766, 414,-32766, - -32766,-32766,-32766,-32766, 982, 725, 726, 727, 728, 729, - 730, 731, 732, 733, 734, 735, 755, 563, 756, 757, - 758, 759, 747, 748, 330, 331, 750, 751, 736, 737, - 738, 740, 741, 742, 340, 782, 783, 784, 785, 786, - 787, 743, 744, 564, 565, 776, 767, 765, 766, 779, - 762, 763, 279, 414, 566, 567, 761, 568, 569, 570, - 571, 572, 573, 590, -567, 462, 484, 790, 764, 574, - 575, -567, 138,-32766,-32766,-32766, 131, 132, 133, 562, - 134, 135, 1003, 714, 715, 716, 136, 36, 1044,-32766, - -32766,-32766, 1287, 688,-32766, 1288,-32766,-32766,-32766,-32766, - -32766,-32766,-32766, 1052, 1053, 1054, 1051, 1050, 1049, 1055, - -32766, 708, 707, 366, 365, 1242,-32766,-32766,-32766, -564, - 105, 106, 107, 408, 268, 883, -564, 238, 1177, 1176, - 1178, 717,-32766,-32766,-32766, 1030, 108,-32766,-32766,-32766, - -32766, 978, 977, 976, 979, 265, 137, 390, 721, 722, - 723, 724, 12,-32766, 414,-32766,-32766,-32766,-32766, 989, - 990, 725, 726, 727, 728, 729, 730, 731, 732, 733, - 734, 735, 755, 563, 756, 757, 758, 759, 747, 748, - 330, 331, 750, 751, 736, 737, 738, 740, 741, 742, - 340, 782, 783, 784, 785, 786, 787, 743, 744, 564, - 565, 776, 767, 765, 766, 779, 762, 763, 873, 315, - 566, 567, 761, 568, 569, 570, 571, 572, 573,-32766, - 81, 82, 83, -567, 764, 574, 575, -567, 138, 739, - 709, 710, 711, 712, 713, 1262, 714, 715, 716, 752, - 753, 35, 1261, 84, 85, 86, 87, 88, 89, 90, + -32767, 544, 545,-32766,-32766, 723,-32766,-32766,-32766, 996, + 997, 804, 920, 445, 446, 447, 368, 369, 2, 265, + 137, 394, 727, 728, 729, 730, 412,-32766, 418,-32766, + -32766,-32766,-32766,-32766, 988, 731, 732, 733, 734, 735, + 736, 737, 738, 739, 740, 741, 761, 569, 762, 763, + 764, 765, 753, 754, 334, 335, 756, 757, 742, 743, + 744, 746, 747, 748, 344, 788, 789, 790, 791, 792, + 793, 749, 750, 570, 571, 782, 773, 771, 772, 785, + 768, 769, 281, 418, 572, 573, 767, 574, 575, 576, + 577, 578, 579, 596, -573, 468, 490, 796, 770, 580, + 581, -573, 138,-32766,-32766,-32766, 131, 132, 133, 568, + 134, 135, 1015, 720, 721, 722, 136, 36, 1056,-32766, + -32766,-32766, 1299, 694,-32766, 1300,-32766,-32766,-32766,-32766, + -32766,-32766,-32766, 1064, 1065, 1066, 1063, 1062, 1061, 1067, + -32766, 714, 713, 370, 369, 1254,-32766,-32766,-32766, -570, + 105, 106, 107, 412, 268, 889, -570, 238, 1189, 1188, + 1190, 723,-32766,-32766,-32766, 1042, 108,-32766,-32766,-32766, + -32766, 984, 983, 982, 985, 265, 137, 394, 727, 728, + 729, 730, 12,-32766, 418,-32766,-32766,-32766,-32766, 996, + 997, 731, 732, 733, 734, 735, 736, 737, 738, 739, + 740, 741, 761, 569, 762, 763, 764, 765, 753, 754, + 334, 335, 756, 757, 742, 743, 744, 746, 747, 748, + 344, 788, 789, 790, 791, 792, 793, 749, 750, 570, + 571, 782, 773, 771, 772, 785, 768, 769, 879, 319, + 572, 573, 767, 574, 575, 576, 577, 578, 579,-32766, + 81, 82, 83, -573, 770, 580, 581, -573, 138, 745, + 715, 716, 717, 718, 719, 1274, 720, 721, 722, 758, + 759, 35, 1273, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 987, 268, 148, - -32766,-32766,-32766, 447, 448, 80, 33, -264, -564, 1002, - 108, 314, -564, 885, 717, 674, 795, 127, 989, 990, - 584,-32766, 1028,-32766,-32766,-32766, 801, 149, 718, 719, - 720, 721, 722, 723, 724, -88, 1182, 788, 276, -518, - 279,-32766,-32766,-32766, 725, 726, 727, 728, 729, 730, - 731, 732, 733, 734, 735, 755, 778, 756, 757, 758, - 759, 747, 748, 749, 777, 750, 751, 736, 737, 738, - 740, 741, 742, 781, 782, 783, 784, 785, 786, 787, - 743, 744, 745, 746, 776, 767, 765, 766, 779, 762, - 763, 143, 796, 754, 760, 761, 768, 769, 771, 770, - 772, 773, -306, -518, -518, -193, -192, 764, 775, 774, - 48, 49, 50, 493, 51, 52, 237, 799, -518, -86, - 53, 54, -111, 55, 987, 251,-32766, -111, 792, -111, - -518, 534, -524, -344, 294, -344, 298, -111, -111, -111, - -111, -111, -111, -111, -111, 989, 990, 989, 990, 151, - -32766,-32766,-32766, 1175, 799, 125, 300, 1277, 56, 57, - 102, 103, 104, -111, 58, 1202, 59, 244, 245, 60, - 61, 62, 63, 64, 65, 66, 67, -517, 26, 266, - 68, 428, 494, -320, 800, -86, 1208, 1209, 495, 1173, - 799, 1182, 1214, 287, 1206, 40, 23, 496, 73, 497, - 945, 498, 314, 499, 794, 312, 500, 501, 375, 676, - 11, 42, 43, 429, 361, 360, 883, 44, 502, 34, - 247, -16, -558, 352, 326, 327, -558, 1182, 1177, 1176, - 1178, -519, 503, 504, 505, 328, -516, 1258, 47, 708, - 707, -517, -517, 354, 506, 507, 799, 1196, 1197, 1198, - 1199, 1193, 1194, 286, 358, 826, -517, 827, -306, 1200, - 1195, -193, -192, 1177, 1176, 1178, 287, 883, -517, 373, - -523, 69, 799, 310, 311, 314, 30, 109, 110, 111, + 101, 102, 103, 104, 105, 106, 107, 994, 268, 148, + -32766,-32766,-32766, 453, 454, 80, 33, -264, -570, 1014, + 108, 318, -570, 891, 723, 680, 801, 127, 996, 997, + 590,-32766, 1040,-32766,-32766,-32766, 807, 149, 724, 725, + 726, 727, 728, 729, 730, -88, 1194, 794, 276, -524, + 281,-32766,-32766,-32766, 731, 732, 733, 734, 735, 736, + 737, 738, 739, 740, 741, 761, 784, 762, 763, 764, + 765, 753, 754, 755, 783, 756, 757, 742, 743, 744, + 746, 747, 748, 787, 788, 789, 790, 791, 792, 793, + 749, 750, 751, 752, 782, 773, 771, 772, 785, 768, + 769, 143, 802, 760, 766, 767, 774, 775, 777, 776, + 778, 779, -312, -524, -524, -193, -192, 770, 781, 780, + 48, 49, 50, 499, 51, 52, 237, 805, -524, -86, + 53, 54, -111, 55, 994, 251,-32766, -111, 798, -111, + -524, 540, -530, -350, 298, -350, 302, -111, -111, -111, + -111, -111, -111, -111, -111, 996, 997, 996, 997, 151, + -32766,-32766,-32766, 1187, 805, 125, 304, 1289, 56, 57, + 102, 103, 104, -111, 58, 1214, 59, 244, 245, 60, + 61, 62, 63, 64, 65, 66, 67, -523, 26, 266, + 68, 434, 500, -326, 806, -86, 1220, 1221, 501, 1185, + 805, 1194, 1226, 291, 1218, 40, 23, 502, 73, 503, + 951, 504, 318, 505, 800, 152, 506, 507, 277, 682, + 278, 42, 43, 435, 365, 364, 889, 44, 508, 34, + 247, -16, -564, 356, 330, 316, -564, 1194, 1189, 1188, + 1190, -525, 509, 510, 511, 331, -522, 1270, 47, 714, + 713, -523, -523, 332, 512, 513, 805, 1208, 1209, 1210, + 1211, 1205, 1206, 290, 358, 282, -523, 283, -312, 1212, + 1207, -193, -192, 1189, 1188, 1190, 291, 889, -523, 362, + -529, 69, 805, 314, 315, 318, 30, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - -153, -153, -153, 630, 24, -519, -519, 679, 424, 873, - -516, -516, 290, 291, 883, -153, 425, -153, 799, -153, - -519, -153, 708, 707, 426, -516, 790, 357, -111, 1089, - 1091, 359, -519, 427, 883, 139, 805, -516, 946, 126, - -516, 314, -111, -111, 680, 152, 1029, -521, 700, 646, - 647, 153, 859, -111, -111, -111, -111, 46, 287,-32766, - 873, 147, 393, 73, 681, 1175, 155, 314, 362, 363, - 367, 368,-32766,-32766,-32766, 31,-32766, -79,-32766, 122, - -32766, 708, 707,-32766, 885, 883, 674, -153,-32766,-32766, - -32766, 708, 707, 883,-32766,-32766, 123, 873, 128, 73, - -32766, 405, 129, 314, -516, -516, 142, 140, -75,-32766, - 156, -521, -521, 314, 26, 683, 157, 873, 158, -516, - 159, 288, 289, 690, -73, 899, 799, -72,-32766, -71, - 1206, -516, 622, 623, 1175, 885, -70, 674, -521, 72, - -69,-32766,-32766,-32766, -68,-32766, -67,-32766, 124,-32766, - -66, -47,-32766, -18, 146, 269, -51,-32766,-32766,-32766, - 275, 689, 692,-32766,-32766, 882, 145, 277, 873,-32766, - 405, 278, 885, 280, 674, 281, 873, 320,-32766, 108, - 506, 507, 144, 1196, 1197, 1198, 1199, 1193, 1194, 799, - 130, 654, 931, 1059, 674, 1200, 1195, 790, 268,-32766, - 667, 1289, 636, 637, 620, 1175,-32766, 71, 292, 295, - 311, 314,-32766,-32766,-32766, 542,-32766, 631,-32766, 1213, - -32766, 299, 536,-32766, 1215, 13, 901, 649,-32766,-32766, - -32766, 1203,-32766,-32766,-32766,-32766, -4, 883, 548, 1175, - -32766, 405, 444, 885, 472, 674,-32766,-32766,-32766,-32766, - -32766, 885,-32766, 674,-32766, 650, 798,-32766, 38, 694, - 0, 0,-32766,-32766,-32766,-32766, 0, 423,-32766,-32766, - 0, 1175, 915, 0,-32766, 405, 916, 0,-32766,-32766, - -32766, 0,-32766,-32766,-32766, 293,-32766, 0, 0,-32766, - 0, 0, -482, 467,-32766,-32766,-32766,-32766, -472, 7, - -32766,-32766, 15, 1175, 554, 356,-32766, 405, 860, 883, - -32766,-32766,-32766, 588,-32766,-32766,-32766, 39,-32766, 287, - 873,-32766, 697, 698, 864, 955,-32766,-32766,-32766, 932, - 939, 929,-32766,-32766, 940, 862, 927, 1033,-32766, 405, - 1036, 1037, 359, 1034, 419, 883, 1035,-32766, 1041, 285, - 810, -552, 1228, -111, -111, 1246, 1280, 625, -267, 32, - 309, 355, 675, 818, -111, -111, -111, -111, 678, 682, - -32766, 684, 685, 686, 687, 691, 1175, 677, -550, 1284, - 1286, 821, 820,-32766,-32766,-32766, 9,-32766, 829,-32766, - 908,-32766, 873, 947,-32766, 885, 828, 674, -4,-32766, - -32766,-32766, 1285, 907, 909,-32766,-32766, 906, -242, -242, - -242,-32766, 405, 1161, 359, 26, 892, 902, 890, 937, - -32766, 938, 1283, 1240, 1229, -111, -111, 799, 873, 1247, - 1253, 1206, 1256, -265, -524, 859, -111, -111, -111, -111, - -523, -522, 1, 27, -241, -241, -241, 28, 37, 41, - 359, 45, 70, 74, 75, 76, 77, 78, 79, 0, - 141, -111, -111, 150, 154, 243, 316, 885, 341, 674, - -242, 859, -111, -111, -111, -111, 342, 343, 344, 345, - 346, 347, 507, 348, 1196, 1197, 1198, 1199, 1193, 1194, - 349, 350, 351, 353, 420, 0, 1200, 1195, -264, 17, - 18, 19, 20, 885, 22, 674, -241, 392, 71, 314, - 463, 311, 314, 464, 471, 474, 475, 476, 477, 481, - 482, 483, 491, 661, 1186, 1129, 1204, 1004, 1165, -269, - -103, 16, 21, 25, 284, 391, 581, 585, 612, 666, - 1133, 1181, 1130, 1259, 0, -486, 1146, 0, 1207 + -153, -153, -153, 636, 24, -525, -525, 685, 377, 879, + -522, -522, 294, 295, 889, -153, 430, -153, 805, -153, + -525, -153, 714, 713, 431, -522, 796, 361, -111, 1101, + 1103, 363, -525, 432, 889, 139, 433, -522, 952, 126, + -522, 318, -111, -111, 686, 811, 379, -527, 11, 832, + 153, 833, 865, -111, -111, -111, -111, 46, 291,-32766, + 879, 652, 653, 73, 687, 1187, 1041, 318, 706, 147, + 397, 155,-32766,-32766,-32766, 31,-32766, -79,-32766, 122, + -32766, 714, 713,-32766, 891, 889, 680, -153,-32766,-32766, + -32766, 714, 713, 889,-32766,-32766, 123, 879, 128, 73, + -32766, 409, 129, 318, -522, -522, 142, 140, -75,-32766, + 156, -527, -527, 318, 26, 689, 157, 879, 158, -522, + 159, 292, 293, 696, 366, 367, 805, -73,-32766, -72, + 1218, -522, 371, 372, 1187, 891, -71, 680, -527, 72, + -70,-32766,-32766,-32766, -69,-32766, -68,-32766, 124,-32766, + 628, 629,-32766, -67, -66, -47, -51,-32766,-32766,-32766, + -18, 146, 269,-32766,-32766, 275, 695, 698, 879,-32766, + 409, 888, 891, 145, 680, 280, 879, 905,-32766, 279, + 512, 513, 284, 1208, 1209, 1210, 1211, 1205, 1206, 324, + 130, 144, 937, 285, 680, 1212, 1207, 108, 268,-32766, + 796, 805,-32766, 660, 637, 1187, 655, 71, 673, 1071, + 315, 318,-32766,-32766,-32766, 1301,-32766, 299,-32766, 626, + -32766, 429, 542,-32766,-32766, 921, 554, 922,-32766,-32766, + -32766, 1225, 548,-32766,-32766,-32766, -4, 889, -488, 1187, + -32766, 409, 642, 891, 297, 680,-32766,-32766,-32766,-32766, + -32766, 891,-32766, 680,-32766, 13, 1227,-32766, 450, 478, + 643, 907,-32766,-32766,-32766,-32766, 656, -478,-32766,-32766, + 0, 1187, 0, 0,-32766, 409, 0, 296,-32766,-32766, + -32766, 303,-32766,-32766,-32766, 0,-32766, 0, 804,-32766, + 0, 0, 0, 473,-32766,-32766,-32766,-32766, 0, 7, + -32766,-32766, 15, 1187, 560, 594,-32766, 409, 1215, 889, + -32766,-32766,-32766, 360,-32766,-32766,-32766, 816,-32766, -267, + 879,-32766, 38, 291, 0, 0,-32766,-32766,-32766, 39, + 703, 704,-32766,-32766, 870, 961, 938, 945,-32766, 409, + 935, 946, 363, 868, 425, 889, 933,-32766, 1045, 289, + 1240, 1048, 1049, -111, -111, 1046, 1047, 1053, -558, 1258, + 1292, 631, 0, 824, -111, -111, -111, -111, 32, 313, + -32766, 359, 681, 684, 688, 690, 1187, 691, 692, 693, + 697, 683, 318,-32766,-32766,-32766, 9,-32766, 700,-32766, + 866,-32766, 879, 1296,-32766, 891, 1298, 680, -4,-32766, + -32766,-32766, 827, 826, 835,-32766,-32766, 914, -242, -242, + -242,-32766, 409, 953, 363, 26, 834, 1297, 913, 915, + -32766, 912, 1173, 898, 908, -111, -111, 805, 879, 896, + 943, 1218, 944, 1295, 1252, 865, -111, -111, -111, -111, + 1241, 1259, 1265, 1268, -241, -241, -241, -556, -530, -529, + 363, -528, 1, 27, 28, 37, 41, 45, 70, 0, + 74, -111, -111, 75, 76, 77, 78, 891, 79, 680, + -242, 865, -111, -111, -111, -111, 141, 150, 154, 243, + 320, 345, 513, 346, 1208, 1209, 1210, 1211, 1205, 1206, + 347, 348, 349, 350, 351, 352, 1212, 1207, 353, 354, + 355, 357, 426, 891, -265, 680, -241, -264, 71, 0, + 17, 315, 318, 18, 19, 20, 22, 396, 469, 470, + 477, 480, 481, 482, 483, 487, 488, 489, 497, 667, + 1198, 1141, 1216, 1016, 1177, -269, -103, 16, 21, 25, + 288, 395, 587, 591, 618, 672, 1145, 1193, 1142, 1271, + 0, -492, 1158, 0, 1219 ); protected $actionCheck = array( @@ -421,12 +422,12 @@ class Php7 extends \PhpParser\ParserAbstract 62, 63, 64, 65, 66, 67, 68, 70, 70, 71, 72, 73, 74, 162, 159, 97, 78, 79, 80, 116, 82, 1, 146, 158, 86, 87, 88, 89, 163, 91, - 31, 93, 167, 95, 156, 8, 98, 99, 106, 161, - 108, 103, 104, 105, 106, 107, 1, 109, 110, 147, + 31, 93, 167, 95, 156, 14, 98, 99, 35, 161, + 37, 103, 104, 105, 106, 107, 1, 109, 110, 147, 148, 31, 160, 115, 116, 8, 164, 1, 155, 156, 157, 70, 124, 125, 126, 8, 70, 1, 70, 37, 38, 134, 135, 8, 136, 137, 82, 139, 140, 141, - 142, 143, 144, 145, 8, 106, 149, 108, 164, 151, + 142, 143, 144, 145, 8, 35, 149, 37, 164, 151, 152, 164, 164, 155, 156, 157, 158, 1, 161, 8, 163, 163, 82, 165, 166, 167, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, @@ -434,62 +435,63 @@ class Php7 extends \PhpParser\ParserAbstract 134, 135, 134, 135, 1, 90, 8, 92, 82, 94, 149, 96, 37, 38, 8, 149, 80, 149, 128, 59, 60, 106, 161, 8, 1, 161, 8, 161, 159, 161, - 70, 167, 117, 118, 31, 14, 159, 70, 161, 75, - 76, 14, 127, 128, 129, 130, 131, 70, 158, 74, - 84, 101, 102, 163, 31, 80, 14, 167, 106, 107, - 106, 107, 87, 88, 89, 14, 91, 31, 93, 16, + 70, 167, 117, 118, 31, 8, 106, 70, 108, 106, + 14, 108, 127, 128, 129, 130, 131, 70, 158, 74, + 84, 75, 76, 163, 31, 80, 159, 167, 161, 101, + 102, 14, 87, 88, 89, 14, 91, 31, 93, 16, 95, 37, 38, 98, 159, 1, 161, 162, 103, 104, 105, 37, 38, 1, 109, 110, 16, 84, 16, 163, 115, 116, 16, 167, 134, 135, 16, 161, 31, 124, 16, 134, 135, 167, 70, 31, 16, 84, 16, 149, - 16, 134, 135, 31, 31, 38, 82, 31, 74, 31, - 86, 161, 111, 112, 80, 159, 31, 161, 161, 154, + 16, 134, 135, 31, 106, 107, 82, 31, 74, 31, + 86, 161, 106, 107, 80, 159, 31, 161, 161, 154, 31, 87, 88, 89, 31, 91, 31, 93, 161, 95, - 31, 31, 98, 31, 31, 31, 31, 103, 104, 105, - 31, 31, 31, 109, 110, 31, 31, 35, 84, 115, - 116, 35, 159, 35, 161, 35, 84, 35, 124, 69, - 136, 137, 70, 139, 140, 141, 142, 143, 144, 82, - 31, 77, 159, 82, 161, 151, 152, 80, 57, 74, - 92, 83, 96, 100, 113, 80, 85, 163, 132, 114, - 166, 167, 87, 88, 89, 89, 91, 90, 93, 146, - 95, 132, 85, 98, 146, 97, 154, 94, 103, 104, - 105, 160, 116, 74, 109, 110, 0, 1, 153, 80, - 115, 116, 97, 159, 97, 161, 87, 88, 89, 124, - 91, 159, 93, 161, 95, 100, 155, 98, 159, 162, - -1, -1, 103, 104, 105, 74, -1, 128, 109, 110, - -1, 80, 128, -1, 115, 116, 128, -1, 87, 88, - 89, -1, 91, 124, 93, 133, 95, -1, -1, 98, - -1, -1, 149, 102, 103, 104, 105, 74, 149, 149, - 109, 110, 149, 80, 81, 149, 115, 116, 162, 1, - 87, 88, 89, 153, 91, 124, 93, 159, 95, 158, - 84, 98, 159, 159, 159, 159, 103, 104, 105, 159, + 111, 112, 98, 31, 31, 31, 31, 103, 104, 105, + 31, 31, 31, 109, 110, 31, 31, 31, 84, 115, + 116, 31, 159, 31, 161, 37, 84, 38, 124, 35, + 136, 137, 35, 139, 140, 141, 142, 143, 144, 35, + 31, 70, 159, 37, 161, 151, 152, 69, 57, 74, + 80, 82, 85, 77, 90, 80, 94, 163, 92, 82, + 166, 167, 87, 88, 89, 83, 91, 114, 93, 113, + 95, 128, 85, 98, 116, 128, 153, 128, 103, 104, + 105, 146, 89, 74, 109, 110, 0, 1, 149, 80, + 115, 116, 96, 159, 133, 161, 87, 88, 89, 124, + 91, 159, 93, 161, 95, 97, 146, 98, 97, 97, + 100, 154, 103, 104, 105, 74, 100, 149, 109, 110, + -1, 80, -1, -1, 115, 116, -1, 132, 87, 88, + 89, 132, 91, 124, 93, -1, 95, -1, 155, 98, + -1, -1, -1, 102, 103, 104, 105, 74, -1, 149, + 109, 110, 149, 80, 81, 153, 115, 116, 160, 1, + 87, 88, 89, 149, 91, 124, 93, 160, 95, 164, + 84, 98, 159, 158, -1, -1, 103, 104, 105, 159, 159, 159, 109, 110, 159, 159, 159, 159, 115, 116, 159, 159, 106, 159, 108, 1, 159, 124, 159, 113, - 160, 163, 160, 117, 118, 160, 160, 160, 164, 161, - 161, 161, 161, 127, 128, 129, 130, 131, 161, 161, - 74, 161, 161, 161, 161, 161, 80, 161, 163, 162, - 162, 162, 162, 87, 88, 89, 150, 91, 162, 93, + 160, 159, 159, 117, 118, 159, 159, 159, 163, 160, + 160, 160, -1, 127, 128, 129, 130, 131, 161, 161, + 74, 161, 161, 161, 161, 161, 80, 161, 161, 161, + 161, 161, 167, 87, 88, 89, 150, 91, 162, 93, 162, 95, 84, 162, 98, 159, 162, 161, 162, 103, 104, 105, 162, 162, 162, 109, 110, 162, 100, 101, 102, 115, 116, 162, 106, 70, 162, 162, 162, 162, 124, 162, 162, 162, 162, 117, 118, 82, 84, 162, - 162, 86, 162, 164, 163, 127, 128, 129, 130, 131, - 163, 163, 163, 163, 100, 101, 102, 163, 163, 163, + 162, 86, 162, 162, 162, 127, 128, 129, 130, 131, + 162, 162, 162, 162, 100, 101, 102, 163, 163, 163, 106, 163, 163, 163, 163, 163, 163, 163, 163, -1, 163, 117, 118, 163, 163, 163, 163, 159, 163, 161, 162, 127, 128, 129, 130, 131, 163, 163, 163, 163, 163, 163, 137, 163, 139, 140, 141, 142, 143, 144, - 163, 163, 163, 163, 163, -1, 151, 152, 164, 164, - 164, 164, 164, 159, 164, 161, 162, 164, 163, 167, + 163, 163, 163, 163, 163, 163, 151, 152, 163, 163, + 163, 163, 163, 159, 164, 161, 162, 164, 163, -1, 164, 166, 167, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, -1, 165, 165, -1, 166 + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + -1, 165, 165, -1, 166 ); protected $actionBase = array( 0, -2, 154, 565, 876, 948, 984, 514, 53, 398, - 827, 307, 307, 67, 307, 307, 653, 724, 724, 732, + 837, 307, 307, 67, 307, 307, 653, 724, 724, 732, 724, 616, 673, 204, 204, 204, 625, 625, 625, 625, 694, 694, 831, 831, 863, 799, 765, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, @@ -504,9 +506,9 @@ class Php7 extends \PhpParser\ParserAbstract 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, - 375, 519, 369, 701, 1010, 1016, 1012, 1017, 1008, 1007, - 1011, 1013, 1018, 900, 901, 775, 902, 907, 908, 910, - 1014, 837, 1009, 1015, 291, 291, 291, 291, 291, 291, + 375, 519, 369, 701, 1016, 1022, 1018, 1023, 1014, 1013, + 1017, 1019, 1024, 911, 912, 782, 918, 919, 920, 921, + 1020, 841, 1015, 1021, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 290, 491, 44, 382, 382, 382, 382, 382, 382, 382, @@ -515,51 +517,52 @@ class Php7 extends \PhpParser\ParserAbstract 203, 610, 47, 985, 985, 985, 985, 985, 985, 985, 985, 985, 985, 144, 144, 7, 7, 7, 7, 7, 371, -25, -25, -25, -25, 540, 385, 102, 576, 358, - 45, 377, 460, 460, 360, 231, 231, 231, 231, -78, - -78, -78, -66, 319, 457, -94, 396, 423, 586, 586, - 586, 586, 423, 423, 423, 423, 718, 1022, 423, 423, - 423, 511, 516, 516, 518, 147, 147, 147, 516, 499, - 777, 422, 499, 422, 194, 92, 756, -40, 87, 412, - 756, 617, 627, 198, 143, 741, 602, 741, 1006, 761, - 760, 717, 829, 856, 1019, 743, 897, 795, 899, 219, - 686, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, - 1005, 1005, 982, 552, 1006, 286, 982, 982, 982, 552, - 552, 552, 552, 552, 552, 552, 552, 552, 552, 661, - 286, 568, 614, 286, 782, 552, 375, 789, 375, 375, - 375, 375, 945, 375, 375, 375, 375, 375, 375, 957, - 762, -16, 375, 519, 12, 12, 527, 83, 12, 12, - 12, 12, 375, 375, 375, 602, 781, 725, 604, 800, - 448, 781, 781, 781, 438, 444, 193, 447, 452, 757, - 757, 751, 919, 919, 757, 747, 757, 751, 928, 757, - 919, 801, 359, 640, 567, 596, 648, 919, 478, 757, - 757, 757, 757, 656, 757, 467, 433, 757, 757, 716, - 769, 729, 60, 919, 919, 919, 729, 585, 792, 792, - 792, 803, 804, 731, 764, 547, 498, 668, 348, 727, - 764, 764, 757, 611, 731, 764, 731, 764, 712, 764, - 764, 764, 731, 764, 757, 747, 577, 764, 734, 665, - 224, 764, 6, 929, 930, 354, 931, 925, 932, 971, - 933, 934, 841, 942, 926, 935, 924, 920, 774, 703, - 720, 790, 783, 918, 750, 750, 750, 911, 750, 750, - 750, 750, 750, 750, 750, 750, 703, 711, 796, 779, - 766, 953, 722, 726, 713, 786, 1020, 1021, 784, 788, - 945, 1000, 937, 739, 730, 980, 954, 737, 839, 955, - 956, 983, 1001, 1002, 857, 752, 858, 859, 830, 958, - 847, 750, 929, 934, 926, 935, 924, 920, 759, 755, - 749, 753, 745, 738, 733, 736, 763, 855, 828, 832, - 957, 917, 703, 835, 975, 838, 986, 989, 840, 785, - 758, 836, 860, 960, 967, 968, 848, 1003, 798, 976, - 834, 990, 787, 866, 991, 992, 993, 994, 868, 850, - 851, 852, 805, 767, 909, 746, 871, 335, 778, 780, - 970, 363, 943, 853, 874, 880, 995, 996, 997, 881, - 940, 806, 977, 773, 978, 974, 810, 811, 485, 772, - 776, 671, 677, 882, 885, 891, 941, 770, 754, 812, - 815, 1004, 894, 692, 816, 740, 895, 999, 742, 744, - 748, 854, 793, 735, 768, 969, 771, 817, 896, 818, - 821, 822, 998, 824, 0, 0, 0, 0, 0, 0, + 45, 377, 460, 460, 360, 231, 231, 231, 231, 231, + 231, -78, -78, -78, -78, -78, -66, 319, 457, -94, + 396, 423, 586, 586, 586, 586, 423, 423, 423, 423, + 750, 1028, 423, 423, 423, 511, 516, 516, 518, 147, + 147, 147, 516, 583, 777, 422, 583, 422, 194, 92, + 748, -40, 87, 412, 748, 617, 627, 198, 143, 773, + 658, 773, 1012, 757, 764, 717, 838, 860, 1025, 800, + 908, 806, 910, 219, 686, 1011, 1011, 1011, 1011, 1011, + 1011, 1011, 1011, 1011, 1011, 1011, 855, 552, 1012, 286, + 855, 855, 855, 552, 552, 552, 552, 552, 552, 552, + 552, 552, 552, 679, 286, 568, 626, 286, 794, 552, + 375, 758, 375, 375, 375, 375, 958, 375, 375, 375, + 375, 375, 375, 970, 769, -16, 375, 519, 12, 12, + 547, 83, 12, 12, 12, 12, 375, 375, 375, 658, + 781, 713, 666, 792, 448, 781, 781, 781, 438, 444, + 193, 447, 570, 523, 580, 760, 760, 767, 929, 929, + 760, 759, 760, 767, 934, 760, 929, 805, 359, 648, + 577, 611, 656, 929, 478, 760, 760, 760, 760, 665, + 760, 467, 433, 760, 760, 785, 774, 789, 60, 929, + 929, 929, 789, 596, 751, 751, 751, 811, 812, 746, + 771, 567, 498, 677, 348, 779, 771, 771, 760, 640, + 746, 771, 746, 771, 747, 771, 771, 771, 746, 771, + 760, 759, 585, 771, 734, 668, 224, 771, 6, 935, + 937, 354, 940, 932, 941, 979, 942, 943, 851, 956, + 933, 945, 931, 930, 780, 703, 720, 790, 729, 928, + 768, 768, 768, 925, 768, 768, 768, 768, 768, 768, + 768, 768, 703, 788, 804, 733, 783, 960, 722, 726, + 725, 868, 1026, 1027, 737, 739, 958, 1006, 953, 803, + 730, 992, 967, 866, 848, 968, 969, 993, 1007, 1008, + 871, 761, 874, 880, 797, 971, 852, 768, 935, 943, + 933, 945, 931, 930, 763, 762, 753, 755, 749, 745, + 736, 738, 770, 924, 835, 830, 970, 926, 703, 839, + 986, 847, 994, 995, 850, 801, 772, 840, 881, 972, + 975, 976, 853, 1009, 810, 989, 795, 996, 802, 882, + 997, 998, 999, 1000, 885, 854, 856, 857, 815, 754, + 980, 786, 891, 335, 787, 796, 978, 363, 957, 858, + 894, 895, 1001, 1002, 1003, 896, 954, 816, 990, 752, + 991, 983, 817, 818, 485, 784, 778, 541, 676, 897, + 899, 900, 955, 775, 766, 821, 822, 1010, 901, 697, + 824, 740, 902, 1005, 742, 744, 756, 859, 793, 743, + 798, 977, 776, 827, 907, 829, 832, 833, 1004, 836, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 458, 458, 458, 458, 458, 458, 307, - 307, 307, 307, 0, 0, 307, 0, 0, 458, 458, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 458, + 458, 458, 458, 458, 458, 307, 307, 307, 307, 0, + 0, 307, 0, 0, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, @@ -573,42 +576,42 @@ class Php7 extends \PhpParser\ParserAbstract 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 291, 291, 291, 291, 291, 291, 291, 291, + 458, 458, 458, 458, 458, 458, 458, 458, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 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, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 423, - 423, 291, 291, 0, 291, 423, 423, 423, 423, 423, - 423, 423, 423, 423, 423, 291, 291, 291, 291, 291, - 291, 291, 801, 147, 147, 147, 147, 423, 423, 423, - 423, 423, -88, -88, 147, 147, 423, 423, 423, 423, + 291, 291, 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, 291, 291, + 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, + 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, + 291, 291, 291, 291, 291, 423, 423, 291, 291, 0, + 291, 423, 423, 423, 423, 423, 423, 423, 423, 423, + 423, 291, 291, 291, 291, 291, 291, 291, 805, 147, + 147, 147, 147, 423, 423, 423, 423, 423, -88, -88, + 147, 147, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 0, 0, 0, 286, 422, 0, - 747, 747, 747, 747, 0, 0, 0, 0, 422, 422, + 759, 759, 759, 759, 0, 0, 0, 0, 422, 422, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 286, 422, 0, 286, 0, 747, 747, 423, 801, - 801, 314, 423, 0, 0, 0, 0, 286, 747, 286, - 552, 422, 552, 552, 12, 375, 314, 600, 600, 600, - 600, 0, 602, 801, 801, 801, 801, 801, 801, 801, - 801, 801, 801, 801, 747, 0, 801, 0, 747, 747, - 747, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 747, 0, 0, 919, - 0, 0, 0, 0, 757, 0, 0, 0, 0, 0, - 0, 757, 928, 0, 0, 0, 0, 0, 0, 747, - 0, 0, 0, 0, 0, 0, 0, 0, 750, 785, - 0, 785, 0, 750, 750, 750 + 0, 286, 422, 0, 286, 0, 759, 759, 423, 805, + 805, 314, 423, 0, 0, 0, 0, 286, 759, 286, + 552, 422, 552, 552, 12, 375, 314, 608, 608, 608, + 608, 0, 658, 805, 805, 805, 805, 805, 805, 805, + 805, 805, 805, 805, 759, 0, 805, 0, 759, 759, + 759, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 759, 0, 0, 929, + 0, 0, 0, 0, 760, 0, 0, 0, 0, 0, + 0, 760, 934, 0, 0, 0, 0, 0, 0, 759, + 0, 0, 0, 0, 0, 0, 0, 0, 768, 801, + 0, 801, 0, 768, 768, 768 ); protected $actionDefault = array( 3,32767, 103,32767,32767,32767,32767,32767,32767,32767, 32767,32767, 101,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767, 570, 570, 570, 570, - 32767,32767, 246, 103,32767,32767, 446, 364, 364, 364, - 32767,32767, 514, 514, 514, 514, 514, 514,32767,32767, - 32767,32767,32767,32767, 446,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767, 576, 576, 576, 576, + 32767,32767, 246, 103,32767,32767, 452, 370, 370, 370, + 32767,32767, 520, 520, 520, 520, 520, 520,32767,32767, + 32767,32767,32767,32767, 452,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, @@ -619,140 +622,129 @@ class Php7 extends \PhpParser\ParserAbstract 32767, 37, 7, 8, 10, 11, 50, 17,32767,32767, 32767,32767,32767, 103,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767, 563,32767,32767,32767,32767,32767,32767, + 32767,32767,32767, 569,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 450, 429, 430, 432, 433, 363, - 515, 569, 305, 566, 362, 146, 317, 307, 234, 308, - 250, 451, 251, 452, 455, 456, 211, 279, 359, 150, - 393, 447, 395, 445, 449, 394, 369, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 367, 368, 448, 426, 425, 424, 391,32767,32767, 392, - 396, 366, 399,32767,32767,32767,32767,32767,32767,32767, - 32767, 103,32767, 397, 398, 415, 416, 413, 414, 417, - 32767, 418, 419, 420, 421,32767,32767, 296,32767,32767, - 343, 341, 406, 407, 296,32767,32767,32767,32767,32767, - 32767,32767,32767, 508, 423,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767, 103,32767, - 101, 510, 388, 390, 478, 401, 402, 400, 370,32767, - 485,32767, 103, 487,32767,32767,32767, 112,32767,32767, - 32767, 509,32767, 516, 516,32767, 471, 101, 194,32767, - 194, 194,32767,32767,32767,32767,32767,32767,32767, 577, - 471, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111,32767, 194, 111,32767,32767,32767, 101, 194, - 194, 194, 194, 194, 194, 194, 194, 194, 194, 189, - 32767, 260, 262, 103, 531, 194,32767, 490,32767,32767, + 32767,32767,32767,32767, 456, 435, 436, 438, 439, 369, + 521, 575, 311, 572, 368, 146, 323, 313, 234, 314, + 250, 457, 251, 458, 461, 462, 211, 279, 365, 150, + 399, 453, 401, 451, 455, 400, 375, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 373, 374, 454, 432, 431, 430, 397,32767,32767, 398, + 402, 372, 405,32767,32767,32767,32767,32767,32767,32767, + 32767, 103,32767, 403, 404, 421, 422, 419, 420, 423, + 32767, 424, 425, 426, 427,32767,32767, 302,32767,32767, + 349, 347, 412, 413, 302,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767, 514, 429,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 483,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767, 471, 411, 139,32767, 139, - 516, 403, 404, 405, 473, 516, 516, 516,32767,32767, - 32767,32767, 488, 488, 101, 101, 101, 101, 483,32767, - 32767, 112, 100, 100, 100, 100, 100, 104, 102,32767, - 32767,32767,32767, 100,32767, 102, 102,32767,32767, 217, - 208, 215, 102,32767, 535, 536, 215, 102, 219, 219, - 219, 239, 239, 462, 298, 102, 100, 102, 102, 196, - 298, 298,32767, 102, 462, 298, 462, 298, 198, 298, - 298, 298, 462, 298,32767,32767, 102, 298, 210, 100, - 100, 298,32767,32767,32767, 473,32767,32767,32767,32767, + 32767,32767, 103,32767, 101, 516, 394, 396, 484, 407, + 408, 406, 376,32767, 491,32767, 103, 493,32767,32767, + 32767, 112,32767,32767,32767, 515,32767, 522, 522,32767, + 477, 101, 194,32767, 194, 194,32767,32767,32767,32767, + 32767,32767,32767, 583, 477, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111,32767, 194, 111,32767, + 32767,32767, 101, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 189,32767, 260, 262, 103, 537, 194, + 32767, 496,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767, 489,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767, 477, + 417, 139,32767, 139, 522, 409, 410, 411, 479, 522, + 522, 522, 298, 281,32767,32767,32767,32767, 494, 494, + 101, 101, 101, 101, 489,32767,32767, 112, 100, 100, + 100, 100, 100, 104, 102,32767,32767,32767,32767, 100, + 32767, 102, 102,32767,32767, 217, 208, 215, 102,32767, + 541, 542, 215, 102, 219, 219, 219, 239, 239, 468, + 304, 102, 100, 102, 102, 196, 304, 304,32767, 102, + 468, 304, 468, 304, 198, 304, 304, 304, 468, 304, + 32767,32767, 102, 304, 210, 100, 100, 304,32767,32767, + 32767, 479,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767, 509,32767, 526, 539, + 415, 416, 418, 524, 440, 441, 442, 443, 444, 445, + 446, 448, 571,32767, 483,32767,32767,32767,32767, 322, + 581,32767, 581,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 503,32767, 520, 533, 409, 410, 412, 518, 434, 435, - 436, 437, 438, 439, 440, 442, 565,32767, 477,32767, - 32767,32767,32767, 316, 575,32767, 575,32767,32767,32767, + 582,32767, 522,32767,32767,32767,32767, 414, 9, 76, + 43, 44, 52, 58, 500, 501, 502, 503, 497, 498, + 504, 499,32767, 505, 547,32767,32767, 523, 574,32767, + 32767,32767,32767,32767,32767, 139,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767, 509,32767, 137,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 576,32767, 516,32767,32767,32767, - 32767, 408, 9, 76, 43, 44, 52, 58, 494, 495, - 496, 497, 491, 492, 498, 493,32767, 499, 541,32767, - 32767, 517, 568,32767,32767,32767,32767,32767,32767, 139, + 522,32767,32767,32767, 300, 301,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 503,32767, 137,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 516,32767,32767,32767, 293, 295, + 32767, 522,32767,32767,32767, 283, 284,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767, 516,32767,32767,32767, 281, - 283,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767, 278,32767,32767, 358,32767, - 32767,32767,32767, 337,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 152, 152, 3, 3, 319, 152, - 152, 152, 319, 152, 319, 319, 319, 152, 152, 152, - 152, 152, 152, 272, 184, 254, 257, 239, 239, 152, - 329, 152 + 32767, 278,32767,32767, 364,32767,32767,32767,32767, 343, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 152, 152, 3, 3, 325, 152, 152, 152, 325, 152, + 325, 325, 325, 152, 152, 152, 152, 152, 152, 272, + 184, 254, 257, 239, 239, 152, 335, 152 ); protected $goto = array( - 192, 192, 662, 416, 635, 911, 984, 991, 992, 410, - 302, 303, 323, 556, 308, 415, 324, 417, 614, 1006, - 670, 317, 317, 317, 317, 163, 163, 163, 163, 216, + 192, 192, 668, 420, 641, 882, 838, 883, 1018, 414, + 306, 307, 327, 562, 312, 419, 328, 421, 620, 799, + 676, 850, 584, 822, 837, 163, 163, 163, 163, 216, 193, 189, 189, 173, 175, 211, 189, 189, 189, 189, 189, 190, 190, 190, 190, 190, 190, 184, 185, 186, - 187, 188, 213, 211, 214, 514, 515, 406, 516, 518, - 519, 520, 521, 522, 523, 524, 525, 1075, 164, 165, + 187, 188, 213, 211, 214, 520, 521, 410, 522, 524, + 525, 526, 527, 528, 529, 530, 531, 1087, 164, 165, 166, 191, 167, 168, 169, 162, 170, 171, 172, 174, 210, 212, 215, 233, 236, 239, 240, 242, 253, 254, 255, 256, 257, 258, 259, 261, 262, 263, 264, 272, - 273, 305, 306, 307, 411, 412, 413, 561, 217, 218, + 273, 309, 310, 311, 415, 416, 417, 567, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 176, 232, 177, 194, 195, 196, 234, - 184, 185, 186, 187, 188, 213, 1075, 197, 178, 179, + 184, 185, 186, 187, 188, 213, 1087, 197, 178, 179, 180, 198, 194, 181, 235, 199, 161, 200, 201, 182, - 202, 203, 204, 183, 205, 206, 207, 208, 209, 819, - 578, 600, 600, 540, 531, 815, 816, 1205, 1205, 1205, - 1205, 1205, 1205, 1205, 1205, 1205, 1205, 954, 928, 928, - 926, 928, 695, 817, 530, 963, 958, 380, 384, 541, - 579, 583, 382, 531, 540, 549, 550, 389, 559, 580, - 594, 595, 824, 336, 872, 867, 868, 881, 14, 825, - 869, 822, 870, 871, 823, 339, 1274, 1274, 875, 528, - 528, 876, 528, 877, 793, 339, 339, 791, 1027, 1023, - 1024, 1155, 904, 1274, 850, 1156, 1159, 905, 1160, 339, - 339, 437, 339, 479, 1290, 480, 924, 924, 924, 924, - 930, 487, 437, 918, 925, 533, 598, 632, 339, 1174, - 1174, 988, 1174, 988, 282, 282, 282, 282, 988, 988, - 988, 988, 988, 988, 988, 988, 446, 446, 431, 249, - 249, 1174, 553, 431, 431, 446, 1174, 1174, 1174, 1174, - 1047, 1048, 1174, 1174, 1174, 1255, 1255, 1255, 1255, 313, - 297, 812, 812, 1234, 246, 246, 246, 246, 248, 250, - 888, 618, 577, 1040, 889, 673, 659, 659, 618, 665, - 1038, 1223, 1223, 996, 993, 994, 655, 1223, 1223, 1223, - 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1221, 1221, 1250, - 1251, 1273, 1273, 1221, 1221, 1221, 1221, 1221, 1221, 1221, - 1221, 1221, 1221, 629, 533, 643, 644, 645, 1273, 431, - 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, - 517, 517, 431, 409, 1276, 589, 517, 517, 517, 517, - 517, 517, 517, 517, 517, 517, 547, 334, 797, 546, - 696, 613, 615, 5, 633, 6, 593, 1263, 652, 656, - 965, 660, 668, 961, 587, 601, 604, 605, 606, 607, - 626, 627, 628, 672, 1169, 812, 610, 611, 1245, 1245, - 951, 1245, 832, 455, 1248, 1249, 532, 544, 797, 378, - 797, 532, 552, 544, 557, 592, 381, 844, 337, 338, - 831, 1257, 1257, 1257, 1257, 634, 560, 449, 450, 451, - 1124, 842, 394, 395, 1281, 1282, 325, 641, 421, 642, - 1170, 398, 399, 400, 809, 653, 837, 1241, 388, 401, - 922, 396, 669, 332, 834, 1167, 893, 1063, 973, 840, - 699, 1012, 846, 597, 526, 526, 526, 526, 970, 582, - 1016, 488, 845, 833, 1011, 1015, 836, 456, 638, 949, - 1058, 935, 933, 460, 830, 1014, 0, 0, 0, 1243, - 1243, 1014, 0, 1171, 0, 252, 252, 1166, 0, 0, - 807, 270, 0, 0, 0, 923, 529, 529, 0, 0, - 0, 0, 0, 0, 0, 0, 1172, 1231, 1232, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1056, 849, + 202, 203, 204, 183, 205, 206, 207, 208, 209, 321, + 321, 321, 321, 825, 606, 606, 823, 546, 537, 1182, + 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, + 1235, 1235, 461, 1260, 1261, 856, 1235, 1235, 1235, 1235, + 1235, 1235, 1235, 1235, 1235, 1235, 386, 537, 546, 555, + 556, 393, 565, 586, 600, 601, 830, 797, 878, 873, + 874, 887, 14, 831, 875, 828, 876, 877, 829, 452, + 452, 936, 881, 340, 1183, 803, 249, 249, 452, 1233, + 1233, 813, 1039, 1035, 1036, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 1233, 1233, 818, 818, 1184, 1243, 1244, + 559, 246, 246, 246, 246, 248, 250, 604, 638, 1186, + 1186, 995, 1186, 995, 413, 803, 595, 803, 995, 995, + 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, + 1257, 1257, 5, 1257, 6, 1186, 286, 286, 286, 286, + 1186, 1186, 1186, 1186, 338, 343, 1186, 1186, 1186, 1267, + 1267, 1267, 1267, 1059, 1060, 343, 343, 1269, 1269, 1269, + 1269, 1286, 1286, 635, 894, 649, 650, 651, 895, 343, + 343, 1275, 343, 485, 1302, 486, 534, 534, 1286, 534, + 957, 493, 558, 1253, 382, 539, 523, 523, 343, 928, + 400, 675, 523, 523, 523, 523, 523, 523, 523, 523, + 523, 523, 443, 317, 301, 1262, 1263, 930, 930, 930, + 930, 818, 640, 443, 924, 931, 1136, 532, 532, 532, + 532, 1026, 588, 329, 553, 1255, 1255, 1026, 702, 619, + 621, 427, 639, 1246, 616, 617, 658, 662, 971, 666, + 674, 967, 815, 552, 563, 598, 843, 392, 821, 979, + 599, 384, 388, 547, 585, 589, 661, 840, 1285, 1285, + 960, 934, 934, 932, 934, 701, 437, 536, 969, 964, + 1179, 437, 437, 899, 1075, 1285, 1024, 705, 852, 941, + 603, 462, 538, 550, 1028, 976, 539, 538, 466, 550, + 0, 1288, 385, 842, 0, 644, 955, 1070, 0, 0, + 0, 836, 566, 455, 456, 457, 0, 848, 341, 342, + 1293, 1294, 252, 252, 1178, 398, 399, 0, 0, 0, + 647, 0, 648, 422, 402, 403, 404, 0, 659, 0, + 422, 0, 405, 0, 0, 846, 336, 1007, 1000, 1004, + 1001, 1005, 0, 0, 0, 0, 1181, 494, 0, 0, + 0, 437, 437, 437, 437, 437, 437, 437, 437, 437, + 437, 437, 0, 0, 437, 593, 607, 610, 611, 612, + 613, 632, 633, 634, 678, 851, 839, 1023, 1027, 583, + 1052, 0, 679, 665, 665, 939, 671, 1050, 0, 0, + 1167, 910, 0, 270, 1168, 1171, 911, 1172, 535, 535, + 917, 990, 998, 1002, 999, 1003, 0, 0, 929, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 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, 968, 968 + 0, 0, 0, 0, 0, 0, 0, 0, 974, 974, + 0, 1068, 855 ); protected $gotoCheck = array( - 42, 42, 72, 65, 65, 87, 87, 87, 87, 65, - 65, 65, 65, 65, 65, 65, 65, 65, 65, 116, - 9, 23, 23, 23, 23, 42, 42, 42, 42, 42, + 42, 42, 72, 65, 65, 64, 35, 64, 118, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 7, + 9, 35, 121, 26, 35, 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, @@ -765,103 +757,92 @@ class Php7 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, 42, 42, 15, - 119, 104, 104, 75, 75, 25, 26, 104, 104, 104, - 104, 104, 104, 104, 104, 104, 104, 25, 25, 25, - 25, 25, 25, 27, 25, 25, 25, 58, 58, 58, - 58, 58, 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 15, 93, 15, 15, 15, 15, 75, 15, - 15, 15, 15, 15, 15, 14, 170, 170, 15, 19, - 19, 64, 19, 64, 7, 14, 14, 6, 15, 15, - 15, 78, 78, 170, 45, 78, 78, 78, 78, 14, - 14, 19, 14, 144, 14, 144, 19, 19, 19, 19, - 49, 144, 19, 19, 19, 14, 55, 55, 14, 72, - 72, 72, 72, 72, 24, 24, 24, 24, 72, 72, - 72, 72, 72, 72, 72, 72, 138, 138, 23, 5, - 5, 72, 159, 23, 23, 138, 72, 72, 72, 72, - 133, 133, 72, 72, 72, 9, 9, 9, 9, 156, - 156, 22, 22, 14, 5, 5, 5, 5, 5, 5, - 72, 112, 8, 8, 72, 8, 8, 8, 112, 8, - 8, 157, 157, 112, 112, 112, 14, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 158, 158, 165, - 165, 169, 169, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 84, 14, 84, 84, 84, 169, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 160, 160, 23, 13, 169, 13, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 48, 166, 12, 9, - 48, 48, 48, 46, 48, 46, 9, 168, 48, 48, - 48, 48, 48, 48, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 14, 22, 83, 83, 119, 119, - 99, 119, 35, 163, 163, 163, 9, 9, 12, 61, - 12, 9, 100, 9, 2, 2, 9, 35, 93, 93, - 35, 119, 119, 119, 119, 63, 9, 9, 9, 9, - 140, 9, 80, 80, 9, 9, 29, 80, 109, 80, - 20, 80, 80, 80, 18, 80, 39, 119, 28, 80, - 89, 89, 89, 80, 37, 149, 17, 17, 106, 9, - 95, 118, 41, 17, 103, 103, 103, 103, 17, 103, - 121, 9, 16, 16, 16, 16, 17, 146, 17, 17, - 136, 92, 16, 82, 17, 119, -1, -1, -1, 119, - 119, 119, -1, 20, -1, 5, 5, 17, -1, -1, - 20, 24, -1, -1, -1, 16, 24, 24, -1, -1, - -1, -1, -1, -1, -1, -1, 20, 20, 20, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 16, 16, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 23, + 23, 23, 23, 15, 104, 104, 27, 75, 75, 20, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 159, 159, 165, 165, 165, 45, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 15, 6, 15, 15, + 15, 15, 75, 15, 15, 15, 15, 15, 15, 140, + 140, 49, 15, 93, 20, 12, 5, 5, 140, 160, + 160, 20, 15, 15, 15, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 22, 22, 20, 20, 20, + 161, 5, 5, 5, 5, 5, 5, 55, 55, 72, + 72, 72, 72, 72, 13, 12, 13, 12, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 121, 121, 46, 121, 46, 72, 24, 24, 24, 24, + 72, 72, 72, 72, 168, 14, 72, 72, 72, 9, + 9, 9, 9, 135, 135, 14, 14, 121, 121, 121, + 121, 172, 172, 84, 72, 84, 84, 84, 72, 14, + 14, 170, 14, 146, 14, 146, 19, 19, 172, 19, + 99, 146, 100, 121, 61, 14, 162, 162, 14, 89, + 89, 89, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 19, 158, 158, 167, 167, 19, 19, 19, + 19, 22, 63, 19, 19, 19, 142, 103, 103, 103, + 103, 121, 103, 29, 48, 121, 121, 121, 48, 48, + 48, 109, 48, 14, 83, 83, 48, 48, 48, 48, + 48, 48, 18, 9, 2, 2, 39, 28, 25, 106, + 9, 58, 58, 58, 58, 58, 14, 37, 171, 171, + 25, 25, 25, 25, 25, 25, 23, 25, 25, 25, + 151, 23, 23, 17, 17, 171, 120, 95, 41, 92, + 17, 148, 9, 9, 123, 17, 14, 9, 82, 9, + -1, 171, 9, 17, -1, 17, 17, 138, -1, -1, + -1, 17, 9, 9, 9, 9, -1, 9, 93, 93, + 9, 9, 5, 5, 17, 80, 80, -1, -1, -1, + 80, -1, 80, 113, 80, 80, 80, -1, 80, -1, + 113, -1, 80, -1, -1, 9, 80, 113, 113, 113, + 113, 113, -1, -1, -1, -1, 14, 9, -1, -1, + -1, 23, 23, 23, 23, 23, 23, 23, 23, 23, + 23, 23, -1, -1, 23, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 16, 16, 16, 16, 8, + 8, -1, 8, 8, 8, 16, 8, 8, -1, -1, + 78, 78, -1, 24, 78, 78, 78, 78, 24, 24, + 87, 87, 87, 87, 87, 87, -1, -1, 16, -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, -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, -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, 103, 103 + -1, -1, -1, -1, -1, -1, -1, -1, 103, 103, + -1, 16, 16 ); protected $gotoBase = array( - 0, 0, -242, 0, 0, 278, 214, 215, 305, 7, - 0, 0, 103, 48, -71, -174, 59, 31, 166, -46, - 83, 0, -16, 18, 261, 161, 162, 179, 143, 171, - 0, 0, 0, 0, 0, 67, 0, 147, 0, 154, - 0, 58, -1, 0, 0, 222, -306, 0, -289, 228, - 0, 0, 0, 0, 0, 218, 0, 0, 144, 0, - 0, 389, 0, 207, 203, -234, 0, 0, 0, 0, - 0, 0, -6, 0, 0, -167, 0, 0, -163, 62, - -18, 0, 47, -43, -329, 0, 0, -270, 0, 177, - 0, 0, 75, -259, 0, 87, 0, 0, 0, 387, - 391, 0, 0, 458, -76, 0, 124, 0, 0, 184, - 0, 0, 44, 0, 0, 0, 17, 0, 123, 153, - 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 20, 0, 0, 73, 0, 244, 0, - 182, 0, 0, 0, -231, 0, 74, 0, 0, 122, - 0, 0, 0, 0, 0, 0, -11, 84, 100, 255, - 133, 0, 0, 134, 0, -17, 359, 0, 368, 45, - -80, 0, 0 + 0, 0, -288, 0, 0, 225, 194, 10, 522, 7, + 0, 0, -64, -65, 5, -174, 86, -28, 90, 61, + -212, 0, -76, 156, 283, 394, 19, 162, 68, 84, + 0, 0, 0, 0, 0, -353, 0, 76, 0, 80, + 0, -2, -1, 0, 0, 173, -423, 0, -307, 199, + 0, 0, 0, 0, 0, 219, 0, 0, 358, 0, + 0, 294, 0, 124, -13, -234, 0, 0, 0, 0, + 0, 0, -6, 0, 0, -167, 0, 0, 142, 169, + -11, 0, -24, -81, -375, 0, 0, 275, 0, 42, + 0, 0, -3, -245, 0, 30, 0, 0, 0, 297, + 291, 0, 0, 341, -73, 0, 41, 0, 0, 107, + 0, 0, 0, 206, 0, 0, 0, 0, 6, 0, + 64, 15, 0, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 33, 0, 0, 14, 0, + 187, 0, 98, 0, 0, 0, -157, 0, 2, 0, + 0, 63, 0, 0, 0, 0, 0, 0, 39, -57, + -8, 223, 99, 0, 0, -111, 0, -5, 266, 0, + 292, 108, 11, 0, 0 ); protected $gotoDefault = array( - -32768, 492, 703, 4, 704, 897, 780, 789, 576, 508, - 671, 333, 602, 407, 1239, 874, 1062, 558, 808, 1183, - 1191, 438, 811, 318, 693, 856, 857, 858, 385, 370, - 376, 383, 624, 603, 473, 843, 434, 835, 465, 838, - 433, 847, 160, 404, 490, 851, 3, 853, 535, 884, - 371, 861, 372, 648, 863, 543, 865, 866, 379, 386, - 387, 1067, 551, 599, 878, 241, 545, 879, 369, 880, - 887, 374, 377, 657, 445, 485, 478, 397, 1042, 586, - 621, 442, 459, 609, 608, 596, 458, 639, 402, 920, - 466, 443, 934, 335, 942, 701, 1074, 616, 468, 950, - 617, 957, 960, 509, 510, 457, 972, 267, 975, 469, - 1001, 640, 986, 619, 999, 452, 1005, 435, 1013, 1227, - 436, 1017, 260, 1020, 274, 403, 418, 1025, 1026, 8, - 1032, 663, 664, 10, 271, 489, 1057, 658, 432, 1073, - 422, 1143, 1145, 537, 470, 1163, 1162, 651, 486, 1168, - 1230, 430, 511, 453, 304, 512, 296, 321, 301, 527, - 283, 322, 513, 454, 1236, 1244, 319, 29, 1264, 1275, - 329, 555, 591 + -32768, 498, 709, 4, 710, 903, 786, 795, 582, 514, + 677, 337, 608, 411, 1251, 880, 1074, 564, 814, 1195, + 1203, 444, 817, 322, 699, 862, 863, 864, 389, 374, + 380, 387, 630, 609, 479, 849, 440, 841, 471, 844, + 439, 853, 160, 408, 496, 857, 3, 859, 541, 890, + 375, 867, 376, 654, 869, 549, 871, 872, 383, 390, + 391, 1079, 557, 605, 884, 241, 551, 885, 373, 886, + 893, 378, 381, 663, 451, 491, 484, 401, 1054, 592, + 627, 448, 465, 615, 614, 602, 464, 423, 406, 926, + 472, 449, 940, 339, 948, 707, 1086, 622, 474, 956, + 623, 963, 966, 515, 516, 463, 978, 267, 981, 475, + 1013, 645, 646, 993, 624, 625, 1011, 458, 1017, 441, + 1025, 1239, 442, 1029, 260, 1032, 274, 407, 424, 1037, + 1038, 8, 1044, 669, 670, 10, 271, 495, 1069, 664, + 438, 1085, 428, 1155, 1157, 543, 476, 1175, 1174, 657, + 492, 1180, 1242, 436, 517, 459, 308, 518, 300, 325, + 305, 533, 287, 326, 519, 460, 1248, 1256, 323, 29, + 1276, 1287, 333, 561, 597 ); protected $ruleToNonTerminal = array( @@ -893,15 +874,16 @@ class Php7 extends \PhpParser\ParserAbstract 99, 99, 54, 54, 50, 50, 101, 52, 52, 102, 51, 51, 53, 53, 63, 63, 63, 63, 79, 79, 105, 105, 107, 107, 108, 108, 108, 108, 106, 106, - 106, 110, 110, 110, 87, 87, 112, 112, 112, 111, - 111, 113, 113, 114, 114, 114, 109, 109, 80, 80, - 80, 20, 20, 115, 115, 116, 116, 116, 116, 59, - 117, 117, 118, 60, 120, 120, 121, 121, 122, 122, - 84, 123, 123, 123, 123, 123, 123, 128, 128, 129, - 129, 130, 130, 130, 130, 130, 131, 132, 132, 127, - 127, 124, 124, 126, 126, 134, 134, 133, 133, 133, - 133, 133, 133, 133, 125, 135, 135, 137, 136, 136, - 61, 100, 138, 138, 55, 55, 42, 42, 42, 42, + 106, 110, 110, 110, 110, 87, 87, 113, 113, 113, + 111, 111, 114, 114, 112, 112, 115, 115, 116, 116, + 116, 116, 109, 109, 80, 80, 80, 20, 20, 117, + 117, 118, 118, 118, 118, 59, 119, 119, 120, 60, + 122, 122, 123, 123, 124, 124, 84, 125, 125, 125, + 125, 125, 125, 130, 130, 131, 131, 132, 132, 132, + 132, 132, 133, 134, 134, 129, 129, 126, 126, 128, + 128, 136, 136, 135, 135, 135, 135, 135, 135, 135, + 127, 137, 137, 139, 138, 138, 61, 100, 140, 140, + 55, 55, 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, 42, @@ -910,20 +892,20 @@ class Php7 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, 42, 42, 145, - 139, 139, 144, 144, 147, 148, 148, 149, 150, 150, - 150, 19, 19, 72, 72, 72, 72, 140, 140, 140, - 140, 152, 152, 141, 141, 143, 143, 143, 146, 146, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 158, - 158, 104, 160, 160, 160, 160, 142, 142, 142, 142, - 142, 142, 142, 142, 58, 58, 155, 155, 155, 155, - 161, 161, 151, 151, 151, 162, 162, 162, 162, 162, - 162, 73, 73, 65, 65, 65, 65, 119, 119, 119, - 119, 165, 164, 154, 154, 154, 154, 154, 154, 154, - 153, 153, 153, 163, 163, 163, 163, 103, 159, 167, - 167, 166, 166, 168, 168, 168, 168, 168, 168, 168, - 168, 156, 156, 156, 156, 170, 171, 169, 169, 169, - 169, 169, 169, 169, 169, 172, 172, 172, 172 + 42, 42, 42, 42, 42, 147, 141, 141, 146, 146, + 149, 150, 150, 151, 152, 152, 152, 19, 19, 72, + 72, 72, 72, 142, 142, 142, 142, 154, 154, 143, + 143, 145, 145, 145, 148, 148, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 160, 160, 104, 162, 162, + 162, 162, 144, 144, 144, 144, 144, 144, 144, 144, + 58, 58, 157, 157, 157, 157, 163, 163, 153, 153, + 153, 164, 164, 164, 164, 164, 164, 73, 73, 65, + 65, 65, 65, 121, 121, 121, 121, 167, 166, 156, + 156, 156, 156, 156, 156, 156, 155, 155, 155, 165, + 165, 165, 165, 103, 161, 169, 169, 168, 168, 170, + 170, 170, 170, 170, 170, 170, 170, 158, 158, 158, + 158, 172, 173, 171, 171, 171, 171, 171, 171, 171, + 171, 174, 174, 174, 174 ); protected $ruleToLength = array( @@ -955,37 +937,38 @@ class Php7 extends \PhpParser\ParserAbstract 3, 4, 1, 4, 0, 2, 5, 0, 2, 6, 0, 2, 0, 3, 1, 2, 1, 1, 2, 0, 1, 3, 0, 2, 1, 1, 1, 1, 6, 8, - 6, 1, 2, 1, 1, 1, 1, 1, 1, 3, - 3, 3, 3, 1, 2, 1, 0, 1, 0, 2, - 2, 2, 4, 1, 3, 1, 2, 2, 3, 2, - 3, 1, 1, 2, 3, 1, 1, 3, 2, 0, - 1, 5, 5, 10, 3, 5, 1, 1, 3, 0, - 2, 4, 5, 4, 4, 4, 3, 1, 1, 1, - 1, 1, 1, 0, 1, 1, 2, 1, 1, 1, - 1, 1, 1, 1, 2, 1, 3, 1, 1, 3, - 2, 2, 3, 1, 0, 1, 1, 3, 3, 3, - 4, 1, 1, 2, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, - 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, - 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 5, 4, 3, 4, 4, 2, - 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 1, 3, 2, 1, 2, 4, 2, - 2, 8, 9, 8, 9, 9, 10, 9, 10, 8, - 3, 2, 0, 4, 2, 1, 3, 2, 2, 2, - 4, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 1, 1, 1, 0, 3, 0, 1, 1, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 3, 3, 4, 1, 1, 3, 1, 1, 1, 1, - 1, 3, 2, 3, 0, 1, 1, 3, 1, 1, - 1, 1, 1, 3, 1, 1, 4, 4, 1, 4, - 4, 0, 1, 1, 1, 3, 3, 1, 4, 2, - 2, 1, 3, 1, 4, 4, 3, 3, 3, 3, - 1, 3, 1, 1, 3, 1, 1, 4, 1, 1, - 1, 3, 1, 1, 2, 1, 3, 4, 3, 2, - 0, 2, 2, 1, 2, 1, 1, 1, 4, 3, - 3, 3, 3, 6, 3, 1, 1, 2, 1 + 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, + 1, 1, 0, 1, 0, 2, 2, 2, 4, 1, + 3, 1, 2, 2, 3, 2, 3, 1, 1, 2, + 3, 1, 1, 3, 2, 0, 1, 5, 5, 10, + 3, 5, 1, 1, 3, 0, 2, 4, 5, 4, + 4, 4, 3, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 2, 1, 3, 1, 1, 3, 2, 2, 3, 1, + 0, 1, 1, 3, 3, 3, 4, 1, 1, 2, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 5, 4, 3, 4, 4, 2, 2, 4, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, + 3, 2, 1, 2, 4, 2, 2, 8, 9, 8, + 9, 9, 10, 9, 10, 8, 3, 2, 0, 4, + 2, 1, 3, 2, 2, 2, 4, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 1, 1, 1, 0, + 3, 0, 1, 1, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 3, 3, 4, 1, + 1, 3, 1, 1, 1, 1, 1, 3, 2, 3, + 0, 1, 1, 3, 1, 1, 1, 1, 1, 3, + 1, 1, 4, 4, 1, 4, 4, 0, 1, 1, + 1, 3, 3, 1, 4, 2, 2, 1, 3, 1, + 4, 4, 3, 3, 3, 3, 1, 3, 1, 1, + 3, 1, 1, 4, 1, 1, 1, 3, 1, 1, + 2, 1, 3, 4, 3, 2, 0, 2, 2, 1, + 2, 1, 1, 1, 4, 3, 3, 3, 3, 6, + 3, 1, 1, 2, 1 ); protected function initReduceCallbacks() { @@ -1873,269 +1856,269 @@ class Php7 extends \PhpParser\ParserAbstract $this->semValue = new Node\UnionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 284 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Node\IntersectionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 285 => function ($stackPos) { - $this->semValue = new Node\Name('static', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 286 => function ($stackPos) { - $this->semValue = $this->handleBuiltinTypes($this->semStack[$stackPos-(1-1)]); + $this->semValue = new Node\Name('static', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 287 => function ($stackPos) { - $this->semValue = new Node\Identifier('array', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->handleBuiltinTypes($this->semStack[$stackPos-(1-1)]); }, 288 => function ($stackPos) { - $this->semValue = new Node\Identifier('callable', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Node\Identifier('array', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 289 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); + $this->semValue = new Node\Identifier('callable', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 290 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 291 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); }, - 292 => function ($stackPos) { + 291 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, + 292 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); + }, 293 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 294 => function ($stackPos) { - $this->semValue = new Node\NullableType($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); - }, - 295 => function ($stackPos) { - $this->semValue = new Node\UnionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 296 => function ($stackPos) { - $this->semValue = null; - }, - 297 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 298 => function ($stackPos) { - $this->semValue = null; - }, - 299 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; - }, - 300 => function ($stackPos) { - $this->semValue = null; - }, - 301 => function ($stackPos) { - $this->semValue = array(); - }, - 302 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; - }, - 303 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 304 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, + 294 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); + }, + 295 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 296 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); + }, + 297 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 298 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 299 => function ($stackPos) { + $this->semValue = new Node\NullableType($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 300 => function ($stackPos) { + $this->semValue = new Node\UnionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 301 => function ($stackPos) { + $this->semValue = new Node\IntersectionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 302 => function ($stackPos) { + $this->semValue = null; + }, + 303 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 304 => function ($stackPos) { + $this->semValue = null; + }, 305 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(1-1)], false, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(2-2)]; }, 306 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], true, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = null; }, 307 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], false, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = array(); }, 308 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(3-3)], false, false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->semStack[$stackPos-(3-1)]); + $this->semValue = $this->semStack[$stackPos-(4-2)]; }, 309 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 310 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 311 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = new Node\Arg($this->semStack[$stackPos-(1-1)], false, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 312 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], true, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 313 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], false, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 314 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = new Node\Arg($this->semStack[$stackPos-(3-3)], false, false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->semStack[$stackPos-(3-1)]); }, 315 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 316 => function ($stackPos) { - $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 317 => function ($stackPos) { - $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 318 => function ($stackPos) { - if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; } + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 319 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 320 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 321 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 322 => function ($stackPos) { + $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 323 => function ($stackPos) { + $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 324 => function ($stackPos) { + if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; } + }, + 325 => function ($stackPos) { + $this->semValue = array(); + }, + 326 => function ($stackPos) { $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; }; if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 321 => function ($stackPos) { + 327 => function ($stackPos) { $this->semValue = new Stmt\Property($this->semStack[$stackPos-(5-2)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes, $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-1)]); $this->checkProperty($this->semValue, $stackPos-(5-2)); }, - 322 => function ($stackPos) { + 328 => function ($stackPos) { $this->semValue = new Stmt\ClassConst($this->semStack[$stackPos-(5-4)], $this->semStack[$stackPos-(5-2)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes, $this->semStack[$stackPos-(5-1)]); $this->checkClassConst($this->semValue, $stackPos-(5-2)); }, - 323 => function ($stackPos) { + 329 => function ($stackPos) { $this->semValue = new Stmt\ClassMethod($this->semStack[$stackPos-(10-5)], ['type' => $this->semStack[$stackPos-(10-2)], 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-7)], 'returnType' => $this->semStack[$stackPos-(10-9)], 'stmts' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes); $this->checkClassMethod($this->semValue, $stackPos-(10-2)); }, - 324 => function ($stackPos) { + 330 => function ($stackPos) { $this->semValue = new Stmt\TraitUse($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 325 => function ($stackPos) { + 331 => function ($stackPos) { $this->semValue = new Stmt\EnumCase($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->semStack[$stackPos-(5-1)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, - 326 => function ($stackPos) { + 332 => function ($stackPos) { $this->semValue = null; /* will be skipped */ }, - 327 => function ($stackPos) { - $this->semValue = array(); - }, - 328 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 329 => function ($stackPos) { - $this->semValue = array(); - }, - 330 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 331 => 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); - }, - 332 => 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); - }, 333 => 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 = array(); }, 334 => 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 = $this->semStack[$stackPos-(3-2)]; }, 335 => 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 = array(); }, 336 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 337 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $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); }, 338 => function ($stackPos) { - $this->semValue = array(null, $this->semStack[$stackPos-(1-1)]); + $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); }, 339 => function ($stackPos) { - $this->semValue = null; + $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); }, 340 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $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); }, 341 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $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); }, 342 => function ($stackPos) { - $this->semValue = 0; + $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); }, 343 => function ($stackPos) { - $this->semValue = 0; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 344 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = array(null, $this->semStack[$stackPos-(1-1)]); }, 345 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = null; }, 346 => 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)]; }, 347 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_PUBLIC; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 348 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_PROTECTED; + $this->semValue = 0; }, 349 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_PRIVATE; + $this->semValue = 0; }, 350 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_STATIC; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 351 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 352 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_FINAL; + $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)]; }, 353 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_READONLY; + $this->semValue = Stmt\Class_::MODIFIER_PUBLIC; }, 354 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = Stmt\Class_::MODIFIER_PROTECTED; }, 355 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = Stmt\Class_::MODIFIER_PRIVATE; }, 356 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = Stmt\Class_::MODIFIER_STATIC; }, 357 => function ($stackPos) { - $this->semValue = new Node\VarLikeIdentifier(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; }, 358 => function ($stackPos) { - $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = Stmt\Class_::MODIFIER_FINAL; }, 359 => 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 = Stmt\Class_::MODIFIER_READONLY; }, 360 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 361 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 362 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 363 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = new Node\VarLikeIdentifier(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 364 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 365 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 366 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 367 => 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-(2-1)]; }, 368 => 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->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 369 => 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 = array($this->semStack[$stackPos-(1-1)]); }, 370 => 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 = array(); }, 371 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; @@ -2144,439 +2127,439 @@ class Php7 extends \PhpParser\ParserAbstract $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 373 => function ($stackPos) { - $this->semValue = new Expr\Clone_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-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); }, 374 => 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\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 375 => 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\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 376 => 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\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 377 => 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 = $this->semStack[$stackPos-(1-1)]; }, 378 => 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 = $this->semStack[$stackPos-(1-1)]; }, 379 => 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\Clone_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 380 => 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\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 381 => 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\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 382 => 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\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 383 => 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\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 384 => 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\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 385 => 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\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 386 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Coalesce($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); }, 387 => function ($stackPos) { - $this->semValue = new Expr\PostInc($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-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); }, 388 => function ($stackPos) { - $this->semValue = new Expr\PreInc($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-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); }, 389 => function ($stackPos) { - $this->semValue = new Expr\PostDec($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-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); }, 390 => function ($stackPos) { - $this->semValue = new Expr\PreDec($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-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); }, 391 => 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\AssignOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 392 => 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\AssignOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 393 => 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\PostInc($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 394 => 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\PreInc($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 395 => 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\PostDec($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 396 => 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\PreDec($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 397 => 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\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 398 => 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\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 399 => 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\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 400 => 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\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 401 => 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\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 402 => 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\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 403 => 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\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 404 => 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\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 405 => 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\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 406 => 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\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 407 => 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\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 408 => 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\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 409 => function ($stackPos) { - $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-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); }, 410 => function ($stackPos) { - $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-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); }, 411 => function ($stackPos) { - $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-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); }, 412 => function ($stackPos) { - $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-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); }, 413 => 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\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 414 => 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\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 415 => 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\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 416 => 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\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 417 => 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\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 418 => 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\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 419 => 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\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 420 => 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\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 421 => 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\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 422 => 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\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 423 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 424 => 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\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 425 => 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\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 426 => 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\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 427 => function ($stackPos) { - $this->semValue = new Expr\Isset_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-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); }, 428 => function ($stackPos) { - $this->semValue = new Expr\Empty_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Instanceof_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 429 => 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 = $this->semStack[$stackPos-(3-2)]; }, 430 => 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\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, 431 => function ($stackPos) { - $this->semValue = new Expr\Eval_($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); }, 432 => 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\BinaryOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 433 => 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\Isset_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 434 => function ($stackPos) { - $this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Empty_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 435 => function ($stackPos) { + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 436 => function ($stackPos) { + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 437 => function ($stackPos) { + $this->semValue = new Expr\Eval_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 438 => function ($stackPos) { + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 439 => function ($stackPos) { + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 440 => function ($stackPos) { + $this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 441 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; $attrs['kind'] = $this->getFloatCastKind($this->semStack[$stackPos-(2-1)]); $this->semValue = new Expr\Cast\Double($this->semStack[$stackPos-(2-2)], $attrs); }, - 436 => function ($stackPos) { + 442 => function ($stackPos) { $this->semValue = new Expr\Cast\String_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 437 => function ($stackPos) { + 443 => function ($stackPos) { $this->semValue = new Expr\Cast\Array_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 438 => function ($stackPos) { + 444 => function ($stackPos) { $this->semValue = new Expr\Cast\Object_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 439 => function ($stackPos) { + 445 => function ($stackPos) { $this->semValue = new Expr\Cast\Bool_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 440 => function ($stackPos) { + 446 => function ($stackPos) { $this->semValue = new Expr\Cast\Unset_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 441 => function ($stackPos) { + 447 => 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); }, - 442 => function ($stackPos) { + 448 => function ($stackPos) { $this->semValue = new Expr\ErrorSuppress($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 443 => function ($stackPos) { + 449 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 444 => function ($stackPos) { + 450 => function ($stackPos) { $this->semValue = new Expr\ShellExec($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 445 => function ($stackPos) { + 451 => function ($stackPos) { $this->semValue = new Expr\Print_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 446 => function ($stackPos) { + 452 => function ($stackPos) { $this->semValue = new Expr\Yield_(null, null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 447 => function ($stackPos) { + 453 => function ($stackPos) { $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(2-2)], null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 448 => function ($stackPos) { + 454 => function ($stackPos) { $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 449 => function ($stackPos) { + 455 => function ($stackPos) { $this->semValue = new Expr\YieldFrom($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 450 => function ($stackPos) { + 456 => function ($stackPos) { $this->semValue = new Expr\Throw_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 451 => function ($stackPos) { + 457 => function ($stackPos) { $this->semValue = new Expr\ArrowFunction(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'returnType' => $this->semStack[$stackPos-(8-6)], 'expr' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); }, - 452 => function ($stackPos) { + 458 => function ($stackPos) { $this->semValue = new Expr\ArrowFunction(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'returnType' => $this->semStack[$stackPos-(9-7)], 'expr' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 453 => function ($stackPos) { + 459 => function ($stackPos) { $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'uses' => $this->semStack[$stackPos-(8-6)], 'returnType' => $this->semStack[$stackPos-(8-7)], 'stmts' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); }, - 454 => function ($stackPos) { + 460 => function ($stackPos) { $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'uses' => $this->semStack[$stackPos-(9-7)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 455 => function ($stackPos) { + 461 => function ($stackPos) { $this->semValue = new Expr\ArrowFunction(['static' => false, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'returnType' => $this->semStack[$stackPos-(9-7)], 'expr' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 456 => function ($stackPos) { + 462 => function ($stackPos) { $this->semValue = new Expr\ArrowFunction(['static' => true, 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-6)], 'returnType' => $this->semStack[$stackPos-(10-8)], 'expr' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes); }, - 457 => function ($stackPos) { + 463 => function ($stackPos) { $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'uses' => $this->semStack[$stackPos-(9-7)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 458 => function ($stackPos) { + 464 => function ($stackPos) { $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-6)], 'uses' => $this->semStack[$stackPos-(10-8)], 'returnType' => $this->semStack[$stackPos-(10-9)], 'stmts' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes); }, - 459 => function ($stackPos) { + 465 => function ($stackPos) { $this->semValue = array(new Stmt\Class_(null, ['type' => 0, 'extends' => $this->semStack[$stackPos-(8-4)], 'implements' => $this->semStack[$stackPos-(8-5)], 'stmts' => $this->semStack[$stackPos-(8-7)], 'attrGroups' => $this->semStack[$stackPos-(8-1)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes), $this->semStack[$stackPos-(8-3)]); $this->checkClass($this->semValue[0], -1); }, - 460 => function ($stackPos) { + 466 => function ($stackPos) { $this->semValue = new Expr\New_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 461 => function ($stackPos) { + 467 => function ($stackPos) { list($class, $ctorArgs) = $this->semStack[$stackPos-(2-2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 462 => function ($stackPos) { + 468 => function ($stackPos) { $this->semValue = array(); }, - 463 => function ($stackPos) { + 469 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(4-3)]; }, - 464 => function ($stackPos) { + 470 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 465 => function ($stackPos) { + 471 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, - 466 => function ($stackPos) { + 472 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, - 467 => function ($stackPos) { + 473 => function ($stackPos) { $this->semValue = new Expr\ClosureUse($this->semStack[$stackPos-(2-2)], $this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 468 => function ($stackPos) { - $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); - }, - 469 => function ($stackPos) { - $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); - }, - 470 => 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); - }, - 471 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 472 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 473 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, 474 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-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); }, 475 => function ($stackPos) { - $this->semValue = new Name\FullyQualified(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-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); }, 476 => function ($stackPos) { - $this->semValue = new Name\Relative(substr($this->semStack[$stackPos-(1-1)], 10), $this->startAttributeStack[$stackPos-(1-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); }, 477 => 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); }, 478 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 479 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 480 => function ($stackPos) { - $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 481 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Name\FullyQualified(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 482 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Name\Relative(substr($this->semStack[$stackPos-(1-1)], 10), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 483 => function ($stackPos) { - $this->semValue = null; - }, - 484 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 485 => function ($stackPos) { - $this->semValue = array(); - }, - 486 => function ($stackPos) { - $this->semValue = array(new Scalar\EncapsedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos-(1-1)], '`'), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes)); - }, - 487 => function ($stackPos) { - foreach ($this->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', true); } }; $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 488 => function ($stackPos) { - $this->semValue = array(); - }, - 489 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, + 484 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 485 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 486 => function ($stackPos) { + $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; + }, + 487 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 488 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 489 => function ($stackPos) { + $this->semValue = null; + }, 490 => 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)]; }, 491 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = array(); }, 492 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = array(new Scalar\EncapsedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos-(1-1)], '`'), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes)); }, 493 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + foreach ($this->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', true); } }; $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 494 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = array(); }, 495 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 496 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 497 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 498 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 499 => 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 Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 500 => function ($stackPos) { - $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], new Expr\Error($this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)]), $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->errorState = 2; + $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 501 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 502 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 503 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 504 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 505 => function ($stackPos) { + $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 506 => function ($stackPos) { + $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], new Expr\Error($this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)]), $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->errorState = 2; + }, + 507 => 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); }, - 502 => function ($stackPos) { + 508 => 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); }, - 503 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 504 => 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)]), $attrs); - }, - 505 => 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); - }, - 506 => function ($stackPos) { - $this->semValue = $this->parseLNumber($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 507 => function ($stackPos) { - $this->semValue = new Scalar\DNumber(Scalar\DNumber::parse($this->semStack[$stackPos-(1-1)]), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 508 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, 509 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 510 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $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)]), $attrs); }, 511 => function ($stackPos) { - $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); + $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); }, 512 => function ($stackPos) { - $this->semValue = $this->parseDocString($this->semStack[$stackPos-(2-1)], '', $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(2-2)] + $this->endAttributeStack[$stackPos-(2-2)], true); + $this->semValue = $this->parseLNumber($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 513 => function ($stackPos) { - $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); + $this->semValue = new Scalar\DNumber(Scalar\DNumber::parse($this->semStack[$stackPos-(1-1)]), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 514 => function ($stackPos) { - $this->semValue = null; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 515 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; @@ -2585,16 +2568,16 @@ class Php7 extends \PhpParser\ParserAbstract $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 517 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $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); }, 518 => 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)], true); }, 519 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $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); }, 520 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = null; }, 521 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; @@ -2612,192 +2595,210 @@ class Php7 extends \PhpParser\ParserAbstract $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 526 => 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)]; }, 527 => 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)]; }, 528 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 529 => 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 = $this->semStack[$stackPos-(3-2)]; }, 530 => function ($stackPos) { - $this->semValue = new Expr\NullsafeMethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 531 => function ($stackPos) { - $this->semValue = null; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 532 => 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); }, 533 => 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); }, 534 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 535 => 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\MethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 536 => function ($stackPos) { - $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\NullsafeMethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 537 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = null; }, 538 => 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)]; }, 539 => 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)]; }, 540 => function ($stackPos) { - $this->semValue = new Expr\Variable(new Expr\Error($this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes), $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); $this->errorState = 2; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 541 => function ($stackPos) { - $var = $this->semStack[$stackPos-(1-1)]->name; $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes) : $var; + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 542 => function ($stackPos) { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 543 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 544 => 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\Variable($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-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 = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 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\Variable(new Expr\Error($this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes), $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); $this->errorState = 2; }, 547 => function ($stackPos) { - $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $var = $this->semStack[$stackPos-(1-1)]->name; $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes) : $var; }, 548 => function ($stackPos) { $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 549 => function ($stackPos) { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 550 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 551 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 552 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 553 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 554 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 555 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 556 => function ($stackPos) { - $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; - }, - 557 => function ($stackPos) { - $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); - }, - 558 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; $end = count($this->semValue)-1; if ($this->semValue[$end] === null) array_pop($this->semValue); - }, - 559 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos]; - }, - 560 => function ($stackPos) { - /* do nothing -- prevent default action of $$=$this->semStack[$1]. See $551. */ - }, - 561 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 562 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 563 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 564 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); - }, - 565 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 566 => 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); - }, - 567 => 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); - }, - 568 => 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); - }, - 569 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); - }, - 570 => function ($stackPos) { - $this->semValue = null; - }, - 571 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 572 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 573 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 574 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); - }, - 575 => function ($stackPos) { - $this->semValue = new Scalar\EncapsedStringPart($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 576 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 577 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 578 => function ($stackPos) { $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 579 => function ($stackPos) { + 551 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 552 => function ($stackPos) { $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 580 => function ($stackPos) { + 553 => function ($stackPos) { $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 581 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + 554 => function ($stackPos) { + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 582 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + 555 => function ($stackPos) { + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 583 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-4)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + 556 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 584 => function ($stackPos) { + 557 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(3-2)]; }, + 558 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 559 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 560 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 561 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 562 => function ($stackPos) { + $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; + }, + 563 => function ($stackPos) { + $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 564 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; $end = count($this->semValue)-1; if ($this->semValue[$end] === null) array_pop($this->semValue); + }, + 565 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 566 => function ($stackPos) { + /* do nothing -- prevent default action of $$=$this->semStack[$1]. See $551. */ + }, + 567 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 568 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 569 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 570 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 571 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 572 => 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); + }, + 573 => 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); + }, + 574 => 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); + }, + 575 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 576 => function ($stackPos) { + $this->semValue = null; + }, + 577 => function ($stackPos) { + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 578 => function ($stackPos) { + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 579 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 580 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); + }, + 581 => function ($stackPos) { + $this->semValue = new Scalar\EncapsedStringPart($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 582 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 583 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 584 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, 585 => function ($stackPos) { - $this->semValue = new Scalar\String_($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-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); }, 586 => function ($stackPos) { - $this->semValue = $this->parseNumString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 587 => function ($stackPos) { - $this->semValue = $this->parseNumString('-' . $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 588 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 589 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-4)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + }, + 590 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 591 => function ($stackPos) { + $this->semValue = new Scalar\String_($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 592 => function ($stackPos) { + $this->semValue = $this->parseNumString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 593 => function ($stackPos) { + $this->semValue = $this->parseNumString('-' . $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 594 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, ]; diff --git a/lib/PhpParser/PrettyPrinter/Standard.php b/lib/PhpParser/PrettyPrinter/Standard.php index 62d1f34..ffac9c0 100644 --- a/lib/PhpParser/PrettyPrinter/Standard.php +++ b/lib/PhpParser/PrettyPrinter/Standard.php @@ -45,6 +45,10 @@ class Standard extends PrettyPrinterAbstract return $this->pImplode($node->types, '|'); } + protected function pIntersectionType(Node\IntersectionType $node) { + return $this->pImplode($node->types, '&'); + } + protected function pIdentifier(Node\Identifier $node) { return $node->name; } diff --git a/lib/PhpParser/PrettyPrinterAbstract.php b/lib/PhpParser/PrettyPrinterAbstract.php index 8a3565f..5fc3653 100644 --- a/lib/PhpParser/PrettyPrinterAbstract.php +++ b/lib/PhpParser/PrettyPrinterAbstract.php @@ -1343,6 +1343,7 @@ abstract class PrettyPrinterAbstract //'Scalar_Encapsed->parts' => '', 'Stmt_Catch->types' => '|', 'UnionType->types' => '|', + 'IntersectionType->types' => '&', 'Stmt_If->elseifs' => ' ', 'Stmt_TryCatch->catches' => ' ', diff --git a/test/PhpParser/BuilderHelpersTest.php b/test/PhpParser/BuilderHelpersTest.php index c848dbb..94d2d3a 100644 --- a/test/PhpParser/BuilderHelpersTest.php +++ b/test/PhpParser/BuilderHelpersTest.php @@ -140,6 +140,9 @@ class BuilderHelpersTest extends \PHPUnit\Framework\TestCase $unionType = new Node\UnionType([new Node\Identifier('int'), new Node\Identifier('string')]); $this->assertSame($unionType, BuilderHelpers::normalizeType($unionType)); + $intersectionType = new Node\IntersectionType([new Node\Name('A'), new Node\Name('B')]); + $this->assertSame($intersectionType, BuilderHelpers::normalizeType($intersectionType)); + $expectedNullable = new Node\NullableType($intIdentifier); $nullable = BuilderHelpers::normalizeType('?int'); $this->assertEquals($expectedNullable, $nullable); diff --git a/test/PhpParser/NodeVisitor/NameResolverTest.php b/test/PhpParser/NodeVisitor/NameResolverTest.php index 5c85c29..d14402b 100644 --- a/test/PhpParser/NodeVisitor/NameResolverTest.php +++ b/test/PhpParser/NodeVisitor/NameResolverTest.php @@ -204,6 +204,7 @@ class A extends B implements C, D { interface A extends C, D { public function a(A $a) : A; public function b(A|B|int $a): A|B|int; + public function c(A&B $a): A&B; } #[X] @@ -268,6 +269,7 @@ interface A extends \NS\C, \NS\D { public function a(\NS\A $a) : \NS\A; public function b(\NS\A|\NS\B|int $a) : \NS\A|\NS\B|int; + public function c(\NS\A&\NS\B $a) : \NS\A&\NS\B; } #[\NS\X] enum E : int diff --git a/test/code/formatPreservation/listInsertion.test b/test/code/formatPreservation/listInsertion.test index 0795c9d..6ddd816 100644 --- a/test/code/formatPreservation/listInsertion.test +++ b/test/code/formatPreservation/listInsertion.test @@ -319,6 +319,16 @@ function test(): A |B|C {} ----- returnType->types[] = new Node\Name('C'); +----- +