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