diff --git a/grammar/php7.y b/grammar/php7.y index 8add783387..32b2d9aec8 100644 --- a/grammar/php7.y +++ b/grammar/php7.y @@ -601,7 +601,7 @@ non_empty_global_var_list: ; global_var: - simple_variable { $$ = Expr\Variable[$1]; } + simple_variable { $$ = $1; } ; static_var_list: @@ -1007,7 +1007,7 @@ callable_expr: ; callable_variable: - simple_variable { $$ = Expr\Variable[$1]; } + simple_variable { $$ = $1; } | array_object_dereferencable '[' optional_expr ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } | array_object_dereferencable '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } | function_call { $$ = $1; } @@ -1032,15 +1032,15 @@ variable: ; simple_variable: - T_VARIABLE { $$ = parseVar($1); } - | '$' '{' expr '}' { $$ = $3; } + plain_variable { $$ = $1; } + | '$' '{' expr '}' { $$ = Expr\Variable[$3]; } | '$' simple_variable { $$ = Expr\Variable[$2]; } - | '$' error { $$ = Expr\Error[]; $this->errorState = 2; } + | '$' error { $$ = Expr\Variable[Expr\Error[]]; $this->errorState = 2; } ; static_member_prop_name: simple_variable - { $var = $1; $$ = \is_string($var) ? Node\VarLikeIdentifier[$var] : $var; } + { $var = $1->name; $$ = \is_string($var) ? Node\VarLikeIdentifier[$var] : $var; } ; static_member: @@ -1049,7 +1049,7 @@ static_member: ; new_variable: - simple_variable { $$ = Expr\Variable[$1]; } + simple_variable { $$ = $1; } | new_variable '[' optional_expr ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } | new_variable '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } | new_variable T_OBJECT_OPERATOR property_name { $$ = Expr\PropertyFetch[$1, $3]; } @@ -1063,13 +1063,13 @@ new_variable: member_name: identifier_ex { $$ = $1; } | '{' expr '}' { $$ = $2; } - | simple_variable { $$ = Expr\Variable[$1]; } + | simple_variable { $$ = $1; } ; property_name: identifier { $$ = $1; } | '{' expr '}' { $$ = $2; } - | simple_variable { $$ = Expr\Variable[$1]; } + | simple_variable { $$ = $1; } | error { $$ = Expr\Error[]; $this->errorState = 2; } ; diff --git a/lib/PhpParser/Parser/Php7.php b/lib/PhpParser/Parser/Php7.php index cbfbd34aa2..c9e4f45b3f 100644 --- a/lib/PhpParser/Parser/Php7.php +++ b/lib/PhpParser/Parser/Php7.php @@ -18,8 +18,8 @@ class Php7 extends \PhpParser\ParserAbstract { protected $tokenToSymbolMapSize = 392; - protected $actionTableSize = 1162; - protected $gotoTableSize = 611; + protected $actionTableSize = 1165; + protected $gotoTableSize = 565; protected $invalidSymbol = 165; protected $errorSymbol = 1; @@ -242,12 +242,12 @@ class Php7 extends \PhpParser\ParserAbstract protected $action = array( 130, 131, 132, 555, 133, 134,-32766, 704, 705, 706, - 135, 36, -543, -552, 455,-32766, -543,-32766,-32766,-32766, - -552, 1152, 778, 927, -549, 969, 970, 0,-32766,-32766, - -32766, -549,-32766, 1219,-32766, 245,-32766, 962,-32766,-32766, + 135, 36, -543, -552, 0,-32766, -543,-32766,-32766,-32766, + -552, 1152, 778, 927, -549, 969, 970, 962,-32766,-32766, + -32766, -549,-32766, 889,-32766, 245,-32766, 2,-32766,-32766, -32766,-32766,-32766, 461,-32766,-32766,-32766,-32766,-32766,-32766, - -32766,-32766, 124, -331, 707, -331,-32766, 388, 1031, 1032, - 1033, 1030, 1029, 1028,-32766, 435, 430, 2, 261, 136, + -32766,-32766, 124, 235, 707, 19,-32766, 388, 1031, 1032, + 1033, 1030, 1029, 1028,-32766, 435, 430, 31, 261, 136, 371, 711, 712, 713, 714, 391, 789, 397, 1031, 1032, 1033, 1030, 1029, 1028, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 745, 556, 746, 747, 748, @@ -255,118 +255,118 @@ class Php7 extends \PhpParser\ParserAbstract 730, 731, 732, 332, 771, 772, 773, 774, 775, 733, 734, 557, 558, 766, 757, 755, 756, 752, 753, -294, -189, 559, 560, 751, 561, 562, 563, 564, 565, 566, - 1235, 456, 783, -503, 889, 754, 567, 568, 928, 137, - -32766,-32766,-32766, 130, 131, 132, 555, 133, 134, 983, + -32766,-32766,-32766, -503, -188, 754, 567, 568, 928, 137, + 101, 102, 103, 130, 131, 132, 555, 133, 134, 983, 704, 705, 706, 135, 36,-32766,-32766,-32766,-32766, -552, - -32766,-32766,-32766, -552, 1152, 547, 101, 102, 103, 583, + -32766,-32766,-32766, -552, 1152, 547, 959, 958, 957, 583, -549,-32766,-32766,-32766, -549,-32766,-32766,-32766, 245,-32766, - 80,-32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766, - 959, 958, 957,-32766,-32766, -503, -503, 707, 1264,-32766, - 388, 1265,-32766,-32766,-32766, 235, 784,-32766, 778, 19, - -503, 261, 136, 371, 711, 712, 713, 714,-32766,-32766, + 681,-32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766, + -254,-32766,-32766,-32766,-32766, -503, -503, 707, 1264,-32766, + 388, 1265,-32766,-32766,-32766, 126, -331,-32766, -331, 142, + -503, 261, 136, 371, 711, 712, 713, 714, 624, 24, 397, 788, -503,-32766, -509,-32766,-32766, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 745, 556, 746, 747, 748, 749, 737, 738, 372, 373, 740, 741, 726, 727, 728, 730, 731, 732, 332, 771, 772, 773, 774, 775, 733, 734, 557, 558, 766, 757, 755, 756, 752, 753, -294, -189, 559, 560, 751, 561, 562, 563, - 564, 565, 566, 309, 81, 82, 83, 139, 754, 567, - 568, 681, 137, 729, 699, 700, 701, 702, 703, 1239, + 564, 565, 566, 310, 81, 82, 83, -188, 754, 567, + 568,-32766, 137, 729, 699, 700, 701, 702, 703, 1239, 704, 705, 706, 742, 743, 33, 1238, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 31, 263,-32766,-32766,-32766, 104, 105, 106, 577, 263, - 1216, 126, -188, 107, 142, 440, 441, 707,-32766,-32766, - -32766, 107, -254,-32766, 247,-32766,-32766,-32766,-32766,-32766, - -32766, 708, 709, 710, 711, 712, 713, 714, 293,-32766, - 776,-32766,-32766,-32766,-32766,-32766, 295, 715, 716, 717, + 247, 263,-32766,-32766,-32766, 104, 105, 106, 577, 263, + 481, 455, 18, 107, 293, 440, 441, 707,-32766,-32766, + -32766, 107, 814,-32766, 815,-32766,-32766,-32766,-32766,-32766, + -32766, 708, 709, 710, 711, 712, 713, 714, 295,-32766, + 776,-32766,-32766,-32766,-32766,-32766, 783, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 745, 768, 746, 747, 748, 749, 737, 738, 739, 767, 740, 741, 726, 727, 728, 730, 731, 732, 770, 771, 772, 773, 774, 775, 733, 734, 735, 736, 766, 757, 755, 756, - 752, 753, 529, 311, 744, 750, 751, 758, 759, 761, - 760, 762, 763, 234,-32766,-32766,-32766, 307, 754, 765, - 764, 48, 49, 50, 486, 51, 52, 481, 397, 18, - 321, 53, 54, 345, 55,-32766, 982,-32766,-32766,-32766, - -32766,-32766,-32766,-32767,-32767,-32767,-32767,-32767, 349,-32767, - -32767,-32767,-32767, 99, 100, 101, 102, 103, 814, 354, - 815, 1191, 356, 1152, 871, 271, 408, 871, 56, 57, - 409, 814, 410, 815, 58, -188, 59, 240, 241, 60, - 61, 62, 63, 64, 65, 66, 67,-32766, 26, 262, - 68, 412, 487, 411, 672, 967, 1185, 1186, 488, 1150, - 1216, 1154, 1153, 1155, 1183, 40, 23, 489, 1009, 490, - -82, 491, 147, 492, 969, 970, 493, 494, 786, 429, + 752, 753, 529, 307, 744, 750, 751, 758, 759, 761, + 760, 762, 763, 234,-32766,-32766,-32766, 321, 754, 765, + 764, 48, 49, 50, 486, 51, 52, 147, 397, 345, + 784, 53, 54, 349, 55,-32766, 982,-32766,-32766,-32766, + -32766,-32766,-32766,-32767,-32767,-32767,-32767,-32767, 456,-32767, + -32767,-32767,-32767, 99, 100, 101, 102, 103, 146, 376, + 1219, 1191, 354, 1152, 871, 271, 356, 871, 56, 57, + 1008, 814, 692, 815, 58, 148, 59, 240, 241, 60, + 61, 62, 63, 64, 65, 66, 67, 150, 26, 262, + 68, 412, 487, 408, 672, 967, 1185, 1186, 488, 1150, + 787, 1154, 1153, 1155, 1183, 40, 23, 489, 1009, 490, + -82, 491, 409, 492, 969, 970, 493, 494, 786, 429, 430, 42, 43, 413, 418, 415, 871, 44, 495, 391, - 496, 497, 248, 344, 320, 1159, 1154, 1153, 1155, 793, - 896, 498, 499, 500, 148, 1008, 861, 692, 787, 861, - 967, 1254, 501, 502, 150, 1173, 1174, 1175, 1176, 1170, - 1171, 281, 624, 24, 26, -14, 151, 1177, 1172, 969, - 970, 1154, 1153, 1155, 282, -82, 1216, -502, 152, 69, - 1183, 305, 306, 311, 34, 108, 109, 110, 111, 112, + 496, 497, 248, 344, 320, 1159, 1154, 1153, 1155, 410, + 896, 498, 499, 500, 639, 640, 861, 411, 787, 861, + 967, 1254, 501, 502, 793, 1173, 1174, 1175, 1176, 1170, + 1171, 281, 424, 425, 26, -14, 151, 1177, 1172, 969, + 970, 1154, 1153, 1155, 282, -82, 787, -502, 152, 69, + 1183, 305, 306, 309, 34, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 154, -149, - -149, -149, 639, 640, 146, 376, 1159, 1159, 861, 615, - 616, 32, 243, 35, -149, 1216, -149, 121, -149, 873, - -149, 667, 873, 122, 667, 242, 1067, 1069, 501, 502, - 414, 1173, 1174, 1175, 1176, 1170, 1171, -501, 127, -502, - -502, 496, 497, 1177, 1172, -504, 128, 871, 424, 425, - 847, 896, -107, -107, -502, 71, 442, 443, 306, 311, - -107,-32766, 432, 433, -49, 141, -502, 1152, -508, 155, - 156, 780, 157, -84,-32766,-32766,-32766, 673,-32766, -76, - -32766, 873,-32766, 667, -149,-32766, 1216, 1216, 1179, 282, - -32766,-32766,-32766, -73, 73, -71,-32766,-32766, 311, -501, - -501, 129,-32766, 388, -70, -69,-32766, -504, -504, -68, - -32766, -67, 1152, -66, -501, -65, 871, -64, 275,-32766, - -32766,-32766, -504,-32766, -45,-32766, -501,-32766, -16, 861, - -32766, 145, -107, 264, -504,-32766,-32766,-32766, 682, 72, - 244,-32766,-32766,-32766, 685, 782, 674,-32766, 388, 1152, - 669, 871, -501, 870, 144,-32766,-32766,-32766,-32766, 272, - -32766, 282,-32766, 273,-32766, 73, 73,-32766, 1216, 311, - 311, 276,-32766,-32766,-32766, 885,-32766, 246,-32766,-32766, + -149, -149, 442, 443, 615, 616, 1159, 1159, 861, 432, + 433, 32, 243, 35, -149, 787, -149, 80, -149, 873, + -149, 667, 873, 309, 667, 242, 1067, 1069, 501, 502, + 414, 1173, 1174, 1175, 1176, 1170, 1171, -501, 121, -502, + -502, 496, 497, 1177, 1172, -504, 1235, 871, 122, -84, + 847, 896, -107, -107, -502, 71, 127, 128, 306, 309, + -107,-32766, -76, 141, -49, 155, -502, 1152, -508, 156, + 157, 780, 272, -73,-32766,-32766,-32766, 673,-32766, -71, + -32766, 873,-32766, 667, -149,-32766, 787, 787, 1179, 282, + -32766,-32766,-32766, -70, 73, -69,-32766,-32766, 309, -501, + -501, 129,-32766, 388, -68, -67,-32766, -504, -504, -66, + -32766, -65, 1152, -64, -501, -45, 871, -16, 885,-32766, + -32766,-32766, -504,-32766, 778,-32766, -501,-32766, 145, 861, + -32766, 264, -107, 682, -504,-32766,-32766,-32766, 685, 72, + 244,-32766,-32766,-32766, 870, 782, 674,-32766, 388, 1152, + 669, 871, -501, 275, 273,-32766,-32766,-32766,-32766, 144, + -32766, 282,-32766, 107,-32766, 73, 73,-32766, 787, 309, + 309, 276,-32766,-32766,-32766, 143,-32766, 246,-32766,-32766, 277, 677, 1152, 314,-32766, 388, -4, 871, 263,-32766, - -32766,-32766,-32766,-32766, 107,-32766, 143,-32766, 861, 778, - -32766, 871, 873,-32766, 667,-32766,-32766,-32766, 625, 647, - 871,-32766,-32766,-32766, -501, -501, 787,-32766, 388, 1152, - 1037,-32766, 969, 970, 1266,-32766,-32766,-32766,-32766, -501, - -32766, 531,-32766, 861,-32766, 660, 871,-32766, 630, 535, - 683, -501,-32766,-32766,-32766, 138,-32766, 642,-32766,-32766, - 1023, 311, 1152, 20,-32766, 388, 437, 466, 631,-32766, - -32766,-32766,-32766,-32766, 643,-32766, 286,-32766, -506, 861, - -32766, 913, 407, 667, 613,-32766,-32766,-32766,-32766, 284, - -467,-32766,-32766, 861, 46, 283, 282,-32766, 388, 686, - 897, 414, 861, 402, 898,-32766, 294, 38, 280, -232, - -232, -232, 496, 497, 1007, 414, 873, 26, 667, 1190, - 786, 806, 896, -107, -107, 1192, 496, 497, 861, 1216, - 47, -457, 8, 1183, 22, 847, 896, -107, -107, 347, - -506, -506, 541, 9, -231, -231, -231, 581, 1180, 887, - 414, 39, 873, 848, 667, -4, 289, 290, 689, 690, - 852, 496, 497, 937, 914, 1261, 873, -506, 667, -232, - 847, 896, -107, -107, 921, 873, 911, 667, 922, 850, - 909, -537, 502, 123, 1173, 1174, 1175, 1176, 1170, 1171, - 1012, 1015, 291, 292, 1016, 1013, 1177, 1172, 1014, 1020, - 1263, 873, 30, 667, -231, 304, 798, 348, 71, 1205, - 1223, 306, 311, 1257, 618, -535, 346, 668, -107, 125, - -107, 671, 675, 676, 678, 285, 679, 680, -107, -107, - -107, -107, -107, -107, -107, 684, 670, -257, 809, 808, - 817, 895, 929, 816, 1262, 894, 892, 893, 1138, 880, - 888, 878, 919, 920, 1260, 1217, 1206, 1224, 1230, 1233, - 0, -509, -508, -507, 1, 27, 28, 37, 41, 45, - 70, 74, -308, -255, 75, 76, 77, 78, 79, 140, - 149, 153, 239, 310, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 403, 404, 0, -254, 12, - 13, 14, 15, 17, 375, 457, 458, 465, 468, 469, - 470, 471, 475, 476, 477, 484, 654, 1163, 1106, 1181, - 984, 1142, -259, -99, 11, 16, 25, 279, 374, 574, - 578, 605, 659, 1110, 1158, 1107, 1236, 0, -471, 1123, - 0, 1184 + -32766,-32766,-32766,-32766, 647,-32766, 778,-32766, 861, 535, + -32766, 871, 873, 139, 667,-32766,-32766,-32766, 787, 309, + 871,-32766,-32766,-32766, -501, -501, 1037,-32766, 388, 1152, + 1266,-32766, 625, 531, 642,-32766,-32766,-32766,-32766, -501, + -32766,-32766,-32766, 861,-32766, 660, 871,-32766,-32766, 20, + 683, -501,-32766,-32766,-32766, 138,-32766, 630,-32766,-32766, + 437, 309, 1152, 466,-32766, 388, 407, 969, 970,-32766, + -32766,-32766,-32766,-32766, 631,-32766, 643,-32766, -506, 861, + -32766, 913, 613, 667, 290,-32766,-32766,-32766, 287, 1023, + 294,-32766,-32766, 861, 46, 897, 288,-32766, 388, 898, + 1190, 414, 861, 402, 786,-32766, 1192, 887, 280, -232, + -232, -232, 496, 497, 1007, 414, 873, 26, 667, 0, + -467, 806, 896, -107, -107, -457, 496, 497, 861, 787, + 47, 7, 22, 1183, 347, 847, 896, -107, -107, 541, + -506, -506, 581, 9, -231, -231, -231, 38, 282, 686, + 414, 39, 873, 689, 667, -4, 283, 284, 690, 852, + 937, 496, 497, 914, 921, 848, 873, -506, 667, -232, + 847, 896, -107, -107, 911, 873, 922, 667, 850, 909, + 1012, -537, 502, 123, 1173, 1174, 1175, 1176, 1170, 1171, + 1015, 1016, 285, 286, 1013, 1014, 1177, 1172, 1020, 30, + 1180, 873, 304, 667, -231, 346, 798, 348, 71, 1205, + 1223, 306, 309, 1257, 618, -535, 668, 671, -107, 125, + -107, 675, 676, 678, 679, 289, 680, 684, -107, -107, + -107, -107, -107, -107, -107, 670, -509, 1261, 1263, 809, + 808, 817, 895, 929, 816, 1262, 894, 892, 893, 1138, + 880, 888, 878, 919, 920, 1260, 1217, 1206, 1224, 1230, + 1233, 0, -508, -507, 1, 27, 28, 37, 41, 45, + 70, 74, -308, -257, 75, 76, 77, 78, 79, 140, + 149, 153, 239, 311, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 403, 404, 0, -255, -254, + 12, 13, 14, 15, 17, 375, 457, 458, 465, 468, + 469, 470, 471, 475, 476, 477, 484, 654, 1163, 1106, + 1181, 984, 1142, -259, -99, 11, 16, 25, 279, 374, + 574, 578, 605, 659, 1110, 1158, 1107, 1236, 0, -471, + 1123, 0, 1184, 0, 309 ); protected $actionCheck = array( 2, 3, 4, 5, 6, 7, 115, 9, 10, 11, - 12, 13, 157, 1, 31, 73, 161, 9, 10, 11, - 8, 79, 79, 31, 1, 134, 135, 0, 86, 87, - 88, 8, 90, 1, 92, 37, 94, 1, 30, 97, + 12, 13, 157, 1, 0, 73, 161, 9, 10, 11, + 8, 79, 79, 31, 1, 134, 135, 1, 86, 87, + 88, 8, 90, 1, 92, 37, 94, 8, 30, 97, 32, 33, 34, 101, 102, 103, 104, 9, 10, 11, - 108, 109, 14, 105, 56, 107, 114, 115, 115, 116, + 108, 109, 14, 14, 56, 8, 114, 115, 115, 116, 117, 118, 119, 120, 122, 105, 106, 8, 70, 71, 72, 73, 74, 75, 76, 115, 1, 79, 115, 116, 117, 118, 119, 120, 86, 87, 88, 89, 90, 91, @@ -375,114 +375,114 @@ class Php7 extends \PhpParser\ParserAbstract 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 8, 8, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 1, 158, 79, 69, 1, 147, 148, 149, 156, 151, - 9, 10, 11, 2, 3, 4, 5, 6, 7, 161, + 9, 10, 11, 69, 8, 147, 148, 149, 156, 151, + 49, 50, 51, 2, 3, 4, 5, 6, 7, 161, 9, 10, 11, 12, 13, 9, 10, 11, 73, 157, - 9, 10, 11, 161, 79, 80, 49, 50, 51, 50, + 9, 10, 11, 161, 79, 80, 118, 119, 120, 50, 157, 86, 87, 88, 161, 90, 30, 92, 37, 94, 158, 30, 97, 32, 33, 34, 35, 102, 103, 104, - 118, 119, 120, 108, 109, 131, 132, 56, 79, 114, - 115, 82, 9, 10, 11, 14, 153, 122, 79, 8, - 146, 70, 71, 72, 73, 74, 75, 76, 9, 10, + 161, 9, 10, 108, 109, 131, 132, 56, 79, 114, + 115, 82, 9, 10, 11, 8, 105, 122, 107, 8, + 146, 70, 71, 72, 73, 74, 75, 76, 74, 75, 79, 156, 158, 30, 160, 32, 33, 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, 130, 161, 161, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 69, 9, 10, 11, 158, 147, 148, - 149, 158, 151, 2, 3, 4, 5, 6, 7, 1, + 139, 140, 141, 69, 9, 10, 11, 161, 147, 148, + 149, 9, 151, 2, 3, 4, 5, 6, 7, 1, 9, 10, 11, 12, 13, 30, 8, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 8, 56, 9, 10, 11, 52, 53, 54, 1, 56, - 81, 8, 8, 68, 8, 131, 132, 56, 9, 10, - 11, 68, 161, 30, 8, 32, 33, 34, 35, 36, + 105, 31, 107, 68, 8, 131, 132, 56, 9, 10, + 11, 68, 105, 30, 107, 32, 33, 34, 35, 36, 37, 70, 71, 72, 73, 74, 75, 76, 8, 30, - 79, 32, 33, 34, 35, 36, 8, 86, 87, 88, + 79, 32, 33, 34, 35, 36, 79, 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, 130, 84, 164, 133, 134, 135, 136, 137, 138, + 129, 130, 84, 8, 133, 134, 135, 136, 137, 138, 139, 140, 141, 96, 9, 10, 11, 8, 147, 148, - 149, 2, 3, 4, 5, 6, 7, 105, 79, 107, - 8, 12, 13, 8, 15, 30, 1, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 8, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 105, 8, - 107, 143, 8, 79, 1, 30, 8, 1, 49, 50, - 8, 105, 8, 107, 55, 161, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 9, 69, 70, + 149, 2, 3, 4, 5, 6, 7, 14, 79, 8, + 153, 12, 13, 8, 15, 30, 1, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 158, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 100, 101, + 1, 143, 8, 79, 1, 30, 8, 1, 49, 50, + 156, 105, 158, 107, 55, 14, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 14, 69, 70, 71, 72, 73, 8, 31, 115, 77, 78, 79, 115, 81, 152, 153, 154, 85, 86, 87, 88, 159, 90, - 31, 92, 14, 94, 134, 135, 97, 98, 152, 105, + 31, 92, 8, 94, 134, 135, 97, 98, 152, 105, 106, 102, 103, 104, 105, 106, 1, 108, 109, 115, 116, 117, 37, 114, 115, 1, 152, 153, 154, 8, - 126, 122, 123, 124, 14, 156, 83, 158, 81, 83, - 115, 84, 133, 134, 14, 136, 137, 138, 139, 140, - 141, 142, 74, 75, 69, 31, 14, 148, 149, 134, + 126, 122, 123, 124, 74, 75, 83, 8, 81, 83, + 115, 84, 133, 134, 8, 136, 137, 138, 139, 140, + 141, 142, 105, 106, 69, 31, 14, 148, 149, 134, 135, 152, 153, 154, 155, 96, 81, 69, 14, 160, 85, 162, 163, 164, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 14, 74, - 75, 76, 74, 75, 100, 101, 1, 1, 83, 110, - 111, 144, 145, 14, 89, 81, 91, 16, 93, 156, - 95, 158, 156, 16, 158, 37, 58, 59, 133, 134, + 75, 76, 105, 106, 110, 111, 1, 1, 83, 127, + 128, 144, 145, 14, 89, 81, 91, 158, 93, 156, + 95, 158, 156, 164, 158, 37, 58, 59, 133, 134, 105, 136, 137, 138, 139, 140, 141, 69, 16, 131, - 132, 116, 117, 148, 149, 69, 16, 1, 105, 106, - 125, 126, 127, 128, 146, 160, 105, 106, 163, 164, - 126, 73, 127, 128, 31, 16, 158, 79, 160, 16, - 16, 79, 16, 31, 86, 87, 88, 31, 90, 31, + 132, 116, 117, 148, 149, 69, 1, 1, 16, 31, + 125, 126, 127, 128, 146, 160, 16, 16, 163, 164, + 126, 73, 31, 16, 31, 16, 158, 79, 160, 16, + 16, 79, 35, 31, 86, 87, 88, 31, 90, 31, 92, 156, 94, 158, 159, 97, 81, 81, 1, 155, 102, 103, 104, 31, 160, 31, 108, 109, 164, 131, 132, 31, 114, 115, 31, 31, 73, 131, 132, 31, - 122, 31, 79, 31, 146, 31, 1, 31, 30, 86, - 87, 88, 146, 90, 31, 92, 158, 94, 31, 83, + 122, 31, 79, 31, 146, 31, 1, 31, 37, 86, + 87, 88, 146, 90, 79, 92, 158, 94, 31, 83, 97, 31, 126, 31, 158, 102, 103, 104, 31, 151, 37, 108, 109, 73, 31, 153, 31, 114, 115, 79, - 158, 1, 69, 31, 31, 122, 86, 87, 88, 35, - 90, 155, 92, 35, 94, 160, 160, 97, 81, 164, - 164, 35, 102, 103, 104, 37, 73, 37, 108, 109, + 158, 1, 69, 30, 35, 122, 86, 87, 88, 31, + 90, 155, 92, 68, 94, 160, 160, 97, 81, 164, + 164, 35, 102, 103, 104, 69, 73, 37, 108, 109, 35, 31, 79, 35, 114, 115, 0, 1, 56, 86, - 87, 88, 122, 90, 68, 92, 69, 94, 83, 79, - 97, 1, 156, 115, 158, 102, 103, 104, 89, 76, + 87, 88, 122, 90, 76, 92, 79, 94, 83, 88, + 97, 1, 156, 158, 158, 102, 103, 104, 81, 164, 1, 108, 109, 73, 131, 132, 81, 114, 115, 79, - 81, 84, 134, 135, 82, 122, 86, 87, 88, 146, - 90, 84, 92, 83, 94, 91, 1, 97, 95, 88, - 31, 158, 102, 103, 104, 158, 73, 93, 108, 109, - 121, 164, 79, 96, 114, 115, 96, 96, 99, 86, - 87, 88, 122, 90, 99, 92, 113, 94, 69, 83, - 97, 156, 126, 158, 112, 102, 103, 104, 115, 130, - 146, 108, 109, 83, 69, 129, 155, 114, 115, 159, - 126, 105, 83, 107, 126, 122, 129, 156, 112, 99, - 100, 101, 116, 117, 1, 105, 156, 69, 158, 143, - 152, 125, 126, 127, 128, 143, 116, 117, 83, 81, - 69, 146, 146, 85, 146, 125, 126, 127, 128, 146, - 131, 132, 150, 147, 99, 100, 101, 150, 157, 151, - 105, 156, 156, 159, 158, 159, 131, 132, 156, 156, + 82, 84, 89, 84, 93, 122, 86, 87, 88, 146, + 90, 115, 92, 83, 94, 91, 1, 97, 115, 96, + 31, 158, 102, 103, 104, 158, 73, 95, 108, 109, + 96, 164, 79, 96, 114, 115, 126, 134, 135, 86, + 87, 88, 122, 90, 99, 92, 99, 94, 69, 83, + 97, 156, 112, 158, 113, 102, 103, 104, 129, 121, + 129, 108, 109, 83, 69, 126, 130, 114, 115, 126, + 143, 105, 83, 107, 152, 122, 143, 151, 112, 99, + 100, 101, 116, 117, 1, 105, 156, 69, 158, -1, + 146, 125, 126, 127, 128, 146, 116, 117, 83, 81, + 69, 146, 146, 85, 146, 125, 126, 127, 128, 150, + 131, 132, 150, 147, 99, 100, 101, 156, 155, 159, + 105, 156, 156, 156, 158, 159, 131, 132, 156, 156, 156, 116, 117, 156, 156, 159, 156, 158, 158, 159, 125, 126, 127, 128, 156, 156, 156, 158, 156, 156, 156, 160, 134, 158, 136, 137, 138, 139, 140, 141, - 156, 156, 131, 132, 156, 156, 148, 149, 156, 156, - 159, 156, 158, 158, 159, 158, 157, 146, 160, 157, + 156, 156, 131, 132, 156, 156, 148, 149, 156, 158, + 157, 156, 158, 158, 159, 158, 157, 146, 160, 157, 157, 163, 164, 157, 157, 160, 158, 158, 105, 158, 107, 158, 158, 158, 158, 112, 158, 158, 115, 116, - 117, 118, 119, 120, 121, 158, 158, 161, 159, 159, + 117, 118, 119, 120, 121, 158, 160, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - -1, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 159, -1, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 159, 161, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, -1, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, -1, 162, 162, - -1, 163 + 161, 161, 161, 161, 161, 161, 161, 161, -1, 162, + 162, -1, 163, -1, 164 ); protected $actionBase = array( - 0, -2, 151, 555, 816, 830, 865, 379, 717, 622, - 862, 676, 780, 780, 839, 780, 493, 745, 301, 301, + 0, -2, 151, 555, 816, 830, 865, 717, 379, 622, + 859, 676, 780, 780, 839, 780, 493, 745, 301, 301, -57, 301, 301, 496, 496, 496, 618, 618, 618, 618, -58, -58, 95, 700, 733, 770, 663, 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, @@ -497,57 +497,57 @@ class Php7 extends \PhpParser\ParserAbstract 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, 75, -8, - 347, 629, 986, 992, 988, 993, 984, 983, 987, 989, - 994, 915, 916, 753, 917, 918, 919, 920, 990, 877, - 985, 991, 285, 285, 285, 285, 285, 285, 285, 285, + 347, 629, 987, 993, 989, 994, 985, 984, 988, 990, + 995, 916, 917, 758, 918, 919, 920, 921, 991, 877, + 986, 992, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, - 285, 285, 285, 508, 38, 219, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, + 285, 285, 285, 292, 38, 192, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 156, 156, 156, 203, 525, 525, 8, 598, 161, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 349, 333, 435, 435, 435, 435, 435, 436, 436, 436, 436, - 933, 564, 636, 635, 465, -52, 127, 127, 718, 718, - 759, 410, 410, 410, 444, -109, -109, -109, 74, 538, - 396, 348, 414, 414, 414, 414, 414, 802, 998, 139, - 139, 139, 139, 414, 414, 414, 606, 713, 713, 881, - 293, 293, 293, 713, 383, 777, 497, 383, 497, 129, - 793, 32, -40, -145, 793, 829, 845, 23, 12, 788, - 573, 788, 767, 863, 898, 995, 82, 789, 913, 795, - 914, 224, 678, 981, 981, 981, 981, 981, 981, 981, - 981, 981, 981, 981, 269, 982, 63, 269, 269, 269, - 529, 63, 518, 558, 63, 778, 982, 75, 805, 75, + 933, 564, 636, 635, 465, 111, 101, 101, 753, 753, + 788, 410, 410, 410, 444, -109, -109, -109, 74, 538, + 396, 348, 414, 675, 675, 675, 675, 414, 414, 414, + 414, 783, 999, 414, 414, 414, 606, 713, 713, 881, + 293, 293, 293, 713, 257, 769, 497, 257, 497, 489, + 129, 746, -40, -145, 746, 829, 845, 23, 12, 772, + 487, 772, 767, 862, 897, 996, 58, 795, 914, 797, + 915, 224, 661, 982, 982, 982, 982, 982, 982, 982, + 982, 982, 982, 982, 1000, 983, 307, 1000, 1000, 1000, + 524, 307, 154, 500, 307, 778, 983, 75, 799, 75, 75, 75, 75, 944, 75, 75, 75, 75, 75, 75, - 949, 727, 723, 692, -17, 75, -8, 143, 143, 419, - 36, 143, 143, 143, 143, 75, 75, 565, 573, 762, - 812, 581, 817, 344, 762, 762, 762, 509, 121, 201, - 122, 352, 750, 750, 768, 769, 924, 924, 750, 765, - 750, 769, 929, 750, 768, 768, 750, 924, 768, 761, - 343, 488, 452, 470, 768, 768, 492, 924, 370, 768, - 768, 750, 750, 750, 797, 768, 494, 750, 356, 346, - 750, 750, 768, 768, 797, 786, 59, 779, 924, 924, - 924, 797, 455, 779, 779, 822, 823, 792, 732, 439, - 378, 561, 332, 768, 732, 732, 750, 481, 792, 732, - 792, 732, 818, 732, 732, 732, 792, 732, 765, 484, - 732, 768, 515, 211, 732, 27, 930, 931, 672, 934, - 927, 935, 955, 936, 937, 879, 794, 798, 942, 928, - 938, 926, 925, 752, 631, 637, 806, 764, 923, 756, - 756, 756, 921, 756, 756, 756, 756, 756, 756, 756, - 756, 631, 811, 813, 776, 781, 945, 652, 660, 796, - 814, 996, 997, 944, 976, 939, 771, 679, 962, 946, - 760, 867, 947, 948, 963, 977, 978, 826, 757, 861, - 899, 869, 950, 883, 756, 930, 937, 928, 938, 926, - 925, 716, 714, 710, 712, 708, 704, 694, 703, 730, - 875, 841, 872, 949, 922, 631, 873, 958, 864, 964, - 965, 878, 790, 772, 876, 900, 951, 952, 953, 884, - 979, 885, 815, 959, 896, 966, 791, 901, 967, 968, - 969, 970, 886, 902, 888, 824, 749, 932, 773, 903, - 528, 766, 775, 956, 560, 943, 889, 904, 905, 971, - 972, 973, 906, 907, 940, 827, 960, 784, 961, 957, - 828, 838, 570, 754, 758, 582, 594, 908, 909, 941, - 737, 763, 840, 842, 980, 910, 614, 843, 683, 911, - 975, 684, 686, 774, 897, 808, 783, 787, 954, 743, - 844, 912, 854, 855, 858, 974, 859, 0, 0, 0, + 949, 716, 714, 672, 320, 75, -8, 32, 32, 344, + 26, 32, 32, 32, 32, 75, 75, 512, 487, 762, + 809, 527, 812, 136, 762, 762, 762, 509, 121, 39, + 122, 245, 747, 747, 711, 765, 924, 924, 747, 757, + 747, 765, 929, 747, 711, 711, 747, 924, 711, 813, + 207, 515, 439, 455, 711, 711, 534, 924, 346, 711, + 711, 747, 747, 747, 781, 711, 561, 747, 332, 211, + 747, 747, 711, 711, 781, 779, 29, 786, 924, 924, + 924, 781, 451, 786, 786, 817, 822, 790, 730, 425, + 370, 576, 59, 711, 730, 730, 747, 484, 790, 730, + 790, 730, 776, 730, 730, 730, 790, 730, 757, 488, + 730, 711, 569, 47, 730, 14, 930, 931, 648, 934, + 927, 935, 955, 936, 937, 878, 789, 793, 942, 928, + 938, 926, 925, 743, 652, 662, 805, 794, 923, 725, + 725, 725, 896, 725, 725, 725, 725, 725, 725, 725, + 725, 652, 863, 808, 760, 741, 945, 670, 671, 777, + 826, 997, 998, 944, 977, 939, 811, 677, 963, 946, + 810, 864, 947, 948, 964, 978, 979, 898, 736, 899, + 900, 869, 950, 879, 725, 930, 937, 928, 938, 926, + 925, 712, 710, 704, 708, 703, 694, 678, 692, 727, + 875, 841, 872, 949, 922, 652, 873, 959, 861, 965, + 966, 867, 784, 768, 876, 901, 951, 952, 953, 883, + 980, 884, 815, 960, 932, 967, 787, 902, 968, 969, + 970, 971, 885, 903, 886, 823, 763, 957, 782, 904, + 443, 766, 775, 956, 491, 943, 888, 905, 906, 972, + 973, 974, 907, 908, 940, 824, 961, 761, 962, 958, + 827, 828, 503, 667, 749, 582, 594, 909, 910, 941, + 732, 748, 838, 840, 981, 911, 614, 842, 679, 912, + 976, 683, 684, 774, 889, 806, 791, 773, 954, 737, + 843, 913, 844, 854, 855, 975, 858, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 449, 449, 449, 449, 449, @@ -576,21 +576,21 @@ class Php7 extends \PhpParser\ParserAbstract 285, 285, 285, 285, 285, 285, 285, 285, 414, 414, 285, 0, 285, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 285, 285, 285, 285, 285, 285, 285, - 293, 293, 293, 293, 761, 414, 414, 414, 414, -37, - 293, 293, 414, 414, -37, 414, 414, 414, 761, 414, - 414, 414, 0, 0, 63, 497, 0, 0, 0, 0, - 0, 497, 497, 269, 269, 269, 269, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 63, 497, - 0, 63, 0, 765, 414, 269, 761, 308, 414, 0, - 0, 0, 0, 63, 765, 63, 497, 143, 75, 308, - 0, 534, 534, 534, 534, 0, 573, 761, 761, 761, - 761, 761, 761, 761, 761, 761, 761, 761, 0, 761, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 765, - 768, 0, 924, 0, 0, 0, 0, 750, 0, 0, - 0, 0, 0, 0, 750, 929, 768, 768, 0, 0, - 0, 0, 0, 0, 765, 0, 0, 0, 0, 0, - 0, 0, 0, 756, 790, 0, 790, 0, 756, 756, - 756 + 293, 293, 293, 293, 813, 414, 414, 414, 414, -37, + 293, 293, 414, 414, -37, 414, 414, 414, 813, 414, + 414, 414, 0, 0, 307, 497, 0, 757, 757, 757, + 757, 0, 0, 0, 0, 497, 497, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 307, 497, + 0, 307, 0, 757, 757, 414, 813, 308, 414, 0, + 0, 0, 0, 307, 757, 307, 497, 32, 75, 308, + 0, 388, 388, 388, 388, 0, 487, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 813, 757, 813, + 0, 757, 757, 757, 0, 0, 0, 0, 0, 757, + 711, 0, 924, 0, 0, 0, 0, 747, 0, 0, + 0, 0, 0, 0, 747, 929, 711, 711, 0, 0, + 0, 0, 0, 0, 757, 0, 0, 0, 0, 0, + 0, 0, 0, 725, 784, 0, 784, 0, 725, 725, + 725 ); protected $actionDefault = array( @@ -667,9 +667,9 @@ class Php7 extends \PhpParser\ParserAbstract ); protected $goto = array( - 190, 190, 655, 781, 663, 399, 629, 964, 971, 972, + 190, 190, 655, 1251, 1251, 399, 629, 308, 292, 663, 393, 297, 298, 317, 549, 303, 398, 318, 400, 607, - 361, 365, 534, 572, 576, 161, 161, 161, 161, 187, + 1251, 964, 971, 972, 571, 161, 161, 161, 161, 187, 187, 171, 173, 209, 191, 204, 187, 187, 187, 187, 187, 188, 188, 188, 188, 188, 188, 182, 183, 184, 185, 186, 206, 204, 207, 509, 510, 389, 511, 513, @@ -682,59 +682,54 @@ class Php7 extends \PhpParser\ParserAbstract 223, 224, 174, 225, 175, 192, 193, 194, 231, 182, 183, 184, 185, 186, 206, 1053, 195, 176, 177, 178, 196, 192, 179, 232, 197, 159, 198, 226, 180, 199, - 227, 228, 181, 229, 200, 201, 202, 807, 611, 611, - 804, 274, 274, 274, 274, 976, 973, 974, 592, 626, - 1147, 594, 594, 571, 533, 526, 1182, 1182, 1182, 1182, - 1182, 1182, 1182, 1182, 1182, 1182, 1250, 1250, 986, 328, - 812, 1027, 860, 855, 856, 869, 1026, 813, 857, 810, - 858, 859, 811, 803, 1251, 1251, 805, 1250, 863, 912, - 936, 910, 910, 908, 910, 687, 363, 526, 1003, 1004, - 533, 1253, 525, 945, 940, 1251, 542, 543, 820, 1148, - 838, 370, 552, 832, 308, 288, 819, 573, 864, 795, - 865, 1200, 1200, 785, 587, 588, 1200, 1200, 1200, 1200, - 1200, 1200, 1200, 1200, 1200, 1200, 1151, 1151, 1151, 968, - 1149, 1208, 1209, 968, 968, 472, 968, 968, 968, 779, - 968, 968, 968, 1232, 1232, 1232, 1232, 1151, 1151, 1151, - 1151, 1151, 785, 21, 785, 546, 1198, 1198, 1151, 1151, - 1151, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, - 1198, 523, 523, 523, 325, 876, 512, 512, 392, 877, - 582, 512, 512, 512, 512, 512, 512, 512, 512, 512, - 512, 1240, 427, 906, 906, 906, 906, 387, 387, 387, - 387, 602, 604, 427, 900, 907, 540, 904, 379, 662, - 688, 606, 608, 933, 5, 627, 6, 539, 645, 649, - 947, 653, 661, 943, 586, 377, 378, 800, 1019, 570, - 635, 666, 636, 359, 381, 382, 383, 453, 646, 652, - 652, 384, 658, 1017, 454, 323, 580, 595, 598, 599, - 600, 601, 619, 620, 621, 665, 527, 537, 1267, 450, - 1225, 1226, 527, 545, 537, 800, 628, 362, 1101, 528, - 434, 521, 521, 521, 521, 1227, 1228, 1132, 890, 405, - 575, 1133, 1136, 891, 1137, 444, 553, 445, 419, 419, - 419, 830, 329, 330, 1258, 1259, 1222, 1222, 1222, 622, - 623, 431, 637, 638, 1211, 439, 439, 550, 585, 881, - 1041, 797, 319, 833, 821, 991, 439, 590, 995, 825, - 828, 369, 822, 952, 1234, 1234, 1234, 1234, 915, 648, - 824, 955, 632, 931, 473, 691, 474, 992, 818, 1144, - 451, 996, 480, 0, 834, 1036, 1218, 917, 0, 0, - 1143, 0, 905, 0, 0, 0, 0, 0, 528, 0, - 0, 419, 419, 419, 419, 419, 419, 419, 419, 419, - 419, 419, 800, 419, 1034, 837, 0, 0, 0, 994, - 0, 0, 1220, 1220, 994, 0, 0, 0, 0, 0, + 227, 228, 181, 229, 200, 201, 202, 274, 274, 274, + 274, 807, 450, 1225, 1226, 594, 594, 328, 533, 526, + 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, + 580, 595, 598, 599, 600, 601, 619, 620, 621, 665, + 1027, 785, 986, 453, 812, 1026, 860, 855, 856, 869, + 454, 813, 857, 810, 858, 859, 811, 804, 439, 439, + 363, 526, 863, 805, 533, 521, 521, 521, 521, 439, + 542, 543, 1003, 1004, 575, 370, 552, 904, 379, 662, + 785, 573, 785, 1250, 1250, 1200, 1200, 781, 587, 588, + 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, + 1250, 387, 387, 387, 387, 1151, 1151, 1151, 968, 472, + 592, 626, 968, 968, 1253, 968, 968, 968, 912, 968, + 968, 968, 1232, 1232, 1232, 1232, 1151, 21, 1222, 1222, + 1222, 1151, 1151, 1151, 1151, 1198, 1198, 1151, 1151, 1151, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + 1234, 1234, 1234, 1234, 331, 876, 622, 623, 877, 637, + 638, 512, 512, 838, 331, 331, 512, 512, 512, 512, + 512, 512, 512, 512, 512, 512, 1218, 1147, 331, 331, + 864, 331, 865, 1267, 361, 365, 534, 572, 576, 570, + 1019, 779, 666, 528, 392, 331, 582, 523, 523, 523, + 652, 652, 539, 658, 1017, 5, 546, 6, 325, 586, + 1240, 994, 611, 611, 1220, 1220, 994, 933, 427, 976, + 973, 974, 628, 906, 906, 906, 906, 820, 1211, 427, + 900, 907, 832, 1132, 890, 819, 1148, 1133, 1136, 891, + 1137, 527, 537, 1227, 1228, 800, 795, 527, 359, 537, + 329, 330, 362, 648, 473, 434, 474, 602, 604, 550, + 585, 545, 480, 1101, 419, 419, 419, 1149, 1208, 1209, + 444, 553, 445, 950, 950, 405, 830, 431, 319, 1258, + 1259, 540, 528, 800, 797, 688, 606, 608, 825, 369, + 627, 955, 803, 645, 649, 947, 653, 661, 943, 936, + 910, 910, 908, 910, 687, 828, 822, 881, 1041, 377, + 378, 525, 945, 940, 635, 590, 636, 992, 381, 382, + 383, 952, 646, 691, 1144, 384, 451, 996, 824, 323, + 632, 931, 834, 917, 0, 0, 818, 419, 419, 419, + 419, 419, 419, 419, 419, 419, 419, 419, 1143, 419, + 1036, 1146, 833, 821, 991, 0, 0, 995, 270, 524, + 524, 0, 0, 0, 0, 0, 0, 915, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 800, 905, 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, 1146, 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, 270, 524, 524, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 950, - 950 + 0, 0, 0, 1034, 837 ); protected $gotoCheck = array( - 41, 41, 71, 6, 8, 64, 64, 105, 105, 105, + 41, 41, 71, 165, 165, 64, 64, 151, 151, 8, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 57, 57, 57, 57, 57, 41, 41, 41, 41, 41, + 165, 105, 105, 105, 114, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, @@ -747,78 +742,73 @@ class Php7 extends \PhpParser\ParserAbstract 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 14, 107, 107, - 25, 22, 22, 22, 22, 107, 107, 107, 54, 54, - 19, 99, 99, 114, 74, 74, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 164, 164, 111, 88, - 14, 128, 14, 14, 14, 14, 128, 14, 14, 14, - 14, 14, 14, 24, 165, 165, 26, 164, 14, 48, - 24, 24, 24, 24, 24, 24, 74, 74, 14, 14, - 74, 164, 24, 24, 24, 165, 74, 74, 34, 19, - 44, 74, 74, 34, 151, 151, 34, 74, 63, 19, - 63, 152, 152, 11, 74, 74, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 71, 71, 71, 71, - 19, 19, 19, 71, 71, 74, 71, 71, 71, 5, - 71, 71, 71, 8, 8, 8, 8, 71, 71, 71, - 71, 71, 11, 74, 11, 154, 153, 153, 71, 71, - 71, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 153, 18, 18, 18, 161, 71, 155, 155, 12, 71, - 12, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 163, 18, 18, 18, 18, 18, 23, 23, 23, - 23, 81, 81, 18, 18, 18, 47, 84, 84, 84, - 47, 47, 47, 94, 45, 47, 45, 8, 47, 47, - 47, 47, 47, 47, 8, 78, 78, 21, 7, 7, - 78, 7, 78, 60, 78, 78, 78, 80, 78, 7, - 7, 78, 7, 7, 80, 78, 77, 77, 77, 77, - 77, 77, 77, 77, 77, 77, 8, 8, 13, 158, - 158, 158, 8, 95, 8, 21, 62, 8, 135, 13, - 8, 98, 98, 98, 98, 160, 160, 76, 76, 103, - 98, 76, 76, 76, 76, 8, 8, 8, 22, 22, - 22, 8, 88, 88, 8, 8, 114, 114, 114, 82, - 82, 79, 82, 82, 13, 133, 133, 2, 2, 16, - 16, 17, 28, 15, 15, 15, 133, 16, 15, 38, - 8, 27, 36, 16, 114, 114, 114, 114, 15, 13, - 16, 101, 16, 16, 139, 90, 139, 113, 16, 144, - 141, 116, 139, -1, 40, 131, 114, 87, -1, -1, - 16, -1, 15, -1, -1, -1, -1, -1, 13, -1, - -1, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 21, 22, 15, 15, -1, -1, -1, 114, - -1, -1, 114, 114, 114, -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, + 41, 41, 41, 41, 41, 41, 41, 22, 22, 22, + 22, 14, 158, 158, 158, 99, 99, 88, 74, 74, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 128, 11, 111, 80, 14, 128, 14, 14, 14, 14, + 80, 14, 14, 14, 14, 14, 14, 25, 133, 133, + 74, 74, 14, 26, 74, 98, 98, 98, 98, 133, + 74, 74, 14, 14, 98, 74, 74, 84, 84, 84, + 11, 74, 11, 164, 164, 152, 152, 6, 74, 74, + 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, + 164, 23, 23, 23, 23, 71, 71, 71, 71, 74, + 54, 54, 71, 71, 164, 71, 71, 71, 48, 71, + 71, 71, 8, 8, 8, 8, 71, 74, 114, 114, + 114, 71, 71, 71, 71, 153, 153, 71, 71, 71, + 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, + 114, 114, 114, 114, 13, 71, 82, 82, 71, 82, + 82, 155, 155, 44, 13, 13, 155, 155, 155, 155, + 155, 155, 155, 155, 155, 155, 114, 19, 13, 13, + 63, 13, 63, 13, 57, 57, 57, 57, 57, 7, + 7, 5, 7, 13, 12, 13, 12, 18, 18, 18, + 7, 7, 8, 7, 7, 45, 154, 45, 161, 8, + 163, 114, 107, 107, 114, 114, 114, 94, 18, 107, + 107, 107, 62, 18, 18, 18, 18, 34, 13, 18, + 18, 18, 34, 76, 76, 34, 19, 76, 76, 76, + 76, 8, 8, 160, 160, 21, 19, 8, 60, 8, + 88, 88, 8, 13, 139, 8, 139, 81, 81, 2, + 2, 95, 139, 135, 22, 22, 22, 19, 19, 19, + 8, 8, 8, 98, 98, 103, 8, 79, 28, 8, + 8, 47, 13, 21, 17, 47, 47, 47, 38, 27, + 47, 101, 24, 47, 47, 47, 47, 47, 47, 24, + 24, 24, 24, 24, 24, 8, 36, 16, 16, 78, + 78, 24, 24, 24, 78, 16, 78, 113, 78, 78, + 78, 16, 78, 90, 144, 78, 141, 116, 16, 78, + 16, 16, 40, 87, -1, -1, 16, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 16, 22, + 131, 13, 15, 15, 15, -1, -1, 15, 23, 23, + 23, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 21, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 23, 23, 23, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, - 98 + -1, -1, -1, 15, 15 ); protected $gotoBase = array( - 0, 0, -232, 0, 0, 249, -6, 351, -16, 0, - 0, -37, -11, 79, -167, 22, 1, 148, 40, -188, - 0, 83, 158, 324, 199, 156, 202, 132, 162, 0, - 0, 0, 0, 0, -118, 0, 131, 0, 142, 0, - 66, -1, 0, 0, 211, -347, 0, -332, 192, 0, - 0, 0, 0, 0, 130, 0, 0, -23, 0, 0, - 323, 0, 161, 225, -229, 0, 0, 0, 0, 0, - 0, -5, 0, 0, -198, 0, 30, 42, -109, 157, - -77, -122, -246, 0, 53, 0, 0, 67, -267, 0, - 89, 0, 0, 0, 312, 352, 0, 0, 375, -63, - 0, 116, 0, 140, 0, -264, 0, -110, 0, 0, - 0, 186, 0, 118, 165, 0, 62, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -74, 0, - 0, 64, 0, 405, 0, 135, 0, 0, 0, -4, - 0, 63, 0, 0, 65, 0, 0, 0, 0, 0, - 0, -71, 7, 52, 258, 72, 0, 0, 99, 0, - 58, 276, 0, 292, -101, -83, 0, 0 + 0, 0, -260, 0, 0, 321, 228, 332, -11, 0, + 0, -89, 25, 23, -163, 81, 19, 141, 86, -31, + 0, 121, 154, 248, 438, 203, 209, 120, 148, 0, + 0, 0, 0, 0, 31, 0, 135, 0, 131, 0, + 74, -1, 0, 0, 294, -336, 0, -237, 251, 0, + 0, 0, 0, 0, 222, 0, 0, 291, 0, 0, + 358, 0, 137, 317, -229, 0, 0, 0, 0, 0, + 0, -6, 0, 0, -204, 0, 6, -154, -5, 153, + -251, -46, -369, 0, -61, 0, 0, 73, -289, 0, + 97, 0, 0, 0, 336, 370, 0, 0, 189, -69, + 0, 96, 0, 156, 0, -250, 0, 94, 0, 0, + 0, 190, 0, 118, 17, 0, 68, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -75, 0, + 0, 89, 0, 178, 0, 150, 0, 0, 0, -64, + 0, 69, 0, 0, 70, 0, 0, 0, 0, 0, + 0, -298, 1, 51, 329, 77, 0, 0, -122, 0, + 46, 330, 0, 331, -58, -288, 0, 0 ); protected $gotoDefault = array( -32768, 485, 695, 4, 696, 769, 777, 569, 503, 664, - 324, 596, 390, 331, 862, 1040, 551, 796, 1160, 1168, + 324, 596, 390, 1216, 862, 1040, 551, 796, 1160, 1168, 428, 799, 312, 326, 844, 845, 846, 366, 351, 357, 364, 617, 597, 467, 831, 422, 823, 459, 826, 421, 835, 158, 386, 483, 839, 3, 841, 530, 872, 352, @@ -829,10 +819,10 @@ class Php7 extends \PhpParser\ParserAbstract 693, 1052, 609, 462, 932, 610, 939, 942, 504, 505, 452, 954, 268, 463, 981, 633, 634, 966, 612, 979, 446, 985, 423, 993, 1204, 426, 997, 260, 1000, 269, - 385, 401, 1005, 1006, 7, 1011, 656, 657, 10, 265, + 385, 401, 1005, 1006, 8, 1011, 656, 657, 10, 265, 482, 1035, 651, 420, 1051, 406, 1120, 1122, 532, 464, 1140, 1139, 644, 479, 1145, 1207, 417, 506, 448, 299, - 507, 287, 315, 296, 522, 278, 316, 508, 449, 1213, + 507, 291, 315, 296, 522, 278, 316, 508, 449, 1213, 1221, 313, 29, 1241, 1252, 322, 548, 584 ); @@ -1891,7 +1881,7 @@ protected function initReduceCallbacks() { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 300 => 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)]; }, 301 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-1)]; @@ -2534,7 +2524,7 @@ protected function initReduceCallbacks() { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 510 => 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)]; }, 511 => function ($stackPos) { $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); @@ -2570,25 +2560,25 @@ protected function initReduceCallbacks() { $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 522 => function ($stackPos) { - $this->semValue = substr($this->semStack[$stackPos-(1-1)], 1); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 523 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-3)]; + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 524 => function ($stackPos) { $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 525 => function ($stackPos) { - $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); $this->errorState = 2; + $this->semValue = new Expr\Variable(new Expr\Error($this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes), $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); $this->errorState = 2; }, 526 => 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; + $var = $this->semStack[$stackPos-(1-1)]->name; $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes) : $var; }, 527 => function ($stackPos) { $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 528 => 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)]; }, 529 => function ($stackPos) { $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); @@ -2615,7 +2605,7 @@ protected function initReduceCallbacks() { $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 537 => 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)]; }, 538 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; @@ -2624,7 +2614,7 @@ protected function initReduceCallbacks() { $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 540 => 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)]; }, 541 => function ($stackPos) { $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; diff --git a/test/code/parser/expr/varVarPos.test b/test/code/parser/expr/varVarPos.test new file mode 100644 index 0000000000..26c747f5ab --- /dev/null +++ b/test/code/parser/expr/varVarPos.test @@ -0,0 +1,17 @@ +Variable variable positions +----- +