From d86ca0f745b47efcf8d7cc1cfc69c55e78fd0b90 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Sat, 22 Feb 2020 21:09:03 +0100 Subject: [PATCH] Support arbitrary expressions in new/instanceof --- grammar/php7.y | 1 + lib/PhpParser/Parser/Php7.php | 1060 +++++++++-------- .../parser/expr/uvs/newInstanceofExpr.test | 61 + 3 files changed, 594 insertions(+), 528 deletions(-) create mode 100644 test/code/parser/expr/uvs/newInstanceofExpr.test diff --git a/grammar/php7.y b/grammar/php7.y index a6d1d9f..a90c969 100644 --- a/grammar/php7.y +++ b/grammar/php7.y @@ -804,6 +804,7 @@ name: class_name_reference: class_name { $$ = $1; } | new_variable { $$ = $1; } + | '(' expr ')' { $$ = $2; } | error { $$ = Expr\Error[]; $this->errorState = 2; } ; diff --git a/lib/PhpParser/Parser/Php7.php b/lib/PhpParser/Parser/Php7.php index 608bd52..db988a4 100644 --- a/lib/PhpParser/Parser/Php7.php +++ b/lib/PhpParser/Parser/Php7.php @@ -18,16 +18,16 @@ use PhpParser\Node\Stmt; class Php7 extends \PhpParser\ParserAbstract { protected $tokenToSymbolMapSize = 394; - protected $actionTableSize = 942; - protected $gotoTableSize = 499; + protected $actionTableSize = 939; + protected $gotoTableSize = 502; protected $invalidSymbol = 159; protected $errorSymbol = 1; protected $defaultAction = -32766; protected $unexpectedTokenRule = 32767; - protected $YY2TBLSTATE = 345; - protected $numNonLeafStates = 599; + protected $YY2TBLSTATE = 347; + protected $numNonLeafStates = 601; protected $symbolToName = array( "EOF", @@ -235,101 +235,100 @@ class Php7 extends \PhpParser\ParserAbstract ); protected $action = array( - 604, 605, 606, 607, 608, 1080, 609, 610, 611, 647, - 648,-32766,-32766,-32766,-32767,-32767,-32767,-32767, 93, 94, - 95, 96, 97, 682,-32766,-32766,-32766, -219, -219, -219, - -32766,-32766,-32766, 366,-32766,-32766,-32766,-32766,-32766,-32766, - -32767,-32767,-32767,-32767,-32767, 426, 427, 904, 905, 906, - 903, 902, 901, 612, 740, 788, 368, 369, 0, 904, - 905, 906, 903, 902, 901, 532, 21, 613, 614, 615, - 616, 617, 618, 619, 783, 398, 680, 95, 96, 97, - 767, 843, -219, 620, 621, 622, 623, 624, 625, 626, - 627, 628, 629, 630, 650, 651, 652, 653, 654, 642, - 643, 644, 672, 645, 646, 631, 632, 633, 634, 635, - 636, 637, 674, 675, 676, 677, 678, 679, 638, 639, - 640, 641, 671, 662, 660, 661, 657, 658, -263, 649, - 655, 656, 663, 664, 666, 665, 667, 668, 273, 75, - 76, 77, 9, 659, 670, 669, 765, 44, 45, 417, - 46, 47, 689, 28, 1044, 74, 48, 49, 819, 50, - 30, 120, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 211, 247, 558, -463,-32766, - 705, 255, 706, 51, 52, 1024, 399, 579, 101, 53, - 389, 54, 216, 217, 55, 56, 57, 58, 59, 60, - 61, 62, 1095, 24, 236, 63, 364, 418,-32766,-32766, - -32766, 1050, 1051, 419, 586, 1077, 129, 754,-32766, 1048, - 36, 20, 420, 1077, 421, 353, 422, -178, 423,-32766, - 505, 424, 547, 548, -177, 38, 39, 365, 373, 367, - -463, 40, 425, -466, 559, 64, 1024, 370, 301, 286, - 133, 882, 687, 221, -463, 1114, 428, 429, 430, 1123, - 223, -463, 1124, -469, 1077, -263, 431, 432, 820, 1038, - 1039, 1040, 1041, 1035, 1036, 250, 246,-32766, 580, 682, - 440, 1042, 1037, 370, 848, 849, 573, 42, 65,-32766, - 264, 688, 269, 274, 125, 684, 272, 880, 1017,-32766, - 856, 274,-32766,-32766,-32766, -466,-32766, 767,-32766, 358, - -32766, -462, 218,-32766, 29, 219, -234,-32766,-32766,-32766, - -32766,-32766,-32766,-32766,-32766, 1077, -466,-32766, 255,-32766, - -32766, 332,-32766,-32766,-32766, 98, 99, 100,-32766, 247, - 1077,-32766, 274,-32766,-32766,-32766,-32766,-32766,-32766, 253, - -464, 101, 126,-32766, 684,-32766,-32766,-32766,-32766, 1017, - 285,-32766,-32766,-32766, 221,-32766, 124,-32766,-32766,-32766, - 117, 857,-32766, -462, -178,-32766,-32766,-32766,-32766, 255, - 684, -177,-32766,-32766, 302, 581,-32766, -462, 255,-32766, - 332, 584, 498, 463, -462, 588, -468,-32766, 767, -298, - -32766, -298, -461, 274, 305, 1099, 684, 267, 378, 379, - -32766, 1098, -464,-32766,-32766,-32766, 896,-32766, 274,-32766, - 382,-32766,-32766, 575,-32766, 68, -464,-32766,-32766,-32766, - -32766, 848, 849, -464,-32766,-32766, 309, -498,-32766, -498, - 357,-32766, 332, -299, 360, -299,-32766, 440, -276,-32766, - 370, 1056, 684, 486, 43,-32766,-32766, 220, 361,-32766, - -32766,-32766, 362,-32766, -461,-32766, 409,-32766, 8, 705, - -32766, 706, 525, 526,-32766,-32766,-32766, 124, -461,-32766, - -32766,-32766, 848, 849,-32766, -461, 210,-32766, 332, 363, - 222, 848, 849,-32766, 136,-32766,-32766,-32766,-32766, 684, - 32, 118, -83,-32766, -239, 805,-32766,-32766,-32766,-32766, - -32766, 767,-32766, -92,-32766, 767, 254,-32766, 132, 327, - 115,-32766,-32766,-32766, 116,-32766,-32766,-32766,-32766, 121, - 304,-32766, 684, 122,-32766, 332,-32766, 119, 123,-32766, - -32766,-32766,-32766,-32766, 128,-32766, 135,-32766, 137,-32766, - -32766, 848, 849, 138,-32766,-32766,-32766, 881, 596, 256, - -32766,-32766, 248, 779,-32766, 587, 590,-32766, 332, 764, - 131, 257,-32766, 101, 247,-32766, 290, 555, 130, 684, - -32766, 682, 685,-32766, 472, 567, 684, 687, 550, -81, - -32766, 910, 538,-32766,-32766,-32766, 1125,-32766, 268,-32766, - 467,-32766, 523, 1017,-32766,-32766, 265, 10,-32766,-32766, - -32766, 533, 271, 539,-32766,-32766, 386, 551,-32766, 224, - -32766,-32766, 332, -427, 789, 335, 684, -419, 340,-32766, - -32766, 1055, 1045,-32766,-32766,-32766, 5,-32766, 790,-32766, - -431,-32766, 781, 0,-32766, 0, 0, 0,-32766,-32766, - -32766, 24, 0, 266,-32766,-32766, 0, 0,-32766,-32766, - 0,-32766, 332, 1077, 0, 0, 12, 1048, 0,-32766, - 31, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 1057, 303, 24, -4, -237, 0, - 0, 0, 341, 344, 382, 469, 0, 1017, 1077,-32766, - 354, 355, 1048,-32766,-32766,-32766, 34, 35, 594, 595, - 745, 822, 939, 941, 431, 432, 806, 1038, 1039, 1040, - 1041, 1035, 1036, -461,-32766, 813,-32766,-32766, 876, 1042, - 1037, 877, 1017, 574, 803, 814, 67,-32766,-32766,-32766, - 269, 274, 743, 801, 885, 888, 889, 886, 887, 767, - 432, 893, 1038, 1039, 1040, 1041, 1035, 1036,-32766, 576, - -32766,-32766,-32766,-32766, 1042, 1037, 578, -137, -137, -137, - 582, 67, 583, 585, 589, 269, 274, 283, 284, 347, - 348, 577, -137, 591, -137, -461, -137, 741, -137, 1120, - 366, 1122, 349, 700, 787, 699, 709, 366, 263, -461, - 786, 710, 426, 427, 707, 1121, -461, -492, 785, 426, - 427, 697, 788, 368, 369, 1005, 708, 774, 740, 788, - 368, 369, -218, -218, -218, 782, 772, 811, 366, 812, - 1119, 1078, 288,-32766,-32766,-32766, 1071, 767, 1085, -4, - 426, 427, 1090, 1093, 767, -490, -137, -235, 0, 740, - 788, 368, 369, -469,-32766, -468,-32766,-32766,-32766,-32766, - -32766,-32766, -467, 23, 25, 26, 33, 37, 41, 66, - 69, 70, 71, 72, 73, 767, 127, -218, -234, 134, - 139, 215, 0, 240, 241, 242, 243, 244, 245, 287, - 350, 352, 0, 14, 15, 16, 17, 19, 324, 400, - 402, 405, 407, 408, 415, 564, 1028, 978, 1046, 858, - 1009, -92, 13, 18, 22, 259, 323, 495, 519, 566, - 982, 979, 1096, 0, 995, 0, 1070, 1084, 1117, 529, - 0, 1049 + 606, 607, 608, 609, 610, 1083, 611, 612, 613, 649, + 650,-32766,-32766,-32766,-32767,-32767,-32767,-32767, 94, 95, + 96, 97, 98, 684,-32766,-32766,-32766, -219, -219, -219, + -32766,-32766,-32766, 368,-32766,-32766,-32766,-32766,-32766,-32766, + -32767,-32767,-32767,-32767,-32767, 428, 429, 906, 907, 908, + 905, 904, 903, 614, 742, 790, 370, 371, 845, 906, + 907, 908, 905, 904, 903, -263, 0, 615, 616, 617, + 618, 619, 620, 621, 9, 400, 682, 96, 97, 98, + 769, 28, -219, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 652, 653, 654, 655, 656, 644, + 645, 646, 674, 647, 648, 633, 634, 635, 636, 637, + 638, 639, 676, 677, 678, 679, 680, 681, 640, 641, + 642, 643, 673, 664, 662, 663, 659, 660, 275, 651, + 657, 658, 665, 666, 668, 667, 669, 670, 785, 76, + 77, 78, -178, 661, 672, 671, 767, 44, 45, 419, + 46, 47, 691, 257, 1047, 75, 48, 49, 1027, 50, + 30, 257, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 1098, 239,-32766,-32766,-32766, + 391, 257, 119, 51, 52, 1027, 401, 821, 102, 53, + 121, 54, 218, 219, 55, 56, 57, 58, 59, 60, + 61, 62, -263, 24, 238, 63, 366, 420,-32766,-32766, + -32766, 1053, 1054, 421, 707, 1080, 708, 756,-32766, 1051, + 36, 20, 422, 1080, 423, 130, 424, 1080, 425,-32766, + 225, 426, 581, -177, 249, 38, 39, 367, 375, 369, + 582, 40, 427, 213, 274, 64, 850, 851, 303, 288, + 534, 21, 684, 223, 850, 851, 430, 431, 432, 355, + 384, 1019, 1080, 577, 1080, 583, 433, 434, -239, 1041, + 1042, 1043, 1044, 1038, 1039, 252, -92,-32766, 588, -178, + 442, 1045, 1040, 372, 850, 851, 575, 287, 65,-32766, + 266, 690, 271, 276, 126, 686, 304, 882, 1019,-32766, + 69, 276,-32766,-32766,-32766, 276,-32766, 822,-32766, 360, + -32766, -464, 220,-32766, -299, 307, -299,-32766,-32766,-32766, + -32766,-32766,-32766,-32766,-32766, 127, -463,-32766, 686,-32766, + -32766, 334,-32766,-32766,-32766, 465, 311, 69,-32766, 359, + 276,-32766, 276,-32766,-32766,-32766,-32766,-32766,-32766, 586, + -465, 858, 769,-32766, 686,-32766,-32766,-32766,-32766, 362, + 769,-32766,-32766,-32766, 223,-32766, 125,-32766,-32766,-32766, + 560, 859,-32766, -464, 590,-32766,-32766,-32766,-32766, 257, + -177, -467,-32766,-32766, -234, 807,-32766, -464, -463,-32766, + 334, 507, 363, 1059, -464, 442, -470,-32766, 372, -298, + -32766, -298, -463, 500, 549, 550, 686, 269, 364, -463, + -32766, -469, -465,-32766,-32766,-32766, 898,-32766, 365,-32766, + 1126,-32766,-32766, 1127,-32766, 68, -465,-32766,-32766,-32766, + -32766, 133, 329, -465,-32766,-32766, 42, 561,-32766, 1102, + 372,-32766, 334, -467, 884, 1101,-32766,-32766, -276,-32766, + 380, 381, 686, 488, 134,-32766,-32766, 222, 137,-32766, + -32766,-32766, 116,-32766, -467,-32766, 32,-32766, -462, 769, + -32766, -499, 117, -499,-32766,-32766,-32766, 125, 122,-32766, + -32766,-32766, 850, 851,-32766, 123, 43,-32766, 334, 411, + 224, 8, 129,-32766, 769,-32766, 136, 212, 255, 686, + 99, 100, 101,-32766, 239, 138,-32766,-32766,-32766,-32766, + -32766, 707,-32766, 708,-32766, 689, 102,-32766, 1117, 118, + 139,-32766,-32766,-32766, -83,-32766,-32766,-32766,-32766, 250, + -462,-32766, 686, 589,-32766, 334,-32766, 592, 124,-32766, + -32766,-32766,-32766,-32766, -462,-32766, 766,-32766, 256,-32766, + -32766, -462, 527, 528,-32766,-32766,-32766, 850, 851, 132, + -32766,-32766, 306, 781,-32766, 883, 598,-32766, 334, 120, + 258, 259,-32766, 292, 239,-32766, 102, 29, 221, 131, + -32766, 557, 686, 1128,-32766, 474, 686, 569, 684, 540, + -32766, 687, 689,-32766,-32766,-32766, 525,-32766, 912,-32766, + 469,-32766, 535, 270,-32766,-32766, 1019, 552,-32766,-32766, + -32766, 791, 792, 268,-32766,-32766, -81, 10,-32766, 226, + -32766,-32766, 334, 388, 267, 783, 686, 541, 553,-32766, + -32766, 337, -428,-32766,-32766,-32766, -237,-32766, 0,-32766, + 576,-32766, 0, 34,-32766, 0, 0, 0,-32766,-32766, + -32766, 24, 273, -493,-32766,-32766, 0, 0,-32766,-32766, + 0,-32766, 334, 1080, 1058, 0, 1060, 1051, 342,-32766, + 31, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, -419, 5, 24, -4, 12, 305, + 343, 346, -235, 0, 384, 471, 0, 1019, 1080,-32766, + 356, 357, 1051,-32766,-32766,-32766, 35, 596, 597, 747, + 824, 808, 941, 943, 433, 434, 815, 1041, 1042, 1043, + 1044, 1038, 1039, -462,-32766, 878,-32766,-32766, 879, 1045, + 1040, 805, 1019, 578, 816, 745, 67,-32766,-32766,-32766, + 271, 276, 803, 887, 890, 891, 888, 889, 769, 895, + 434, 580, 1041, 1042, 1043, 1044, 1038, 1039,-32766, 584, + -32766,-32766,-32766,-32766, 1045, 1040, 585, -137, -137, -137, + 587, 67, 591, 285, 286, 271, 276, 349, 350, 579, + -432, 593, -137, 743, -137, -462, -137, 1123, -137, 1125, + 368, 702, 351, 789, 701, 711, 788, 368, 265, -462, + 712, 709, 428, 429, 1124, 787, -462, -491, 1007, 428, + 429, 699, 790, 370, 371, 710, 776, 784, 742, 790, + 370, 371, -218, -218, -218, 774, 813, 814, 368, 1122, + 1081, 1074, 290,-32766,-32766,-32766, 1088, 769, 1093, -4, + 428, 429, 1096, -234, 769, -470, -137, 14, 1052, 742, + 790, 370, 371, -469,-32766, -468,-32766,-32766,-32766,-32766, + -32766,-32766, 23, 25, 26, 33, 37, 41, 66, 70, + 71, 72, 73, 74, 128, 769, 135, -218, 15, 140, + 217, 243, 0, 244, 245, 246, 247, 248, 289, 352, + 354, 0, 16, 17, 19, 326, 402, 404, 407, 409, + 410, 417, 566, 1031, 980, 1049, 860, 1011, -92, 13, + 18, 22, 261, 325, 497, 521, 568, 984, 1026, 981, + 1099, 0, 997, 0, 1048, 1073, 1087, 1120, 531 ); protected $actionCheck = array( @@ -338,102 +337,101 @@ class Php7 extends \PhpParser\ParserAbstract 48, 49, 50, 78, 8, 9, 10, 97, 98, 99, 8, 9, 29, 103, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 115, 116, 114, 115, 116, - 117, 118, 119, 55, 124, 125, 126, 127, 0, 114, - 115, 116, 117, 118, 119, 73, 74, 69, 70, 71, - 72, 73, 74, 75, 1, 30, 78, 48, 49, 50, - 150, 1, 152, 85, 86, 87, 88, 89, 90, 91, + 117, 118, 119, 55, 124, 125, 126, 127, 1, 114, + 115, 116, 117, 118, 119, 7, 0, 69, 70, 71, + 72, 73, 74, 75, 7, 30, 78, 48, 49, 50, + 150, 7, 152, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 7, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 68, 8, + 122, 123, 124, 125, 126, 127, 128, 129, 68, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 1, 8, 9, 10, 7, 145, 146, 147, 1, 2, 3, 4, - 5, 6, 1, 7, 1, 151, 11, 12, 30, 14, - 29, 7, 31, 32, 33, 34, 35, 36, 37, 38, + 5, 6, 1, 29, 1, 151, 11, 12, 1, 14, + 29, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 13, 55, 78, 68, 8, - 103, 29, 105, 48, 49, 1, 151, 30, 67, 54, - 130, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 1, 68, 69, 70, 71, 72, 8, 9, - 10, 76, 77, 78, 151, 80, 7, 82, 1, 84, - 85, 86, 87, 80, 89, 148, 91, 7, 93, 29, - 49, 96, 73, 74, 7, 100, 101, 102, 103, 104, - 130, 106, 107, 68, 145, 110, 1, 148, 113, 114, - 13, 152, 80, 36, 144, 83, 121, 122, 123, 78, - 7, 151, 81, 153, 80, 154, 131, 132, 150, 134, - 135, 136, 137, 138, 139, 140, 7, 1, 30, 78, - 145, 146, 147, 148, 132, 133, 151, 68, 153, 72, + 49, 50, 51, 52, 53, 1, 55, 8, 9, 10, + 130, 29, 13, 48, 49, 1, 151, 30, 67, 54, + 7, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 154, 68, 69, 70, 71, 72, 8, 9, + 10, 76, 77, 78, 103, 80, 105, 82, 1, 84, + 85, 86, 87, 80, 89, 7, 91, 80, 93, 29, + 7, 96, 30, 7, 7, 100, 101, 102, 103, 104, + 30, 106, 107, 13, 7, 110, 132, 133, 113, 114, + 73, 74, 78, 36, 132, 133, 121, 122, 123, 148, + 148, 114, 80, 151, 80, 30, 131, 132, 154, 134, + 135, 136, 137, 138, 139, 140, 154, 1, 151, 154, + 145, 146, 147, 148, 132, 133, 151, 7, 153, 72, 155, 150, 157, 158, 151, 78, 7, 1, 114, 82, - 1, 158, 85, 86, 87, 130, 89, 150, 91, 125, - 93, 68, 36, 96, 142, 143, 154, 100, 101, 102, - 8, 9, 10, 106, 107, 80, 151, 110, 29, 1, - 113, 114, 8, 9, 10, 51, 52, 53, 121, 55, - 80, 29, 158, 31, 32, 33, 34, 35, 72, 130, - 68, 67, 151, 29, 78, 31, 32, 33, 82, 114, - 7, 85, 86, 87, 36, 89, 149, 91, 151, 93, - 151, 154, 96, 130, 154, 1, 100, 101, 102, 29, - 78, 154, 106, 107, 7, 30, 110, 144, 29, 113, - 114, 30, 1, 83, 151, 30, 153, 121, 150, 103, - 72, 105, 68, 158, 7, 1, 78, 111, 103, 104, - 82, 7, 130, 85, 86, 87, 120, 89, 158, 91, - 148, 93, 1, 151, 96, 149, 144, 151, 100, 101, - 102, 132, 133, 151, 106, 107, 7, 154, 110, 156, - 7, 113, 114, 103, 7, 105, 72, 145, 152, 121, - 148, 141, 78, 79, 68, 1, 82, 36, 7, 85, - 86, 87, 7, 89, 130, 91, 103, 93, 105, 103, - 96, 105, 108, 109, 100, 101, 102, 149, 144, 151, - 106, 107, 132, 133, 110, 151, 95, 113, 114, 7, - 36, 132, 133, 72, 13, 121, 8, 9, 10, 78, - 13, 13, 30, 82, 154, 150, 85, 86, 87, 1, - 89, 150, 91, 154, 93, 150, 130, 96, 98, 99, - 15, 100, 101, 102, 15, 151, 72, 106, 107, 15, - 144, 110, 78, 15, 113, 114, 82, 151, 30, 85, - 86, 87, 121, 89, 15, 91, 15, 93, 15, 1, - 96, 132, 133, 15, 100, 101, 102, 150, 151, 34, - 106, 107, 30, 36, 110, 30, 30, 113, 114, 30, - 30, 34, 151, 67, 55, 121, 34, 75, 68, 78, - 72, 78, 78, 83, 87, 90, 78, 80, 92, 95, - 82, 80, 94, 85, 86, 87, 81, 89, 112, 91, - 83, 93, 111, 114, 96, 151, 128, 95, 100, 101, - 102, 88, 128, 97, 106, 107, 95, 97, 110, 36, - 72, 113, 114, 144, 125, 148, 78, 144, 148, 121, - 82, 141, 156, 85, 86, 87, 144, 89, 125, 91, - 155, 93, 149, -1, 96, -1, -1, -1, 100, 101, - 102, 68, -1, 129, 106, 107, -1, -1, 110, 151, - -1, 113, 114, 80, -1, -1, 144, 84, -1, 121, + 153, 158, 85, 86, 87, 158, 89, 150, 91, 125, + 93, 68, 36, 96, 103, 7, 105, 100, 101, 102, + 8, 9, 10, 106, 107, 151, 68, 110, 78, 1, + 113, 114, 8, 9, 10, 83, 7, 153, 121, 7, + 158, 29, 158, 31, 32, 33, 34, 35, 72, 30, + 68, 1, 150, 29, 78, 31, 32, 33, 82, 7, + 150, 85, 86, 87, 36, 89, 149, 91, 151, 93, + 78, 154, 96, 130, 30, 1, 100, 101, 102, 29, + 154, 68, 106, 107, 154, 150, 110, 144, 130, 113, + 114, 49, 7, 141, 151, 145, 153, 121, 148, 103, + 72, 105, 144, 1, 73, 74, 78, 111, 7, 151, + 82, 153, 130, 85, 86, 87, 120, 89, 7, 91, + 78, 93, 1, 81, 96, 149, 144, 151, 100, 101, + 102, 98, 99, 151, 106, 107, 68, 145, 110, 1, + 148, 113, 114, 130, 152, 7, 72, 8, 152, 121, + 103, 104, 78, 79, 13, 1, 82, 36, 13, 85, + 86, 87, 15, 89, 151, 91, 13, 93, 68, 150, + 96, 154, 15, 156, 100, 101, 102, 149, 15, 151, + 106, 107, 132, 133, 110, 15, 68, 113, 114, 103, + 36, 105, 15, 72, 150, 121, 15, 95, 130, 78, + 51, 52, 53, 82, 55, 15, 85, 86, 87, 1, + 89, 103, 91, 105, 93, 80, 67, 96, 83, 151, + 15, 100, 101, 102, 30, 151, 72, 106, 107, 30, + 130, 110, 78, 30, 113, 114, 82, 30, 30, 85, + 86, 87, 121, 89, 144, 91, 30, 93, 130, 1, + 96, 151, 108, 109, 100, 101, 102, 132, 133, 30, + 106, 107, 144, 36, 110, 150, 151, 113, 114, 151, + 34, 34, 151, 34, 55, 121, 67, 142, 143, 68, + 72, 75, 78, 81, 83, 87, 78, 90, 78, 94, + 82, 78, 80, 85, 86, 87, 111, 89, 80, 91, + 83, 93, 88, 112, 96, 151, 114, 92, 100, 101, + 102, 125, 125, 129, 106, 107, 95, 95, 110, 36, + 72, 113, 114, 95, 128, 149, 78, 97, 97, 121, + 82, 148, 144, 85, 86, 87, 154, 89, -1, 91, + 151, 93, -1, 150, 96, -1, -1, -1, 100, 101, + 102, 68, 128, 153, 106, 107, -1, -1, 110, 151, + -1, 113, 114, 80, 141, -1, 141, 84, 148, 121, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 141, 144, 68, 0, 154, -1, - -1, -1, 148, 148, 148, 148, -1, 114, 80, 151, + 25, 26, 27, 28, 144, 144, 68, 0, 144, 144, + 148, 148, 154, -1, 148, 148, -1, 114, 80, 151, 148, 148, 84, 8, 9, 10, 150, 150, 150, 150, 150, 150, 57, 58, 131, 132, 150, 134, 135, 136, 137, 138, 139, 68, 29, 150, 31, 32, 150, 146, 147, 150, 114, 151, 150, 150, 153, 8, 9, 10, 157, 158, 150, 150, 150, 150, 150, 150, 150, 150, - 132, 150, 134, 135, 136, 137, 138, 139, 29, 151, + 132, 151, 134, 135, 136, 137, 138, 139, 29, 151, 31, 32, 33, 34, 146, 147, 151, 73, 74, 75, 151, 153, 151, 151, 151, 157, 158, 151, 151, 151, - 151, 151, 88, 152, 90, 130, 92, 152, 94, 152, + 155, 152, 88, 152, 90, 130, 92, 152, 94, 152, 103, 152, 105, 152, 152, 152, 152, 103, 111, 144, 152, 152, 115, 116, 152, 152, 151, 153, 152, 115, 116, 124, 125, 126, 127, 152, 152, 152, 124, 125, 126, 127, 97, 98, 99, 152, 152, 152, 103, 152, 152, 152, 145, 8, 9, 10, 152, 150, 152, 152, - 115, 116, 152, 152, 150, 153, 152, 154, -1, 124, + 115, 116, 152, 154, 150, 153, 152, 154, 157, 124, 125, 126, 127, 153, 29, 153, 31, 32, 33, 34, 35, 36, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 150, 153, 152, 154, 153, 153, 153, -1, 153, 153, 153, 153, 153, 153, 153, - 153, 153, -1, 154, 154, 154, 154, 154, 154, 154, + 153, -1, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, - 154, 154, 154, -1, 155, -1, 156, 156, 156, 156, - -1, 157 + 154, -1, 155, -1, 156, 156, 156, 156, 156 ); protected $actionBase = array( - 0, 704, 697, -70, 735, 153, 109, 608, -2, -2, - -55, -2, -2, 258, 371, 371, 375, 371, 167, 365, - 609, 609, 609, 227, 286, 286, 286, 286, 338, 384, + 0, 704, 697, -70, 735, 153, 302, 607, -2, -2, + -55, -2, -2, 220, 329, 329, 354, 329, 212, 245, + 608, 608, 608, 227, 286, 286, 286, 286, 338, 384, 518, 431, 464, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, @@ -445,54 +443,54 @@ class Php7 extends \PhpParser\ParserAbstract 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, - 151, 151, 128, 401, 497, 771, 776, 773, 769, 768, - 772, 777, 688, 689, 550, 694, 696, 700, 701, 774, - 783, 770, 775, 131, 131, 131, 131, 131, 131, 131, + 558, 151, 151, 167, 412, 463, 768, 773, 770, 774, + 766, 765, 769, 775, 687, 688, 539, 689, 694, 696, + 700, 771, 782, 767, 772, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, - 181, 498, 22, 16, 16, 16, 16, 16, 16, 16, + 131, 131, 449, 179, 22, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 210, 210, 210, 705, 334, - 593, 593, 739, 665, 322, 628, 628, 628, 628, 628, - 628, 628, 628, 628, 628, 835, 3, 3, 3, 3, - 3, -28, -28, -28, -28, 306, 194, 350, 29, 29, - 360, 360, 360, 360, 360, 360, 369, 255, 309, 162, - 320, 553, 784, 211, 211, 429, 429, 429, 120, 253, - 294, 294, 294, 87, 527, 499, 499, 499, 499, 182, - 182, 499, 499, 191, 4, 293, 292, 344, 344, 396, - 344, 344, 344, 376, 376, 376, 315, 312, 282, 510, - 312, 611, 640, 778, 526, 685, 530, 687, 185, 229, - 562, 270, 563, 270, 270, 270, 374, -8, 169, 767, - 151, 493, 151, 151, 151, 151, 740, 151, 151, 151, - 151, 151, 151, 45, 151, 80, 417, 128, 73, 73, - 552, 73, 315, 529, 70, 636, 237, 529, 529, 529, - 637, 638, 121, 172, 639, 230, 373, 511, 511, 513, - 513, 521, 537, 511, 511, 511, 511, 511, 720, 720, - 513, 517, 513, 521, 725, 513, 537, 537, 513, 513, - 511, 513, 720, 537, 154, 447, 387, 407, 537, 537, - 461, 488, 511, 494, 494, 465, 513, 263, 219, 513, - 146, 534, 720, 720, 534, 279, 537, 299, 568, 569, - 501, 503, 542, 363, 542, 542, 443, 501, 542, 537, - 542, 492, 135, 517, 439, 542, 58, 726, 727, 482, - 728, 723, 729, 747, 730, 592, 509, 523, 738, 724, - 731, 722, 721, 549, 557, 515, 519, 502, 489, 719, - 556, 516, 516, 516, 710, 516, 516, 516, 516, 516, - 516, 516, 516, 515, 486, 551, 507, 741, 524, 487, - 531, 528, 618, 500, 557, 557, 645, 495, 779, 514, - 740, 762, 733, 566, 539, 753, 742, 641, 490, 554, - 743, 744, 754, 763, 625, 764, 647, 520, 649, 557, - 651, 516, 702, 664, 780, 712, 515, 781, 749, 755, - 535, 547, 756, 555, 652, 525, 782, 653, 765, 629, - 631, 567, 750, 544, 757, 654, 758, 759, 658, 570, - 533, 703, 508, 748, 247, 746, 632, 659, 662, 663, - 666, 673, 736, 571, 751, 506, 752, 734, 576, 585, - 541, 674, 491, 588, 543, 548, 591, 737, 545, 512, - 594, 595, 766, 675, 745, 602, 683, 761, 504, 556, - 532, 496, 522, 505, 633, 760, 546, 603, 604, 605, - 606, 684, 607, 0, 0, 0, 0, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 210, 210, 210, + 705, 334, 593, 593, 739, 665, 322, 628, 628, 628, + 628, 628, 628, 628, 628, 628, 628, 835, 3, 3, + 3, 3, 3, -28, -28, -28, -28, 306, 194, 157, + 221, 29, 29, 124, 124, 124, 124, 124, 124, 132, + 360, 162, 262, 535, 701, 184, 184, 435, 435, 435, + 253, 268, 459, 459, 459, 121, 527, 502, 502, 502, + 502, 445, 445, 502, 502, 352, 4, 327, 292, 410, + 410, 428, 410, 410, 410, 418, 418, 418, 357, 260, + 122, 511, 260, 609, 638, 776, 540, 684, 541, 685, + 323, 378, 562, 192, 563, 192, 192, 192, 454, 187, + 341, 764, 151, 550, 151, 151, 151, 151, 738, 151, + 151, 151, 151, 151, 151, 45, 151, 57, 425, 167, + 137, 137, 549, 137, 357, 529, 60, 632, 236, 529, + 529, 529, 633, 636, 58, 240, 637, 135, 396, 514, + 514, 520, 520, 528, 537, 514, 514, 514, 514, 514, + 719, 719, 520, 522, 520, 528, 724, 520, 537, 537, + 520, 520, 514, 520, 719, 537, 193, 362, 299, 318, + 537, 537, 395, 506, 514, 534, 534, 411, 520, 233, + 228, 520, 74, 494, 719, 719, 494, 237, 537, 247, + 567, 568, 495, 486, 509, 290, 509, 509, 342, 495, + 509, 537, 509, 421, 67, 522, 339, 509, 66, 725, + 726, 504, 727, 722, 728, 746, 729, 499, 496, 497, + 737, 723, 730, 721, 720, 526, 557, 457, 467, 551, + 498, 712, 556, 519, 519, 519, 702, 519, 519, 519, + 519, 519, 519, 519, 519, 457, 778, 555, 508, 740, + 473, 493, 538, 480, 592, 533, 557, 557, 641, 635, + 777, 523, 738, 759, 731, 503, 487, 750, 741, 639, + 530, 552, 742, 743, 751, 760, 610, 761, 645, 521, + 647, 557, 649, 519, 664, 510, 779, 710, 457, 780, + 703, 752, 546, 547, 753, 553, 651, 512, 781, 652, + 762, 618, 625, 566, 734, 492, 754, 653, 755, 756, + 654, 569, 524, 548, 505, 747, 451, 745, 629, 658, + 659, 662, 663, 666, 733, 570, 748, 525, 749, 699, + 571, 576, 491, 673, 455, 585, 500, 515, 588, 736, + 513, 516, 591, 594, 763, 674, 744, 595, 675, 758, + 531, 556, 554, 501, 532, 507, 631, 757, 517, 602, + 603, 604, 605, 683, 606, 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, - 145, 145, 145, 145, -2, -2, -2, 0, 0, -2, - 0, 0, 145, 145, 145, 145, 145, 145, 145, 145, + 0, 0, 145, 145, 145, 145, -2, -2, -2, 0, + 0, -2, 0, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, @@ -504,36 +502,36 @@ class Php7 extends \PhpParser\ParserAbstract 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 131, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, - 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, 131, 312, - 312, 131, 0, 131, 312, 312, 312, 312, 312, 312, - 312, 312, 312, 312, 131, 131, 131, 131, 131, 131, - 294, 294, 294, 294, -67, 312, -67, 294, 294, 312, - 312, 312, 312, 312, 312, 312, 312, 312, 312, 182, - 182, 182, 270, 270, 312, 312, 312, 0, 0, 0, - 0, 0, 511, 182, 312, 312, 312, 312, 0, 0, - 312, 312, 517, 270, 414, 0, 0, 0, 0, 0, - 0, 0, 511, 511, 511, 517, 0, 511, 182, 0, - 73, 151, 414, 430, 430, 430, 430, 0, 0, 511, - 0, 511, 0, 0, 0, 0, 0, 0, 537, 0, - 720, 0, 0, 0, 0, 513, 0, 0, 0, 0, - 0, 0, 0, 0, 517, 0, 0, 0, 0, 517, - 0, 0, 516, 0, 514, 0, 516, 516, 516, 514, - 514, 0, 0, 514 + 131, 131, 131, 260, 260, 131, 0, 131, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 131, 131, + 131, 131, 131, 131, 459, 459, 459, 459, -67, 260, + 260, -67, 459, 459, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 445, 445, 445, 192, 192, 260, 260, + 260, 0, 0, 0, 0, 0, 514, 445, 260, 260, + 260, 260, 0, 0, 260, 260, 522, 192, 448, 0, + 0, 0, 0, 0, 0, 0, 514, 514, 514, 522, + 0, 514, 445, 0, 137, 151, 448, 343, 343, 343, + 343, 0, 0, 514, 0, 514, 0, 0, 0, 0, + 0, 0, 537, 0, 719, 0, 0, 0, 0, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 522, 0, + 0, 0, 0, 522, 0, 0, 519, 0, 523, 0, + 519, 519, 519, 523, 523, 0, 0, 523 ); 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, 510, 510, 510, 510, 94,32767, - 32767,32767,32767, 318, 318, 318,32767,32767, 459, 459, - 459, 459, 459, 459,32767,32767,32767,32767,32767, 398, + 32767,32767,32767,32767, 511, 511, 511, 511, 94,32767, + 32767,32767,32767, 318, 318, 318,32767,32767, 460, 460, + 460, 460, 460, 460,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, @@ -541,107 +539,109 @@ class Php7 extends \PhpParser\ParserAbstract 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 92,32767,32767,32767,32767,32767,32767,32767,32767, 94, + 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, 504,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 503,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767, 381, 382, 384, 385, 317, + 461, 510, 262, 507, 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, 345,32767,32767, 349, 320, 351,32767,32767,32767, + 32767,32767,32767,32767,32767, 94,32767, 350, 367, 368, + 365, 366, 369, 370, 371, 372, 373,32767,32767,32767, + 296, 358, 359, 253, 253, 253, 253, 253, 253, 253, + 32767, 253,32767,32767,32767,32767,32767,32767,32767,32767, + 454, 375, 353, 354, 352,32767, 431,32767,32767,32767, + 32767,32767, 433,32767, 92,32767,32767,32767, 456, 341, + 343, 424, 505, 324, 508,32767,32767, 94, 418,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767, 381, 382, 384, 385, 317, 460, 509, - 262, 506, 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, 345, - 32767,32767, 349, 320, 351,32767,32767,32767,32767,32767, - 32767,32767,32767, 94,32767, 350, 367, 368, 365, 366, - 369, 370, 371, 372, 373,32767,32767, 296, 358, 359, - 253, 253, 253, 253, 253, 253, 253,32767,32767, 253, - 32767,32767,32767,32767,32767,32767,32767,32767, 453, 375, - 353, 354, 352,32767, 430,32767,32767,32767,32767,32767, - 432,32767, 92,32767,32767,32767, 455, 341, 343, 424, - 504, 324, 507,32767,32767, 94, 418,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767, 454,32767, - 32767,32767, 92,32767,32767, 92, 174, 230, 232, 179, - 32767, 435,32767,32767,32767,32767,32767,32767,32767,32767, + 455,32767,32767,32767, 92,32767,32767, 92, 174, 230, + 232, 179,32767, 436,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767, 418, 363, 517,32767, 461, 355, 356, 357, - 32767,32767, 461, 461,32767, 461,32767,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, 477, 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, 418, 363, 518,32767, 462, 355, + 356, 357,32767,32767, 462, 462,32767, 462,32767,32767, + 32767,32767,32767,32767, 179,32767,32767,32767,32767, 94, + 434, 434, 92, 92, 92, 92, 429,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, 478, 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,32767,32767, 420,32767, 449,32767, + 466, 476,32767, 361, 362, 364, 464, 386, 387, 388, + 389, 390, 391, 392, 394, 506,32767, 423,32767,32767, + 32767, 87, 121, 272,32767, 516, 87, 421,32767, 516, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 420,32767, 448,32767, 465, 475, - 32767, 361, 362, 364, 463, 386, 387, 388, 389, 390, - 391, 392, 394, 505,32767, 423,32767,32767,32767, 87, - 121, 272,32767, 515, 87, 421,32767, 515,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767, 87, 87, - 32767,32767,32767,32767,32767,32767, 516,32767, 461, 422, - 32767, 360, 444, 482,32767, 462, 508,32767,32767,32767, - 245, 247,32767, 87,32767,32767,32767,32767,32767,32767, - 32767,32767,32767, 448,32767,32767,32767,32767,32767,32767, - 32767, 461,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767, 461,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 + 87, 87,32767,32767,32767,32767,32767,32767, 517,32767, + 462, 422,32767, 360, 445, 483,32767, 463, 509,32767, + 32767,32767, 245, 247,32767, 87,32767,32767,32767,32767, + 32767,32767,32767,32767,32767, 449,32767,32767,32767,32767, + 32767,32767,32767, 462,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767, 462, + 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( - 170, 144, 144, 144, 144, 170, 152, 154, 186, 171, - 167, 167, 167, 167, 167, 168, 168, 168, 168, 168, - 168, 163, 164, 165, 166, 183, 181, 184, 441, 442, - 333, 443, 445, 446, 447, 448, 449, 450, 451, 452, - 925, 141, 145, 146, 147, 169, 148, 149, 143, 150, - 151, 153, 180, 182, 185, 205, 208, 209, 212, 214, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 238, 239, 260, 261, 262, 337, 338, 339, 491, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 155, 202, 156, 172, 173, 174, - 206, 175, 157, 158, 159, 176, 172, 160, 207, 142, - 203, 161, 177, 204, 178, 179, 162, 560, 459, 569, - 762, 343, 537, 295, 695, 1014, 336, 277, 278, 280, - 488, 281, 342, 282, 345, 521, 511, 534, 464, 464, - 464, 518, 493, 464, 696, 530, 531, 270, 453, 453, - 453, 453, 252, 513, 513, 479, 496, 464, 1047, 1047, - 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1065, 1065, - 845, 850, 851, 1065, 1065, 1065, 1065, 1065, 1065, 1065, - 1065, 1065, 1065, 1063, 1063, 757, 1015, 758, 1063, 1063, - 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 492, 892, - 572, 731, 464, 464, 554, 890, 1016, 1073, 478, 503, - 464, 464, 464, 328, 329, 1003, 784, 542, 1004, 331, - 722, 444, 444, 683, 291, 465, 444, 444, 444, 444, - 444, 444, 444, 444, 444, 444, 477, 489, 914, 804, - 508, 593, 520, 522, 1087, 1088, 535, 553, 556, 832, - 563, 571, 828, 717, 694, 485, 711, 722, 293, 722, - 314, 318, 471, 494, 497, 821, 802, 802, 800, 802, - 592, 698, 456, 830, 825, 502, 514, 516, 517, 565, - 796, 326, 568, 1110, 1110, 899, 490, 900, 507, 703, - 1100, 753, 748, 749, 763, 455, 704, 750, 701, 751, - 752, 702, 1110, 756, 713, 713, 455, 3, 4, 860, - 723, 723, 723, 725, 712, 312, 536, 388, 296, 297, - 840, 1113, 1111, 1111, 798, 798, 798, 798, 973, 351, - 792, 799, 855, 1086, 835, 835, 300, 527, 322, 718, - 292, 1111, 715, 597, 865, 541, 1011, 1018, 1126, 1006, - 869, 847, 847, 847, 847, 847, 847, 847, 1018, 847, - 847, 461, 1092, 1092, 727, 809, 847, 847, 847, 909, - 394, 410, 510, 1083, 0, 0, 1018, 1018, 1018, 1018, - 0, 0, 1018, 1018, 1083, 0, 0, 726, 714, 864, - 1094, 1094, 868, 0, 0, 0, 0, 807, 770, 0, - 540, 771, 0, 316, 457, 557, 0, 837, 0, 797, - 470, 1079, 0, 0, 0, 480, 481, 0, 0, 0, - 0, 0, 0, 907, 730, 476, 1010, 0, 0, 0, - 0, 0, 0, 401, 0, 0, 461, 0, 867, 0, - 1081, 1081, 867, 0, 0, 0, 11, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 458, 474, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 458, - 0, 474, 0, 0, 315, 0, 0, 462, 381, 0, - 383, 0, 0, 0, 0, 0, 0, 0, 1013, 0, - 0, 0, 0, 0, 0, 721, 0, 0, 1118 + 172, 145, 145, 145, 145, 172, 154, 156, 188, 173, + 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, + 170, 165, 166, 167, 168, 185, 183, 186, 443, 444, + 335, 445, 447, 448, 449, 450, 451, 452, 453, 454, + 927, 142, 146, 147, 148, 171, 149, 150, 151, 144, + 152, 153, 155, 182, 184, 187, 207, 210, 211, 214, + 216, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 241, 242, 262, 263, 264, 339, 340, 341, 493, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 157, 204, 158, 174, 175, + 176, 208, 177, 159, 160, 161, 178, 174, 162, 209, + 143, 205, 163, 179, 206, 180, 181, 164, 562, 461, + 571, 764, 345, 539, 1114, 1114, 1016, 338, 279, 280, + 282, 490, 283, 344, 284, 347, 523, 513, 536, 466, + 466, 466, 495, 1114, 466, 455, 455, 455, 455, 297, + 847, 852, 853, 498, 515, 515, 481, 697, 466, 1050, + 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1068, + 1068, 798, 328, 570, 1068, 1068, 1068, 1068, 1068, 1068, + 1068, 1068, 1068, 1068, 1066, 1066, 759, 1017, 760, 1066, + 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 494, + 894, 574, 698, 466, 466, 556, 892, 1018, 1076, 480, + 505, 466, 466, 466, 330, 331, 1005, 786, 544, 1006, + 333, 733, 446, 446, 724, 293, 467, 446, 446, 446, + 446, 446, 446, 446, 446, 446, 446, 479, 491, 492, + 272, 509, 595, 522, 524, 254, 685, 537, 555, 558, + 834, 565, 573, 830, 457, 457, 696, 1090, 1091, 901, + 520, 724, 902, 724, 532, 533, 806, 823, 804, 804, + 802, 804, 594, 700, 458, 832, 827, 316, 320, 473, + 496, 499, 487, 800, 800, 800, 800, 3, 4, 794, + 801, 705, 295, 755, 750, 751, 765, 1103, 706, 752, + 703, 753, 754, 704, 862, 758, 390, 314, 715, 715, + 1113, 1113, 538, 975, 725, 725, 725, 727, 714, 504, + 516, 518, 519, 567, 318, 459, 1129, 842, 916, 1113, + 510, 472, 857, 837, 837, 353, 482, 483, 302, 463, + 529, 1089, 720, 719, 298, 299, 713, 324, 1116, 294, + 1020, 1020, 717, 867, 403, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 599, 1095, 1095, 11, 1013, 849, + 849, 849, 1008, 543, 729, 1086, 1086, 811, 542, 1020, + 1020, 1020, 1020, 559, 871, 1020, 1020, 396, 512, 911, + 412, 0, 1097, 1097, 0, 728, 716, 866, 0, 0, + 870, 772, 0, 0, 773, 809, 0, 0, 0, 0, + 0, 0, 0, 1082, 463, 839, 0, 799, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 478, 0, + 0, 909, 732, 0, 1012, 0, 0, 0, 0, 0, + 869, 0, 1084, 1084, 869, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 460, 476, 0, 0, 0, 1015, 0, 0, 0, + 0, 0, 460, 0, 476, 0, 0, 317, 0, 0, + 464, 383, 0, 385, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 723, 0, + 0, 1121 ); protected $gotoCheck = array( @@ -656,83 +656,84 @@ 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, 10, 8, - 13, 56, 56, 80, 17, 93, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 46, 46, 10, 10, - 10, 73, 98, 10, 18, 73, 73, 136, 85, 85, - 85, 85, 136, 86, 86, 10, 85, 10, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 137, 137, - 91, 91, 91, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 138, 138, 55, 93, 55, 138, 138, - 138, 138, 138, 138, 138, 138, 138, 138, 7, 7, - 7, 36, 10, 10, 7, 7, 93, 93, 10, 10, - 10, 10, 10, 69, 69, 67, 67, 69, 67, 69, - 26, 140, 140, 5, 69, 10, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 39, 10, 15, 40, - 15, 39, 39, 39, 145, 145, 39, 39, 39, 39, - 39, 39, 39, 15, 16, 139, 15, 26, 146, 26, - 49, 49, 49, 49, 49, 16, 16, 16, 16, 16, - 16, 13, 16, 16, 16, 68, 68, 68, 68, 68, - 76, 76, 76, 149, 149, 112, 2, 112, 2, 13, - 148, 13, 13, 13, 13, 75, 13, 13, 13, 13, - 13, 13, 149, 13, 26, 26, 75, 37, 37, 95, - 26, 26, 26, 26, 26, 52, 54, 117, 80, 80, - 88, 149, 150, 150, 75, 75, 75, 75, 120, 89, - 75, 75, 90, 143, 85, 85, 20, 24, 19, 30, - 11, 150, 28, 82, 97, 23, 129, 63, 12, 126, - 100, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 12, 8, 8, 32, 79, 63, 63, 63, 115, - 71, 124, 72, 98, -1, -1, 63, 63, 63, 63, - -1, -1, 63, 63, 98, -1, -1, 14, 14, 14, - 98, 98, 14, -1, -1, -1, -1, 14, 63, -1, - 12, 63, -1, 65, 65, 12, -1, 14, -1, 14, - 65, 98, -1, -1, -1, 65, 65, -1, -1, -1, - -1, -1, -1, 14, 14, 8, 14, -1, -1, -1, - -1, -1, -1, 65, -1, -1, 12, -1, 98, -1, - 98, 98, 98, -1, -1, -1, 65, -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, 12, -1, - -1, -1, -1, -1, -1, 8, -1, -1, 8 + 33, 33, 33, 33, 33, 33, 33, 33, 63, 10, + 8, 13, 56, 56, 150, 150, 93, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 46, 46, 10, + 10, 10, 98, 150, 10, 85, 85, 85, 85, 80, + 91, 91, 91, 85, 86, 86, 10, 17, 10, 86, + 86, 86, 86, 86, 86, 86, 86, 86, 86, 137, + 137, 76, 76, 76, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 138, 138, 55, 93, 55, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 7, + 7, 7, 18, 10, 10, 7, 7, 93, 93, 10, + 10, 10, 10, 10, 69, 69, 67, 67, 69, 67, + 69, 36, 140, 140, 26, 69, 10, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 39, 10, 2, + 136, 2, 39, 39, 39, 136, 5, 39, 39, 39, + 39, 39, 39, 39, 75, 75, 16, 145, 145, 112, + 73, 26, 112, 26, 73, 73, 40, 16, 16, 16, + 16, 16, 16, 13, 16, 16, 16, 49, 49, 49, + 49, 49, 139, 75, 75, 75, 75, 37, 37, 75, + 75, 13, 146, 13, 13, 13, 13, 148, 13, 13, + 13, 13, 13, 13, 95, 13, 117, 52, 26, 26, + 149, 149, 54, 120, 26, 26, 26, 26, 26, 68, + 68, 68, 68, 68, 65, 65, 12, 88, 15, 149, + 15, 65, 90, 85, 85, 89, 65, 65, 20, 12, + 24, 143, 30, 15, 80, 80, 15, 19, 149, 11, + 63, 63, 28, 97, 65, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 82, 8, 8, 65, 129, 63, + 63, 63, 126, 23, 32, 98, 98, 79, 12, 63, + 63, 63, 63, 12, 100, 63, 63, 71, 72, 115, + 124, -1, 98, 98, -1, 14, 14, 14, -1, -1, + 14, 63, -1, -1, 63, 14, -1, -1, -1, -1, + -1, -1, -1, 98, 12, 14, -1, 14, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, + -1, 14, 14, -1, 14, -1, -1, -1, -1, -1, + 98, -1, 98, 98, 98, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 8, 8, -1, -1, -1, 12, -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, -289, 0, 0, 213, 0, 193, 109, 0, - -145, 52, 75, -21, 12, -150, 252, 122, 142, 38, - 73, 0, 0, -3, 53, 0, -43, 0, 40, 0, - 54, 0, 4, -23, 0, 0, 192, -290, 0, -338, - 220, 0, 0, 0, 0, 0, 102, 0, 0, 221, - 0, 0, 279, 0, 105, 170, -89, 0, 0, 0, - 0, 0, 0, 111, 0, 37, 0, -113, 34, -191, - 0, -14, -22, -437, 0, 59, 14, 0, 0, 3, - -276, 0, 16, 0, 0, 124, -57, 0, 74, 80, - 84, -85, 0, -186, 0, 281, 0, 39, 137, 0, - -11, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 50, 0, 0, 6, 0, 280, 0, 0, - 81, 0, 0, 0, -36, 0, -10, 0, 0, -6, - 0, 0, 0, 0, 0, 0, -117, -42, -27, 230, - 11, 0, 0, 79, 0, -59, 232, 0, 263, 32, - 71, 0, 0 + 0, 0, -338, 0, 0, 236, 0, 194, 110, 0, + -146, 59, 51, -21, 18, -62, 254, 155, 200, 45, + 73, 0, 0, 23, 54, 0, -41, 0, 48, 0, + 55, 0, 12, -23, 0, 0, 212, -312, 0, -339, + 247, 0, 0, 0, 0, 0, 103, 0, 0, 238, + 0, 0, 271, 0, 99, 171, -90, 0, 0, 0, + 0, 0, 0, 112, 0, -44, 0, -114, 75, -192, + 0, 1, -8, -320, 0, 16, -97, 0, 0, 13, + -252, 0, 35, 0, 0, 121, -58, 0, 78, 84, + 82, -107, 0, -187, 0, 276, 0, 46, 137, 0, + 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 22, 0, 0, 24, 0, 269, 0, 0, + 74, 0, 0, 0, -19, 0, 11, 0, 0, 14, + 0, 0, 0, 0, 0, 0, -26, -43, -28, 257, + 10, 0, 0, 85, 0, -48, 266, 0, 270, 57, + -129, 0, 0 ); protected $gotoDefault = array( - -32768, 416, 600, 2, 601, 673, 681, 545, 433, 570, - 434, 460, 334, 755, 913, 775, 737, 738, 739, 319, - 356, 310, 317, 528, 515, 406, 724, 376, 716, 403, - 719, 375, 728, 140, 546, 412, 732, 1, 734, 466, - 766, 307, 742, 308, 549, 744, 473, 746, 747, 313, - 320, 321, 918, 482, 512, 759, 213, 475, 760, 306, - 761, 769, 330, 311, 387, 413, 325, 894, 499, 524, - 371, 391, 509, 504, 484, 1025, 794, 397, 385, 808, - 294, 816, 598, 824, 827, 435, 436, 395, 839, 396, - 853, 500, 501, 1033, 390, 859, 377, 866, 1069, 380, - 870, 235, 873, 249, 543, 346, 878, 879, 6, 884, - 561, 562, 7, 237, 411, 908, 544, 374, 483, 924, - 359, 992, 994, 468, 404, 1007, 384, 552, 414, 1012, - 1072, 372, 437, 392, 279, 438, 251, 298, 276, 454, - 258, 299, 439, 393, 1075, 1082, 275, 27, 1101, 1112, - 289, 487, 506 + -32768, 418, 602, 2, 603, 675, 683, 547, 435, 572, + 436, 462, 336, 757, 915, 777, 739, 740, 741, 321, + 358, 312, 319, 530, 517, 408, 726, 378, 718, 405, + 721, 377, 730, 141, 548, 414, 734, 1, 736, 468, + 768, 309, 744, 310, 551, 746, 475, 748, 749, 315, + 322, 323, 920, 484, 514, 761, 215, 477, 762, 308, + 763, 771, 332, 313, 389, 415, 327, 896, 501, 526, + 373, 393, 511, 506, 486, 1028, 796, 399, 387, 810, + 296, 818, 600, 826, 829, 437, 438, 397, 841, 398, + 855, 502, 503, 1036, 392, 861, 379, 868, 1072, 382, + 872, 237, 875, 251, 545, 348, 880, 881, 6, 886, + 563, 564, 7, 240, 413, 910, 546, 376, 485, 926, + 361, 994, 996, 470, 406, 1009, 386, 554, 416, 1014, + 1075, 374, 439, 394, 281, 440, 253, 300, 278, 456, + 260, 301, 441, 395, 1078, 1085, 277, 27, 1104, 1115, + 291, 489, 508 ); protected $ruleToNonTerminal = array( @@ -778,17 +779,17 @@ class Php7 extends \PhpParser\ParserAbstract 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 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, 137, 137, - 137, 137, 137, 137, 138, 138, 86, 140, 140, 140, - 140, 122, 122, 122, 122, 122, 122, 122, 122, 49, - 49, 135, 135, 135, 135, 141, 141, 131, 131, 131, - 142, 142, 142, 142, 142, 56, 56, 56, 98, 98, - 98, 98, 145, 144, 134, 134, 134, 134, 134, 134, - 133, 133, 133, 143, 143, 143, 143, 85, 139, 147, - 147, 146, 146, 148, 148, 148, 148, 148, 148, 148, - 148, 136, 136, 136, 136, 150, 151, 149, 149, 149, - 149, 149, 149, 149, 152, 152, 152, 152 + 63, 63, 63, 120, 120, 120, 120, 132, 132, 121, + 121, 123, 123, 123, 126, 126, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 138, 138, 86, 140, 140, + 140, 140, 122, 122, 122, 122, 122, 122, 122, 122, + 49, 49, 135, 135, 135, 135, 141, 141, 131, 131, + 131, 142, 142, 142, 142, 142, 56, 56, 56, 98, + 98, 98, 98, 145, 144, 134, 134, 134, 134, 134, + 134, 133, 133, 133, 143, 143, 143, 143, 85, 139, + 147, 147, 146, 146, 148, 148, 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( @@ -834,17 +835,17 @@ class Php7 extends \PhpParser\ParserAbstract 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, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 3, 3, 4, 1, 1, - 3, 1, 1, 1, 1, 1, 3, 2, 3, 0, - 1, 1, 3, 1, 1, 1, 1, 1, 3, 1, - 1, 4, 4, 1, 4, 1, 1, 3, 1, 4, - 2, 2, 1, 3, 1, 4, 4, 3, 3, 3, - 1, 3, 1, 1, 3, 1, 1, 4, 1, 1, - 1, 3, 1, 1, 2, 1, 3, 4, 3, 2, - 0, 2, 2, 1, 2, 1, 1, 1, 4, 3, - 3, 3, 6, 3, 1, 1, 2, 1 + 1, 2, 3, 1, 1, 3, 1, 1, 1, 0, + 3, 0, 1, 1, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 3, 3, 4, 1, + 1, 3, 1, 1, 1, 1, 1, 3, 2, 3, + 0, 1, 1, 3, 1, 1, 1, 1, 1, 3, + 1, 1, 4, 4, 1, 4, 1, 1, 3, 1, + 4, 2, 2, 1, 3, 1, 4, 4, 3, 3, + 3, 1, 3, 1, 1, 3, 1, 1, 4, 1, + 1, 1, 3, 1, 1, 2, 1, 3, 4, 3, + 2, 0, 2, 2, 1, 2, 1, 1, 1, 4, + 3, 3, 3, 6, 3, 1, 1, 2, 1 ); protected function initReduceCallbacks() { @@ -2151,95 +2152,95 @@ class Php7 extends \PhpParser\ParserAbstract $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 425 => function ($stackPos) { - $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 426 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; }, 427 => 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 = $this->semStack[$stackPos-(1-1)]; }, + 429 => function ($stackPos) { + $this->semValue = null; + }, + 430 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 431 => function ($stackPos) { + $this->semValue = array(); + }, + 432 => function ($stackPos) { + $this->semValue = array(new Scalar\EncapsedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos-(1-1)], '`'), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes)); + }, + 433 => 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)]; + }, + 434 => function ($stackPos) { + $this->semValue = array(); + }, 435 => 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)]; }, 436 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 437 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 438 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 439 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 440 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 441 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 442 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 443 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 444 => function ($stackPos) { - $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 445 => 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); }, 446 => 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; + }, + 447 => 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); }, - 447 => function ($stackPos) { + 448 => 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); }, - 448 => function ($stackPos) { + 449 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 449 => function ($stackPos) { + 450 => 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); }, - 450 => function ($stackPos) { + 451 => 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); }, - 451 => function ($stackPos) { + 452 => function ($stackPos) { $this->semValue = $this->parseLNumber($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 452 => function ($stackPos) { - $this->semValue = new Scalar\DNumber(Scalar\DNumber::parse($this->semStack[$stackPos-(1-1)]), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, 453 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Scalar\DNumber(Scalar\DNumber::parse($this->semStack[$stackPos-(1-1)]), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 454 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; @@ -2248,28 +2249,28 @@ class Php7 extends \PhpParser\ParserAbstract $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 456 => 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)]; }, 457 => 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); - }, - 458 => 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); }, + 458 => 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); + }, 459 => function ($stackPos) { - $this->semValue = null; + $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); }, 460 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = null; }, 461 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 462 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 463 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 464 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; @@ -2284,183 +2285,186 @@ class Php7 extends \PhpParser\ParserAbstract $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 468 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 469 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, + 469 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, 470 => 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)]; }, 471 => 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); }, 472 => function ($stackPos) { $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 473 => 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); }, 474 => 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)]; }, 475 => 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); }, 476 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 477 => 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)]; }, 478 => 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); }, 479 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-3)]; + $this->semValue = substr($this->semStack[$stackPos-(1-1)], 1); }, 480 => 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)]; }, 481 => 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); }, 482 => 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; }, 483 => 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; }, 484 => 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); }, 485 => 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); }, 486 => function ($stackPos) { $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 487 => 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); }, 488 => 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); }, 489 => function ($stackPos) { $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 490 => 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); }, 491 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 492 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 493 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 494 => function ($stackPos) { + 492 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(3-2)]; }, - 495 => function ($stackPos) { + 493 => function ($stackPos) { $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, + 494 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 495 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, 496 => 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); }, 497 => 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; }, 498 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; $end = count($this->semValue)-1; if ($this->semValue[$end] === null) array_pop($this->semValue); + $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 499 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; $end = count($this->semValue)-1; if ($this->semValue[$end] === null) array_pop($this->semValue); }, 500 => function ($stackPos) { - /* do nothing -- prevent default action of $$=$this->semStack[$1]. See $551. */ + $this->semValue = $this->semStack[$stackPos]; }, 501 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + /* do nothing -- prevent default action of $$=$this->semStack[$1]. See $551. */ }, 502 => 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)]; }, 503 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 504 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); - }, - 505 => function ($stackPos) { $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, + 505 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, 506 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 507 => 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); - }, - 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); }, + 508 => 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); + }, 509 => 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); + $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 = null; + $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); }, 511 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = null; }, 512 => function ($stackPos) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 513 => 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)]; }, 514 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 515 => 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)]); }, 516 => 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); }, 517 => 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); }, 518 => 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)]; }, 519 => 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); }, 520 => 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); }, 521 => function ($stackPos) { $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 522 => 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); }, 523 => 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); }, 524 => 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)]; }, 525 => 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); }, 526 => 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); }, 527 => function ($stackPos) { + $this->semValue = $this->parseNumString('-' . $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 528 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, ]; diff --git a/test/code/parser/expr/uvs/newInstanceofExpr.test b/test/code/parser/expr/uvs/newInstanceofExpr.test new file mode 100644 index 0000000..aeacced --- /dev/null +++ b/test/code/parser/expr/uvs/newInstanceofExpr.test @@ -0,0 +1,61 @@ +Arbitrary expressions in new and instanceof +----- +