From 9dda080a9dcecd6c9870c2034f97ec690bd4e053 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Wed, 19 Feb 2020 21:14:33 +0100 Subject: [PATCH] Allow expressions in isset() Partial fix for #653. PHP 7 allows expressions inside isset(), but rejects non-variables in the compiler. A side-effect of this is that isset(($x)) is allowed, though this is not intentional. --- grammar/php7.y | 12 +- lib/PhpParser/Parser/Php7.php | 1289 ++++++++++++------------ test/code/parser/expr/exprInIsset.test | 49 + 3 files changed, 703 insertions(+), 647 deletions(-) create mode 100644 test/code/parser/expr/exprInIsset.test diff --git a/grammar/php7.y b/grammar/php7.y index 7a219fd9..fd0fbdac 100644 --- a/grammar/php7.y +++ b/grammar/php7.y @@ -232,7 +232,7 @@ non_empty_statement: | 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_ECHO expr_list_forbid_comma semi { $$ = Stmt\Echo_[$2]; } | T_INLINE_HTML { $$ = Stmt\InlineHTML[$1]; } | expr semi { $$ = Stmt\Expression[$1]; } | T_UNSET '(' variables_list ')' semi { $$ = Stmt\Unset_[$3]; } @@ -632,10 +632,14 @@ property_declaration: | property_decl_name '=' expr { $$ = Stmt\PropertyProperty[$1, $3]; } ; -expr_list: +expr_list_forbid_comma: non_empty_expr_list no_comma { $$ = $1; } ; +expr_list_allow_comma: + non_empty_expr_list optional_comma { $$ = $1; } +; + non_empty_expr_list: non_empty_expr_list ',' expr { push($1, $3); } | expr { init($1); } @@ -643,7 +647,7 @@ non_empty_expr_list: for_expr: /* empty */ { $$ = array(); } - | expr_list { $$ = $1; } + | expr_list_forbid_comma { $$ = $1; } ; expr: @@ -706,7 +710,7 @@ expr: | expr '?' expr ':' expr { $$ = Expr\Ternary[$1, $3, $5]; } | expr '?' ':' expr { $$ = Expr\Ternary[$1, null, $4]; } | expr T_COALESCE expr { $$ = Expr\BinaryOp\Coalesce[$1, $3]; } - | T_ISSET '(' variables_list ')' { $$ = Expr\Isset_[$3]; } + | T_ISSET '(' expr_list_allow_comma ')' { $$ = Expr\Isset_[$3]; } | T_EMPTY '(' expr ')' { $$ = Expr\Empty_[$3]; } | T_INCLUDE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_INCLUDE]; } | T_INCLUDE_ONCE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_INCLUDE_ONCE]; } diff --git a/lib/PhpParser/Parser/Php7.php b/lib/PhpParser/Parser/Php7.php index fda56f49..a446dfe7 100644 --- a/lib/PhpParser/Parser/Php7.php +++ b/lib/PhpParser/Parser/Php7.php @@ -26,8 +26,8 @@ class Php7 extends \PhpParser\ParserAbstract protected $defaultAction = -32766; protected $unexpectedTokenRule = 32767; - protected $YY2TBLSTATE = 350; - protected $numNonLeafStates = 606; + protected $YY2TBLSTATE = 351; + protected $numNonLeafStates = 608; protected $symbolToName = array( "EOF", @@ -235,103 +235,103 @@ class Php7 extends \PhpParser\ParserAbstract ); protected $action = array( - 611, 612, 613, 614, 615, 689, 616, 617, 618, 654, - 655, 0, 32, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115,-32767,-32767,-32767,-32767, - 94, 95, 96, 97, 98,-32766,-32766,-32766, 691, 493, - -500, 911, 912, 913, 910, 909, 908, 911, 912, 913, - 910, 909, 908, 619, 945, 947,-32766, 9,-32766,-32766, - -32766,-32766,-32766,-32766,-32766,-32766,-32766, 620, 621, 622, - 623, 624, 625, 626, 335, 1111, 687,-32766,-32766,-32766, - 850, 1110, 119, 627, 628, 629, 630, 631, 632, 633, - 634, 635, 636, 637, 657, 658, 659, 660, 661, 649, - 650, 651, 679, 652, 653, 638, 639, 640, 641, 642, - 643, 644, 681, 682, 683, 684, 685, 686, 645, 646, - 647, 648, 678, 669, 667, 668, 664, 665, 404, 656, - 662, 663, 670, 671, 673, 672, 674, 675, 45, 46, - 423, 47, 48, 666, 677, 676, 27, 49, 50, 233, - 51,-32766,-32766,-32766, 96, 97, 98, 24,-32766,-32766, - -32766, -461, 261, 121, 1030,-32766,-32766,-32766, 1098, 1080, - -32766,-32766,-32766, 1046,-32766,-32766,-32766,-32766,-32766,-32766, - -499,-32766,-32766,-32766, 52, 53,-32766, -500,-32766,-32766, - 54, 691, 55, 231, 232, 56, 57, 58, 59, 60, - 61, 62, 63, 1023, 24, 242, 64, 371,-32766,-32766, - -32766, 226, 1047, 1048, 425, 1083, 1080, -496, 887, 512, - 1046, 438, 1030, -461, 772, 1080, 239, 335, -503,-32766, - -503,-32766,-32766,-32766,-32766, 863, 252, -461, 278, 380, - 374, 790, 68, 1080, -461, 689, -464, 280, 1133, 405, - 291, 1134, 290, 99, 100, 101, 305, 253, 435, 436, - 826,-32766, 69, 261, 237, 855, 856, 437, 438, 102, - 1052, 1053, 1054, 1055, 1049, 1050, 256, 1023, -459, -459, - 308, 446, 1056, 1051, 377, 133, 565, -239, 365, 66, - 237, 270, 696, 275, 280, 424, -137, -137, -137, -4, - 772, 1080, 312, 280, 1042, 761, 691, 364, 37, 20, - 426, -137, 427, -137, 428, -137, 429, -137, 127, 430, - -298, 280, -298, 38, 39, 372, 373, -499, 273, 40, - 431, 279, 691, 65, 261, 1023, 304, 903, 432, 433, - -459, -459, 335, -497, 434, 44, 42, 747, 795, 375, - 376, -460, -234, 566, -459, -459, 377,-32766,-32766,-32766, - 889, -459, -459, 124, -496, 75, 855, 856, 335, -276, - -263, 424, 772, 774, 580, -137, 261, 125,-32766, 280, - 827, 761, 864, 1080, 37, 20, 426, 240, 427, -178, - 428, 593, 429, 395, 505, 430, 691, 235, 241, 38, - 39, 372, 373, 125, 356, 40, 431, 260, 259, 65, - 269, 691, 304, -460, 432, 433, -299, -177, -299, 24, - 434, 307, 367, 704, 795, 375, 376, -460, 120, 118, - 24, 1080, 30, 368, -460, 1046, -463, 855, 856, 691, - 369, 695, 1080, 424, 293, 772, 1046, 335, -83, 774, - 580, -4, 469, 761, 126, 370, 37, 20, 426, -92, - 427, 280, 428, 446, 429, 1023, 377, 430, -219, -219, - -219, 38, 39, 372, 373, 335, 1023, 40, 431, 855, - 856, 65, 437, 438, 304, 236, 432, 433, 225, 712, - -497, 713, 434, 437, 438, 747, 795, 375, 376, 694, - 389, 136, 1124, 582, 68, 415, 238, 8, 33, 280, - 1060, 227, 712, 691, 713, 68, 424, -263, 539, 21, - 280, 774, 580, -219, 554, 555, 761, 691, 116, 37, - 20, 426, 117, 427, 360, 428, -178, 429, 132, 330, - 430, -218, -218, -218, 38, 39, 372, 373, 691, 335, - 40, 431, 122, 772, 65, 385, 386, 304, 123, 432, - 433, 29, 234, 335, -177, 434, 532, 533, 747, 795, - 375, 376, 129, 855, 856, 135, 76, 77, 78, 1099, - 888, 603, 586, 254, 335, 137, 138, 786, 594, 597, - 262, 771, 131, 253, 774, 580, -218, 31, 263, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 295, 253, 424, 562, 772, 691, 694,-32766, - 102, 478, 689, 43, 761, 102, 1135, 37, 20, 426, - 130, 427, -81, 428, 692, 429, 530, 917, 430, 796, - 1023, 274, 38, 39, 372, 587, 473, 540, 40, 431, - 271, 277, 65, 272, 574, 304, 797, 557, 1059, 1062, - 545, 338, 772, 434, 10, 393, 35, 344, 546, 558, - 788, 581, 1061, 0, -418, 0, 5, 0, 0, 12, - 0, 0, 0, 0, 0, 0, 0, 424, 0, 0, - 0, 588, 774, 580, 0, 0, 0, 761, 0, 0, - 37, 20, 426, 0, 427, 0, 428, 0, 429, 772, - 0, 430, 306, 0, 0, 38, 39, 372, 583, 0, - 0, 40, 431, 345, 349, 65, 598, 389, 304, 475, - 361, 362, 748, 424, 36, 601, 434, 602, 591, 752, - 829, 813, 820, 761, 883, 884, 37, 20, 426, 810, - 427, 821, 428, 750, 429, 772, 808, 430, 892, 895, - 896, 38, 39, 372, 893, 774, 580, 40, 431, 894, - 900, 65, 585, 589, 304, 590, 592, 596, 288, 289, - 424, 354, 434, 355, 595, 584, -488, 1130, 1132, 707, - 761, 794, 706, 37, 20, 426, 716, 427, 793, 428, - 717, 429, 772, 714, 430, 1131, 792, 1011, 38, 39, - 372, 812, 580, -486, 40, 431, 715, 781, 65, 789, - 779, 304, 818, 819, 1129, 1081, 424, 1074, 1088, 434, - 1093, 1096, -430, -464, -463, -462, 761, 23, 25, 37, - 20, 426, 28, 427, 34, 428, 41, 429, 67, 70, - 430, 71, 72, 73, 38, 39, 372, 74, 774, 580, - 40, 431, 128, 134, 65, 139, 229, 304, 230, 246, - 247, 248, 249, 424, 250, 434, 251, 292, 357, 359, - 0, -237, -235, 761, -234, 14, 37, 20, 426, 15, - 427, 16, 428, 17, 429, 19, 327, 430, 406, 408, - 411, 38, 39, 372, 774, 580, 413, 40, 431, 414, - 421, 65, 571, 1034, 304,-32766,-32766,-32766, 984, 1044, - 865, 1015, 434, -92, 13, 18, 22, 265, 326, 503, - 526, 573, 988, 985, 0, 1001,-32766, 1043,-32766,-32766, - -32766,-32766,-32766,-32766,-32767,-32767,-32767,-32767,-32767, 1072, - 1073, 774, 580, 1087, 1127, 536 + 613, 614, 615, 616, 617, 691, 618, 619, 620, 656, + 657, 0, 32, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116,-32767,-32767,-32767,-32767, + 95, 96, 97, 98, 99,-32766,-32766,-32766, 693, 495, + -501, 913, 914, 915, 912, 911, 910, 913, 914, 915, + 912, 911, 910, 621, 948, 950,-32766, 9,-32766,-32766, + -32766,-32766,-32766,-32766,-32766,-32766,-32766, 622, 623, 624, + 625, 626, 627, 628, 336, 1114, 689,-32766,-32766,-32766, + 852, 1113, 120, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 659, 660, 661, 662, 663, 651, + 652, 653, 681, 654, 655, 640, 641, 642, 643, 644, + 645, 646, 683, 684, 685, 686, 687, 688, 647, 648, + 649, 650, 680, 671, 669, 670, 666, 667, 406, 658, + 664, 665, 672, 673, 675, 674, 676, 677, 46, 47, + 425, 48, 49, 668, 679, 678, 27, 50, 51, 234, + 52,-32766,-32766,-32766, 97, 98, 99, 24,-32766,-32766, + -32766, -462, 262, 122, 1033,-32766,-32766,-32766, 1101, 1083, + -32766,-32766,-32766, 1049,-32766,-32766,-32766,-32766,-32766,-32766, + -500,-32766,-32766,-32766, 53, 54,-32766, -501,-32766,-32766, + 55, 693, 56, 232, 233, 57, 58, 59, 60, 61, + 62, 63, 64, 1026, 24, 243, 65, 372,-32766,-32766, + -32766, 228, 1050, 1051, 427, 1086, 1083, -497, 889, 514, + 1049, 440, 1033, -462, 774, 1083, 131, 336, -504,-32766, + -504,-32766,-32766,-32766,-32766, 865, 240, -462, 253, 381, + 375, 792, 69, 1083, -462, 691, -465, 281, 1136, 407, + 292, 1137, 279, 100, 101, 102, 291, 254, 437, 438, + 828,-32766, 70, 262, 238, 857, 858, 439, 440, 103, + 1055, 1056, 1057, 1058, 1052, 1053, 257, 1026, -460, -460, + 306, 448, 1059, 1054, 378, 135, 567, -239, 366, 67, + 238, 271, 698, 276, 281, 426, -137, -137, -137, -4, + 774, 1083, 309, 281, 1045, 763, 693, 313, 37, 20, + 428, -137, 429, -137, 430, -137, 431, -137, 128, 432, + -298, 281, -298, 39, 40, 373, 374, -500, 274, 41, + 433, 280, 693, 66, 262, 1026, 305, 905, 434, 435, + -460, -460, 336, -498, 436, 45, 43, 749, 797, 376, + 377, -461, -234, 568, -460, -460, 378,-32766,-32766,-32766, + 891, -460, -460, 125, -497, 76, 857, 858, 336, -276, + -263, 426, 774, 776, 582, -137, 262, 126,-32766, 281, + 829, 763, 866, 1083, 37, 20, 428, 241, 429, -178, + 430, 595, 431, 397, 507, 432, 693, 236, 242, 39, + 40, 373, 374, 126, 357, 41, 433, 261, 260, 66, + 270, 693, 305, -461, 434, 435, -299, -177, -299, 24, + 436, 308, 365, 706, 797, 376, 377, -461, 121, 119, + 24, 1083, 30, 368, -461, 1049, -464, 857, 858, 693, + 369, 697, 1083, 426, 294, 774, 1049, 336, -83, 776, + 582, -4, 471, 763, 127, 370, 37, 20, 428, -92, + 429, 281, 430, 448, 431, 1026, 378, 432, -219, -219, + -219, 39, 40, 373, 374, 336, 1026, 41, 433, 857, + 858, 66, 439, 440, 305, 237, 434, 435, 227, 714, + -498, 715, 436, 439, 440, 749, 797, 376, 377, 696, + 390, 371, 1127, 584, 69, 417, 239, 8, 138, 281, + 1063, 33, 714, 693, 715, 69, 426, -263, 541, 21, + 281, 776, 582, -219, 556, 557, 763, 693, 229, 37, + 20, 428, 117, 429, 361, 430, -178, 431, 134, 331, + 432, -218, -218, -218, 39, 40, 373, 374, 693, 336, + 41, 433, 118, 774, 66, 386, 387, 305, 123, 434, + 435, 29, 235, 336, -177, 436, 534, 535, 749, 797, + 376, 377, 124, 857, 858, 130, 77, 78, 79, 1102, + 890, 605, 588, 255, 336, 137, 139, 140, 596, 599, + 263, 773, 133, 254, 776, 582, -218, 31, 264, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 296, 254, 426, 788, 774, 693, 691, 564, + 103, 696, 480, 44, 763, 103, 1138, 37, 20, 428, + 559, 429, 132, 430, 694, 431, 532, 919, 432, 798, + 1026, 275, 39, 40, 373, 589,-32766, 542, 41, 433, + 475, 272, 66, 273, 1062, 305, 576, 799, 278, 547, + 1065, -419, 774, 436, -81, 10, 394, 790, 339, 548, + 560, 35, 36, 1064, 0, 5, 0, 0, 12, 0, + 307, 0, 0, 0, 0, 345, 0, 426, 0, 0, + 0, 590, 776, 582, 0, 0, 0, 763, 0, 0, + 37, 20, 428, 0, 429, 0, 430, 0, 431, 774, + 0, 432, 0, 0, 0, 39, 40, 373, 603, 0, + 0, 41, 433, 346, 350, 66, 600, 604, 305, 390, + 477, 362, 363, 426, -237, 754, 436, 831, 593, 815, + 822, 885, 886, 763, 812, 823, 37, 20, 428, 752, + 429, 810, 430, 894, 431, 774, 897, 432, 898, 895, + 896, 39, 40, 373, 902, 776, 582, 41, 433, 583, + 585, 66, 587, 591, 305, 592, 594, 598, 289, 290, + 426, 355, 436, 356, 597, 586, -489, 750, 1133, 1135, + 763, 709, 796, 37, 20, 428, 708, 429, 718, 430, + 795, 431, 774, 719, 432, 716, 1134, 794, 39, 40, + 373, 814, 582, -487, 41, 433, 1014, 717, 66, 783, + 791, 305, 781, 820, 821, 1132, 426, 1084, 1077, 436, + 1091, 1096, 1099, 1046, -465, -464, 763, -463, 23, 37, + 20, 428, 25, 429, 28, 430, 34, 431, 38, 42, + 432, 68, 71, 72, 39, 40, 373, 73, 776, 582, + 41, 433, 74, 75, 66, 129, 136, 305, 141, 231, + 247, 248, 249, 426, 250, 436, 251, 252, 293, 358, + 360, 0, -235, 763, -234, 14, 37, 20, 428, 15, + 429, 16, 430, 17, 431, 19, 328, 432, 408, 410, + 413, 39, 40, 373, 776, 582, 415, 41, 433, 416, + 423, 66, 573, 1037, 305,-32766,-32766,-32766, 987, 1047, + 867, 1018, 436, -92, 13, 18, 22, 266, 327, 505, + 528, 575, 991, 988, 0, -431,-32766, 1004,-32766,-32766, + -32766,-32766,-32766,-32766,-32767,-32767,-32767,-32767,-32767, 1075, + 1076, 776, 582, 1090, 1130, 538 ); protected $actionCheck = array( @@ -385,57 +385,57 @@ class Php7 extends \PhpParser\ParserAbstract 99, 100, 101, 102, 103, 114, 114, 106, 107, 132, 133, 110, 131, 132, 113, 36, 115, 116, 95, 103, 154, 105, 121, 131, 132, 124, 125, 126, 127, 80, - 148, 13, 83, 151, 153, 103, 36, 105, 13, 158, + 148, 7, 83, 151, 153, 103, 36, 105, 13, 158, 141, 13, 103, 78, 105, 153, 72, 154, 73, 74, - 158, 150, 151, 152, 73, 74, 82, 78, 15, 85, + 158, 150, 151, 152, 73, 74, 82, 78, 13, 85, 86, 87, 15, 89, 148, 91, 154, 93, 98, 99, 96, 97, 98, 99, 100, 101, 102, 103, 78, 114, 106, 107, 15, 1, 110, 103, 104, 113, 15, 115, 116, 142, 143, 114, 154, 121, 108, 109, 124, 125, 126, 127, 15, 132, 133, 15, 8, 9, 10, 154, - 150, 151, 30, 30, 114, 15, 15, 36, 30, 30, + 150, 151, 30, 30, 114, 15, 15, 15, 30, 30, 34, 30, 30, 55, 150, 151, 152, 29, 34, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 34, 55, 72, 75, 1, 78, 80, 83, - 67, 87, 78, 68, 82, 67, 81, 85, 86, 87, - 68, 89, 95, 91, 78, 93, 111, 80, 96, 125, + 52, 53, 34, 55, 72, 36, 1, 78, 78, 75, + 67, 80, 87, 68, 82, 67, 81, 85, 86, 87, + 92, 89, 68, 91, 78, 93, 111, 80, 96, 125, 114, 112, 100, 101, 102, 30, 83, 88, 106, 107, - 128, 128, 110, 129, 90, 113, 125, 92, 141, 141, - 94, 148, 1, 121, 95, 95, 150, 148, 97, 97, - 149, 151, 157, -1, 144, -1, 144, -1, -1, 144, - -1, -1, -1, -1, -1, -1, -1, 72, -1, -1, + 83, 128, 110, 129, 141, 113, 90, 125, 128, 94, + 141, 144, 1, 121, 95, 95, 95, 149, 148, 97, + 97, 150, 150, 157, -1, 144, -1, -1, 144, -1, + 144, -1, -1, -1, -1, 148, -1, 72, -1, -1, -1, 30, 150, 151, -1, -1, -1, 82, -1, -1, 85, 86, 87, -1, 89, -1, 91, -1, 93, 1, - -1, 96, 144, -1, -1, 100, 101, 102, 151, -1, - -1, 106, 107, 148, 148, 110, 152, 148, 113, 148, - 148, 148, 152, 72, 150, 150, 121, 150, 30, 150, + -1, 96, -1, -1, -1, 100, 101, 102, 150, -1, + -1, 106, 107, 148, 148, 110, 152, 150, 113, 148, + 148, 148, 148, 72, 154, 150, 121, 150, 30, 150, 150, 150, 150, 82, 150, 150, 85, 86, 87, 150, 89, 150, 91, 150, 93, 1, 150, 96, 150, 150, - 150, 100, 101, 102, 150, 150, 151, 106, 107, 150, - 150, 110, 151, 151, 113, 151, 151, 151, 151, 151, + 150, 100, 101, 102, 150, 150, 151, 106, 107, 151, + 151, 110, 151, 151, 113, 151, 151, 151, 151, 151, 72, 151, 121, 151, 30, 151, 153, 152, 152, 152, 82, 152, 152, 85, 86, 87, 152, 89, 152, 91, 152, 93, 1, 152, 96, 152, 152, 152, 100, 101, 102, 150, 151, 153, 106, 107, 152, 152, 110, 152, 152, 113, 152, 152, 152, 152, 72, 152, 152, 121, - 152, 152, 155, 153, 153, 153, 82, 153, 153, 85, + 152, 152, 152, 156, 153, 153, 82, 153, 153, 85, 86, 87, 153, 89, 153, 91, 153, 93, 153, 153, 96, 153, 153, 153, 100, 101, 102, 153, 150, 151, 106, 107, 153, 153, 110, 153, 153, 113, 153, 153, 153, 153, 153, 72, 153, 121, 153, 153, 153, 153, - -1, 154, 154, 82, 154, 154, 85, 86, 87, 154, + 153, -1, 154, 82, 154, 154, 85, 86, 87, 154, 89, 154, 91, 154, 93, 154, 154, 96, 154, 154, 154, 100, 101, 102, 150, 151, 154, 106, 107, 154, 154, 110, 154, 154, 113, 8, 9, 10, 154, 154, 154, 154, 121, 154, 154, 154, 154, 154, 154, 154, - 154, 154, 154, 154, -1, 155, 29, 156, 31, 32, + 154, 154, 154, 154, -1, 155, 29, 155, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 156, 156, 150, 151, 156, 156, 156 ); protected $actionBase = array( - 0, 223, 299, 371, 444, 303, 208, 629, -2, -2, + 0, 223, 299, 371, 444, 303, 208, 620, -2, -2, -73, -2, -2, 625, 718, 718, 764, 718, 552, 671, 811, 811, 811, 228, 113, 113, 113, 254, 361, -40, 361, 333, 449, 470, 435, 435, 435, 435, 435, 435, @@ -449,208 +449,208 @@ class Php7 extends \PhpParser\ParserAbstract 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, - 291, 291, 230, 393, 495, 783, 788, 785, 781, 780, - 784, 789, 498, 682, 683, 562, 685, 686, 688, 689, - 786, 809, 782, 787, 568, 568, 568, 568, 568, 568, + 435, 435, 291, 291, 230, 393, 498, 783, 788, 785, + 781, 780, 784, 789, 515, 683, 685, 562, 686, 688, + 689, 690, 786, 809, 782, 787, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 253, 69, 162, 56, 56, 56, 56, 56, 56, + 568, 568, 568, 253, 69, 162, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 349, 349, 349, 157, - 210, 150, 200, 211, 143, 27, 917, 917, 917, 917, - 917, -16, -16, -16, -16, 351, 351, 362, 217, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 163, 313, 106, 106, 133, 133, 133, 133, - 133, 133, 305, 221, 234, 347, 369, 528, 525, 167, - 167, 441, 441, 441, 93, 283, 202, 202, 202, 386, - 573, 536, 536, 536, 536, 419, 419, 536, 536, 170, - 214, 74, 211, 211, 277, 211, 211, 211, 409, 409, - 409, 452, 318, 352, 546, 318, 630, 644, 581, 680, - 582, 681, 278, 592, 145, 593, 145, 145, 145, 458, - 445, 451, 779, 291, 540, 291, 291, 291, 291, 726, - 291, 291, 291, 291, 291, 291, 98, 291, 79, 430, - 230, 240, 240, 588, 240, 452, 538, 263, 637, 410, - 425, 538, 538, 538, 638, 640, 336, 363, 198, 642, - 382, 402, 173, 33, 549, 549, 554, 554, 567, 551, - 549, 549, 549, 549, 549, 694, 694, 554, 548, 554, - 567, 703, 554, 551, 551, 554, 554, 549, 554, 694, - 551, 156, 415, 249, 273, 551, 551, 426, 532, 549, - 533, 533, 433, 554, 219, 554, 139, 534, 694, 694, - 534, 229, 551, 231, 595, 597, 535, 531, 553, 245, - 553, 553, 300, 535, 553, 551, 553, 448, 50, 548, - 295, 553, 11, 705, 706, 418, 708, 701, 709, 735, - 710, 530, 524, 541, 723, 725, 714, 699, 695, 561, - 591, 513, 517, 542, 565, 692, 589, 563, 563, 563, - 565, 690, 563, 563, 563, 563, 563, 563, 563, 563, - 791, 578, 544, 727, 537, 523, 580, 543, 577, 527, - 591, 591, 590, 687, 790, 566, 726, 769, 719, 526, - 557, 751, 728, 584, 529, 585, 729, 731, 752, 774, - 631, 513, 775, 645, 572, 646, 591, 647, 563, 670, - 643, 803, 804, 691, 807, 741, 754, 556, 564, 755, - 586, 649, 555, 808, 650, 776, 632, 634, 594, 745, - 737, 756, 654, 762, 765, 656, 599, 569, 738, 576, - 736, 272, 734, 635, 658, 661, 663, 664, 665, 720, - 600, 747, 575, 749, 740, 601, 602, 560, 674, 488, - 604, 570, 571, 605, 722, 558, 550, 609, 611, 777, - 675, 733, 613, 677, 768, 547, 589, 545, 539, 579, - 574, 636, 766, 559, 616, 618, 619, 620, 678, 624, + 56, 56, 56, 56, 56, 56, 56, 56, 349, 349, + 349, 157, 210, 150, 200, 211, 143, 27, 917, 917, + 917, 917, 917, -16, -16, -16, -16, 351, 351, 362, + 217, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 163, 313, 106, 106, 133, 133, 133, + 133, 133, 133, 305, 221, 234, 347, 369, 529, 526, + 167, 167, 441, 441, 441, 93, 283, 202, 202, 202, + 386, 577, 536, 536, 536, 536, 419, 419, 536, 536, + 170, 214, 74, 211, 211, 277, 211, 211, 211, 409, + 409, 409, 452, 318, 352, 573, 318, 624, 644, 582, + 681, 583, 682, 278, 593, 145, 594, 145, 145, 145, + 458, 445, 451, 779, 291, 527, 291, 291, 291, 291, + 727, 291, 291, 291, 291, 291, 291, 98, 291, 79, + 430, 230, 240, 240, 588, 240, 452, 538, 263, 637, + 410, 425, 538, 538, 538, 638, 640, 336, 363, 198, + 642, 382, 402, 173, 33, 549, 549, 550, 550, 567, + 589, 549, 549, 549, 549, 549, 695, 695, 550, 551, + 550, 567, 706, 550, 589, 589, 550, 550, 549, 550, + 695, 589, 156, 426, 273, 295, 589, 589, 433, 533, + 549, 540, 540, 448, 550, 229, 219, 550, 139, 534, + 695, 695, 534, 231, 589, 245, 578, 587, 535, 528, + 553, 249, 553, 553, 415, 535, 553, 589, 553, 494, + 50, 551, 300, 553, 11, 708, 709, 418, 710, 703, + 714, 736, 719, 628, 524, 542, 726, 705, 720, 701, + 699, 561, 592, 517, 537, 541, 565, 694, 591, 563, + 563, 563, 565, 691, 563, 563, 563, 563, 563, 563, + 563, 563, 687, 546, 545, 728, 543, 530, 581, 557, + 629, 523, 592, 592, 645, 790, 792, 566, 727, 769, + 722, 531, 560, 751, 729, 584, 547, 585, 731, 733, + 752, 774, 631, 517, 775, 646, 574, 647, 592, 649, + 563, 670, 643, 803, 804, 692, 807, 741, 754, 556, + 564, 755, 586, 650, 555, 808, 654, 776, 632, 634, + 532, 745, 590, 756, 656, 762, 765, 658, 595, 569, + 738, 575, 737, 272, 735, 635, 661, 663, 664, 665, + 674, 723, 597, 747, 548, 749, 740, 599, 600, 570, + 675, 495, 601, 571, 572, 602, 725, 558, 554, 604, + 605, 777, 677, 734, 609, 678, 768, 579, 591, 544, + 539, 580, 576, 636, 766, 559, 611, 613, 616, 618, + 680, 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, 136, + 136, 136, 136, -2, -2, -2, 0, 0, -2, 0, + 0, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, + 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, + 568, 568, 568, 568, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 136, 136, 136, - 136, -2, -2, -2, 0, 0, -2, 0, 0, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 568, 568, 568, 568, + 0, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, -3, 568, 568, -3, - 568, 568, 568, 568, 568, 568, 568, 202, 202, 202, - 202, 318, 318, 318, -67, 318, 318, 318, 318, 318, - 318, 318, 318, 318, 318, 318, 318, 318, 318, -67, - 202, 202, 318, 318, 318, 318, 318, 318, 318, 318, - 318, 318, 419, 419, 419, 145, 145, 318, 318, 318, - 0, 0, 0, 0, 0, 549, 419, 318, 318, 318, - 318, 0, 0, 318, 318, 548, 145, 0, 0, 0, - 0, 0, 0, 0, 549, 549, 549, 548, 0, 549, - 419, 0, 240, 291, 440, 440, 440, 440, 0, 549, - 0, 549, 0, 0, 0, 0, 0, 0, 551, 0, - 694, 0, 0, 0, 0, 554, 0, 0, 0, 0, - 0, 0, 0, 0, 548, 0, 0, 0, 0, 548, - 0, 0, 563, 0, 566, 0, 0, 563, 563, 563, - 566, 566, 0, 0, 0, 566 + -3, 568, 568, -3, 568, 568, 568, 568, 568, 568, + 568, 202, 202, 202, 202, 318, 318, 318, -67, 318, + 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, + 318, 318, -67, 202, 202, 318, 318, 318, 318, 318, + 318, 318, 318, 318, 318, 419, 419, 419, 145, 145, + 318, 318, 318, 0, 0, 0, 0, 0, 549, 419, + 318, 318, 318, 318, 0, 0, 318, 318, 551, 145, + 0, 0, 0, 0, 0, 0, 0, 549, 549, 549, + 551, 0, 549, 419, 0, 240, 291, 440, 440, 440, + 440, 0, 549, 0, 549, 0, 0, 0, 0, 0, + 0, 589, 0, 695, 0, 0, 0, 0, 550, 0, + 0, 0, 0, 0, 0, 0, 0, 551, 0, 0, + 0, 0, 551, 0, 0, 563, 0, 566, 0, 0, + 563, 563, 563, 566, 566, 0, 0, 0, 566 ); protected $actionDefault = array( 3,32767,32767,32767,32767,32767,32767,32767,32767, 92, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 513, 513, 513, 94, 502,32767, - 502,32767,32767,32767, 317, 317, 317,32767, 457, 457, - 457, 457, 457, 457, 457,32767,32767,32767,32767,32767, - 397,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767, 514, 514, 514, 94, 503,32767, + 503,32767,32767,32767, 318, 318, 318,32767,32767, 458, + 458, 458, 458, 458, 458, 458,32767,32767,32767,32767, + 32767, 398,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767, 92,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767, 92,32767,32767,32767,32767,32767,32767,32767, + 32767, 94,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767, 510,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 509,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767, 381, 382, 384, 385, + 317, 459, 513, 262, 509, 316, 130, 273, 264, 211, + 243, 313, 134, 346, 399, 348, 397, 401, 347, 323, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 321, 322, 400, 402, 403, 378, 377, + 376, 344, 320, 345, 349, 320, 351, 350, 367, 368, + 365, 366, 369, 370, 371, 372, 373,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 380, 381, 383, 384, 316, 458, - 512, 262, 508, 315, 130, 273, 264, 211, 243, 313, - 134, 345, 398, 347, 396, 400, 346, 322, 326, 327, - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - 338, 320, 321, 399, 401, 402, 377, 376, 375, 343, - 319, 344, 348, 319, 350, 349, 366, 367, 364, 365, - 368, 369, 370, 371, 372,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767, 94, - 32767,32767,32767, 296, 357, 358, 253, 253, 253, 253, - 253, 253, 253,32767,32767, 253,32767,32767,32767,32767, - 32767,32767,32767,32767, 451, 374, 352, 353, 351,32767, - 429,32767,32767,32767,32767,32767, 431,32767, 92,32767, - 32767,32767, 340, 342, 423, 511, 323, 510,32767,32767, - 94, 417,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767, 426,32767,32767, 92,32767,32767, 92, 174, - 230, 232, 179,32767, 434,32767,32767,32767,32767,32767, + 94,32767,32767,32767, 296, 358, 359, 253, 253, 253, + 253, 253, 253, 253,32767,32767, 253,32767,32767,32767, + 32767,32767,32767,32767,32767, 452, 375, 353, 354, 352, + 32767, 430,32767,32767,32767,32767,32767, 432,32767, 92, + 32767,32767,32767, 341, 343, 424, 512, 324, 511,32767, + 32767, 94, 418,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767, 427,32767,32767, 92,32767,32767, 92, + 174, 230, 232, 179,32767, 435,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767, 417, 362, 520,32767, 459, - 32767, 354, 355, 356,32767,32767, 459, 459, 459,32767, - 459,32767, 459, 459,32767,32767,32767,32767,32767, 179, - 32767,32767,32767,32767, 94, 432, 432, 92, 92, 92, - 92, 427,32767, 179, 179,32767,32767,32767,32767,32767, - 179, 91, 91, 91, 91, 179, 179, 91, 194,32767, - 192, 192, 91,32767, 93,32767, 93, 196,32767, 473, - 196, 91, 179, 91, 216, 216, 408, 181, 255, 93, - 255, 255, 93, 408, 255, 179, 255, 91, 91,32767, - 91, 255,32767,32767,32767, 85,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767, 418, 363, 521,32767, + 460,32767, 355, 356, 357,32767,32767, 460, 460, 460, + 32767, 460,32767, 460, 460,32767,32767,32767,32767,32767, + 179,32767,32767,32767,32767, 94, 433, 433, 92, 92, + 92, 92, 428,32767, 179, 179,32767,32767,32767,32767, + 32767, 179, 91, 91, 91, 91, 179, 179, 91, 194, + 32767, 192, 192, 91,32767, 93, 93,32767, 93, 196, + 32767, 474, 196, 91, 179, 91, 216, 216, 409, 181, + 255, 93, 255, 255, 93, 409, 255, 179, 255, 91, + 91,32767, 91, 255,32767,32767,32767, 85,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 419,32767, 439,32767, 452, 471,32767, 360, 361, 363, - 32767, 461, 385, 386, 387, 388, 389, 390, 391, 393, - 32767, 422,32767,32767,32767, 87, 121, 272,32767, 518, - 87, 420,32767, 518,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 87, 87,32767,32767,32767,32767, - 32767, 498,32767, 519,32767, 459, 421,32767, 359, 435, - 478,32767,32767, 460,32767,32767,32767, 245, 247,32767, - 87,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 439,32767,32767,32767,32767,32767,32767,32767, 459,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 459,32767,32767, 242,32767,32767, - 32767, 312,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767, 85, 60,32767, 292,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 136, 136, 3, 275, 3, 275, 136, 136, 136, 275, - 275, 136, 136, 136, 136, 136, 136, 136, 169, 224, - 227, 216, 216, 284, 136, 136 + 32767,32767, 420,32767, 440,32767, 453, 472,32767, 361, + 362, 364,32767, 462, 386, 387, 388, 389, 390, 391, + 392, 394,32767, 423,32767,32767,32767, 87, 121, 272, + 32767, 519, 87, 421,32767, 519,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767, 87, 87,32767,32767, + 32767,32767,32767, 499,32767, 520,32767, 460, 422,32767, + 360, 436, 479,32767,32767, 461,32767,32767,32767, 245, + 247,32767, 87,32767,32767,32767,32767,32767,32767,32767, + 32767,32767, 440,32767,32767,32767,32767,32767,32767,32767, + 460,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767, 460,32767,32767, 242, + 32767,32767,32767, 312,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767, 85, 60,32767, + 292,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767, 136, 136, 3, 275, 3, 275, 136, 136, + 136, 275, 275, 136, 136, 136, 136, 136, 136, 136, + 169, 224, 227, 216, 216, 284, 136, 136 ); protected $goto = array( - 171, 144, 144, 144, 171, 152, 153, 152, 155, 187, - 172, 168, 168, 168, 168, 169, 169, 169, 169, 169, - 169, 169, 164, 165, 166, 167, 184, 182, 185, 447, - 448, 336, 449, 452, 453, 454, 455, 456, 457, 458, - 459, 931, 141, 145, 146, 147, 170, 148, 149, 143, - 150, 151, 154, 181, 183, 186, 206, 209, 211, 212, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 244, 245, 266, 267, 268, 341, 342, 343, 498, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 156, 203, 157, 173, 174, - 175, 207, 176, 158, 159, 160, 177, 161, 208, 142, - 204, 162, 178, 205, 179, 180, 163, 567, 210, 465, - 210, 520, 520, 1045, 769, 1045, 1045, 1045, 1045, 1045, - 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 470, 470, - 470, 576, 702, 470, 500, 317, 321, 477, 501, 502, - 504, 299, 764, 485, 765, 470, 450, 450, 450, 729, - 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, - 450, 450, 450, 451, 451, 451, 703, 451, 451, 451, - 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, - 1121, 1121, 276, 729, 1136, 729, 491, 258, 491, 518, - 541, 499, 899, 579, 470, 470, 467, 561, 897, 1121, - 484, 510, 470, 470, 470, 331, 332, 738, 483, 549, - 906, 334, 690, 600, 527, 529, 296, 471, 542, 560, - 563, 839, 570, 578, 835, 907, 733, 721, 871, 496, - 497, 875, 514, 547, 720, 720, 814, 701, 564, 811, - 730, 730, 730, 732, 719, 844, 492, 804, 828, 809, - 809, 807, 809, 599, 1112, 462, 837, 832, 515, 867, - 1020, 914, 737, 1100, 1016, 509, 521, 523, 524, 572, - 705, 724, 525, 467, 718, 315, 537, 538, 1009, 791, - 543, 1010, 852, 857, 858, 489, 710, 847, 760, 755, - 756, 770, 979, 711, 757, 708, 758, 759, 709, 862, - 763, 803, 329, 575, 358, 348, 544, 352, 1089, 339, - 339, 282, 283, 285, 495, 346, 286, 347, 287, 350, - 528, 353, 1090, 1091, 1019, 1021, 3, 4, 319, 463, - 303, 534, 722, 725, 297, 476, 325, 300, 301, 872, - 486, 487, 604, 1024, 1022, 1076, 548, 854, 854, 854, - 854, 854, 854, 854, 1024, 854, 854, 407, 1017, 1012, - 876, 734, 854, 854, 854, 816, 400, 1120, 1120, 517, - 11, 1086, 1024, 1024, 1024, 1024, 461, 916, 1024, 1024, - 1095, 1095, 1086, 842, 842, 1107, 1120, 461, 1097, 1097, - 416, 0, 0, 777, 0, 0, 778, 0, 0, 0, - 0, 0, 0, 0, 1123, 805, 805, 805, 805, 1082, - 0, 799, 806, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 874, 0, 1084, 1084, 874, 0, 0, - 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 173, 146, 146, 146, 173, 154, 155, 154, 157, 189, + 174, 170, 170, 170, 170, 170, 171, 171, 171, 171, + 171, 171, 171, 166, 167, 168, 169, 186, 184, 187, + 449, 450, 337, 451, 454, 455, 456, 457, 458, 459, + 460, 461, 934, 143, 147, 148, 149, 172, 150, 151, + 145, 152, 153, 156, 183, 185, 188, 208, 211, 213, + 214, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 245, 246, 267, 268, 269, 342, 343, 344, + 500, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 158, 205, 159, 175, + 176, 177, 209, 178, 160, 161, 162, 179, 175, 163, + 210, 144, 206, 164, 180, 207, 181, 182, 165, 569, + 212, 467, 212, 522, 522, 1048, 771, 1048, 1048, 1048, + 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 578, + 472, 472, 472, 704, 502, 472, 318, 322, 479, 503, + 504, 506, 766, 300, 767, 487, 705, 472, 452, 452, + 452, 731, 452, 452, 452, 452, 452, 452, 452, 452, + 452, 452, 452, 452, 453, 453, 453, 692, 453, 453, + 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, + 511, 523, 525, 526, 574, 731, 493, 731, 493, 332, + 333, 740, 1023, 551, 527, 335, 472, 472, 539, 540, + 297, 1115, 486, 512, 472, 472, 472, 501, 901, 581, + 485, 520, 543, 563, 899, 602, 529, 531, 908, 473, + 544, 562, 565, 841, 572, 580, 837, 813, 735, 723, + 873, 498, 909, 877, 277, 494, 722, 722, 816, 259, + 703, 869, 732, 732, 732, 734, 721, 499, 846, 516, + 806, 830, 811, 811, 809, 811, 601, 1024, 464, 839, + 834, 923, 1103, 517, 916, 739, 316, 1019, 396, 1123, + 1123, 707, 1012, 793, 545, 1013, 726, 1025, 1079, 720, + 849, 1139, 982, 1124, 1124, 1093, 1094, 712, 1123, 762, + 757, 758, 772, 469, 713, 759, 710, 760, 761, 711, + 864, 765, 1124, 854, 859, 860, 1126, 3, 4, 349, + 546, 353, 359, 340, 283, 284, 286, 497, 347, 287, + 348, 288, 351, 530, 354, 805, 330, 577, 1092, 304, + 549, 320, 465, 536, 298, 566, 326, 724, 478, 301, + 302, 727, 874, 488, 489, 606, 1027, 550, 1015, 1020, + 856, 856, 856, 856, 856, 856, 856, 1027, 856, 856, + 736, 409, 878, 402, 818, 856, 856, 856, 918, 418, + 469, 519, 1089, 463, 11, 1027, 1027, 1027, 1027, 1098, + 1098, 1027, 1027, 1089, 463, 844, 844, 1110, 0, 1100, + 1100, 0, 0, 0, 0, 0, 779, 0, 0, 780, + 0, 0, 807, 807, 807, 807, 0, 0, 801, 808, + 1085, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1022, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 876, 0, 1087, 1087, 876, 484, 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, 464, 480, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 464, 0, - 480, 0, 0, 318, 0, 0, 468, 388, 0, 390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 728, 0, 1128 + 0, 0, 0, 0, 0, 0, 466, 482, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 466, 0, 482, + 0, 0, 319, 0, 0, 470, 389, 0, 391, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 730, 0, 0, 1131 ); protected $gotoCheck = array( @@ -665,86 +665,86 @@ class Php7 extends \PhpParser\ParserAbstract 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 63, 56, 10, - 56, 86, 86, 86, 13, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 10, 10, - 10, 8, 17, 10, 98, 49, 49, 49, 49, 49, - 49, 80, 55, 10, 55, 10, 136, 136, 136, 26, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 138, 138, 138, 18, 138, 138, 138, - 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, - 149, 149, 135, 26, 12, 26, 85, 135, 85, 46, - 46, 7, 7, 7, 10, 10, 12, 7, 7, 149, - 10, 10, 10, 10, 10, 69, 69, 36, 39, 69, - 112, 69, 5, 39, 39, 39, 69, 10, 39, 39, - 39, 39, 39, 39, 39, 112, 14, 14, 14, 10, - 2, 14, 2, 12, 26, 26, 14, 16, 12, 40, - 26, 26, 26, 26, 26, 14, 137, 14, 16, 16, - 16, 16, 16, 16, 147, 16, 16, 16, 15, 95, - 93, 14, 14, 144, 14, 68, 68, 68, 68, 68, - 13, 15, 73, 12, 15, 52, 73, 73, 67, 67, - 54, 67, 91, 91, 91, 53, 13, 88, 13, 13, - 13, 13, 119, 13, 13, 13, 13, 13, 13, 90, - 13, 76, 76, 76, 89, 56, 56, 56, 140, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 142, 142, 12, 93, 37, 37, 65, 65, - 20, 24, 28, 30, 11, 65, 19, 80, 80, 97, - 65, 65, 82, 63, 93, 93, 23, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 65, 128, 125, - 100, 32, 63, 63, 63, 79, 71, 148, 148, 72, - 65, 98, 63, 63, 63, 63, 75, 115, 63, 63, - 8, 8, 98, 85, 85, 85, 148, 75, 98, 98, - 123, -1, -1, 63, -1, -1, 63, -1, -1, -1, - -1, -1, -1, -1, 148, 75, 75, 75, 75, 98, - -1, 75, 75, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 98, -1, 98, 98, 98, -1, -1, - 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 63, + 56, 10, 56, 86, 86, 86, 13, 86, 86, 86, + 86, 86, 86, 86, 86, 86, 86, 86, 86, 8, + 10, 10, 10, 17, 98, 10, 49, 49, 49, 49, + 49, 49, 55, 80, 55, 10, 18, 10, 137, 137, + 137, 26, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 139, 139, 139, 5, 139, 139, + 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, + 68, 68, 68, 68, 68, 26, 85, 26, 85, 69, + 69, 36, 93, 69, 73, 69, 10, 10, 73, 73, + 69, 148, 10, 10, 10, 10, 10, 7, 7, 7, + 39, 46, 46, 7, 7, 39, 39, 39, 112, 10, + 39, 39, 39, 39, 39, 39, 39, 40, 14, 14, + 14, 10, 112, 14, 136, 138, 26, 26, 14, 136, + 16, 95, 26, 26, 26, 26, 26, 2, 14, 2, + 14, 16, 16, 16, 16, 16, 16, 93, 16, 16, + 16, 15, 145, 15, 14, 14, 52, 14, 117, 149, + 149, 13, 67, 67, 54, 67, 15, 93, 93, 15, + 88, 12, 120, 150, 150, 143, 143, 13, 149, 13, + 13, 13, 13, 12, 13, 13, 13, 13, 13, 13, + 90, 13, 150, 91, 91, 91, 149, 37, 37, 56, + 56, 56, 89, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 76, 76, 76, 141, 20, + 12, 65, 65, 24, 11, 12, 19, 28, 65, 80, + 80, 30, 97, 65, 65, 82, 63, 23, 126, 129, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 32, 65, 100, 71, 79, 63, 63, 63, 115, 124, + 12, 72, 98, 75, 65, 63, 63, 63, 63, 8, + 8, 63, 63, 98, 75, 85, 85, 85, -1, 98, + 98, -1, -1, -1, -1, -1, 63, -1, -1, 63, + -1, -1, 75, 75, 75, 75, -1, -1, 75, 75, + 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 98, -1, 98, 98, 98, 8, -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, 8, 8, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, - 8, -1, -1, 8, -1, -1, 8, 8, -1, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 8, -1, 8 + -1, -1, -1, -1, -1, -1, 8, 8, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 8, -1, 8, + -1, -1, 8, -1, -1, 8, 8, -1, 8, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 8, -1, -1, 8 ); protected $gotoBase = array( - 0, 0, -342, 0, 0, 212, 0, 196, 131, 0, - -150, 51, -85, -17, -146, -128, 245, 140, 174, 43, - 71, 0, 0, 1, 52, 0, -110, 0, 37, 0, - 53, 0, 4, -23, 0, 0, 208, -268, 0, -363, - 230, 0, 0, 0, 0, 0, 164, 0, 0, 106, - 0, 0, 248, 65, 64, 137, 90, 0, 0, 0, - 0, 0, 0, 111, 0, -35, 0, -43, 28, -195, - 0, -15, -21, -303, 0, 144, 39, 0, 0, 6, - -254, 0, 22, 0, 0, 168, -104, 0, 45, 59, - 55, 31, 0, -44, 0, 242, 0, 41, 139, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -8, 0, 0, 17, 0, 0, 0, 49, - 0, 0, 0, -13, 0, 3, 0, 0, 9, 0, - 0, 0, 0, 0, 0, -78, -69, 231, -52, 0, - 58, 0, 26, 0, 243, 0, 0, 238, 120, -67, - 0, 0 + 0, 0, -327, 0, 0, 167, 0, 212, 129, 0, + -149, 50, 11, -17, -145, -125, 248, 141, 154, 42, + 69, 0, 0, 1, 53, 0, -109, 0, 41, 0, + 60, 0, 2, -23, 0, 0, 192, -289, 0, -363, + 218, 0, 0, 0, 0, 0, 186, 0, 0, 106, + 0, 0, 239, 0, 56, 137, 92, 0, 0, 0, + 0, 0, 0, 113, 0, -33, 0, -50, -58, -213, + 0, -19, -21, -383, 0, 140, 62, 0, 0, 4, + -254, 0, 24, 0, 0, 168, -104, 0, 37, 66, + 55, 51, 0, -113, 0, 224, 0, 43, 139, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -2, 0, 0, 7, 0, 240, 0, 0, + 38, 0, 0, 0, -36, 0, -9, 0, 0, -1, + 0, 0, 0, 0, 0, 0, -27, -69, 220, -53, + 0, 77, 0, -12, 0, 242, 0, 0, 185, 21, + 35, 0, 0 ); protected $gotoDefault = array( - -32768, 422, 607, 2, 608, 680, 688, 552, 439, 577, - 440, 466, 337, 762, 920, 782, 744, 745, 746, 322, - 363, 313, 320, 535, 522, 412, 731, 383, 723, 409, - 726, 382, 735, 140, 553, 418, 739, 1, 741, 472, - 773, 310, 749, 311, 556, 751, 479, 753, 754, 316, - 323, 324, 924, 488, 519, 766, 213, 481, 767, 309, - 768, 776, 333, 314, 394, 419, 328, 901, 506, 531, - 378, 397, 516, 511, 490, 1031, 801, 403, 392, 815, - 298, 823, 605, 831, 834, 441, 442, 401, 846, 402, - 860, 507, 508, 1039, 396, 866, 384, 873, 1071, 387, - 877, 228, 880, 255, 550, 351, 885, 886, 6, 891, - 568, 569, 7, 243, 417, 915, 551, 381, 930, 366, - 998, 1000, 474, 410, 1013, 391, 559, 420, 1018, 1075, - 379, 443, 398, 284, 302, 257, 444, 460, 264, 445, - 399, 1078, 1085, 340, 1101, 281, 26, 1113, 1122, 294, - 494, 513 + -32768, 424, 609, 2, 610, 682, 690, 554, 441, 579, + 442, 468, 338, 764, 922, 784, 746, 747, 748, 323, + 364, 314, 321, 537, 524, 414, 733, 384, 725, 411, + 728, 383, 737, 142, 555, 420, 741, 1, 743, 474, + 775, 311, 751, 312, 558, 753, 481, 755, 756, 317, + 324, 325, 927, 490, 521, 768, 215, 483, 769, 310, + 770, 778, 334, 315, 395, 421, 329, 903, 508, 533, + 379, 399, 518, 513, 492, 1034, 803, 405, 393, 817, + 299, 825, 607, 833, 836, 443, 444, 403, 848, 404, + 862, 509, 510, 1042, 398, 868, 385, 875, 1074, 388, + 879, 230, 882, 256, 552, 352, 887, 888, 6, 893, + 570, 571, 7, 244, 419, 917, 553, 382, 491, 933, + 367, 1001, 1003, 476, 412, 1016, 392, 561, 422, 1021, + 1078, 380, 445, 400, 285, 303, 258, 446, 462, 265, + 447, 401, 1081, 1088, 341, 1104, 282, 26, 1116, 1125, + 295, 496, 515 ); protected $ruleToNonTerminal = array( @@ -779,7 +779,7 @@ class Php7 extends \PhpParser\ParserAbstract 102, 102, 107, 107, 108, 108, 109, 109, 109, 109, 109, 110, 111, 111, 106, 106, 103, 103, 105, 105, 113, 113, 112, 112, 112, 112, 112, 112, 104, 114, - 114, 116, 115, 115, 52, 117, 117, 46, 46, 33, + 114, 116, 115, 115, 52, 118, 117, 117, 46, 46, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, @@ -788,20 +788,20 @@ class Php7 extends \PhpParser\ParserAbstract 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 124, 118, 118, 123, 123, - 126, 127, 127, 128, 129, 129, 129, 75, 75, 63, - 63, 63, 119, 119, 119, 131, 131, 120, 120, 122, - 122, 122, 125, 125, 136, 136, 136, 86, 138, 138, - 138, 121, 121, 121, 121, 121, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 121, 49, 49, 134, - 134, 134, 130, 130, 130, 139, 139, 139, 139, 139, - 139, 56, 56, 56, 98, 98, 98, 98, 142, 141, - 133, 133, 133, 133, 133, 133, 132, 132, 132, 140, - 140, 140, 140, 85, 143, 143, 144, 144, 144, 144, - 144, 144, 144, 137, 146, 146, 145, 145, 147, 147, - 147, 147, 147, 147, 135, 135, 135, 135, 149, 150, - 148, 148, 148, 148, 148, 148, 148, 151, 151, 151, - 151 + 33, 33, 33, 33, 33, 33, 125, 119, 119, 124, + 124, 127, 128, 128, 129, 130, 130, 130, 75, 75, + 63, 63, 63, 120, 120, 120, 132, 132, 121, 121, + 123, 123, 123, 126, 126, 137, 137, 137, 86, 139, + 139, 139, 122, 122, 122, 122, 122, 122, 122, 122, + 122, 122, 122, 122, 122, 122, 122, 122, 49, 49, + 135, 135, 135, 131, 131, 131, 140, 140, 140, 140, + 140, 140, 56, 56, 56, 98, 98, 98, 98, 143, + 142, 134, 134, 134, 134, 134, 134, 133, 133, 133, + 141, 141, 141, 141, 85, 144, 144, 145, 145, 145, + 145, 145, 145, 145, 138, 147, 147, 146, 146, 148, + 148, 148, 148, 148, 148, 136, 136, 136, 136, 150, + 151, 149, 149, 149, 149, 149, 149, 149, 152, 152, + 152, 152 ); protected $ruleToLength = array( @@ -836,29 +836,29 @@ class Php7 extends \PhpParser\ParserAbstract 3, 1, 1, 3, 0, 2, 4, 5, 4, 4, 4, 3, 1, 1, 1, 1, 1, 1, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, - 3, 1, 1, 3, 2, 3, 1, 0, 1, 1, - 3, 3, 3, 4, 1, 2, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, - 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, + 3, 1, 1, 3, 2, 2, 3, 1, 0, 1, + 1, 3, 3, 3, 4, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 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, 8, 9, 8, 9, 7, 3, 2, 0, 4, - 2, 1, 3, 2, 2, 2, 4, 1, 1, 1, - 2, 3, 1, 1, 1, 1, 1, 0, 3, 0, - 1, 1, 0, 1, 1, 3, 3, 3, 4, 1, + 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, 8, 9, 8, 9, 7, 3, 2, 0, + 4, 2, 1, 3, 2, 2, 2, 4, 1, 1, + 1, 2, 3, 1, 1, 1, 1, 1, 0, 3, + 0, 1, 1, 0, 1, 1, 3, 3, 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 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, 1, 3, - 1, 4, 4, 3, 3, 3, 1, 3, 1, 1, - 3, 1, 1, 4, 3, 1, 1, 2, 1, 3, - 4, 3, 0, 1, 1, 1, 3, 1, 3, 1, - 4, 2, 2, 0, 2, 2, 1, 2, 1, 1, - 1, 4, 3, 3, 3, 6, 3, 1, 1, 2, - 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, 1, + 3, 1, 4, 4, 3, 3, 3, 1, 3, 1, + 1, 3, 1, 1, 4, 3, 1, 1, 2, 1, + 3, 4, 3, 0, 1, 1, 1, 3, 1, 3, + 1, 4, 2, 2, 0, 2, 2, 1, 2, 1, + 1, 1, 4, 3, 3, 3, 6, 3, 1, 1, + 2, 1 ); protected function initReduceCallbacks() { @@ -1830,22 +1830,22 @@ class Php7 extends \PhpParser\ParserAbstract $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 315 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 316 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 317 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 318 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = array(); }, 319 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 320 => function ($stackPos) { - $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 321 => function ($stackPos) { $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); @@ -1854,445 +1854,445 @@ class Php7 extends \PhpParser\ParserAbstract $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 323 => function ($stackPos) { - $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 324 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 325 => function ($stackPos) { - $this->semValue = new Expr\Clone_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 326 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\Clone_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 327 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 328 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 329 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 330 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 331 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 332 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 333 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 334 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 335 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 336 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 337 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 338 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 339 => function ($stackPos) { - $this->semValue = new Expr\PostInc($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 340 => function ($stackPos) { - $this->semValue = new Expr\PreInc($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\PostInc($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 341 => function ($stackPos) { - $this->semValue = new Expr\PostDec($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\PreInc($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 342 => function ($stackPos) { - $this->semValue = new Expr\PreDec($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\PostDec($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 343 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\PreDec($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 344 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 345 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 346 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 347 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 348 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 349 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 350 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 351 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 352 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 353 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 354 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 355 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 356 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 357 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 358 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 359 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 360 => function ($stackPos) { - $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 361 => function ($stackPos) { - $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 362 => function ($stackPos) { - $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 363 => function ($stackPos) { - $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 364 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 365 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 366 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 367 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 368 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 369 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 370 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 371 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 372 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 373 => function ($stackPos) { - $this->semValue = new Expr\Instanceof_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 374 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = new Expr\Instanceof_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 375 => function ($stackPos) { - $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 376 => function ($stackPos) { - $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, 377 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 378 => function ($stackPos) { - $this->semValue = new Expr\Isset_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 379 => function ($stackPos) { - $this->semValue = new Expr\Empty_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Isset_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 380 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Empty_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 381 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 382 => function ($stackPos) { - $this->semValue = new Expr\Eval_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 383 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Eval_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 384 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 385 => function ($stackPos) { - $this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 386 => function ($stackPos) { + $this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 387 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; $attrs['kind'] = $this->getFloatCastKind($this->semStack[$stackPos-(2-1)]); $this->semValue = new Expr\Cast\Double($this->semStack[$stackPos-(2-2)], $attrs); }, - 387 => function ($stackPos) { + 388 => function ($stackPos) { $this->semValue = new Expr\Cast\String_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 388 => function ($stackPos) { + 389 => function ($stackPos) { $this->semValue = new Expr\Cast\Array_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 389 => function ($stackPos) { + 390 => function ($stackPos) { $this->semValue = new Expr\Cast\Object_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 390 => function ($stackPos) { + 391 => function ($stackPos) { $this->semValue = new Expr\Cast\Bool_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 391 => function ($stackPos) { + 392 => function ($stackPos) { $this->semValue = new Expr\Cast\Unset_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 392 => function ($stackPos) { + 393 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; $attrs['kind'] = strtolower($this->semStack[$stackPos-(2-1)]) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE; $this->semValue = new Expr\Exit_($this->semStack[$stackPos-(2-2)], $attrs); }, - 393 => function ($stackPos) { + 394 => function ($stackPos) { $this->semValue = new Expr\ErrorSuppress($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 394 => function ($stackPos) { + 395 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 395 => function ($stackPos) { + 396 => function ($stackPos) { $this->semValue = new Expr\ShellExec($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 396 => function ($stackPos) { + 397 => function ($stackPos) { $this->semValue = new Expr\Print_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 397 => function ($stackPos) { + 398 => function ($stackPos) { $this->semValue = new Expr\Yield_(null, null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 398 => function ($stackPos) { + 399 => function ($stackPos) { $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(2-2)], null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 399 => function ($stackPos) { + 400 => function ($stackPos) { $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 400 => function ($stackPos) { + 401 => function ($stackPos) { $this->semValue = new Expr\YieldFrom($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 401 => function ($stackPos) { + 402 => function ($stackPos) { $this->semValue = new Expr\ArrowFunction(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'returnType' => $this->semStack[$stackPos-(8-6)], 'expr' => $this->semStack[$stackPos-(8-8)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); }, - 402 => function ($stackPos) { + 403 => function ($stackPos) { $this->semValue = new Expr\ArrowFunction(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'returnType' => $this->semStack[$stackPos-(9-7)], 'expr' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 403 => function ($stackPos) { + 404 => function ($stackPos) { $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'uses' => $this->semStack[$stackPos-(8-6)], 'returnType' => $this->semStack[$stackPos-(8-7)], 'stmts' => $this->semStack[$stackPos-(8-8)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); }, - 404 => function ($stackPos) { + 405 => function ($stackPos) { $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'uses' => $this->semStack[$stackPos-(9-7)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 405 => function ($stackPos) { + 406 => function ($stackPos) { $this->semValue = array(new Stmt\Class_(null, ['type' => 0, 'extends' => $this->semStack[$stackPos-(7-3)], 'implements' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes), $this->semStack[$stackPos-(7-2)]); $this->checkClass($this->semValue[0], -1); }, - 406 => function ($stackPos) { + 407 => function ($stackPos) { $this->semValue = new Expr\New_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 407 => function ($stackPos) { + 408 => function ($stackPos) { list($class, $ctorArgs) = $this->semStack[$stackPos-(2-2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 408 => function ($stackPos) { + 409 => function ($stackPos) { $this->semValue = array(); }, - 409 => function ($stackPos) { + 410 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(4-3)]; }, - 410 => function ($stackPos) { + 411 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 411 => function ($stackPos) { + 412 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, - 412 => function ($stackPos) { + 413 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, - 413 => function ($stackPos) { - $this->semValue = new Expr\ClosureUse($this->semStack[$stackPos-(2-2)], $this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); - }, 414 => function ($stackPos) { - $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\ClosureUse($this->semStack[$stackPos-(2-2)], $this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 415 => function ($stackPos) { $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 416 => function ($stackPos) { - $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 417 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 418 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 419 => function ($stackPos) { $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, + 419 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, 420 => function ($stackPos) { - $this->semValue = new Name\FullyQualified($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 421 => function ($stackPos) { - $this->semValue = new Name\Relative($this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Name\FullyQualified($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 422 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Name\Relative($this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 423 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 424 => function ($stackPos) { - $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 425 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; }, 426 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 427 => function ($stackPos) { - $this->semValue = null; - }, - 428 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 429 => function ($stackPos) { - $this->semValue = array(); - }, - 430 => function ($stackPos) { - $this->semValue = array(new Scalar\EncapsedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos-(1-1)], '`'), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes)); - }, - 431 => function ($stackPos) { - foreach ($this->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', true); } }; $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 432 => function ($stackPos) { - $this->semValue = array(); - }, - 433 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, + 428 => function ($stackPos) { + $this->semValue = null; + }, + 429 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 430 => function ($stackPos) { + $this->semValue = array(); + }, + 431 => function ($stackPos) { + $this->semValue = array(new Scalar\EncapsedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos-(1-1)], '`'), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes)); + }, + 432 => function ($stackPos) { + foreach ($this->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', true); } }; $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 433 => function ($stackPos) { + $this->semValue = array(); + }, 434 => function ($stackPos) { - $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 435 => function ($stackPos) { - $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 436 => function ($stackPos) { - $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], new Expr\Error($this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)]), $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->errorState = 2; + $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 437 => function ($stackPos) { + $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], new Expr\Error($this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)]), $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->errorState = 2; + }, + 438 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_SHORT; $this->semValue = new Expr\Array_($this->semStack[$stackPos-(3-2)], $attrs); }, - 438 => function ($stackPos) { + 439 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_LONG; $this->semValue = new Expr\Array_($this->semStack[$stackPos-(4-3)], $attrs); }, - 439 => function ($stackPos) { + 440 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 440 => function ($stackPos) { + 441 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes; $attrs['kind'] = ($this->semStack[$stackPos-(1-1)][0] === "'" || ($this->semStack[$stackPos-(1-1)][1] === "'" && ($this->semStack[$stackPos-(1-1)][0] === 'b' || $this->semStack[$stackPos-(1-1)][0] === 'B')) ? Scalar\String_::KIND_SINGLE_QUOTED : Scalar\String_::KIND_DOUBLE_QUOTED); $this->semValue = new Scalar\String_(Scalar\String_::parse($this->semStack[$stackPos-(1-1)]), $attrs); }, - 441 => function ($stackPos) { + 442 => function ($stackPos) { $this->semValue = $this->parseLNumber($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 442 => function ($stackPos) { + 443 => function ($stackPos) { $this->semValue = new Scalar\DNumber(Scalar\DNumber::parse($this->semStack[$stackPos-(1-1)]), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 443 => function ($stackPos) { + 444 => function ($stackPos) { $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 444 => function ($stackPos) { + 445 => function ($stackPos) { $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 445 => function ($stackPos) { + 446 => function ($stackPos) { $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 446 => function ($stackPos) { + 447 => function ($stackPos) { $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 447 => function ($stackPos) { + 448 => function ($stackPos) { $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 448 => function ($stackPos) { + 449 => function ($stackPos) { $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 449 => function ($stackPos) { + 450 => function ($stackPos) { $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 450 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, 451 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 452 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 453 => function ($stackPos) { - $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 454 => function ($stackPos) { - $this->semValue = $this->parseDocString($this->semStack[$stackPos-(2-1)], '', $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(2-2)] + $this->endAttributeStack[$stackPos-(2-2)], true); + $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true); }, 455 => function ($stackPos) { + $this->semValue = $this->parseDocString($this->semStack[$stackPos-(2-1)], '', $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(2-2)] + $this->endAttributeStack[$stackPos-(2-2)], true); + }, + 456 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; foreach ($this->semStack[$stackPos-(3-2)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '"', true); } }; $this->semValue = new Scalar\Encapsed($this->semStack[$stackPos-(3-2)], $attrs); }, - 456 => function ($stackPos) { + 457 => function ($stackPos) { $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true); }, - 457 => function ($stackPos) { - $this->semValue = null; - }, 458 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = null; }, 459 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 460 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 461 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 462 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 463 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 464 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, + 464 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, 465 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 466 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 467 => function ($stackPos) { $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); @@ -2301,189 +2301,192 @@ class Php7 extends \PhpParser\ParserAbstract $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 469 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 470 => function ($stackPos) { - $this->semValue = new Expr\MethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 471 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\MethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 472 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 473 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 474 => function ($stackPos) { - $this->semValue = substr($this->semStack[$stackPos-(1-1)], 1); + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 475 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-3)]; + $this->semValue = substr($this->semStack[$stackPos-(1-1)], 1); }, 476 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(4-3)]; }, 477 => function ($stackPos) { - $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); $this->errorState = 2; + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 478 => function ($stackPos) { - $var = $this->semStack[$stackPos-(1-1)]; $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes) : $var; + $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); $this->errorState = 2; }, 479 => function ($stackPos) { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $var = $this->semStack[$stackPos-(1-1)]; $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes) : $var; }, 480 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 481 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 482 => function ($stackPos) { $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 483 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 484 => function ($stackPos) { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 485 => function ($stackPos) { $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 486 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 487 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 488 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 489 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 490 => function ($stackPos) { + 488 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(3-2)]; }, - 491 => function ($stackPos) { + 489 => function ($stackPos) { $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, + 490 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 491 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, 492 => function ($stackPos) { - $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 493 => function ($stackPos) { - $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; }, 494 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 495 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 496 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 497 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); - }, - 498 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 499 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, - 500 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); - }, - 501 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, - 502 => function ($stackPos) { - $this->semValue = null; - }, - 503 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; $end = count($this->semValue)-1; if ($this->semValue[$end] === null) array_pop($this->semValue); - }, - 504 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos]; - }, - 505 => function ($stackPos) { - /* do nothing -- prevent default action of $$=$this->semStack[$1]. See $551. */ - }, - 506 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, - 507 => function ($stackPos) { + 496 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, - 508 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, - 509 => function ($stackPos) { + 497 => function ($stackPos) { $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 510 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); - }, - 511 => function ($stackPos) { + 498 => function ($stackPos) { $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 512 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + 499 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 513 => function ($stackPos) { + 500 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 501 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 502 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 503 => function ($stackPos) { $this->semValue = null; }, + 504 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; $end = count($this->semValue)-1; if ($this->semValue[$end] === null) array_pop($this->semValue); + }, + 505 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 506 => function ($stackPos) { + /* do nothing -- prevent default action of $$=$this->semStack[$1]. See $551. */ + }, + 507 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 508 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 509 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 510 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 511 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 512 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 513 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, 514 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = null; }, 515 => function ($stackPos) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 516 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 517 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 518 => function ($stackPos) { - $this->semValue = new Scalar\EncapsedStringPart($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); }, 519 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\EncapsedStringPart($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 520 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 521 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 522 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 523 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 524 => function ($stackPos) { $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 525 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-4)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 526 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-4)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); }, 527 => function ($stackPos) { - $this->semValue = new Scalar\String_($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 528 => function ($stackPos) { - $this->semValue = $this->parseNumString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\String_($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 529 => function ($stackPos) { - $this->semValue = $this->parseNumString('-' . $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = $this->parseNumString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 530 => function ($stackPos) { + $this->semValue = $this->parseNumString('-' . $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 531 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, ]; diff --git a/test/code/parser/expr/exprInIsset.test b/test/code/parser/expr/exprInIsset.test new file mode 100644 index 00000000..299ef1f9 --- /dev/null +++ b/test/code/parser/expr/exprInIsset.test @@ -0,0 +1,49 @@ +Expressions in isset() +----- +