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