From 7f398769a09a87f60516cb47ba6bf075dde88661 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Sun, 9 Aug 2020 18:51:31 +0200 Subject: [PATCH] Add support for static return type --- CHANGELOG.md | 1 + grammar/php7.y | 28 +- lib/PhpParser/Parser/Php7.php | 1753 +++++++++--------- test/code/parser/stmt/class/staticType.test | 37 + test/code/prettyPrinter/stmt/staticType.test | 14 + 5 files changed, 963 insertions(+), 870 deletions(-) create mode 100644 test/code/parser/stmt/class/staticType.test create mode 100644 test/code/prettyPrinter/stmt/staticType.test diff --git a/CHANGELOG.md b/CHANGELOG.md index e5358e7..1ddcf79 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ Version 4.8.1-dev ### Added * [PHP 8.0] Added support for named arguments, represented using a new `name` subnode on `Arg`. +* [PHP 8.0] Added support for static return type, represented like a normal class return type. Version 4.8.0 (2020-08-09) -------------------------- diff --git a/grammar/php7.y b/grammar/php7.y index 645f554..0c8a6a9 100644 --- a/grammar/php7.y +++ b/grammar/php7.y @@ -475,13 +475,13 @@ optional_visibility_modifier: ; parameter: - optional_visibility_modifier optional_type optional_ref optional_ellipsis plain_variable + optional_visibility_modifier optional_type_without_static optional_ref optional_ellipsis plain_variable { $$ = new Node\Param($5, null, $2, $3, $4, attributes(), $1); $this->checkParam($$); } - | optional_visibility_modifier optional_type optional_ref optional_ellipsis plain_variable '=' expr + | optional_visibility_modifier optional_type_without_static optional_ref optional_ellipsis plain_variable '=' expr { $$ = new Node\Param($5, $7, $2, $3, $4, attributes(), $1); $this->checkParam($$); } - | optional_visibility_modifier optional_type optional_ref optional_ellipsis error + | optional_visibility_modifier optional_type_without_static optional_ref optional_ellipsis error { $$ = new Node\Param(Expr\Error[], null, $2, $3, $4, attributes(), $1); } ; @@ -492,6 +492,11 @@ type_expr: ; type: + type_without_static { $$ = $1; } + | T_STATIC { $$ = Node\Name['static']; } +; + +type_without_static: name { $$ = $this->handleBuiltinTypes($1); } | T_ARRAY { $$ = Node\Identifier['array']; } | T_CALLABLE { $$ = Node\Identifier['callable']; } @@ -502,9 +507,20 @@ union_type: | union_type '|' type { push($1, $3); } ; -optional_type: +union_type_without_static: + type_without_static '|' type_without_static { init($1, $3); } + | union_type_without_static '|' type_without_static { push($1, $3); } +; + +type_expr_without_static: + type_without_static { $$ = $1; } + | '?' type_without_static { $$ = Node\NullableType[$2]; } + | union_type_without_static { $$ = Node\UnionType[$1]; } +; + +optional_type_without_static: /* empty */ { $$ = null; } - | type_expr { $$ = $1; } + | type_expr_without_static { $$ = $1; } ; optional_return_type: @@ -570,7 +586,7 @@ class_statement_list: ; class_statement: - variable_modifiers optional_type property_declaration_list ';' + variable_modifiers optional_type_without_static property_declaration_list ';' { $attrs = attributes(); $$ = new Stmt\Property($1, $3, $attrs, $2); $this->checkProperty($$, #1); } | method_modifiers T_CONST class_const_list ';' diff --git a/lib/PhpParser/Parser/Php7.php b/lib/PhpParser/Parser/Php7.php index a22f7de..af24e5d 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 = 391; - protected $actionTableSize = 1125; - protected $gotoTableSize = 508; + protected $actionTableSize = 1138; + protected $gotoTableSize = 491; protected $invalidSymbol = 164; protected $errorSymbol = 1; protected $defaultAction = -32766; protected $unexpectedTokenRule = 32767; - protected $YY2TBLSTATE = 370; - protected $numNonLeafStates = 632; + protected $YY2TBLSTATE = 373; + protected $numNonLeafStates = 637; protected $symbolToName = array( "EOF", @@ -240,119 +240,120 @@ class Php7 extends \PhpParser\ParserAbstract ); protected $action = array( - 129, 130, 508, 131, 132, 229, 642, 643, 644, 133, - 35, -311,-32766, -311,-32766,-32766,-32766, 536, 1065, 949, - 950, 951, 948, 947, 946,-32766,-32766,-32766, 724,-32766, - 740,-32766, 741,-32766, 239,-32766,-32766,-32766,-32766,-32766, - 424,-32766,-32766,-32766, -527,-32766, 1177,-32766,-32766, 1178, - -527,-32766, 0, 645,-32766, 362,-32766,-32766,-32766, 103, - 104, 105,-32766, 257, 892, 893, -274, 255, 134, 351, - 649, 650, 651, 652, -178, 106, 370,-32766, 721,-32766, - -32766,-32766,-32766, 653, 654, 655, 656, 657, 658, 659, - 660, 661, 662, 663, 683, 509, 684, 685, 686, 687, - 675, 676, 352, 353, 678, 679, 664, 665, 666, 667, - 668, 669, 670, 325, 709, 710, 711, 712, 713, 671, - 672, 510, 511, 704, 695, 693, 694, 690, 691, -177, - 887, 512, 513, 689, 514, 515, 516, 517, 518, 519, - 1132, 718,-32766,-32766,-32766, 692, 520, 521, 484, 135, - -82, -241, 129, 130, 508, 131, 132, 901, 642, 643, - 644, 133, 35,-32766,-32766,-32766,-32766,-32766,-32766,-32766, - 1065, 503,-32766,-32766,-32766, 852, 2,-32766,-32766,-32766, - 11,-32766, 723,-32766, 30,-32766, 239, 125,-32766,-32766, - -32766,-32766, 716,-32766,-32766,-32766,-32766,-32766,-32766,-32766, - -32766, 140, -527,-32766, -527, 645,-32766, 362, 1104, 433, - -32766, 10,-32766,-32766,-32766, -82, 719,-32766, -274, 255, - 134, 351, 649, 650, 651, 652, -178, 418, 370, 949, - 950, 951, 948, 947, 946, 653, 654, 655, 656, 657, - 658, 659, 660, 661, 662, 663, 683, 509, 684, 685, - 686, 687, 675, 676, 352, 353, 678, 679, 664, 665, - 666, 667, 668, 669, 670, 325, 709, 710, 711, 712, - 713, 671, 672, 510, 511, 704, 695, 693, 694, 690, - 691, -177, 529, 512, 513, 689, 514, 515, 516, 517, - 518, 519, 80, 81, 82, 79, -481, 692, 520, 521, - 853, 135, 637, 638, 639, 640, 641, 1065, 642, 643, - 644, 680, 681, 32, 816, 83, 84, 85, 86, 87, + 129, 130, 511, 131, 132, 229, 647, 648, 649, 133, + 35, -318,-32766, -318,-32766,-32766,-32766, 539, 1077, 961, + 962, 963, 960, 959, 958,-32766,-32766,-32766, 729,-32766, + 745,-32766, 746,-32766, 239,-32766,-32766,-32766,-32766,-32766, + 427,-32766,-32766,-32766, -534,-32766, 1189,-32766,-32766, 1190, + -534,-32766, 0, 650,-32766, 365,-32766,-32766,-32766, 103, + 104, 105,-32766, 257, 899, 900, -281, 255, 134, 354, + 654, 655, 656, 657, -178, 106, 373,-32766, 726,-32766, + -32766,-32766,-32766, 658, 659, 660, 661, 662, 663, 664, + 665, 666, 667, 668, 688, 512, 689, 690, 691, 692, + 680, 681, 355, 356, 683, 684, 669, 670, 671, 672, + 673, 674, 675, 328, 714, 715, 716, 717, 718, 676, + 677, 513, 514, 709, 700, 698, 699, 695, 696, -177, + 892, 515, 516, 694, 517, 518, 519, 520, 521, 522, + 1144, 723,-32766,-32766,-32766, 697, 523, 524, 487, 135, + -82, -241, 129, 130, 511, 131, 132, 913, 647, 648, + 649, 133, 35,-32766,-32766,-32766,-32766,-32766,-32766,-32766, + 1077, 506,-32766,-32766,-32766, 857, 2,-32766,-32766,-32766, + 11,-32766, 728,-32766, 30,-32766, 239, 125,-32766,-32766, + -32766,-32766, 721,-32766,-32766,-32766,-32766,-32766,-32766,-32766, + -32766, 821, -534,-32766, -534, 650,-32766, 365, 1116, 436, + -32766, 10,-32766,-32766,-32766, -82, 724,-32766, -281, 255, + 134, 354, 654, 655, 656, 657, -178, 421, 373, 961, + 962, 963, 960, 959, 958, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 688, 512, 689, 690, + 691, 692, 680, 681, 355, 356, 683, 684, 669, 670, + 671, 672, 673, 674, 675, 328, 714, 715, 716, 717, + 718, 676, 677, 513, 514, 709, 700, 698, 699, 695, + 696, -177, 532, 515, 516, 694, 517, 518, 519, 520, + 521, 522, 80, 81, 82, 79, -488, 697, 523, 524, + 858, 135, 642, 643, 644, 645, 646, 1077, 647, 648, + 649, 685, 686, 32, 140, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 241, 257, - -32766,-32766,-32766, 1152, 1063,-32766,-32766,-32766, 1129, 1151, - 123, 106, 900, 419, 282, 645, 100, 101, 102, -481, - -481,-32766, 299,-32766,-32766,-32766,-32766,-32766,-32766, 646, - 647, 648, 649, 650, 651, 652, 228, 740, 714, 741, - 264, 1067, 1066, 1068, -481, 653, 654, 655, 656, 657, - 658, 659, 660, 661, 662, 663, 683, 706, 684, 685, - 686, 687, 675, 676, 677, 705, 678, 679, 664, 665, - 666, 667, 668, 669, 670, 708, 709, 710, 711, 712, - 713, 671, 672, 673, 674, 704, 695, 693, 694, 690, - 691, 305, 303, 682, 688, 689, 696, 697, 699, 698, - 700, 701, 47, 48, 441, 49, 50, 692, 703, 702, - -478, 51, 52, 314, 53,-32767,-32767,-32767,-32767, 98, - 99, 100, 101, 102, 925, -518,-32766, -518, -524, 619, - -32766, -477, 330, 1072, -524, 884, 883, 882,-32766,-32766, - 567, 23, 581, 582, 145, 892, 893, 335, 54, 55, - 798, 144, 357, 337, 56, 381, 57, 234, 235, 58, - 59, 60, 61, 62, 63, 64, 65, 382, 25, 256, - 66, 385, 442, -478, -478, 383, 1098, 1099, 443, 612, - 1129, 398, 399, 302, 1096, 39, 22, 444, -478, 445, - 384, 446, 728, 447, -477, -477, 448, 449, -478, 1072, - -484, 41, 42, 386, 393, 388, 146, 43, 450, -477, - 1072, 67, 1129, 148, 326, 313, 798, 722, 149, -477, - 1167, -483, 453, 454, 455, 561, 562, -310, -14, -310, - 34, 787, -84, 456, 457, 273, 1086, 1087, 1088, 1089, - 1083, 1084, 270, 236, 941, 613, 408, 409, 1090, 1085, - 120, 370, 1067, 1066, 1068, 798, -479, 121, 68, 798, - 292, 126, 293, 305, 33, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 1129,-32766, - -288, 31, 237, 127, 614, 1065, -524, 798, -524, 1129, - 72, -476,-32766,-32766,-32766, 305,-32766, 787,-32766, 139, - -32766, 45, 150,-32766, 800, 606, 985, 987,-32766,-32766, - -32766, 1092, 151, 798,-32766,-32766, 617, -476,-32766, -479, - -479,-32766, 362, 153, 379, 1067, 1066, 1068, -76,-32766, - 927, -137, -137, -137, -479, 379, 787, 926, 629, -73, - 787, -71, 621, 798, -479, -49, -137, -70, -137, -69, - -137, -68, -137, -67, -476, -476, 72, -66, 71, 264, - 265, 305, 387, -65, 277, 278, -64, 72, 787, -476, - 800, 606, 305, -45, 451, 452, -16, 128, 143, -476, - -476, -476, 1148, 773, 821, 389, 390,-32766, 258, 122, - 1129, 620, 623, 1065, 787, -476, 797, 142, 266, 307, - -32766,-32766,-32766, 141,-32766, -476,-32766, 812,-32766, 838, - 606,-32766, 257, 800, 606, -137,-32766,-32766,-32766,-32766, - 106, 238,-32766,-32766, 787, 1065,-32766, 46, 716,-32766, - 362, 590,-32766,-32766,-32766, 722,-32766,-32766,-32766, 490, - -32766, 800, 606,-32766, 1179,-32766, 584, 574,-32766,-32766, - -32766,-32766, 955, 240,-32766,-32766, 486,-32766,-32766, 716, - 600,-32766, 362, 1065, 892, 893, 136, 800, 606,-32766, - -32766,-32766,-32766, 305,-32766, 568,-32766, 573,-32766, 12, - 585,-32766, 242, 405, 429, -442,-32766,-32766,-32766,-32766, - 279, 280,-32766,-32766,-32766, 1065,-32766, 800, 606,-32766, - 362, 822,-32766,-32766,-32766, 329,-32766,-32766,-32766, 559, - -32766, -4, 798,-32766, 25, 124, 274, 823,-32766,-32766, - -32766,-32766, 271, 281,-32766,-32766, 1129, 1065,-32766, 272, - 1096,-32766, 362, 1103,-32766,-32766,-32766, 137,-32766,-32766, - -32766, 1105,-32766, 814, -512,-32766, -432, 8, 798, 0, - -32766,-32766,-32766, 14, 328, 496,-32766,-32766, 721, 533, - -32766, 624, 798,-32766, 362, 37, 38, 627, 628, 778, - 862,-32766, 29, 839, 846, 921, 922, 836, 847, 456, - 457, 776, 1086, 1087, 1088, 1089, 1083, 1084, 834, 930, - 933, 934, 931, 787, 1090, 1085, 932, 938, -510, 291, - 327, 607, 0, 609, 70, 774, 611, 615, 293, 305, - 616, 618, 622, 608, 610, 387, 1174, 375, 1176, 735, - 820, 734, 743, 269, 819, 854, 742, 451, 452, 787, - 1175, 818, 1051, 807, 815, 805, 732, 821, 389, 390, - 25, 844, 845, 787, 1173, -219, -219, -219, 1130, 1119, - 1137, 387, 1129, 1143, 1146, -446, 1096, -484, 317, -218, - -218, -218, -483, 451, 452, 387, 800, 606, -4, -244, - -482, 1, 773, 821, 389, 390, 26, 451, 452, 27, - 36, 40, 44, 69, 73, 74, 773, 821, 389, 390, - 75, 76, 77, 78, 138, 147, 152, 233, 294, 295, - 296, 297, 800, 606, -219, -242, 457, 298, 1086, 1087, - 1088, 1089, 1083, 1084, 300, 304, 800, 606, -218, -241, - 1090, 1085,-32766,-32766,-32766, 376, 378, 1093, 16, 17, - 70, 1041, 18, 19, 293, 305, 21, 355, 420, 422, - 428, 431, 432,-32766, 439,-32766,-32766,-32766,-32766,-32766, - -32766,-32767,-32767,-32767,-32767,-32767, 597, 1076, 1024, 1094, - 902, 1055, -246, -96, 15, 20, 24, 268, 354, 526, - 530, 553, 599, 1028, 1071, 1025, 1149, 0, 0, 1118, - 1136, 1170, 564, 0, 1097 + 98, 99, 100, 101, 102, 103, 104, 105, 897, 257, + -32766,-32766,-32766, 1164, 1075,-32766,-32766,-32766, 1141, 1163, + 123, 106, 912, 422, 241, 650, 624, 899, 900, -488, + -488,-32766, 285,-32766,-32766,-32766,-32766,-32766,-32766, 651, + 652, 653, 654, 655, 656, 657, 228, 745, 719, 746, + 264, 1079, 1078, 1080, -488, 658, 659, 660, 661, 662, + 663, 664, 665, 666, 667, 668, 688, 711, 689, 690, + 691, 692, 680, 681, 682, 710, 683, 684, 669, 670, + 671, 672, 673, 674, 675, 713, 714, 715, 716, 717, + 718, 676, 677, 678, 679, 709, 700, 698, 699, 695, + 696, 308, 302, 687, 693, 694, 701, 702, 704, 703, + 705, 706, 47, 48, 444, 49, 50, 697, 708, 707, + -485, 51, 52, 306, 53,-32767,-32767,-32767,-32767, 98, + 99, 100, 101, 102, 937, -525, 897, -525, -531,-32766, + -32766, -484, 317, 1084, -531, 100, 101, 102, 889, 888, + 887, 570, 23, 586, 587, 899, 900, 333, 54, 55, + 803, 144, 360, 338, 56, 340, 57, 234, 235, 58, + 59, 60, 61, 62, 63, 64, 65, 384, 25, 256, + 66, 388, 445, -485, -485, 385, 1110, 1111, 446, 617, + 1141, 401, 402, 305, 1108, 39, 22, 447, -485, 448, + 386, 449, 387, 450, -484, -484, 451, 452, -485, 1084, + -491, 41, 42, 389, 396, 391, 733, 43, 453, -484, + 1084, 67, 1141,-32766, 329, 316, 803, 727, 120, -484, + 1179, -490, 456, 457, 458, 564, 565, -317, -14, -317, + 145, 792, 146, 459, 460, 276, 1098, 1099, 1100, 1101, + 1095, 1096, 273, 236, 953, 618, 411, 412, 1102, 1097, + 148, 373, 1079, 1078, 1080, 803, -486, 149, 68, 803, + 295, 34, 296, 308, 33, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 1141,-32766, + -295, 31, 237, 121, 619, 1077, -531, 803, -531, 1141, + 72, -483,-32766,-32766,-32766, 308,-32766, 792,-32766, 126, + -32766, 45, 127,-32766, 805, 611, 997, 999,-32766,-32766, + -32766, 1104, 139, 803,-32766,-32766, 622, -483,-32766, -486, + -486,-32766, 365, 150, 382, 1079, 1078, 1080, 151,-32766, + 939, -137, -137, -137, -486, 382, 792, 938, 634, 153, + 792, -84, 626, 803, -486, -49, -137, -76, -137, -73, + -137, -71, -137, -70, -483, -483, 72, -69, 71, 267, + 265, 308, 390, -68, 280, 281, -67, 72, 792, -483, + 805, 611, 308, -66, 454, 455, -65, 128, -64, -483, + -483, -483, 1160, 778, 826, 392, 393,-32766, -45, 122, + 1141, -16, 143, 1077, 792, -483, 258, 625, 628, 802, + -32766,-32766,-32766, 142,-32766, -483,-32766, 817,-32766, 843, + 611,-32766, 266, 805, 611, -137,-32766,-32766,-32766,-32766, + 268, 238,-32766,-32766, 792, 1077,-32766, 46, 269,-32766, + 365, 310,-32766,-32766,-32766, 257,-32766,-32766,-32766, 106, + -32766, 805, 611,-32766, 141,-32766, 1191,-32766,-32766,-32766, + -32766, 571, 595, 240,-32766,-32766, 562,-32766,-32766, 721, + 721,-32766, 365, 1077, 899, 900, 136, 805, 611,-32766, + -32766,-32766,-32766, 308,-32766, 727,-32766, 493,-32766, 967, + 589,-32766, 242, 489, 12, 576,-32766,-32766,-32766,-32766, + 282, 283,-32766,-32766, 605, 1077,-32766, 805, 611,-32766, + 365, 408,-32766,-32766,-32766, 332,-32766,-32766,-32766, 432, + -32766, -4, 803,-32766, 25, 124, 577, 590,-32766,-32766, + -32766,-32766, 277,-32766,-32766,-32766, 1141, 1077,-32766, 827, + 1108,-32766, 365, 828,-32766,-32766,-32766, 137,-32766,-32766, + -32766, 274,-32766, 275, 284,-32766, 499, -449, 803, 819, + -32766,-32766,-32766, 1115, 1117, 536,-32766,-32766, 29, 0, + -32766, 0, 803,-32766, 365, 0, -439, 8, 14, 331, + 0,-32766, 294, 0, 0, 0, 726, 0, 0, 459, + 460, 37, 1098, 1099, 1100, 1101, 1095, 1096, 38, 632, + 633, 783, 867, 792, 1102, 1097, 844, 851, 933, 934, + 841, 1105, 852, 781, 70, 839, 942, 945, 296, 308, + 946, 943, 944, 950, -453, 390, 330, 378, 612, 614, + 616, 620, 621, 272, 623, 627, 613, 454, 455, 792, + 615, -519, 629, 779, 1186, 1188, 737, 826, 392, 393, + 25, 740, 825, 792, 739, -219, -219, -219, 748, 824, + 859, 390, 1141, 747, 1187, 823, 1108, 1063, 320, -218, + -218, -218, 812, 454, 455, 390, 805, 611, -4, 820, + 810, 849, 778, 826, 392, 393, 850, 454, 455, 1185, + 1142, 1131, 1149, 1155, 1158, 0, 778, 826, 392, 393, + -517, -491, -490, -489, 1, 26, 27, 36, 40, 44, + 69, 73, 805, 611, -219, -244, 460, 74, 1098, 1099, + 1100, 1101, 1095, 1096, 75, 76, 805, 611, -218, -242, + 1102, 1097,-32766,-32766,-32766, 77, 78, 138, 147, 152, + 70, 233, 297, 298, 296, 308, 299, 300, 301, 303, + 307, 379, 381,-32766, -241,-32766,-32766,-32766,-32766,-32766, + -32766,-32767,-32767,-32767,-32767,-32767, 16, 17, 18, 19, + 21, 358, 423, 425, 431, 434, 435, 442, 602, 1088, + 1036, 1106, 914, 1067, -246, -96, 15, 20, 24, 271, + 357, 529, 533, 556, 604, 1040, 1083, 1037, 1161, 0, + 1053, 0, 1130, 1148, 1182, 567, 0, 1109 ); protected $actionCheck = array( @@ -376,7 +377,7 @@ class Php7 extends \PhpParser\ParserAbstract 78, 79, 8, 9, 10, 30, 7, 85, 86, 87, 7, 89, 155, 91, 7, 93, 36, 7, 96, 8, 9, 10, 78, 101, 102, 103, 8, 9, 10, 107, - 108, 7, 159, 111, 161, 55, 114, 115, 143, 104, + 108, 1, 159, 111, 161, 55, 114, 115, 143, 104, 29, 106, 31, 32, 122, 95, 153, 29, 159, 69, 70, 71, 72, 73, 74, 75, 159, 30, 78, 115, 116, 117, 118, 119, 120, 85, 86, 87, 88, 89, @@ -387,11 +388,11 @@ class Php7 extends \PhpParser\ParserAbstract 130, 159, 1, 133, 134, 135, 136, 137, 138, 139, 140, 141, 8, 9, 10, 156, 68, 147, 148, 149, 155, 151, 2, 3, 4, 5, 6, 78, 8, 9, - 10, 11, 12, 29, 1, 31, 32, 33, 34, 35, + 10, 11, 12, 29, 7, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 7, 55, + 46, 47, 48, 49, 50, 51, 52, 53, 115, 55, 8, 9, 10, 1, 115, 8, 9, 10, 80, 7, - 13, 67, 1, 156, 7, 55, 48, 49, 50, 131, + 13, 67, 1, 156, 7, 55, 156, 134, 135, 131, 132, 29, 7, 31, 32, 33, 34, 35, 36, 69, 70, 71, 72, 73, 74, 75, 95, 104, 78, 106, 29, 152, 153, 154, 156, 85, 86, 87, 88, 89, @@ -402,77 +403,78 @@ class Php7 extends \PhpParser\ParserAbstract 130, 163, 7, 133, 134, 135, 136, 137, 138, 139, 140, 141, 2, 3, 4, 5, 6, 147, 148, 149, 68, 11, 12, 7, 14, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 1, 159, 115, 161, 1, 156, - 8, 68, 7, 1, 7, 118, 119, 120, 8, 9, - 73, 74, 73, 74, 13, 134, 135, 7, 48, 49, + 47, 48, 49, 50, 1, 159, 115, 161, 1, 8, + 9, 68, 7, 1, 7, 48, 49, 50, 118, 119, + 120, 73, 74, 73, 74, 134, 135, 7, 48, 49, 1, 99, 100, 7, 54, 7, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 7, 68, 69, 70, 71, 72, 131, 132, 7, 76, 77, 78, 30, 80, 104, 105, 68, 84, 85, 86, 87, 146, 89, 7, 91, 7, 93, 131, 132, 96, 97, 156, 1, - 158, 101, 102, 103, 104, 105, 13, 107, 108, 146, - 1, 111, 80, 13, 114, 115, 1, 80, 13, 156, + 158, 101, 102, 103, 104, 105, 7, 107, 108, 146, + 1, 111, 80, 8, 114, 115, 1, 80, 15, 156, 83, 158, 122, 123, 124, 109, 110, 104, 30, 106, - 13, 82, 30, 133, 134, 112, 136, 137, 138, 139, + 13, 82, 13, 133, 134, 112, 136, 137, 138, 139, 140, 141, 142, 36, 121, 30, 131, 132, 148, 149, - 15, 78, 152, 153, 154, 1, 68, 15, 158, 1, - 160, 15, 162, 163, 15, 16, 17, 18, 19, 20, + 13, 78, 152, 153, 154, 1, 68, 13, 158, 1, + 160, 13, 162, 163, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 80, 72, 157, 144, 145, 15, 30, 78, 159, 1, 161, 80, 158, 68, 85, 86, 87, 163, 89, 82, 91, 15, 93, 68, 15, 96, 155, 156, 57, 58, 101, 102, 103, 1, 15, 1, 107, 108, 30, 68, 111, 131, - 132, 114, 115, 15, 126, 152, 153, 154, 30, 122, - 157, 73, 74, 75, 146, 126, 82, 155, 156, 30, + 132, 114, 115, 15, 126, 152, 153, 154, 15, 122, + 157, 73, 74, 75, 146, 126, 82, 155, 156, 15, 82, 30, 30, 1, 156, 30, 88, 30, 90, 30, 92, 30, 94, 30, 131, 132, 158, 30, 151, 29, 34, 163, 104, 30, 131, 132, 30, 158, 82, 146, 155, 156, 163, 30, 116, 117, 30, 30, 30, 156, 131, 132, 1, 125, 126, 127, 128, 72, 30, 156, - 80, 30, 30, 78, 82, 146, 30, 30, 34, 34, - 85, 86, 87, 68, 89, 156, 91, 36, 93, 155, - 156, 96, 55, 155, 156, 157, 101, 102, 103, 72, - 67, 36, 107, 108, 82, 78, 111, 68, 78, 114, - 115, 75, 85, 86, 87, 80, 89, 122, 91, 87, - 93, 155, 156, 96, 81, 115, 92, 98, 101, 102, - 103, 83, 80, 36, 107, 108, 83, 72, 111, 78, - 90, 114, 115, 78, 134, 135, 156, 155, 156, 122, - 85, 86, 87, 163, 89, 88, 91, 94, 93, 95, - 98, 96, 36, 95, 95, 146, 101, 102, 103, 72, - 131, 132, 107, 108, 115, 78, 111, 155, 156, 114, - 115, 126, 85, 86, 87, 146, 89, 122, 91, 112, - 93, 0, 1, 96, 68, 156, 113, 126, 101, 102, - 103, 72, 129, 129, 107, 108, 80, 78, 111, 130, - 84, 114, 115, 143, 85, 86, 87, 156, 89, 122, - 91, 143, 93, 151, 158, 96, 146, 146, 1, -1, - 101, 102, 103, 146, 146, 150, 107, 108, 152, 150, - 111, 157, 1, 114, 115, 155, 155, 155, 155, 155, - 155, 122, 156, 155, 155, 155, 155, 155, 155, 133, + 80, 30, 30, 78, 82, 146, 30, 30, 30, 30, + 85, 86, 87, 30, 89, 156, 91, 36, 93, 155, + 156, 96, 34, 155, 156, 157, 101, 102, 103, 72, + 34, 36, 107, 108, 82, 78, 111, 68, 34, 114, + 115, 34, 85, 86, 87, 55, 89, 122, 91, 67, + 93, 155, 156, 96, 68, 115, 81, 83, 101, 102, + 103, 88, 75, 36, 107, 108, 112, 72, 111, 78, + 78, 114, 115, 78, 134, 135, 156, 155, 156, 122, + 85, 86, 87, 163, 89, 80, 91, 87, 93, 80, + 92, 96, 36, 83, 95, 94, 101, 102, 103, 72, + 131, 132, 107, 108, 90, 78, 111, 155, 156, 114, + 115, 95, 85, 86, 87, 146, 89, 122, 91, 95, + 93, 0, 1, 96, 68, 156, 98, 98, 101, 102, + 103, 72, 113, 115, 107, 108, 80, 78, 111, 126, + 84, 114, 115, 126, 85, 86, 87, 156, 89, 122, + 91, 129, 93, 130, 129, 96, 150, 146, 1, 151, + 101, 102, 103, 143, 143, 150, 107, 108, 156, -1, + 111, -1, 1, 114, 115, -1, 146, 146, 146, 146, + -1, 122, 156, -1, -1, -1, 152, -1, -1, 133, 134, 155, 136, 137, 138, 139, 140, 141, 155, 155, - 155, 155, 155, 82, 148, 149, 155, 155, 158, 156, - 156, 156, -1, 156, 158, 157, 156, 156, 162, 163, - 156, 156, 156, 156, 156, 104, 157, 106, 157, 157, - 157, 157, 157, 112, 157, 157, 157, 116, 117, 82, - 157, 157, 157, 157, 157, 157, 125, 126, 127, 128, + 155, 155, 155, 82, 148, 149, 155, 155, 155, 155, + 155, 161, 155, 155, 158, 155, 155, 155, 162, 163, + 155, 155, 155, 155, 160, 104, 156, 106, 156, 156, + 156, 156, 156, 112, 156, 156, 156, 116, 117, 82, + 156, 158, 157, 157, 157, 157, 125, 126, 127, 128, 68, 157, 157, 82, 157, 98, 99, 100, 157, 157, - 157, 104, 80, 157, 157, 160, 84, 158, 147, 98, - 99, 100, 158, 116, 117, 104, 155, 156, 157, 159, - 158, 158, 125, 126, 127, 128, 158, 116, 117, 158, - 158, 158, 158, 158, 158, 158, 125, 126, 127, 128, + 157, 104, 80, 157, 157, 157, 84, 157, 147, 98, + 99, 100, 157, 116, 117, 104, 155, 156, 157, 157, + 157, 157, 125, 126, 127, 128, 157, 116, 117, 157, + 157, 157, 157, 157, 157, -1, 125, 126, 127, 128, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 155, 156, 157, 159, 134, 158, 136, 137, 138, 139, 140, 141, 158, 158, 155, 156, 157, 159, - 148, 149, 8, 9, 10, 158, 158, 161, 159, 159, - 158, 160, 159, 159, 162, 163, 159, 159, 159, 159, - 159, 159, 159, 29, 159, 31, 32, 33, 34, 35, + 148, 149, 8, 9, 10, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 162, 163, 158, 158, 158, 158, + 158, 158, 158, 29, 159, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, -1, -1, 161, - 161, 161, 161, -1, 162 + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, -1, + 160, -1, 161, 161, 161, 161, -1, 162 ); protected $actionBase = array( - 0, -2, 150, 598, 851, 887, 901, 513, 650, 781, + 0, -2, 150, 598, 851, 887, 901, 513, 650, 797, 300, 300, 114, 300, 300, 555, 626, 626, 652, 626, 489, 594, 682, 682, 682, 547, 547, 547, 547, -60, -60, 92, 687, 725, 757, 655, 789, 789, 789, 789, @@ -487,101 +489,101 @@ class Php7 extends \PhpParser\ParserAbstract 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, - 789, 789, 789, 789, 27, 27, 145, 281, 557, 948, - 954, 950, 955, 946, 945, 949, 951, 956, 827, 831, - 707, 832, 833, 836, 837, 952, 961, 947, 953, 284, + 789, 789, 789, 789, 27, 27, 145, 281, 588, 960, + 966, 962, 967, 958, 957, 961, 963, 968, 862, 863, + 713, 864, 865, 866, 867, 964, 974, 959, 965, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 462, - 337, 470, 164, 164, 164, 164, 164, 164, 164, 164, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 545, + 337, 461, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 188, 188, 188, 181, 786, 786, 6, 589, 48, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 134, 332, 1054, 1054, 1054, 1054, 1054, 413, 413, 413, 413, 463, 538, 549, 472, 351, -93, - 308, 308, 670, 670, -70, -70, -70, 382, 403, -74, - 65, 229, 229, 229, 229, 738, 962, 721, 721, 721, - 721, 229, 229, 528, 563, 563, 699, 8, 8, 8, - 563, 273, 713, 477, 943, 943, 943, 943, 943, 273, - 943, 477, -32, 944, 719, 139, 306, 719, 228, 573, - 467, 43, 746, 417, 746, 708, 782, 797, 798, 957, - 689, 824, 722, 825, 455, 638, 268, 63, 268, 268, - 268, 456, 63, 407, 409, 63, 705, 944, 27, 740, - 27, 27, 27, 27, 880, 27, 27, 27, 27, 27, - 27, 686, 683, 649, 197, 27, 522, 145, 313, 129, - 313, 313, 417, 697, 745, 749, 122, 697, 697, 697, - 120, 59, -8, 67, 105, 690, 690, 712, 711, 853, - 853, 690, 695, 690, 712, 864, 690, 711, 711, 690, - 690, 690, 853, 711, 180, 488, 446, 465, 711, 711, - 500, 733, 734, 734, 508, 690, 331, 194, 690, 690, - 169, 739, 853, 853, 853, 739, 425, 347, 752, 753, - 737, 711, 698, 355, 525, 177, 698, 732, 698, 690, - 480, 737, 698, 711, 698, 523, 173, 695, 486, 698, - 52, 865, 866, 542, 867, 862, 872, 907, 873, 874, - 785, 715, 731, 879, 863, 875, 861, 858, 706, 575, - 582, 741, 679, 852, 693, 693, 693, 839, 693, 693, - 693, 693, 693, 693, 693, 693, 575, 906, 748, 692, - 881, 586, 608, 787, 730, 788, 835, 911, 880, 938, - 876, 750, 624, 917, 882, 744, 783, 883, 889, 918, - 939, 790, 940, 799, 675, 801, 802, 693, 865, 874, - 863, 875, 861, 858, 676, 673, 663, 667, 661, 659, - 651, 657, 688, 780, 726, 958, 844, 575, 959, 909, - 756, 919, 920, 784, 728, 803, 703, 960, 804, 941, - 791, 794, 751, 910, 850, 666, 704, 921, 729, 805, - 922, 923, 807, 754, 727, 886, 723, 808, 471, 908, - 533, 897, 795, 809, 813, 814, 815, 877, 755, 913, - 694, 914, 900, 758, 759, 540, 545, 760, 627, 637, - 761, 878, 701, 696, 762, 763, 942, 648, 816, 896, - 766, 817, 937, 747, 743, 724, 710, 796, 925, 702, - 773, 774, 775, 776, 818, 777, 0, 0, 0, 0, + 427, 427, 670, 670, 223, 223, 223, -70, -70, -70, + 382, 403, -74, 65, 229, 229, 229, 229, 751, 975, + 721, 721, 721, 721, 229, 229, 528, 563, 563, 699, + 8, 8, 8, 563, 273, 740, 477, 955, 955, 955, + 955, 955, 273, 955, 477, -32, 956, 748, 139, 306, + 748, 228, 573, 467, 43, 764, 417, 764, 704, 798, + 810, 814, 969, 758, 854, 759, 859, 455, 657, 268, + 63, 268, 268, 268, 456, 63, 408, 410, 63, 737, + 956, 27, 760, 27, 27, 27, 27, 914, 27, 27, + 27, 27, 27, 27, 701, 698, 659, 197, 27, 522, + 145, 200, 129, 200, 200, 417, 720, 736, 745, 122, + 720, 720, 720, 120, 59, -8, 67, 105, 722, 722, + 739, 711, 876, 876, 722, 735, 722, 739, 881, 722, + 711, 711, 722, 722, 722, 876, 711, 180, 500, 465, + 480, 711, 711, 508, 752, 755, 755, 523, 722, 347, + 307, 722, 722, 169, 753, 876, 876, 876, 753, 446, + 355, 774, 775, 684, 711, 706, 425, 539, 177, 706, + 738, 706, 722, 486, 684, 706, 711, 706, 525, 173, + 735, 488, 706, 52, 882, 883, 651, 889, 879, 896, + 923, 897, 907, 802, 743, 747, 913, 880, 908, 878, + 877, 709, 543, 608, 761, 741, 875, 712, 712, 712, + 873, 712, 712, 712, 712, 712, 712, 712, 712, 543, + 780, 763, 730, 915, 624, 627, 803, 750, 816, 794, + 970, 914, 950, 909, 766, 637, 941, 918, 815, 756, + 919, 920, 942, 951, 804, 952, 817, 716, 818, 824, + 712, 882, 907, 880, 908, 878, 877, 688, 686, 676, + 683, 673, 667, 661, 663, 702, 872, 813, 971, 874, + 543, 972, 937, 742, 943, 944, 800, 746, 825, 705, + 973, 827, 953, 805, 806, 773, 938, 886, 726, 734, + 945, 754, 831, 946, 947, 832, 776, 703, 900, 731, + 833, 557, 924, 559, 922, 808, 836, 837, 838, 840, + 910, 777, 939, 728, 940, 925, 781, 782, 577, 666, + 718, 584, 783, 648, 653, 784, 911, 707, 717, 785, + 787, 954, 664, 845, 921, 788, 852, 949, 762, 749, + 729, 744, 809, 948, 708, 790, 791, 792, 795, 853, + 796, 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, 440, 440, + 440, 440, 440, 440, 300, 300, 300, 0, 0, 300, + 0, 0, 440, 440, 440, 440, 440, 440, 440, 440, + 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, + 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, + 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, + 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, + 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, + 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, + 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, + 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, + 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, + 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, + 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, + 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, + 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, + 440, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 440, 440, 440, 440, 440, 440, 300, - 300, 300, 0, 0, 300, 0, 0, 440, 440, 440, - 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, - 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, - 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, - 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, - 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, - 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, - 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, - 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, - 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, - 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, - 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, - 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, - 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, - 440, 440, 440, 440, 440, 440, 284, 284, 284, 284, + 0, 0, 0, 0, 0, 0, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 229, 229, 284, 0, 284, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 284, 284, 284, 284, 284, - 284, 284, 8, 8, 8, 8, -96, 229, 229, 229, - 229, -96, 8, 8, 229, 229, 229, 229, 229, 0, - 0, 63, 477, 0, 0, 0, 0, 477, 477, 268, - 268, 268, 268, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 477, 0, 357, 357, 357, 357, - 357, 63, 357, 0, 695, 357, 229, 268, 342, 229, - 0, 0, 0, 0, 63, 695, 63, 477, 313, 63, - 27, 342, 392, 392, 392, 392, 0, 417, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 695, 711, - 0, 853, 0, 0, 0, 0, 690, 0, 0, 0, - 0, 0, 0, 864, 711, 711, 0, 0, 0, 0, - 0, 695, 0, 0, 0, 693, 728, 728, 0, 693, - 693, 693 + 284, 284, 284, 284, 284, 229, 229, 284, 0, 284, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 284, 284, 284, 284, 284, 284, 284, 8, 8, 8, + 8, -96, 229, 229, 229, 229, -96, 8, 8, 229, + 229, 229, 229, 229, 229, 229, 229, 0, 0, 63, + 477, 0, 0, 0, 0, 477, 477, 268, 268, 268, + 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 63, 477, 0, 360, 360, 360, 360, 360, 63, + 360, 0, 735, 360, 229, 268, 342, 229, 0, 0, + 0, 0, 63, 735, 63, 477, 200, 63, 27, 342, + 392, 392, 392, 392, 0, 417, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 735, 711, 0, 876, + 0, 0, 0, 0, 722, 0, 0, 0, 0, 0, + 0, 881, 711, 711, 0, 0, 0, 0, 0, 735, + 0, 0, 0, 712, 746, 746, 0, 712, 712, 712 ); protected $actionDefault = array( 3,32767, 96,32767,32767,32767,32767,32767,32767,32767, 32767, 94,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767, 530, 530, 530, 530, 223, - 96,32767,32767,32767,32767, 411, 330, 330, 330,32767, - 32767, 474, 474, 474, 474, 474, 474,32767,32767,32767, - 32767,32767, 411,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767, 537, 537, 537, 537, 223, + 96,32767,32767,32767,32767, 418, 337, 337, 337,32767, + 32767, 481, 481, 481, 481, 481, 481,32767,32767,32767, + 32767,32767, 418,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, @@ -591,115 +593,114 @@ class Php7 extends \PhpParser\ParserAbstract 32767,32767,32767,32767,32767, 94,32767,32767,32767, 5, 6, 8, 9, 48, 15,32767,32767,32767,32767,32767, 96,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767, 523,32767, + 32767,32767,32767,32767,32767,32767,32767,32767, 530,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767, 394, - 395, 397, 398, 329, 475, 529, 273, 526, 328, 130, - 285, 275, 211, 276, 227, 228, 325, 134, 254, 359, - 412, 361, 410, 414, 360, 335, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 333, - 334, 413, 415, 416, 391, 390, 389, 357,32767,32767, - 358, 332, 362,32767,32767,32767,32767,32767,32767,32767, - 32767, 96,32767, 364, 363, 380, 381, 378, 379, 382, - 383, 384, 385, 386,32767,32767,32767,32767,32767, 308, - 371, 372, 264, 264,32767,32767,32767, 468, 388,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767, 401, + 402, 404, 405, 336, 482, 536, 280, 533, 335, 130, + 292, 282, 211, 283, 227, 228, 332, 134, 254, 366, + 419, 368, 417, 421, 367, 342, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 340, + 341, 420, 422, 423, 398, 397, 396, 364,32767,32767, + 365, 339, 369,32767,32767,32767,32767,32767,32767,32767, + 32767, 96,32767, 371, 370, 387, 388, 385, 386, 389, + 390, 391, 392, 393,32767,32767,32767,32767,32767, 315, + 378, 379, 271, 271,32767,32767,32767,32767,32767,32767, + 475, 395,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767, 94, 477, 361, 363, 445, + 373, 374, 372, 343,32767, 452,32767, 249, 249, 249, + 249, 249, 96, 249, 454,32767, 249,32767,32767,32767, + 32767, 476,32767, 483, 483,32767, 438, 94,32767,32767, + 32767,32767,32767,32767,32767,32767,32767, 544, 438,32767, + 32767,32767,32767, 94, 174,32767, 237, 239, 96, 498, + 179,32767, 457,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767, 450, 179, 179,32767,32767,32767, + 32767,32767,32767,32767,32767, 438, 383, 123, 123, 483, + 375, 376, 377, 440, 483, 483, 483,32767,32767,32767, + 32767, 179, 455, 455, 94, 94, 94, 94, 450,32767, + 179, 179,32767,32767,32767,32767, 179, 93, 93, 93, + 93, 179, 179, 93, 194, 192, 192, 93,32767, 95, + 95,32767,32767, 95, 196,32767, 502, 503, 196, 95, + 93, 216, 216, 429, 179, 273, 95, 95, 95, 273, + 181, 273,32767, 95, 429, 273, 179, 273, 93, 93, + 32767, 95, 273,32767,32767,32767, 440,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767, 94, 470, 354, 356, 438, 366, 367, 365, - 336,32767, 445,32767, 249, 249, 249, 249, 249, 96, - 249, 447,32767, 249,32767,32767,32767,32767, 469,32767, - 476, 476,32767, 431, 94,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 537, 431,32767,32767,32767,32767, - 94, 174,32767, 237, 239, 96, 491, 179,32767, 450, + 32767,32767,32767, 470,32767, 487, 500, 381, 382, 384, + 485, 406, 407, 408, 409, 410, 411, 412, 414, 532, + 32767, 444,32767,32767,32767, 291,32767, 542,32767, 542, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767, 443, 179, 179,32767,32767,32767,32767,32767,32767, - 32767,32767, 431, 376, 123, 123, 476, 368, 369, 370, - 433, 476, 476, 476,32767,32767,32767,32767, 179, 448, - 448, 94, 94, 94, 94, 443,32767, 179, 179,32767, - 32767,32767,32767, 179, 93, 93, 93, 93, 179, 179, - 93, 194, 192, 192, 93,32767, 95, 95,32767,32767, - 95, 196,32767, 495, 496, 196, 95, 93, 216, 216, - 422, 179, 266, 95, 95, 95, 266, 181, 266,32767, - 95, 422, 266, 179, 266, 93, 93,32767, 95, 266, - 32767,32767,32767, 433,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767, 543,32767, 483,32767, + 380, 7, 74, 41, 42, 50, 56, 461, 462, 463, + 464, 458, 459, 465, 460,32767, 466, 508,32767, 484, + 535,32767,32767,32767,32767,32767,32767, 123,32767,32767, + 32767,32767,32767,32767,32767,32767,32767, 470, 268, 270, + 32767, 121,32767,32767,32767,32767,32767,32767, 483,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 463,32767, 480, 493, 374, 375, 377, 478, 399, 400, - 401, 402, 403, 404, 405, 407, 525,32767, 437,32767, - 32767,32767, 284,32767, 535,32767, 535,32767,32767,32767, + 32767,32767,32767,32767,32767, 483,32767,32767,32767, 256, + 258,32767,32767, 331,32767,32767,32767,32767,32767,32767, + 32767,32767, 253,32767,32767,32767,32767,32767,32767, 311, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767, 536,32767, 476,32767, 373, 7, 74, - 41, 42, 50, 56, 454, 455, 456, 457, 451, 452, - 458, 453,32767, 459, 501,32767, 477, 528,32767,32767, - 32767,32767,32767,32767, 123,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 463, 256, 258,32767, 121,32767, - 32767,32767,32767,32767,32767, 476,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767, 476,32767,32767,32767,32767,32767, 324,32767, - 32767,32767,32767,32767,32767,32767,32767, 253,32767,32767, - 32767,32767,32767,32767, 304,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767, 136, 136, 3, 287, - 3, 287, 136, 136, 136, 287, 287, 136, 136, 136, - 136, 136, 136, 136, 169, 231, 234, 216, 216, 296, - 136, 136 + 32767, 136, 136, 3, 294, 3, 294, 136, 136, 136, + 294, 294, 136, 136, 136, 136, 136, 136, 136, 169, + 231, 234, 216, 216, 303, 136, 136 ); protected $goto = array( - 186, 186, 602, 795, 372, 572, 542, 569, 321, 366, - 284, 285, 310, 505, 290, 371, 311, 373, 555, 1049, - 904, 817, 1050, 593, 158, 158, 158, 158, 183, 183, + 186, 186, 598, 800, 1061, 607, 822, 1062, 949, 526, + 610, 584, 584, 916, 594, 947, 548, 548, 527, 545, + 572, 906, 903, 904, 158, 158, 158, 158, 183, 183, 168, 170, 205, 187, 200, 183, 183, 183, 183, 183, 184, 184, 184, 184, 184, 184, 179, 180, 181, 182, - 202, 200, 203, 464, 465, 363, 466, 468, 469, 470, - 471, 472, 473, 474, 475, 971, 155, 159, 160, 161, + 202, 200, 203, 467, 468, 366, 469, 471, 472, 473, + 474, 475, 476, 477, 478, 983, 155, 159, 160, 161, 185, 162, 163, 164, 157, 165, 166, 167, 169, 199, 201, 204, 224, 227, 230, 232, 243, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 260, 261, 287, - 288, 289, 367, 368, 369, 507, 206, 207, 208, 209, + 247, 248, 249, 250, 251, 252, 253, 260, 261, 290, + 291, 292, 370, 371, 372, 510, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 171, 221, 172, 188, 189, 190, 225, 179, 180, - 181, 182, 202, 971, 191, 173, 174, 175, 192, 188, + 181, 182, 202, 983, 191, 173, 174, 175, 192, 188, 176, 226, 193, 156, 194, 222, 177, 195, 223, 196, - 197, 178, 198, 524, 937, 523, 605, 579, 579, 944, - 589, 935, 544, 544, 945, 730, 733, 1095, 1095, 1095, - 1095, 1095, 1095, 1095, 1095, 1095, 1095, 731, 552, 358, - 764, 360, 565, 566, 717, 576, 738, 361, 786, 781, - 782, 796, 316, 739, 783, 736, 784, 785, 737, 1113, - 1113, 301, 276, 789, 1113, 1113, 1113, 1113, 1113, 1113, - 1113, 1113, 1113, 1113, 1111, 1111, 322, 323, 837, 1111, - 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 467, - 467, 889, 894, 895, 467, 467, 467, 467, 467, 467, - 467, 467, 467, 467, 495, 829, 356, 601, 502, 626, - 554, 556, 1140, 1141, 570, 588, 591, 872, 596, 604, - 868, 532, 547, 550, 551, 319, 598, 1145, 1145, 1145, - 1145, 1064, 1064, 1064, 891, 407, 407, 1153, 891, 891, - 891, 891, 891, 488, 480, 858, 407, 1064, 1064, 1064, - 1064, 729, 476, 476, 476, 476, 340, 1064, 1064, 1164, - 1164, 527, 861, 835, 835, 833, 835, 625, 500, 479, - 870, 865, 342, 346, 489, 525, 528, 1060, 344, 480, - 803, 5, 6, 804, 488, 1164, 414, 1138, 1139, 497, - 498, 478, 478, 478, 494, 1163, 1163, 759, 747, 909, - 571, 720, 913, 790, 1019, 791, 840, 831, 831, 831, - 831, 959, 427, 365, 539, 534, 899, 825, 832, 830, - 877, 1163, 377, 312, 13, 481, 492, 750, 575, 856, - 1061, 481, 1180, 492, 744, 1166, 343, 952, 763, 483, - 401, 402, 1056, 482, 720, 506, 720, 538, 746, 318, - 1062, 1121, 1122, 758, 751, 756, 745, 350, 1171, 1172, - 1135, 1135, 1135, 880, 748, 910, 1124, 630, 1057, 1052, - 914, 954, 760, 415, 434, 842, 0, 541, 0, 754, - 0, 0, 1147, 1147, 1147, 1147, 0, 0, 0, 587, + 197, 178, 198, 375, 575, 894, 901, 902, 369, 287, + 288, 313, 508, 293, 374, 314, 376, 558, 555, 738, + 547, 547, 568, 569, 735, 1107, 1107, 1107, 1107, 1107, + 1107, 1107, 1107, 1107, 1107, 535, 550, 553, 554, 743, + 603, 791, 786, 787, 801, 736, 744, 788, 741, 789, + 790, 742, 1125, 1125, 304, 279, 794, 1125, 1125, 1125, + 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1123, 1123, 324, + 1152, 1153, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, + 1123, 1123, 470, 470, 834, 359, 606, 470, 470, 470, + 470, 470, 470, 470, 470, 470, 470, 417, 1150, 1151, + 1076, 1076, 1076, 898, 769, 1176, 1176, 898, 898, 898, + 898, 898, 898, 898, 898, 1147, 1147, 1147, 722, 1076, + 1076, 1076, 1076, 1157, 1157, 1157, 1157, 956, 842, 1076, + 1076, 1176, 957, 5, 6, 479, 479, 479, 479, 505, + 1159, 1159, 1159, 1159, 530, 345, 349, 492, 528, 531, + 322, 498, 808, 1165, 863, 809, 631, 557, 559, 734, + 343, 573, 593, 596, 877, 601, 609, 873, 1143, 725, + 866, 840, 840, 838, 840, 630, 503, 482, 875, 870, + 481, 481, 481, 574, 491, 483, 410, 410, 1031, 924, + 497, 1145, 1145, 924, 795, 1072, 796, 410, 380, 836, + 836, 836, 836, 756, 315, 1192, 764, 752, 921, 830, + 837, 925, 725, 885, 725, 845, 485, 321, 751, 347, + 483, 484, 495, 763, 353, 491, 750, 484, 835, 495, + 500, 501, 346, 1175, 1175, 486, 404, 405, 753, 1136, + 971, 922, 368, 542, 537, 635, 964, 768, 1073, 882, + 509, 761, 541, 430, 1183, 1184, 755, 578, 861, 1175, + 1069, 1064, 592, 749, 765, 13, 926, 437, 1074, 1133, + 1134, 1068, 847, 1178, 966, 759, 361, 418, 363, 325, + 326, 544, 581, 0, 364, 485, 0, 0, 0, 319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1131, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 912, 0, 1133, 1133, 912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 875, 875, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1059 + 0, 0, 0, 0, 0, 0, 0, 0, 880, 880, + 1071 ); protected $gotoCheck = array( - 33, 33, 8, 13, 56, 56, 46, 46, 81, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 68, - 102, 68, 68, 63, 33, 33, 33, 33, 33, 33, + 33, 33, 63, 13, 68, 8, 68, 68, 7, 7, + 7, 7, 7, 105, 7, 7, 100, 100, 108, 46, + 46, 100, 100, 100, 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, @@ -712,80 +713,81 @@ 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, 105, 7, 7, 7, 7, 7, 119, - 7, 7, 92, 92, 119, 17, 13, 92, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 18, 74, 70, - 36, 70, 74, 74, 5, 70, 13, 70, 13, 13, - 13, 13, 70, 13, 13, 13, 13, 13, 13, 143, - 143, 142, 142, 13, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 144, 144, 81, 81, 40, 144, - 144, 144, 144, 144, 144, 144, 144, 144, 144, 146, - 146, 98, 98, 98, 146, 146, 146, 146, 146, 146, - 146, 146, 146, 146, 39, 77, 77, 77, 145, 39, - 39, 39, 151, 151, 39, 39, 39, 39, 39, 39, - 39, 69, 69, 69, 69, 152, 69, 8, 8, 8, - 8, 63, 63, 63, 63, 124, 124, 154, 63, 63, - 63, 63, 63, 66, 66, 87, 124, 63, 63, 63, - 63, 16, 91, 91, 91, 91, 52, 63, 63, 156, - 156, 91, 16, 16, 16, 16, 16, 16, 88, 16, - 16, 16, 49, 49, 49, 49, 49, 100, 66, 66, - 63, 37, 37, 63, 66, 156, 149, 149, 149, 66, - 66, 76, 76, 76, 8, 155, 155, 14, 14, 14, - 54, 10, 14, 55, 126, 55, 14, 76, 76, 76, - 76, 15, 66, 11, 15, 11, 97, 76, 76, 14, - 15, 155, 96, 20, 66, 8, 8, 15, 15, 15, - 100, 8, 12, 8, 15, 155, 8, 14, 14, 8, - 8, 8, 15, 12, 10, 2, 10, 2, 26, 10, - 100, 100, 100, 26, 30, 8, 26, 19, 8, 8, - 105, 105, 105, 94, 28, 104, 12, 83, 135, 132, - 107, 122, 32, 72, 130, 80, -1, 73, -1, 8, - -1, -1, 105, 105, 105, 105, -1, -1, -1, 12, + 33, 33, 33, 56, 56, 98, 98, 98, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 74, 13, + 92, 92, 74, 74, 17, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 92, 69, 69, 69, 69, 13, + 69, 13, 13, 13, 13, 18, 13, 13, 13, 13, + 13, 13, 146, 146, 145, 145, 13, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 147, 147, 81, + 154, 154, 147, 147, 147, 147, 147, 147, 147, 147, + 147, 147, 149, 149, 77, 77, 77, 149, 149, 149, + 149, 149, 149, 149, 149, 149, 149, 152, 152, 152, + 63, 63, 63, 63, 36, 159, 159, 63, 63, 63, + 63, 63, 63, 63, 63, 108, 108, 108, 5, 63, + 63, 63, 63, 8, 8, 8, 8, 122, 40, 63, + 63, 159, 122, 37, 37, 91, 91, 91, 91, 148, + 108, 108, 108, 108, 91, 49, 49, 49, 49, 49, + 155, 39, 63, 157, 87, 63, 39, 39, 39, 16, + 52, 39, 39, 39, 39, 39, 39, 39, 108, 10, + 16, 16, 16, 16, 16, 16, 88, 16, 16, 16, + 76, 76, 76, 54, 66, 66, 127, 127, 129, 108, + 8, 108, 108, 108, 55, 103, 55, 127, 96, 76, + 76, 76, 76, 30, 20, 12, 14, 14, 14, 76, + 76, 14, 10, 94, 10, 14, 12, 10, 26, 66, + 66, 8, 8, 26, 19, 66, 26, 8, 14, 8, + 66, 66, 8, 158, 158, 8, 8, 8, 28, 12, + 15, 107, 11, 15, 11, 83, 14, 14, 103, 15, + 2, 8, 2, 66, 8, 8, 15, 15, 15, 158, + 138, 135, 12, 15, 32, 66, 110, 133, 103, 103, + 103, 15, 80, 158, 125, 8, 70, 72, 70, 81, + 81, 73, 70, -1, 70, 12, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 105, -1, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 105, -1, 105, 105, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 91, 91, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 12 + -1, -1, -1, -1, -1, -1, -1, -1, 91, 91, + 12 ); protected $gotoBase = array( - 0, 0, -223, 0, 0, 172, 0, 147, -10, 0, - 72, 41, 70, -152, -58, -56, 287, 161, 173, 85, - 94, 0, 0, 0, 0, 0, 61, 0, 90, 0, - 95, 0, 31, -1, 0, 0, 169, -309, 0, -363, - 197, 0, 0, 0, 0, 0, -31, 0, 0, 270, - 0, 0, 257, 0, 111, 326, -224, 0, 0, 0, - 0, 0, 0, 16, 0, 0, -69, 0, -339, -34, - -247, 0, 10, 2, -433, 0, 76, -27, 0, 0, - 32, -411, 0, 50, 0, 0, 0, 255, 268, 0, - 0, 267, -66, 0, 100, 0, 99, 98, -33, 0, - -22, 0, 18, 0, 75, 145, 0, 28, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -95, - 0, 0, 27, 0, 246, 0, 87, 0, 0, 0, - -17, 0, 29, 0, 0, 30, 0, 0, 0, 0, - 0, 0, -91, -29, -14, 222, 1, 0, 0, 48, - 0, -76, 238, 0, 249, 60, 24, 0, 0 + 0, 0, -213, 0, 0, 256, 0, 1, -7, 0, + 47, 77, 50, -152, -42, -20, 305, 170, 191, 59, + 82, 0, 0, 0, 0, 0, 38, 0, 71, 0, + 51, 0, 30, -1, 0, 0, 243, -352, 0, -311, + 257, 0, 0, 0, 0, 0, -18, 0, 0, 253, + 0, 0, 271, 0, 104, 327, -75, 0, 0, 0, + 0, 0, 0, -5, 0, 0, -21, 0, -357, -113, + -3, 0, 21, 13, -448, 0, 75, -41, 0, 0, + 36, -203, 0, 35, 0, 0, 0, 274, 286, 0, + 0, 260, -58, 0, 57, 0, 85, 0, -109, 0, + -246, 0, 0, 3, 0, 11, 0, 58, 10, 0, + 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 23, 0, 0, 37, 0, 307, 0, 81, + 0, 0, 0, -17, 0, 28, 0, 0, 29, 0, + 0, 0, 0, 0, 0, -91, -26, -11, 263, 4, + 0, 0, -34, 0, -111, 273, 0, 275, 105, -23, + 0, 0 ); protected $gotoDefault = array( - -32768, 440, 633, 4, 634, 707, 715, 522, 458, 603, - 548, 364, 324, 788, 958, 808, 770, 771, 772, 347, - 332, 338, 345, 563, 549, 430, 757, 396, 749, 423, - 752, 395, 761, 154, 580, 436, 765, 3, 767, 485, - 799, 333, 775, 334, 583, 777, 491, 779, 780, 341, - 348, 349, 963, 499, 543, 792, 231, 493, 793, 331, - 794, 802, 336, 339, 592, 406, 437, 359, 939, 531, - 560, 391, 411, 540, 535, 501, 1073, 827, 417, 404, - 841, 320, 849, 631, 970, 557, 425, 857, 558, 864, - 867, 459, 460, 416, 879, 262, 421, 897, 545, 546, - 1081, 410, 903, 397, 911, 1117, 400, 915, 254, 918, - 263, 577, 374, 923, 924, 7, 929, 594, 595, 9, - 259, 435, 953, 578, 394, 969, 380, 1038, 1040, 487, - 426, 1053, 403, 586, 438, 1058, 1120, 392, 461, 412, - 286, 462, 275, 308, 283, 477, 267, 309, 463, 413, - 1126, 1134, 306, 28, 1154, 1165, 315, 504, 537 + -32768, 443, 638, 4, 639, 712, 720, 525, 461, 608, + 551, 367, 327, 793, 970, 813, 775, 776, 777, 350, + 335, 341, 348, 566, 552, 433, 762, 399, 754, 426, + 757, 398, 766, 154, 585, 439, 770, 3, 772, 488, + 804, 336, 780, 337, 588, 782, 494, 784, 785, 344, + 351, 352, 975, 502, 546, 797, 231, 496, 798, 334, + 799, 807, 339, 342, 597, 409, 440, 362, 951, 534, + 563, 394, 414, 543, 538, 504, 1085, 832, 420, 407, + 846, 323, 854, 636, 982, 560, 428, 862, 561, 869, + 872, 462, 463, 419, 884, 262, 424, 911, 579, 580, + 896, 549, 909, 1093, 413, 915, 400, 923, 1129, 403, + 927, 254, 930, 263, 582, 377, 935, 936, 7, 941, + 599, 600, 9, 259, 438, 965, 583, 397, 981, 383, + 1050, 1052, 490, 429, 1065, 406, 591, 441, 1070, 1132, + 395, 464, 415, 289, 465, 278, 311, 286, 480, 270, + 312, 466, 416, 1138, 1146, 309, 28, 1166, 1177, 318, + 507, 540 ); protected $ruleToNonTerminal = array( @@ -815,14 +817,14 @@ class Php7 extends \PhpParser\ParserAbstract 45, 41, 41, 89, 43, 43, 90, 42, 42, 44, 44, 54, 54, 54, 54, 69, 69, 93, 93, 95, 95, 95, 95, 94, 94, 94, 97, 97, 97, 98, - 98, 98, 99, 99, 96, 96, 70, 70, 70, 100, - 100, 101, 101, 102, 102, 102, 102, 50, 103, 103, - 104, 51, 106, 106, 107, 107, 108, 108, 74, 109, - 109, 109, 109, 109, 114, 114, 115, 115, 116, 116, - 116, 116, 116, 117, 118, 118, 113, 113, 110, 110, - 112, 112, 120, 120, 119, 119, 119, 119, 119, 119, - 111, 121, 121, 123, 122, 122, 52, 88, 124, 124, - 46, 46, 33, 33, 33, 33, 33, 33, 33, 33, + 98, 100, 100, 100, 99, 99, 101, 101, 102, 102, + 102, 96, 96, 70, 70, 70, 103, 103, 104, 104, + 105, 105, 105, 105, 50, 106, 106, 107, 51, 109, + 109, 110, 110, 111, 111, 74, 112, 112, 112, 112, + 112, 117, 117, 118, 118, 119, 119, 119, 119, 119, + 120, 121, 121, 116, 116, 113, 113, 115, 115, 123, + 123, 122, 122, 122, 122, 122, 122, 114, 124, 124, + 126, 125, 125, 52, 88, 127, 127, 46, 46, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, @@ -830,20 +832,21 @@ 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, 33, 33, 131, - 125, 125, 130, 130, 133, 134, 134, 135, 136, 136, - 136, 76, 76, 63, 63, 63, 63, 126, 126, 126, - 126, 138, 138, 127, 127, 129, 129, 129, 132, 132, - 143, 143, 143, 143, 143, 143, 143, 143, 143, 144, - 144, 92, 146, 146, 146, 146, 128, 128, 128, 128, - 128, 128, 128, 128, 49, 49, 141, 141, 141, 141, - 147, 147, 137, 137, 137, 148, 148, 148, 148, 148, - 148, 64, 64, 56, 56, 56, 56, 105, 105, 105, - 105, 151, 150, 140, 140, 140, 140, 140, 140, 140, - 139, 139, 139, 149, 149, 149, 149, 91, 145, 153, - 153, 152, 152, 154, 154, 154, 154, 154, 154, 154, - 154, 142, 142, 142, 142, 156, 157, 155, 155, 155, - 155, 155, 155, 155, 155, 158, 158, 158, 158 + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 134, 128, 128, 133, + 133, 136, 137, 137, 138, 139, 139, 139, 76, 76, + 63, 63, 63, 63, 129, 129, 129, 129, 141, 141, + 130, 130, 132, 132, 132, 135, 135, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 147, 147, 92, 149, + 149, 149, 149, 131, 131, 131, 131, 131, 131, 131, + 131, 49, 49, 144, 144, 144, 144, 150, 150, 140, + 140, 140, 151, 151, 151, 151, 151, 151, 64, 64, + 56, 56, 56, 56, 108, 108, 108, 108, 154, 153, + 143, 143, 143, 143, 143, 143, 143, 142, 142, 142, + 152, 152, 152, 152, 91, 148, 156, 156, 155, 155, + 157, 157, 157, 157, 157, 157, 157, 157, 145, 145, + 145, 145, 159, 160, 158, 158, 158, 158, 158, 158, + 158, 158, 161, 161, 161, 161 ); protected $ruleToLength = array( @@ -873,35 +876,36 @@ class Php7 extends \PhpParser\ParserAbstract 4, 0, 2, 5, 0, 2, 6, 0, 2, 0, 3, 1, 2, 1, 1, 2, 0, 1, 3, 0, 1, 1, 1, 5, 7, 5, 1, 2, 1, 1, - 1, 1, 3, 3, 0, 1, 0, 2, 2, 2, - 4, 1, 3, 1, 2, 2, 3, 2, 3, 1, - 1, 2, 3, 1, 1, 3, 2, 0, 1, 4, - 4, 9, 3, 1, 1, 3, 0, 2, 4, 5, - 4, 4, 4, 3, 1, 1, 1, 1, 1, 1, - 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, - 2, 1, 3, 1, 1, 3, 2, 2, 3, 1, - 0, 1, 1, 3, 3, 3, 4, 1, 1, 2, + 1, 1, 1, 1, 3, 3, 3, 3, 1, 2, + 1, 0, 1, 0, 2, 2, 2, 4, 1, 3, + 1, 2, 2, 3, 2, 3, 1, 1, 2, 3, + 1, 1, 3, 2, 0, 1, 4, 4, 9, 3, + 1, 1, 3, 0, 2, 4, 5, 4, 4, 4, + 3, 1, 1, 1, 1, 1, 1, 0, 1, 1, + 2, 1, 1, 1, 1, 1, 1, 2, 1, 3, + 1, 1, 3, 2, 2, 3, 1, 0, 1, 1, + 3, 3, 3, 4, 1, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, + 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, - 4, 3, 4, 4, 2, 2, 4, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 1, 3, - 2, 1, 2, 4, 2, 8, 9, 8, 9, 7, - 3, 2, 0, 4, 2, 1, 3, 2, 2, 2, - 4, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 1, 1, 1, 0, 3, 0, 1, 1, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 3, 3, 4, 1, 1, 3, 1, 1, 1, 1, - 1, 3, 2, 3, 0, 1, 1, 3, 1, 1, - 1, 1, 1, 3, 1, 1, 4, 4, 1, 4, - 4, 0, 1, 1, 1, 3, 3, 1, 4, 2, - 2, 1, 3, 1, 4, 4, 3, 3, 3, 3, - 1, 3, 1, 1, 3, 1, 1, 4, 1, 1, - 1, 3, 1, 1, 2, 1, 3, 4, 3, 2, - 0, 2, 2, 1, 2, 1, 1, 1, 4, 3, - 3, 3, 3, 6, 3, 1, 1, 2, 1 + 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 5, 4, 3, 4, + 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 1, 3, 2, 1, 2, + 4, 2, 8, 9, 8, 9, 7, 3, 2, 0, + 4, 2, 1, 3, 2, 2, 2, 4, 1, 1, + 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, + 0, 3, 0, 1, 1, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 3, 3, 3, 4, + 1, 1, 3, 1, 1, 1, 1, 1, 3, 2, + 3, 0, 1, 1, 3, 1, 1, 1, 1, 1, + 3, 1, 1, 4, 4, 1, 4, 4, 0, 1, + 1, 1, 3, 3, 1, 4, 2, 2, 1, 3, + 1, 4, 4, 3, 3, 3, 3, 1, 3, 1, + 1, 3, 1, 1, 4, 1, 1, 1, 3, 1, + 1, 2, 1, 3, 4, 3, 2, 0, 2, 2, + 1, 2, 1, 1, 1, 4, 3, 3, 3, 3, + 6, 3, 1, 1, 2, 1 ); protected function initReduceCallbacks() { @@ -1704,664 +1708,664 @@ class Php7 extends \PhpParser\ParserAbstract $this->semValue = new Node\UnionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 259 => function ($stackPos) { - $this->semValue = $this->handleBuiltinTypes($this->semStack[$stackPos-(1-1)]); - }, - 260 => function ($stackPos) { - $this->semValue = new Node\Identifier('array', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 261 => function ($stackPos) { - $this->semValue = new Node\Identifier('callable', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 262 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); - }, - 263 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 264 => function ($stackPos) { - $this->semValue = null; - }, - 265 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, + 260 => function ($stackPos) { + $this->semValue = new Node\Name('static', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 261 => function ($stackPos) { + $this->semValue = $this->handleBuiltinTypes($this->semStack[$stackPos-(1-1)]); + }, + 262 => function ($stackPos) { + $this->semValue = new Node\Identifier('array', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 263 => function ($stackPos) { + $this->semValue = new Node\Identifier('callable', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 264 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); + }, + 265 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, 266 => function ($stackPos) { - $this->semValue = null; + $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); }, 267 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 268 => function ($stackPos) { - $this->semValue = null; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 269 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = new Node\NullableType($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 270 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; + $this->semValue = new Node\UnionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 271 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = null; }, 272 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 273 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(1-1)], false, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = null; }, 274 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], true, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(2-2)]; }, 275 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], false, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = null; }, 276 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(3-3)], false, false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->semStack[$stackPos-(3-1)]); - }, - 277 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 278 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 279 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 280 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 281 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 282 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 283 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 284 => function ($stackPos) { - $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 285 => function ($stackPos) { - $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, - 286 => function ($stackPos) { - if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; } - }, - 287 => function ($stackPos) { $this->semValue = array(); }, + 277 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(4-2)]; + }, + 278 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 279 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 280 => function ($stackPos) { + $this->semValue = new Node\Arg($this->semStack[$stackPos-(1-1)], false, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 281 => function ($stackPos) { + $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], true, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 282 => function ($stackPos) { + $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], false, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 283 => function ($stackPos) { + $this->semValue = new Node\Arg($this->semStack[$stackPos-(3-3)], false, false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->semStack[$stackPos-(3-1)]); + }, + 284 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 285 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 286 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 287 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, 288 => function ($stackPos) { - $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; }; - if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 289 => function ($stackPos) { - $attrs = $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes; - $this->semValue = new Stmt\Property($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $attrs, $this->semStack[$stackPos-(4-2)]); $this->checkProperty($this->semValue, $stackPos-(4-1)); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 290 => function ($stackPos) { - $this->semValue = new Stmt\ClassConst($this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-1)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); $this->checkClassConst($this->semValue, $stackPos-(4-1)); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 291 => function ($stackPos) { - $this->semValue = new Stmt\ClassMethod($this->semStack[$stackPos-(9-4)], ['type' => $this->semStack[$stackPos-(9-1)], 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-6)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); - $this->checkClassMethod($this->semValue, $stackPos-(9-1)); + $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 292 => function ($stackPos) { - $this->semValue = new Stmt\TraitUse($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 293 => function ($stackPos) { - $this->semValue = null; /* will be skipped */ + if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; } }, 294 => function ($stackPos) { $this->semValue = array(); }, 295 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; }; + if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 296 => function ($stackPos) { - $this->semValue = array(); + $attrs = $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes; + $this->semValue = new Stmt\Property($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $attrs, $this->semStack[$stackPos-(4-2)]); $this->checkProperty($this->semValue, $stackPos-(4-1)); }, 297 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = new Stmt\ClassConst($this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-1)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); $this->checkClassConst($this->semValue, $stackPos-(4-1)); }, 298 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Stmt\ClassMethod($this->semStack[$stackPos-(9-4)], ['type' => $this->semStack[$stackPos-(9-1)], 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-6)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); + $this->checkClassMethod($this->semValue, $stackPos-(9-1)); }, 299 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(5-1)][0], $this->semStack[$stackPos-(5-1)][1], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + $this->semValue = new Stmt\TraitUse($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 300 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], null, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = null; /* will be skipped */ }, 301 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = array(); }, 302 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 303 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); + $this->semValue = array(); }, 304 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 305 => function ($stackPos) { - $this->semValue = array(null, $this->semStack[$stackPos-(1-1)]); + $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 306 => function ($stackPos) { - $this->semValue = null; + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(5-1)][0], $this->semStack[$stackPos-(5-1)][1], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, 307 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], null, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 308 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 309 => function ($stackPos) { - $this->semValue = 0; + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 310 => function ($stackPos) { - $this->semValue = 0; + $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); }, 311 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 312 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = array(null, $this->semStack[$stackPos-(1-1)]); }, 313 => function ($stackPos) { - $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; + $this->semValue = null; }, 314 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_PUBLIC; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 315 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_PROTECTED; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 316 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_PRIVATE; + $this->semValue = 0; }, 317 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_STATIC; + $this->semValue = 0; }, 318 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 319 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_FINAL; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 320 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; }, 321 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = Stmt\Class_::MODIFIER_PUBLIC; }, 322 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = Stmt\Class_::MODIFIER_PROTECTED; }, 323 => function ($stackPos) { - $this->semValue = new Node\VarLikeIdentifier(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = Stmt\Class_::MODIFIER_PRIVATE; }, 324 => function ($stackPos) { - $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = Stmt\Class_::MODIFIER_STATIC; }, 325 => function ($stackPos) { - $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; }, 326 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = Stmt\Class_::MODIFIER_FINAL; }, 327 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 328 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 329 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, + 329 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, 330 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = new Node\VarLikeIdentifier(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 331 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 332 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 333 => function ($stackPos) { - $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 334 => function ($stackPos) { - $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 335 => function ($stackPos) { - $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 336 => function ($stackPos) { - $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 337 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = array(); }, 338 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 339 => function ($stackPos) { - $this->semValue = new Expr\Clone_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 340 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 341 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 342 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 343 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 344 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 345 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 346 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\Clone_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 347 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 348 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 349 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 350 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 351 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 352 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 353 => function ($stackPos) { - $this->semValue = new Expr\PostInc($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 354 => function ($stackPos) { - $this->semValue = new Expr\PreInc($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 355 => function ($stackPos) { - $this->semValue = new Expr\PostDec($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 356 => function ($stackPos) { - $this->semValue = new Expr\PreDec($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 357 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 358 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 359 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 360 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\PostInc($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 361 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\PreInc($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 362 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\PostDec($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 363 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\PreDec($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 364 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 365 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 366 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 367 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 368 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 369 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 370 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 371 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 372 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 373 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 374 => function ($stackPos) { - $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 375 => function ($stackPos) { - $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 376 => function ($stackPos) { - $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 377 => function ($stackPos) { - $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 378 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 379 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 380 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 381 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 382 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 383 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 384 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 385 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 386 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 387 => function ($stackPos) { - $this->semValue = new Expr\Instanceof_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 388 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 389 => function ($stackPos) { - $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 390 => function ($stackPos) { - $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 391 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 392 => function ($stackPos) { - $this->semValue = new Expr\Isset_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 393 => function ($stackPos) { - $this->semValue = new Expr\Empty_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 394 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Instanceof_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 395 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 396 => function ($stackPos) { - $this->semValue = new Expr\Eval_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, 397 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 398 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 399 => function ($stackPos) { - $this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Isset_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 400 => function ($stackPos) { + $this->semValue = new Expr\Empty_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 401 => function ($stackPos) { + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 402 => function ($stackPos) { + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 403 => function ($stackPos) { + $this->semValue = new Expr\Eval_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 404 => function ($stackPos) { + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 405 => function ($stackPos) { + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 406 => function ($stackPos) { + $this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 407 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; $attrs['kind'] = $this->getFloatCastKind($this->semStack[$stackPos-(2-1)]); $this->semValue = new Expr\Cast\Double($this->semStack[$stackPos-(2-2)], $attrs); }, - 401 => function ($stackPos) { + 408 => function ($stackPos) { $this->semValue = new Expr\Cast\String_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 402 => function ($stackPos) { + 409 => function ($stackPos) { $this->semValue = new Expr\Cast\Array_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 403 => function ($stackPos) { + 410 => function ($stackPos) { $this->semValue = new Expr\Cast\Object_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 404 => function ($stackPos) { + 411 => function ($stackPos) { $this->semValue = new Expr\Cast\Bool_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 405 => function ($stackPos) { + 412 => function ($stackPos) { $this->semValue = new Expr\Cast\Unset_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 406 => function ($stackPos) { + 413 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; $attrs['kind'] = strtolower($this->semStack[$stackPos-(2-1)]) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE; $this->semValue = new Expr\Exit_($this->semStack[$stackPos-(2-2)], $attrs); }, - 407 => function ($stackPos) { + 414 => function ($stackPos) { $this->semValue = new Expr\ErrorSuppress($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 408 => function ($stackPos) { + 415 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 409 => function ($stackPos) { + 416 => function ($stackPos) { $this->semValue = new Expr\ShellExec($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 410 => function ($stackPos) { + 417 => function ($stackPos) { $this->semValue = new Expr\Print_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 411 => function ($stackPos) { + 418 => function ($stackPos) { $this->semValue = new Expr\Yield_(null, null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 412 => function ($stackPos) { + 419 => function ($stackPos) { $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(2-2)], null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 413 => function ($stackPos) { + 420 => function ($stackPos) { $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 414 => function ($stackPos) { + 421 => function ($stackPos) { $this->semValue = new Expr\YieldFrom($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 415 => function ($stackPos) { + 422 => function ($stackPos) { $this->semValue = new Expr\ArrowFunction(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'returnType' => $this->semStack[$stackPos-(8-6)], 'expr' => $this->semStack[$stackPos-(8-8)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); }, - 416 => function ($stackPos) { + 423 => function ($stackPos) { $this->semValue = new Expr\ArrowFunction(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'returnType' => $this->semStack[$stackPos-(9-7)], 'expr' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 417 => function ($stackPos) { + 424 => function ($stackPos) { $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'uses' => $this->semStack[$stackPos-(8-6)], 'returnType' => $this->semStack[$stackPos-(8-7)], 'stmts' => $this->semStack[$stackPos-(8-8)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); }, - 418 => function ($stackPos) { + 425 => function ($stackPos) { $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'uses' => $this->semStack[$stackPos-(9-7)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 419 => function ($stackPos) { + 426 => function ($stackPos) { $this->semValue = array(new Stmt\Class_(null, ['type' => 0, 'extends' => $this->semStack[$stackPos-(7-3)], 'implements' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes), $this->semStack[$stackPos-(7-2)]); $this->checkClass($this->semValue[0], -1); }, - 420 => function ($stackPos) { + 427 => function ($stackPos) { $this->semValue = new Expr\New_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 421 => function ($stackPos) { + 428 => function ($stackPos) { list($class, $ctorArgs) = $this->semStack[$stackPos-(2-2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 422 => function ($stackPos) { - $this->semValue = array(); - }, - 423 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-3)]; - }, - 424 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 425 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 426 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 427 => function ($stackPos) { - $this->semValue = new Expr\ClosureUse($this->semStack[$stackPos-(2-2)], $this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); - }, - 428 => function ($stackPos) { - $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); - }, 429 => function ($stackPos) { - $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = array(); }, 430 => function ($stackPos) { - $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(4-3)]; }, 431 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 432 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 433 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 434 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\ClosureUse($this->semStack[$stackPos-(2-2)], $this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 435 => function ($stackPos) { - $this->semValue = new Name\FullyQualified(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 436 => function ($stackPos) { - $this->semValue = new Name\Relative(substr($this->semStack[$stackPos-(1-1)], 10), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 437 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 438 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 439 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 440 => function ($stackPos) { - $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 441 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 442 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Name\FullyQualified(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 443 => function ($stackPos) { - $this->semValue = null; + $this->semValue = new Name\Relative(substr($this->semStack[$stackPos-(1-1)], 10), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 444 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 445 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 446 => function ($stackPos) { - $this->semValue = array(new Scalar\EncapsedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos-(1-1)], '`'), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes)); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 447 => 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)]; + $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; }, 448 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 449 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 450 => function ($stackPos) { - $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = null; }, 451 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 452 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = array(); }, 453 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = array(new Scalar\EncapsedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos-(1-1)], '`'), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes)); }, 454 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + foreach ($this->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', true); } }; $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 455 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = array(); }, 456 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 457 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 458 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 459 => 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\File($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 460 => function ($stackPos) { - $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], new Expr\Error($this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)]), $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->errorState = 2; + $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 461 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 462 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 463 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 464 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 465 => function ($stackPos) { + $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 466 => function ($stackPos) { + $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 467 => 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; + }, + 468 => 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); }, - 462 => function ($stackPos) { + 469 => 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); }, - 463 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 464 => 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); - }, - 465 => 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); - }, - 466 => function ($stackPos) { - $this->semValue = $this->parseLNumber($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 467 => function ($stackPos) { - $this->semValue = new Scalar\DNumber(Scalar\DNumber::parse($this->semStack[$stackPos-(1-1)]), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 468 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 469 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, 470 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 471 => function ($stackPos) { - $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true); + $attrs = $this->startAttributeStack[$stackPos-(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); }, 472 => 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); + $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); }, 473 => 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->parseLNumber($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 474 => function ($stackPos) { - $this->semValue = null; + $this->semValue = new Scalar\DNumber(Scalar\DNumber::parse($this->semStack[$stackPos-(1-1)]), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 475 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; @@ -2370,219 +2374,240 @@ class Php7 extends \PhpParser\ParserAbstract $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 477 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 478 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true); }, 479 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = $this->parseDocString($this->semStack[$stackPos-(2-1)], '', $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(2-2)] + $this->endAttributeStack[$stackPos-(2-2)], true); }, 480 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true); }, 481 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = null; }, 482 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 483 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 484 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, + 484 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, 485 => 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)]; }, 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); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 487 => 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)]; }, 488 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 489 => 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)]; }, 490 => function ($stackPos) { - $this->semValue = new Expr\NullsafeMethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 491 => function ($stackPos) { - $this->semValue = null; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 492 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 493 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 494 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 495 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, - 496 => function ($stackPos) { - $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, - 497 => function ($stackPos) { - $this->semValue = substr($this->semStack[$stackPos-(1-1)], 1); - }, - 498 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-3)]; - }, - 499 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); - }, - 500 => function ($stackPos) { - $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); $this->errorState = 2; - }, - 501 => 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; - }, - 502 => function ($stackPos) { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, - 503 => function ($stackPos) { $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 504 => function ($stackPos) { + 493 => function ($stackPos) { $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 505 => function ($stackPos) { + 494 => function ($stackPos) { $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 506 => function ($stackPos) { + 495 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 496 => 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); + }, + 497 => function ($stackPos) { + $this->semValue = new Expr\NullsafeMethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 498 => function ($stackPos) { + $this->semValue = null; + }, + 499 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 500 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 501 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 502 => function ($stackPos) { $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 507 => function ($stackPos) { + 503 => function ($stackPos) { $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, + 504 => function ($stackPos) { + $this->semValue = substr($this->semStack[$stackPos-(1-1)], 1); + }, + 505 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(4-3)]; + }, + 506 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 507 => function ($stackPos) { + $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); $this->errorState = 2; + }, 508 => 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; }, 509 => function ($stackPos) { $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 510 => 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); }, 511 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 512 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 513 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 514 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 515 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 516 => function ($stackPos) { - $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; - }, - 517 => function ($stackPos) { - $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); - }, - 518 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; $end = count($this->semValue)-1; if ($this->semValue[$end] === null) array_pop($this->semValue); - }, - 519 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos]; - }, - 520 => function ($stackPos) { - /* do nothing -- prevent default action of $$=$this->semStack[$1]. See $551. */ - }, - 521 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 522 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 523 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 524 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); - }, - 525 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 526 => 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); - }, - 527 => 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); - }, - 528 => 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); - }, - 529 => 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); - }, - 530 => function ($stackPos) { - $this->semValue = null; - }, - 531 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 532 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 533 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 534 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); - }, - 535 => function ($stackPos) { - $this->semValue = new Scalar\EncapsedStringPart($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 536 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 537 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 538 => function ($stackPos) { $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 539 => function ($stackPos) { + 512 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 513 => function ($stackPos) { $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 540 => function ($stackPos) { + 514 => function ($stackPos) { $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 541 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + 515 => function ($stackPos) { + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 542 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + 516 => function ($stackPos) { + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 543 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-4)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + 517 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 544 => function ($stackPos) { + 518 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(3-2)]; }, + 519 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 520 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 521 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 522 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 523 => function ($stackPos) { + $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; + }, + 524 => function ($stackPos) { + $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 525 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; $end = count($this->semValue)-1; if ($this->semValue[$end] === null) array_pop($this->semValue); + }, + 526 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 527 => function ($stackPos) { + /* do nothing -- prevent default action of $$=$this->semStack[$1]. See $551. */ + }, + 528 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 529 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 530 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 531 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 532 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 533 => 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); + }, + 534 => 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); + }, + 535 => 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); + }, + 536 => 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); + }, + 537 => function ($stackPos) { + $this->semValue = null; + }, + 538 => function ($stackPos) { + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 539 => function ($stackPos) { + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 540 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 541 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); + }, + 542 => function ($stackPos) { + $this->semValue = new Scalar\EncapsedStringPart($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 543 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 544 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, 545 => function ($stackPos) { - $this->semValue = new Scalar\String_($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-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); }, 546 => function ($stackPos) { - $this->semValue = $this->parseNumString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 547 => function ($stackPos) { - $this->semValue = $this->parseNumString('-' . $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 548 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 549 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 550 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-4)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + }, + 551 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 552 => function ($stackPos) { + $this->semValue = new Scalar\String_($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 553 => function ($stackPos) { + $this->semValue = $this->parseNumString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 554 => function ($stackPos) { + $this->semValue = $this->parseNumString('-' . $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 555 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, ]; diff --git a/test/code/parser/stmt/class/staticType.test b/test/code/parser/stmt/class/staticType.test new file mode 100644 index 0000000..8ae8304 --- /dev/null +++ b/test/code/parser/stmt/class/staticType.test @@ -0,0 +1,37 @@ +Static return type +----- +