From b5bcfa1168ec65a70ee02cd3d09a5b27a6345dea Mon Sep 17 00:00:00 2001 From: nikic Date: Wed, 26 Mar 2014 18:42:46 +0100 Subject: [PATCH] Add support for argument unpacking (PHP 5.6) --- grammar/zend_language_parser.phpy | 7 +- lib/PhpParser/Node/Arg.php | 13 +- lib/PhpParser/Parser.php | 1675 +++++++++-------- lib/PhpParser/PrettyPrinter/Standard.php | 2 +- test/code/parser/expr/fetchAndCall/args.test | 28 + test/code/parser/expr/new.test | 1 + test/code/parser/stmt/function/generator.test | 3 + test/code/prettyPrinter/call.test | 13 + 8 files changed, 899 insertions(+), 843 deletions(-) create mode 100644 test/code/prettyPrinter/call.test diff --git a/grammar/zend_language_parser.phpy b/grammar/zend_language_parser.phpy index 1a35274d..324257d4 100644 --- a/grammar/zend_language_parser.phpy +++ b/grammar/zend_language_parser.phpy @@ -393,7 +393,7 @@ optional_class_type: argument_list: '(' ')' { $$ = array(); } | '(' non_empty_argument_list ')' { $$ = $2; } - | '(' yield_expr ')' { $$ = array(Arg[$2, false]); } + | '(' yield_expr ')' { $$ = array(Arg[$2, false, false]); } ; non_empty_argument_list: @@ -402,8 +402,9 @@ non_empty_argument_list: ; argument: - expr { $$ = Arg[$1, false]; } - | '&' variable { $$ = Arg[$2, true]; } + expr { $$ = Arg[$1, false, false]; } + | '&' variable { $$ = Arg[$2, true, false]; } + | T_ELLIPSIS expr { $$ = Arg[$2, false, true]; } ; global_var_list: diff --git a/lib/PhpParser/Node/Arg.php b/lib/PhpParser/Node/Arg.php index 270e6ea3..068e3321 100644 --- a/lib/PhpParser/Node/Arg.php +++ b/lib/PhpParser/Node/Arg.php @@ -5,8 +5,9 @@ namespace PhpParser\Node; use PhpParser\NodeAbstract; /** - * @property Expr $value Value to pass - * @property bool $byRef Whether to pass by ref + * @property Expr $value Value to pass + * @property bool $byRef Whether to pass by ref + * @property bool $unpack Whether to unpack the argument */ class Arg extends NodeAbstract { @@ -15,13 +16,15 @@ class Arg extends NodeAbstract * * @param Expr $value Value to pass * @param bool $byRef Whether to pass by ref + * @param bool $unpack Whether to unpack the argument * @param array $attributes Additional attributes */ - public function __construct(Expr $value, $byRef = false, array $attributes = array()) { + public function __construct(Expr $value, $byRef = false, $unpack = false, array $attributes = array()) { parent::__construct( array( - 'value' => $value, - 'byRef' => $byRef + 'value' => $value, + 'byRef' => $byRef, + 'unpack' => $unpack, ), $attributes ); diff --git a/lib/PhpParser/Parser.php b/lib/PhpParser/Parser.php index 13cf2765..e9142147 100644 --- a/lib/PhpParser/Parser.php +++ b/lib/PhpParser/Parser.php @@ -18,10 +18,10 @@ class Parser const TOKEN_MAP_SIZE = 387; - const YYLAST = 994; - const YY2TBLSTATE = 314; - const YYGLAST = 444; - const YYNLSTATES = 533; + const YYLAST = 1001; + const YY2TBLSTATE = 316; + const YYGLAST = 446; + const YYNLSTATES = 535; const YYUNEXPECTED = 32767; const YYDEFAULT = -32766; @@ -360,269 +360,271 @@ class Parser ); protected static $yyaction = array( - 59, 60, 324, 61, 62,-32766,-32766,-32766, 262, 63, - 64, 103, 104, 105, 341, 233,-32766,-32766,-32766, 0, - 660, 661,-32766, 900,-32766,-32766,-32766,-32766,-32766,-32767, - -32767,-32767,-32767,-32766, 496,-32766,-32766,-32766,-32766,-32766, - 65, 66, -120,-32766,-32766,-32766, 67, 296, 68, 220, - 221, 69, 70, 71, 72, 73, 74, 75, 76, 31, - 232, 77, 316, 325,-32766,-32766,-32766, 841, 842, 361, - 34, 900, 215, 581, 635, 362, 46, 27, 326, 187, - 363,-32766, 364,-32766, 365, 35, 487, 327,-32766,-32766, - -32766, 36, 37, 366, 332, 328, 38, 367, 260, 238, - 78, 359, 346, 278, 279,-32766, 368, 369, 685, 39, - 223, 370, 371, 372, 349, 563, 607, 373, 374, 463, - 793, 57, 375, 376, 123, 847, 848, 849, 850, 844, - 845, 239, 342, 82, 83, 84, 388, 851, 846, 329, - 128, 587, 506,-32766, 47, 56, 260, 244, 866, 248, - 40, 189, 85, 86, 87, 88, 89, 90, 91, 92, + 59, 60, 326, 61, 62,-32766,-32766,-32766, 217, 63, + 64, 103, 104, 105, 498, 235,-32766,-32766,-32766, 539, + 662, 663,-32766, 507,-32766,-32766,-32766,-32766,-32766,-32767, + -32767,-32767,-32767,-32766, 0,-32766,-32766,-32766,-32766,-32766, + 65, 66, -120, 264, 298, 35, 67, 269, 68, 222, + 223, 69, 70, 71, 72, 73, 74, 75, 76, 32, + 234, 77, 318, 327,-32766,-32766,-32766, 844, 845, 363, + 131, 903, 361, 583, 456, 364, 46, 27, 328, 189, + 365,-32766, 366,-32766, 367, 240, 390, 329, 688, 331, + 123, 36, 37, 368, 334, 693, 38, 369, 330, 319, + 78, 31, 345, 280, 281, 278, 39, 225, 427, 370, + 371, 372, 373, 374, 343,-32766,-32766,-32766, 545, 609, + 375, 376, 377, 378, 796, 850, 851, 852, 853, 847, + 848, 241,-32766, 82, 83, 84, 390, 854, 849, 331, + 261, 589, 508, 226, 47, 325, 262, 246, 910, 250, + 40, 57, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105,-32766, 233, 126, 793, 853, 321, 537, - 304, 323, 246,-32766, 257, 54,-32766,-32766,-32766, 277, - -32766, 636,-32766, 698,-32766, 216, 456,-32766,-32766,-32766, - -32766,-32766,-32766,-32766, 122, 53,-32766,-32766, 793, 894, - -32766, 328, 907,-32766, 387,-32766, 537,-32766,-32766,-32766, - -32766,-32766, 368, 369, 929, 663, 605, 222, 120,-32766, - 190, 563, 607, 373, 374, 537, 285, 680, 932,-32766, - 934, 933,-32766,-32766,-32766, 344,-32766, 922,-32766, 321, - -32766,-32766,-32766,-32766, 22, 257, 227,-32766,-32766,-32766, - 793,-32766,-32766,-32766, 698, 348,-32766, 537, 119,-32766, - 387,-32766, 194, 671,-32766,-32766,-32766,-32766,-32766, 224, - -32766, 321,-32766, 388, 268,-32766, 329, 257, 118,-32766, - -32766,-32766, 793, 505,-32766,-32766, 698, 606,-32766, 922, - 213,-32766, 387, 100, 101, 102, 125,-32766,-32766,-32766, - 904, 338, 249,-32766, 508, 267,-32766,-32766,-32766, 537, - 343, 807, 863,-32766, -116, 547,-32766,-32766,-32766, 604, - -32766, 865,-32766,-32766,-32766,-32766,-32766,-32766, 126,-32766, - -32766,-32766,-32766,-32766, 793,-32766,-32766,-32766, 217, 375, - -32766, 537, 130,-32766, 387,-32766, 454, 864,-32766,-32766, - -32766,-32766,-32766, 225,-32766, 690,-32766,-32766,-32766,-32766, - 853, 195, 578,-32766,-32766,-32766, 425, 866,-32766,-32766, - 226, 579,-32766, 127, 188,-32766, 387, 351, 28, 356, - 469,-32766,-32766,-32766, 117, 224, 522,-32766, 131, 286, - 478, 479, 521, 537, 660, 661, 528,-32766, 684, 527, - -32766,-32766,-32766, 591,-32766, 518,-32766, 129,-32766, 793, - 509,-32766, 530,-32766,-32766,-32766,-32766,-32766, 511,-32766, - -32766,-32766, 544, 513,-32766, 537, 600,-32766, 387,-32766, - 695, 532,-32766,-32766,-32766,-32766,-32766, 233,-32766, 52, - -32766, 793, 232,-32766, 51, 416, 55,-32766,-32766,-32766, - 49, 58,-32766,-32766, 50, 483,-32766, 212, 265,-32766, - 387, 418,-32766, 229, 495,-32766,-32766,-32766, 537, 552, - 554, 692,-32766, 504, 415,-32766,-32766,-32766, 538,-32766, - 403,-32766, 337,-32766, 793, 339,-32766, 537, 493, 398, - -32766,-32766,-32766, 399,-32766,-32766,-32766,-32766,-32766,-32766, - 537, 662,-32766, 387,-32766, 927, 488,-32766,-32766,-32766, - -32766,-32766, 480,-32766, 810,-32766, 793, 402,-32766, -164, - 340, 922,-32766,-32766,-32766, 266, -161,-32766,-32766, 474, - 447,-32766, 336, 459,-32766, 387, 258,-32766, 472, 255, - 573,-32766,-32766, 537, 609, 608, 358,-32766, 121, 852, - -32766,-32766,-32766, -354,-32766, 261,-32766, -285,-32766, -353, - 251,-32766, 320, 481, 0,-32766,-32766,-32766, 256,-32766, - -32766,-32766, 571,-32766,-32766, 537, 245,-32766, 387,-32766, - 247, 375,-32766,-32766,-32766,-32766,-32766, 42,-32766, 193, - -32766, 0, 501,-32766, 408, 45, -294,-32766,-32766,-32766, - 242, 338,-32766,-32766, 287, -293,-32766, 299, 44,-32766, - 387, 602,-32766, 0, 514, 575,-32766,-32766, 537, 574, - 572, 576,-32766, 589, 577,-32766,-32766,-32766, 590,-32766, - 568,-32766, 583,-32766, 638, 629,-32766, 630, 566, 580, - -32766,-32766,-32766, 623,-32766,-32766,-32766,-32766,-32766,-32766, - 537, 621,-32766, 387,-32766, 582, 619,-32766,-32766,-32766, - -32766,-32766, 688,-32766, 691,-32766, 548, 689,-32766, 191, - 192, 515,-32766,-32766,-32766, 681, 895,-32766,-32766, 81, - 507,-32766, 512, 517,-32766, 387, 519, 524, 185, 525, - -32766,-32766,-32766, 526, 834, 531, 841, 842, 124, 529, - -32766, 905, 673, 832, 843, 41, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 897, 885, 328, - 317, 899,-32766,-32766, 80, 328, 276, 930, 931, 628, - 368, 369, 627, 901, 355, 928, 368, 369,-32766, 543, - 607, 373, 374, 735, 737, 563, 607, 373, 374, 236, - 235, 234, 444, 237, 847, 848, 849, 850, 844, 845, - 307, 259, 219, 218, 214, 263, 851, 846, 545, 328, - 317, 319, 186,-32766, 516,-32766, 276, 315, 79, 48, - 368, 369,-32766,-32766,-32766, 43, 328, 317, 33, 543, - 607, 373, 374, 276, 32, 30, 791, 368, 369,-32766, - 773,-32766,-32766,-32766, 664, 800, 543, 607, 373, 374, - 797, 259, 500, 473, -353, 439, 357, 352, 546,-32767, - -32767,-32767,-32767, 98, 99, 100, 101, 102, 259, 328, - 305, 288, 25, 328, 706, 707, 708, 705, 704, 703, - 368, 369, 24, 23, 368, 369, 328, -116, 796, 563, - 607, 373, 374, 563, 607, 373, 374, 368, 369, -117, - 772, 859, 448, 328, 0, 0, 563, 607, 373, 374, - 879, 860, 926, 831, 368, 369, 328, 896, 794, 880, - 328, 884, 696, 563, 607, 373, 374, 368, 369, 898, - 816, 368, 369, 328, 804, 594, 563, 607, 373, 374, - 563, 607, 373, 374, 368, 369, 537, 802, 900, 803, - 503, 801, 795, 563, 607, 373, 374, 494, 0, 0, - 0, 0, 0, 328, 0, 596, 0, 0, 328, 564, - 0, 0, 0, 0, 368, 369, 0, 0, 0, 368, - 369, 817, 603, 563, 607, 373, 374, 328, 563, 607, - 373, 374, 0, 0, 0, 0, 0, 0, 368, 369, - 0, 0, 0, 0, 0, 0, 0, 563, 607, 373, - 374, 0, 0, 388, 0, 0, 329, 0, 0, 0, - 0, 333, 0, 260 + 103, 104, 105, 323, 235, 226, 228,-32766, 351, 259, + -32766,-32766,-32766, 539, 279, 348, 229,-32766, 701, 129, + -32766,-32766,-32766, 350,-32766, 287,-32766,-32766,-32766,-32766, + -32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766, 683,-32766, + -32766,-32766, 248, 346,-32766, 539, 465,-32766, 389,-32766, + -32766, 607,-32766,-32766,-32766,-32766,-32766, 191,-32766, 323, + -32766, 869, 344,-32766, 122, 259, 56,-32766,-32766,-32766, + 796, 665,-32766,-32766, 701, 935,-32766, 937, 936,-32766, + 389, 100, 101, 102, 126,-32766,-32766,-32766, 127, 218, + 330, 319, 54, 323, 637, 903, 127, 278, 53, 259, + 192, 370, 371, 932, 856, 196, 796, 608, 701, 377, + 545, 609, 375, 376, 197, 810, 126,-32766,-32766, 897, + 674, 664, 868,-32766, 907, 224, 925, 193, 194, 539, + 925, 340, 261,-32766, 510, 524,-32766,-32766,-32766, 547, + -32766, 606,-32766, 215,-32766, 251, 187,-32766, 22, 120, + 549,-32766,-32766,-32766, 844, 845,-32766,-32766,-32766,-32766, + -32766, 580, 846,-32766, 389, 539, 523, -116, 869,-32766, + 262,-32766,-32766,-32766,-32766, 119,-32766, 796,-32766, 581, + -32766, 118, 190,-32766, 867,-32766,-32766,-32766,-32766,-32766, + 530, 125,-32766,-32766, 270, 219,-32766, 128, 117,-32766, + 389,-32766,-32766, 856, 593, 866, 520,-32766, 130, 796, + 446, 638, 850, 851, 852, 853, 847, 848, 309, 353, + 28, 358, 471, 602, 854, 849, 132, 288, 227, 511, + -32766,-32766, 532,-32766, 480, 481, 539,-32766,-32766, 513, + -32766, 662, 663,-32766,-32766,-32766, 234,-32766, 235,-32766, + 52,-32766, 796, 342,-32766, 687, 529, 51,-32766,-32766, + -32766, 55,-32766,-32766,-32766, 546, 515,-32766, 539, 49, + -32766, 389,-32766, 698, 534,-32766,-32766,-32766,-32766,-32766, + 58,-32766, 50,-32766, 796, 485,-32766, 418, 497, 554, + -32766,-32766,-32766, 556, 695,-32766,-32766, 506, 417,-32766, + 540, 405,-32766, 389, 339,-32766, 341, 539,-32766,-32766, + -32766, 539, 306, 495, 400,-32766, 401, 930,-32766,-32766, + -32766, 490,-32766, 482,-32766, 813,-32766, 796, 404,-32766, + -165, 461, 267,-32766,-32766,-32766, 925,-32766,-32766,-32766, + -32766,-32766,-32766, 539, 268,-32766, 389,-32766, 474, 214, + -32766,-32766,-32766,-32766,-32766, 420,-32766, 231,-32766, 796, + 338,-32766, -162, 449, 611,-32766,-32766,-32766, 476, 360, + -32766,-32766, 258, 257,-32766, 260, 610,-32766, 389, 322, + -32766, -286, 263,-32766,-32766,-32766, 539, 377, -355, 483, + -32766, 253, -354,-32766,-32766,-32766, 776,-32766, 247,-32766, + 249,-32766, 796, 121,-32766, 42, 195, 0,-32766,-32766, + -32766, 855,-32766,-32766,-32766, 573,-32766,-32766, 539, 0, + -32766, 389,-32766, 503, -295,-32766,-32766,-32766,-32766,-32766, + 244,-32766, 289,-32766, -294, 301,-32766, 410, 81, 666, + -32766,-32766,-32766, 340, 45,-32766,-32766, 604, 509,-32766, + 44, 516,-32766, 389, 576,-32766, 574, 578,-32766,-32766, + -32766, 539, 591, 579, 592,-32766, 570, 585,-32766,-32766, + -32766, 640,-32766, 631,-32766, 632,-32766, 568, 582,-32766, + 625, 623, 584,-32766,-32766,-32766, 621,-32766,-32766,-32766, + 575,-32766,-32766, 539, 691,-32766, 389,-32766, 694, 550, + -32766,-32766,-32766,-32766,-32766, 692,-32766, 517,-32766, 684, + 898,-32766, 514, 519, 521,-32766,-32766,-32766, 526, 527, + -32766,-32766, 528, 533,-32766, 124, 531,-32766, 389, 908, + -32766, 676, 835, 577,-32766,-32766, 539, 900, 888, 902, + -32766, 933, 934,-32766,-32766,-32766, 630,-32766, 629,-32766, + 904,-32766, 357, 931,-32766,-32766,-32766,-32766,-32766,-32766, + -32766, 80,-32766,-32766,-32766,-32766,-32766,-32766, 803, 837, + -32766, 389,-32766, 238,-32766,-32766,-32766,-32766,-32766, 41, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 330, 319, 237, 236, 239, 221, 220, 278, 216, + 265, 321, 370, 371, 188, 317, 79, 48,-32766,-32766, + 43, 545, 609, 375, 376, 34, 33, 738, 740,-32767, + -32767,-32767,-32767, 98, 99, 100, 101, 102, 30, 794, + 330, 800, 502, 261, 330, 475, 441, 359, 354, 307, + 548, 370, 371, 290, 25, 370, 371, 330, 24, 23, + 565, 609, 375, 376, 565, 609, 375, 376, 370, 371, + -116, 799, -117, 775, 330, 862, 450, 565, 609, 375, + 376, 882, 863, 929, 834, 370, 371, 899, 330, 518, + 883, 887, 330, 797, 565, 609, 375, 376, -354, 370, + 371, 901, 819, 370, 371, 330, 699, 0, 565, 609, + 375, 376, 565, 609, 375, 376, 370, 371, 807, 805, + 458, 806, 330, 596, 804, 565, 609, 375, 376, 0, + 0, 0, 0, 370, 371, 330, 0, 798, 0, 505, + 0, 598, 565, 609, 375, 376, 370, 371, 539, 0, + 903, 0, 330, 0, 566, 565, 609, 375, 376, 496, + 0, 0, 0, 370, 371, 0, 0, 489, 0, 0, + 330, 605, 565, 609, 375, 376, 330, 0, 0, 0, + 0, 370, 371, 820, 0, 0, 0, 370, 371, 330, + 565, 609, 375, 376, 0, 0, 565, 609, 375, 376, + 370, 371, 709, 710, 711, 708, 707, 706, 0, 565, + 609, 375, 376, 0, 0, 390, 0, 0, 331,-32766, + -32766,-32766, 0, 335, 0, 262, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,-32766, 0,-32766,-32766, + -32766 ); protected static $yycheck = array( 2, 3, 4, 5, 6, 8, 9, 10, 7, 11, - 12, 45, 46, 47, 26, 49, 8, 9, 10, 0, - 125, 126, 25, 73, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 25, 71, 27, 28, 29, 30, 31, - 42, 43, 147, 8, 9, 10, 48, 73, 50, 51, + 12, 45, 46, 47, 71, 49, 8, 9, 10, 71, + 125, 126, 25, 71, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 25, 0, 27, 28, 29, 30, 31, + 42, 43, 147, 7, 73, 7, 48, 61, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 8, 9, 10, 69, 70, 71, - 7, 73, 7, 75, 26, 77, 78, 79, 80, 7, - 82, 25, 84, 27, 86, 7, 87, 89, 8, 9, - 10, 93, 94, 95, 96, 96, 98, 99, 148, 7, - 102, 7, 71, 105, 106, 25, 107, 108, 145, 135, - 136, 113, 114, 115, 7, 116, 117, 118, 119, 76, - 12, 61, 124, 125, 7, 127, 128, 129, 130, 131, - 132, 133, 144, 8, 9, 10, 138, 139, 140, 141, - 61, 143, 144, 8, 146, 61, 148, 149, 117, 151, - 25, 13, 27, 28, 29, 30, 31, 32, 33, 34, + 144, 73, 7, 75, 148, 77, 78, 79, 80, 7, + 82, 25, 84, 27, 86, 7, 138, 89, 145, 141, + 7, 93, 94, 95, 96, 143, 98, 99, 96, 97, + 102, 7, 7, 105, 106, 103, 135, 136, 122, 107, + 108, 113, 114, 115, 26, 8, 9, 10, 116, 117, + 118, 119, 124, 125, 12, 127, 128, 129, 130, 131, + 132, 133, 25, 8, 9, 10, 138, 139, 140, 141, + 138, 143, 144, 31, 146, 7, 148, 149, 147, 151, + 25, 61, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 65, 49, 144, 12, 134, 97, 71, - 72, 7, 122, 75, 103, 61, 78, 79, 80, 7, - 82, 143, 84, 112, 86, 31, 81, 89, 8, 9, - 10, 93, 94, 95, 144, 61, 98, 99, 12, 73, - 102, 96, 147, 105, 106, 25, 71, 27, 28, 29, - 30, 113, 107, 108, 145, 147, 145, 31, 144, 65, - 13, 116, 117, 118, 119, 71, 7, 143, 71, 75, - 73, 74, 78, 79, 80, 7, 82, 76, 84, 97, - 86, 143, 144, 89, 147, 103, 31, 93, 94, 95, - 12, 65, 98, 99, 112, 71, 102, 71, 144, 105, - 106, 75, 13, 73, 78, 79, 80, 113, 82, 31, - 84, 97, 86, 138, 148, 89, 141, 103, 144, 93, - 94, 95, 12, 71, 98, 99, 112, 145, 102, 76, - 123, 105, 106, 42, 43, 44, 26, 143, 144, 113, - 71, 141, 76, 65, 144, 61, 8, 9, 10, 71, - 7, 147, 151, 75, 147, 143, 78, 79, 80, 145, - 82, 71, 84, 25, 86, 27, 28, 89, 144, 143, - 144, 93, 94, 95, 12, 65, 98, 99, 148, 124, - 102, 71, 144, 105, 106, 75, 148, 134, 78, 79, - 80, 113, 82, 31, 84, 143, 86, 8, 9, 89, - 134, 13, 143, 93, 94, 95, 122, 117, 98, 99, - 7, 143, 102, 144, 13, 105, 106, 66, 67, 66, - 67, 143, 144, 113, 13, 31, 26, 65, 91, 92, - 100, 101, 26, 71, 125, 126, 26, 75, 143, 144, - 78, 79, 80, 26, 82, 26, 84, 26, 86, 12, - 26, 89, 26, 143, 144, 93, 94, 95, 26, 65, - 98, 99, 143, 144, 102, 71, 31, 105, 106, 75, - 143, 144, 78, 79, 80, 113, 82, 49, 84, 61, - 86, 12, 62, 89, 61, 71, 61, 93, 94, 95, - 61, 61, 98, 99, 61, 68, 102, 88, 76, 105, - 106, 88, 65, 88, 73, 143, 144, 113, 71, 71, - 71, 71, 75, 71, 71, 78, 79, 80, 71, 82, - 71, 84, 71, 86, 12, 71, 89, 71, 71, 71, - 93, 94, 95, 71, 65, 98, 99, 143, 144, 102, - 71, 147, 105, 106, 75, 71, 73, 78, 79, 80, - 113, 82, 73, 84, 73, 86, 12, 73, 89, 73, - 80, 76, 93, 94, 95, 76, 88, 98, 99, 103, - 88, 102, 96, 90, 105, 106, 104, 65, 90, 120, - 143, 144, 113, 71, 117, 117, 96, 75, 123, 134, - 78, 79, 80, 122, 82, 120, 84, 137, 86, 122, - 137, 89, 141, 150, -1, 93, 94, 95, 121, 65, - 98, 99, 143, 144, 102, 71, 122, 105, 106, 75, - 122, 124, 78, 79, 80, 113, 82, 123, 84, 123, - 86, -1, 137, 89, 141, 143, 137, 93, 94, 95, - 137, 141, 98, 99, 137, 137, 102, 137, 143, 105, - 106, 142, 65, -1, 143, 143, 144, 113, 71, 143, - 143, 143, 75, 143, 143, 78, 79, 80, 143, 82, - 143, 84, 143, 86, 143, 143, 89, 143, 143, 143, - 93, 94, 95, 143, 65, 98, 99, 143, 144, 102, - 71, 143, 105, 106, 75, 143, 143, 78, 79, 80, - 113, 82, 143, 84, 143, 86, 143, 143, 89, 42, - 43, 143, 93, 94, 95, 143, 145, 98, 99, 144, - 144, 102, 144, 144, 105, 106, 144, 144, 61, 144, - 143, 144, 113, 144, 147, 144, 69, 70, 144, 144, - 73, 145, 145, 145, 77, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 145, 145, 96, - 97, 145, 143, 144, 146, 96, 103, 145, 145, 145, - 107, 108, 145, 145, 145, 145, 107, 108, 146, 116, - 117, 118, 119, 51, 52, 116, 117, 118, 119, 146, - 146, 146, 125, 146, 127, 128, 129, 130, 131, 132, - 133, 138, 146, 146, 146, 146, 139, 140, 145, 96, - 97, 146, 146, 146, 145, 148, 103, 146, 146, 146, - 107, 108, 8, 9, 10, 146, 96, 97, 146, 116, - 117, 118, 119, 103, 146, 146, 149, 107, 108, 25, - 147, 27, 28, 29, 147, 147, 116, 117, 118, 119, - 147, 138, 147, 147, 122, 147, 147, 147, 145, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 138, 96, - 147, 147, 147, 96, 106, 107, 108, 109, 110, 111, - 107, 108, 147, 147, 107, 108, 96, 147, 147, 116, - 117, 118, 119, 116, 117, 118, 119, 107, 108, 147, - 147, 147, 147, 96, -1, -1, 116, 117, 118, 119, - 150, 150, 150, 150, 107, 108, 96, 150, 145, 150, - 96, 150, 145, 116, 117, 118, 119, 107, 108, 150, - 150, 107, 108, 96, 150, 145, 116, 117, 118, 119, - 116, 117, 118, 119, 107, 108, 71, 150, 73, 150, - 83, 150, 145, 116, 117, 118, 119, 85, -1, -1, - -1, -1, -1, 96, -1, 145, -1, -1, 96, 145, - -1, -1, -1, -1, 107, 108, -1, -1, -1, 107, - 108, 106, 145, 116, 117, 118, 119, 96, 116, 117, - 118, 119, -1, -1, -1, -1, -1, -1, 107, 108, - -1, -1, -1, -1, -1, -1, -1, 116, 117, 118, - 119, -1, -1, 138, -1, -1, 141, -1, -1, -1, - -1, 146, -1, 148 + 45, 46, 47, 97, 49, 31, 7, 65, 7, 103, + 8, 9, 10, 71, 7, 71, 31, 75, 112, 61, + 78, 79, 80, 71, 82, 7, 84, 25, 86, 27, + 28, 89, 8, 9, 10, 93, 94, 95, 143, 65, + 98, 99, 122, 7, 102, 71, 76, 105, 106, 75, + 8, 145, 78, 79, 80, 113, 82, 13, 84, 97, + 86, 117, 144, 89, 144, 103, 61, 93, 94, 95, + 12, 147, 98, 99, 112, 71, 102, 73, 74, 105, + 106, 42, 43, 44, 142, 143, 144, 113, 144, 31, + 96, 97, 61, 97, 26, 73, 144, 103, 61, 103, + 13, 107, 108, 145, 134, 13, 12, 145, 112, 124, + 116, 117, 118, 119, 13, 147, 142, 143, 144, 73, + 73, 147, 71, 65, 71, 31, 76, 42, 43, 71, + 76, 141, 138, 75, 144, 26, 78, 79, 80, 145, + 82, 145, 84, 123, 86, 76, 61, 89, 147, 144, + 143, 93, 94, 95, 69, 70, 98, 99, 73, 65, + 102, 143, 77, 105, 106, 71, 26, 147, 117, 75, + 148, 113, 78, 79, 80, 144, 82, 12, 84, 143, + 86, 144, 13, 89, 134, 8, 9, 93, 94, 95, + 26, 26, 98, 99, 148, 148, 102, 144, 13, 105, + 106, 143, 144, 134, 26, 151, 26, 113, 26, 12, + 125, 143, 127, 128, 129, 130, 131, 132, 133, 66, + 67, 66, 67, 31, 139, 140, 91, 92, 31, 26, + 65, 146, 26, 148, 100, 101, 71, 143, 144, 26, + 75, 125, 126, 78, 79, 80, 62, 82, 49, 84, + 61, 86, 12, 80, 89, 143, 144, 61, 93, 94, + 95, 61, 65, 98, 99, 143, 144, 102, 71, 61, + 105, 106, 75, 143, 144, 78, 79, 80, 113, 82, + 61, 84, 61, 86, 12, 68, 89, 71, 73, 71, + 93, 94, 95, 71, 71, 98, 99, 71, 71, 102, + 71, 71, 105, 106, 71, 65, 71, 71, 143, 144, + 113, 71, 72, 71, 71, 75, 71, 71, 78, 79, + 80, 73, 82, 73, 84, 73, 86, 12, 73, 89, + 73, 90, 76, 93, 94, 95, 76, 65, 98, 99, + 143, 144, 102, 71, 76, 105, 106, 75, 90, 88, + 78, 79, 80, 113, 82, 88, 84, 88, 86, 12, + 96, 89, 88, 88, 117, 93, 94, 95, 103, 96, + 98, 99, 121, 120, 102, 104, 117, 105, 106, 141, + 65, 137, 120, 143, 144, 113, 71, 124, 122, 150, + 75, 137, 122, 78, 79, 80, 147, 82, 122, 84, + 122, 86, 12, 123, 89, 123, 123, -1, 93, 94, + 95, 134, 65, 98, 99, 143, 144, 102, 71, -1, + 105, 106, 75, 137, 137, 78, 79, 80, 113, 82, + 137, 84, 137, 86, 137, 137, 89, 141, 144, 147, + 93, 94, 95, 141, 143, 98, 99, 142, 144, 102, + 143, 143, 105, 106, 143, 65, 143, 143, 143, 144, + 113, 71, 143, 143, 143, 75, 143, 143, 78, 79, + 80, 143, 82, 143, 84, 143, 86, 143, 143, 89, + 143, 143, 143, 93, 94, 95, 143, 65, 98, 99, + 143, 144, 102, 71, 143, 105, 106, 75, 143, 143, + 78, 79, 80, 113, 82, 143, 84, 143, 86, 143, + 145, 89, 144, 144, 144, 93, 94, 95, 144, 144, + 98, 99, 144, 144, 102, 144, 144, 105, 106, 145, + 65, 145, 145, 143, 144, 113, 71, 145, 145, 145, + 75, 145, 145, 78, 79, 80, 145, 82, 145, 84, + 145, 86, 145, 145, 89, 8, 9, 10, 93, 94, + 95, 146, 146, 98, 99, 143, 144, 102, 147, 147, + 105, 106, 25, 146, 27, 28, 29, 30, 113, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 96, 97, 146, 146, 146, 146, 146, 103, 146, + 146, 146, 107, 108, 146, 146, 146, 146, 143, 144, + 146, 116, 117, 118, 119, 146, 146, 51, 52, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 146, 149, + 96, 147, 147, 138, 96, 147, 147, 147, 147, 147, + 145, 107, 108, 147, 147, 107, 108, 96, 147, 147, + 116, 117, 118, 119, 116, 117, 118, 119, 107, 108, + 147, 147, 147, 147, 96, 147, 147, 116, 117, 118, + 119, 150, 150, 150, 150, 107, 108, 150, 96, 145, + 150, 150, 96, 145, 116, 117, 118, 119, 122, 107, + 108, 150, 150, 107, 108, 96, 145, -1, 116, 117, + 118, 119, 116, 117, 118, 119, 107, 108, 150, 150, + 81, 150, 96, 145, 150, 116, 117, 118, 119, -1, + -1, -1, -1, 107, 108, 96, -1, 145, -1, 83, + -1, 145, 116, 117, 118, 119, 107, 108, 71, -1, + 73, -1, 96, -1, 145, 116, 117, 118, 119, 85, + -1, -1, -1, 107, 108, -1, -1, 87, -1, -1, + 96, 145, 116, 117, 118, 119, 96, -1, -1, -1, + -1, 107, 108, 106, -1, -1, -1, 107, 108, 96, + 116, 117, 118, 119, -1, -1, 116, 117, 118, 119, + 107, 108, 106, 107, 108, 109, 110, 111, -1, 116, + 117, 118, 119, -1, -1, 138, -1, -1, 141, 8, + 9, 10, -1, 146, -1, 148, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, + 29 ); protected static $yybase = array( - 0, 683, 633, 700, 794, 639, 115, -1, 842, 807, - 743, 790, 777, 837, 760, 747, 861, 861, 861, 861, - 861, 402, 389, 370, 396, 370, 394, -2, -2, -2, - 364, 196, 196, 557, 196, 248, 439, 407, 482, 108, - 280, 164, 332, 514, 514, 514, 514, 589, 589, 514, - 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, - 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, - 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, - 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, - 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, - 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, - 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, - 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, - 514, 514, 48, 522, 435, 474, 487, 486, 488, 490, - 711, 379, 663, 600, 598, 391, 586, 583, 582, 568, - 567, 599, 566, 423, 541, 125, 125, 125, 125, 125, - 125, 125, 125, 125, 125, 135, 359, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 80, 80, 56, 637, 637, 637, 637, 637, - 637, 637, 637, 637, 637, 637, 308, 784, 190, 8, - -3, -3, -3, -3, 702, 793, 793, 793, 793, 152, - 81, 184, 225, 225, 467, 467, 390, 564, 845, 845, - 845, 845, 845, 845, 845, 845, 845, 845, 456, 412, - 261, 261, 602, 602, -105, -105, -105, -105, 279, 236, - 223, 171, 31, -37, 392, 239, 239, 239, 459, 425, - 455, 194, -34, -34, -34, 145, 145, 145, 145, 170, - 545, 145, 145, 145, 124, -26, -26, 167, 208, 453, - 597, 458, 594, 265, 469, 60, 431, 431, 200, 446, - 321, 323, 300, 430, -12, 200, 48, 260, 297, 84, - 506, 384, 533, 182, 229, 238, 254, 289, 144, 136, - 107, 725, 723, 65, 79, 441, 78, 43, 144, 177, - 542, 94, 174, 529, 222, 405, 652, 432, 659, 413, - 426, 432, 449, 405, 643, 643, 643, 643, 405, 426, - 659, 659, 405, 390, 659, 63, 405, 429, 426, 445, - 643, 481, 538, 432, 454, 457, 659, 659, 659, 413, - 405, 643, 436, 479, 72, 659, 643, 436, 405, 449, - 19, 387, 399, 649, 642, 635, 428, 546, 438, 437, - 627, 626, 588, 419, 421, 628, 658, 463, 491, 424, - 381, 403, 393, 388, 473, 395, 464, 446, 470, 398, - 447, 433, 447, 771, 480, 478, 468, 450, 495, 371, - 463, 383, 138, 548, 463, 673, 693, 657, 417, 615, - 678, 447, 769, 475, 117, 217, 614, 452, 408, 447, - 613, 447, 549, 447, 668, 444, 593, 463, 398, 398, - 398, 667, 767, 754, 750, 749, 741, 739, 737, 400, - 733, 497, 680, 92, 636, 430, 477, 409, 499, 1, - 732, 447, 447, 552, 545, 447, 501, 462, 706, 502, - 676, 476, 731, 425, 679, 447, 460, 730, 1, 376, - 397, 722, 504, 553, 641, 555, 443, 724, 629, 559, - 259, 592, 380, 505, 705, 695, 710, 510, 358, 565, - 427, 451, 401, 617, 518, 675, 448, 465, 442, 385, - 561, 410, 694, 523, 531, 534, 0, 0, 0, 0, + 0, 665, 164, 2, 769, 704, 799, 840, 834, 786, + 708, 756, 752, 816, 738, 721, 853, 853, 853, 853, + 853, 383, 350, 279, 376, 279, 373, -2, -2, -2, + 144, 112, 264, 264, 592, 264, 442, 517, 560, 410, + 335, 228, 367, 485, 485, 485, 485, 635, 635, 485, + 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, + 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, + 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, + 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, + 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, + 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, + 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, + 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, + 485, 485, 485, 238, 509, 450, 452, 483, 481, 484, + 489, 684, 431, 419, 578, 575, 352, 564, 563, 562, + 557, 556, 577, 554, 409, 535, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 212, 347, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 107, 107, 56, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 172, 971, + 717, 8, -3, -3, -3, -3, 736, 753, 753, 753, + 753, 132, 76, 166, 155, 155, 433, 433, 354, 551, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 427, 396, 209, 209, 586, 586, -105, -105, -105, -105, + 286, 239, 220, 224, 114, -57, 426, 223, 223, 223, + 438, 447, 430, 122, -34, -34, -34, -52, -52, -52, + -52, 160, 464, -52, -52, -52, 201, -29, -29, 174, + -74, 411, 573, 428, 571, 282, 457, 90, 408, 408, + 217, 434, 323, 325, 304, 414, 88, 217, 238, 221, + 300, 175, 505, 386, 526, 177, 188, 206, -14, 292, + 207, 216, 171, 689, 686, 1, 128, 436, 94, 140, + 207, 190, 536, 65, 138, 521, -48, 362, 639, 415, + 652, 397, 406, 415, 420, 362, 631, 631, 631, 631, + 362, 406, 652, 652, 362, 354, 652, 38, 362, 423, + 406, 432, 631, 478, 534, 415, 425, 421, 652, 652, + 652, 397, 362, 631, 435, 475, 72, 652, 631, 435, + 362, 420, 34, 348, 378, 634, 630, 625, 413, 474, + 429, 417, 621, 620, 585, 400, 403, 623, 640, 466, + 490, 405, 355, 391, 366, 359, 463, 370, 446, 434, + 472, 369, 440, 424, 440, 734, 468, 467, 448, 343, + 491, 339, 466, 437, 214, 538, 466, 654, 662, 650, + 399, 618, 659, 440, 731, 477, 83, 257, 617, 445, + 388, 440, 597, 440, 539, 440, 591, 416, 567, 466, + 369, 369, 369, 462, 729, 728, 712, 711, 701, 700, + 697, 389, 694, 493, 661, 78, 628, 414, 465, 392, + 494, 36, 693, 440, 440, 540, 464, 440, 498, 471, + 672, 500, 658, 453, 692, 447, 660, 440, 443, 691, + 36, 310, 387, 685, 502, 544, 629, 545, 418, 688, + 624, 548, 262, 566, 334, 504, 671, 667, 683, 507, + 271, 552, 412, 422, 385, 619, 508, 655, 444, 456, + 441, 439, 549, 393, 666, 513, 525, 532, 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, -2, -2, -2, -2, -2, -2, + 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - 0, 0, 0, -2, -2, -2, -2, -2, -2, -2, + -2, -2, 0, 0, 0, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, @@ -632,122 +634,123 @@ class Parser -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - -2, -2, -2, -2, -2, 125, 125, 125, 125, 125, + -2, -2, -2, -2, -2, -2, -2, -2, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, - 125, 125, 125, 125, 125, 125, 125, 125, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, - 125, 125, 125, 125, 125, 125, 125, 125, 845, 845, - 845, 845, 845, 845, 845, 845, 845, 845, 845, 125, - 125, 125, 125, 125, 125, 125, 125, 0, -34, -34, - -34, -34, 738, 738, 738, 845, 845, 845, 845, 845, - 845, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 738, 738, -34, -34, 845, 845, 145, 145, 145, - 145, 145, -26, -26, -26, 136, 145, -26, -50, -50, - -50, -26, -26, -26, 136, 0, 0, 0, 0, 0, - 0, 0, 426, -50, 0, 0, 0, 659, 0, 0, - 0, -50, 307, 307, 307, 307, 1, 144, 0, 426, - 426, 0, 454, 0, 0, 0, 659, 0, 0, 0, - 0, 0, 0, 117, 615, 313, 0, 0, 0, 0, - 0, 0, 0, 0, 373, 373, 0, 0, 400, 0, - 0, 0, 0, 313, 0, 0, 1 + 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 125, 125, 125, 125, 125, 125, 125, + 125, 0, -34, -34, -34, -34, 856, 856, 856, 837, + 837, 837, 837, 837, 837, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 856, 856, -34, -34, 837, + 837, -52, -52, -52, -52, -52, -29, -29, -29, 216, + -52, -29, 192, 192, 192, -29, -29, -29, 216, 0, + 0, 0, 0, 0, 0, 0, 406, 192, 0, 0, + 0, 652, 0, 0, 0, 192, 305, 305, 305, 305, + 36, 207, 0, 406, 406, 0, 425, 0, 0, 0, + 652, 0, 0, 0, 0, 0, 0, 83, 618, 95, + 0, 0, 0, 0, 0, 0, 0, 0, 169, 169, + 0, 0, 389, 0, 0, 0, 0, 95, 0, 0, + 36 ); protected static $yydefault = array( 3,32767,32767, 1,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767, 109, 101, 115, 100, 111,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767, 380, 380,32767, 337,32767,32767,32767,32767,32767, - 32767,32767,32767, 182, 182, 182,32767,32767,32767, 369, - 369, 369, 369, 369, 369, 369, 369, 369, 369,32767, - 32767,32767,32767,32767, 260,32767,32767,32767,32767,32767, + 32767,32767, 381, 381,32767, 338,32767,32767,32767,32767, + 32767,32767,32767, 183, 183, 183,32767,32767,32767, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370,32767, + 32767,32767,32767,32767, 261,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, 265, 385,32767,32767,32767,32767, + 32767,32767,32767,32767,32767, 266, 386,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767, 241, 242, 244, 245, 181, - 370, 134, 266, 384, 180, 208, 210, 259, 209, 186, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 185, 238, 237, 206, 334, 334, 337,32767,32767, - 32767,32767,32767,32767,32767,32767, 207, 211, 213, 212, - 228, 229, 226, 227, 184, 230, 231, 232, 233, 166, - 166, 166,32767,32767, 379, 379,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767, 167,32767, - 220, 221, 295, 295, 125, 125, 125, 125, 125,32767, - 32767,32767,32767,32767, 303,32767,32767,32767,32767,32767, - 305,32767, 215, 216, 214,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 342, 304,32767,32767,32767,32767, - 32767,32767,32767,32767, 355, 291,32767,32767,32767, 284, - 112, 114, 62, 321,32767,32767,32767,32767,32767, 360, - 32767,32767,32767,32767,32767,32767, 392,32767, 355,32767, - 32767,32767,32767,32767,32767, 236,32767,32767, 359, 353, - 32767,32767,32767,32767,32767, 66, 300,32767, 306,32767, - 32767,32767,32767, 66,32767,32767,32767,32767, 66,32767, - 358, 357, 66,32767, 285, 336, 66, 79,32767, 77, - 32767, 98, 98,32767,32767, 81, 332, 348,32767,32767, - 66,32767, 273, 68, 336,32767,32767, 273, 66,32767, - 32767, 4, 310,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767, 286,32767,32767, - 32767, 256, 257, 344,32767, 345,32767, 284,32767, 224, - 203,32767, 205,32767,32767, 289, 292,32767,32767,32767, - 6, 18, 143,32767, 287,32767, 189,32767,32767,32767, - 32767, 387,32767,32767, 183,32767,32767, 20,32767, 139, - 32767, 64,32767, 377,32767,32767, 353, 288, 217, 218, - 219,32767,32767,32767,32767,32767,32767,32767,32767, 354, - 32767,32767,32767, 119,32767, 321,32767,32767,32767, 80, - 32767, 187, 135,32767,32767, 386,32767,32767,32767,32767, - 32767, 341,32767,32767,32767, 65,32767,32767, 82,32767, - 32767, 353,32767,32767,32767,32767,32767,32767,32767,32767, - 178,32767,32767,32767,32767,32767, 353,32767, 123,32767, - 32767,32767,32767,32767,32767,32767, 4,32767, 160,32767, - 32767,32767,32767,32767,32767,32767, 26, 26, 3, 26, - 106, 26, 146, 3, 98, 98, 59, 146, 26, 146, - 26, 26, 26, 26, 26, 26, 26, 153, 26, 26, - 26, 26, 26 + 32767,32767,32767,32767,32767,32767, 242, 243, 245, 246, + 182, 371, 134, 267, 385, 181, 136, 209, 211, 260, + 210, 187, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 186, 239, 238, 207, 335, 335, 338, + 32767,32767,32767,32767,32767,32767,32767,32767, 208, 212, + 214, 213, 229, 230, 227, 228, 185, 231, 232, 233, + 234, 167, 167, 167,32767,32767, 380, 380,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 168,32767, 221, 222, 296, 296, 125, 125, 125, 125, + 125,32767,32767,32767,32767,32767, 304,32767,32767,32767, + 32767,32767, 306,32767, 216, 217, 215,32767,32767,32767, + 32767,32767,32767,32767,32767,32767, 343, 305,32767,32767, + 32767,32767,32767,32767,32767,32767, 356, 292,32767,32767, + 32767, 285, 112, 114, 62, 322,32767,32767,32767,32767, + 32767, 361,32767,32767,32767,32767,32767,32767, 393,32767, + 356,32767,32767,32767,32767,32767,32767, 237,32767,32767, + 360, 354,32767,32767,32767,32767,32767, 66, 301,32767, + 307,32767,32767,32767,32767, 66,32767,32767,32767,32767, + 66,32767, 359, 358, 66,32767, 286, 337, 66, 79, + 32767, 77,32767, 98, 98,32767,32767, 81, 333, 349, + 32767,32767, 66,32767, 274, 68, 337,32767,32767, 274, + 66,32767,32767, 4, 311,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767, 287, + 32767,32767,32767, 257, 258, 345,32767, 346,32767, 285, + 32767, 225, 204,32767, 206,32767,32767, 290, 293,32767, + 32767,32767, 6, 18, 144,32767, 288,32767, 190,32767, + 32767,32767,32767, 388,32767,32767, 184,32767,32767, 20, + 32767, 140,32767, 64,32767, 378,32767,32767, 354, 289, + 218, 219, 220,32767,32767,32767,32767,32767,32767,32767, + 32767, 355,32767,32767,32767, 119,32767, 322,32767,32767, + 32767, 80,32767, 188, 135,32767,32767, 387,32767,32767, + 32767,32767,32767, 342,32767,32767,32767, 65,32767,32767, + 82,32767,32767, 354,32767,32767,32767,32767,32767,32767, + 32767,32767, 179,32767,32767,32767,32767,32767, 354,32767, + 123,32767,32767,32767,32767,32767,32767,32767, 4,32767, + 161,32767,32767,32767,32767,32767,32767,32767, 26, 26, + 3, 26, 106, 26, 147, 3, 98, 98, 59, 147, + 26, 147, 26, 26, 26, 26, 26, 26, 26, 154, + 26, 26, 26, 26, 26 ); protected static $yygoto = array( - 161, 135, 135, 140, 135, 161, 136, 137, 138, 143, - 145, 169, 163, 159, 159, 159, 159, 140, 140, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 155, - 156, 157, 158, 167, 134, 755, 756, 389, 758, 779, - 780, 781, 782, 783, 784, 785, 787, 723, 139, 141, - 142, 144, 165, 166, 168, 184, 196, 197, 198, 199, - 200, 201, 202, 203, 205, 206, 207, 208, 230, 231, - 252, 253, 254, 428, 429, 430, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 146, 147, - 148, 162, 149, 164, 150, 182, 151, 152, 153, 183, - 154, 132, 445, 445, 445, 445, 445, 445, 445, 445, - 445, 445, 445, 309, 486, 423, 423, 451, 419, 421, - 421, 390, 392, 411, 426, 452, 455, 465, 471, 334, - 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, - 334, 334, 334, 334, 334, 651, 651, 911, 911, 818, - 818, 659, 659, 659, 659, 659, 210, 406, 211, 585, - 497, 446, 446, 446, 446, 446, 446, 446, 446, 446, - 446, 446, 616, 616, 616, 616, 270, 424, 611, 617, - 492, 391, 391, 391, 391, 391, 391, 391, 391, 391, - 391, 391, 391, 391, 391, 391, 391, 541, 541, 541, - 250, 394, 394, 5, 241, 16, 883, 6, 395, 395, - 540, 540, 540, 915, 7, 666, 17, 18, 8, 19, - 9, 10, 11, 290, 20, 12, 13, 14, 15, 477, - 637, 622, 620, 618, 620, 510, 397, 646, 641, 855, - 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, - 432, 433, 434, 435, 436, 437, 438, 440, 467, 835, - 840, 542, 542, 542, 460, 464, 502, 776, 26, 21, - 284, 297, 814, 815, 557, 677, 626, 857, 858, 873, - 712, 657, 871, 441, 400, 485, 921, 921, 812, 882, - 812, 890, 890, 1, 29, 924, 921, 813, 2, 482, - 908, 400, 400, 302, 906, 906, 906, 431, 767, 291, - 405, 924, 924, 409, 298, 298, 298, 420, 655, 889, - 468, 273, 313, 669, 405, 405, 721, 457, 484, 298, - 549, 353, 417, 702, 314, 891, 891, 308, 520, 490, - 396, 396, 830, 829, 856, 400, 809, 310, 271, 272, - 555, 625, 674, 868, 404, 489, 710, 0, 0, 0, - 0, 0, 0, 427, 0, 0, 0, 0, 0, 0, + 162, 162, 136, 136, 141, 136, 137, 138, 139, 144, + 146, 171, 164, 160, 160, 160, 160, 141, 141, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 156, + 157, 158, 159, 169, 135, 758, 759, 391, 761, 782, + 783, 784, 785, 786, 787, 788, 790, 726, 140, 142, + 143, 145, 167, 168, 170, 186, 198, 199, 200, 201, + 202, 203, 204, 205, 207, 208, 209, 210, 232, 233, + 254, 255, 256, 430, 431, 432, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 147, 148, + 149, 163, 150, 165, 151, 184, 166, 152, 153, 154, + 185, 155, 133, 447, 447, 447, 447, 447, 447, 447, + 447, 447, 447, 447, 311, 488, 425, 425, 453, 421, + 423, 423, 392, 394, 413, 428, 454, 457, 467, 473, + 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 336, 336, 336, 336, 336, 336, 653, 653, 914, 914, + 821, 821, 661, 661, 661, 661, 661, 408, 544, 544, + 544, 499, 448, 448, 448, 448, 448, 448, 448, 448, + 448, 448, 448, 618, 618, 618, 618, 272, 587, 613, + 619, 494, 393, 393, 393, 393, 393, 393, 393, 393, + 393, 393, 393, 393, 393, 393, 393, 393, 543, 543, + 543, 252, 396, 396, 5, 243, 16, 886, 6, 397, + 397, 542, 542, 542, 668, 7, 918, 17, 18, 8, + 19, 9, 10, 11, 426, 20, 12, 13, 14, 15, + 292, 639, 624, 622, 620, 622, 512, 399, 648, 643, + 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, + 858, 434, 435, 436, 437, 438, 439, 440, 442, 469, + 838, 843, 462, 466, 504, 470, 275, 315, 779, 26, + 21, 286, 299, 817, 818, 559, 680, 628, 860, 861, + 876, 715, 659, 874, 443, 402, 479, 924, 924, 815, + 885, 815, 893, 893, 1, 29, 927, 924, 816, 2, + 484, 487, 402, 402, 433, 909, 909, 909, 407, 212, + 293, 213, 927, 927, 411, 300, 300, 300, 422, 770, + 892, 407, 407, 459, 486, 705, 316, 304, 724, 911, + 300, 657, 355, 419, 398, 398, 894, 894, 310, 551, + 492, 833, 832, 672, 859, 522, 402, 812, 557, 273, + 274, 312, 677, 627, 871, 406, 491, 713, 0, 0, + 0, 0, 0, 0, 429, 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, @@ -755,7 +758,7 @@ class Parser 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, 410 + 0, 0, 0, 0, 0, 412 ); protected static $yygcheck = array( @@ -769,33 +772,33 @@ class Parser 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 39, + 25, 25, 25, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 55, 55, 55, 55, 39, - 39, 39, 39, 39, 39, 39, 46, 77, 46, 32, - 39, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 39, 39, 39, 39, 50, 85, 39, 39, - 39, 91, 91, 91, 91, 91, 91, 91, 91, 91, - 91, 91, 91, 91, 91, 91, 91, 7, 7, 7, - 100, 91, 91, 14, 100, 14, 59, 14, 94, 94, - 6, 6, 6, 114, 14, 61, 14, 14, 14, 14, - 14, 14, 14, 29, 14, 14, 14, 14, 14, 103, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 101, + 39, 39, 39, 39, 39, 39, 55, 55, 55, 55, + 39, 39, 39, 39, 39, 39, 39, 77, 8, 8, + 8, 39, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 39, 39, 39, 39, 50, 32, 39, + 39, 39, 91, 91, 91, 91, 91, 91, 91, 91, + 91, 91, 91, 91, 91, 91, 91, 91, 7, 7, + 7, 100, 91, 91, 14, 100, 14, 59, 14, 94, + 94, 6, 6, 6, 61, 14, 114, 14, 14, 14, + 14, 14, 14, 14, 85, 14, 14, 14, 14, 14, + 29, 6, 6, 6, 6, 6, 6, 6, 6, 6, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 16, - 59, 8, 8, 8, 42, 42, 42, 16, 16, 16, - 16, 5, 59, 59, 13, 13, 13, 13, 13, 13, - 13, 13, 106, 16, 4, 31, 115, 115, 59, 59, - 59, 93, 93, 2, 16, 115, 115, 59, 2, 16, - 112, 4, 4, 30, 93, 93, 93, 26, 78, 40, - 26, 115, 115, 40, 98, 98, 98, 40, 57, 93, - 48, 48, 48, 62, 26, 26, 77, 22, 22, 98, - 11, 40, 5, 74, 74, 92, 92, 98, 52, 40, - 97, 97, 99, 99, 102, 4, 89, 10, 50, 50, - 12, 49, 63, 105, 4, 84, 76, -1, -1, -1, - -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, + 101, 86, 86, 86, 86, 86, 86, 86, 86, 86, + 16, 59, 42, 42, 42, 48, 48, 48, 16, 16, + 16, 16, 5, 59, 59, 13, 13, 13, 13, 13, + 13, 13, 13, 106, 16, 4, 103, 115, 115, 59, + 59, 59, 93, 93, 2, 16, 115, 115, 59, 2, + 16, 31, 4, 4, 26, 93, 93, 93, 26, 46, + 40, 46, 115, 115, 40, 98, 98, 98, 40, 78, + 93, 26, 26, 22, 22, 74, 74, 30, 77, 112, + 98, 57, 40, 5, 97, 97, 92, 92, 98, 11, + 40, 99, 99, 62, 102, 52, 4, 89, 12, 50, + 50, 10, 63, 49, 105, 4, 84, 76, -1, -1, + -1, -1, -1, -1, 4, -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, @@ -803,37 +806,37 @@ class Parser -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, 77 + -1, -1, -1, -1, -1, 77 ); protected static $yygbase = array( - 0, 0, -215, 0, 25, 12, 209, 196, 260, 0, - 26, 53, 7, 86, -304, 0, -57, 0, 0, 0, - 0, 0, 283, 0, 0, -30, 277, 0, 0, 177, - 84, 72, 134, -99, 0, 0, 0, 0, 0, -83, - -19, 0, 29, 0, 0, 0, -361, 0, 64, 2, - -166, 0, 52, 0, 0, -67, 0, 80, 0, -58, - 0, 180, 38, 8, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 105, 0, -3, 110, 75, 0, - 0, 0, 0, 0, -2, 145, 200, 0, 0, 23, - 0, -31, 103, 59, -24, 0, 0, 108, 69, 96, - -44, 54, 57, 43, 0, -1, 95, 0, 0, 0, - 0, 0, 85, 0, 179, 46, 0 + 0, 0, -216, 0, 24, 11, 210, 197, 157, 0, + 28, 60, 3, 85, -305, 0, -58, 0, 0, 0, + 0, 0, 279, 0, 0, -30, 274, 0, 0, 184, + 106, 86, 153, -100, 0, 0, 0, 0, 0, -84, + -20, 0, 25, 0, 0, 0, -210, 0, 7, 2, + -167, 0, 57, 0, 0, -68, 0, 91, 0, -59, + 0, 183, 56, 6, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 95, 0, -4, 110, 84, 0, + 0, 0, 0, 0, -3, 191, 201, 0, 0, 22, + 0, -32, 102, 58, -25, 0, 0, 100, 68, 93, + -45, 53, 55, 98, 0, -2, 94, 0, 0, 0, + 0, 0, 112, 0, 181, 45, 0 ); protected static $yygdefault = array( - -32768, 360, 3, 535, 377, 401, 560, 561, 562, 293, - 292, 550, 556, 461, 4, 558, 768, 280, 565, 281, - 470, 567, 413, 569, 570, 133, 378, 294, 295, 414, - 301, 458, 584, 204, 300, 586, 282, 588, 593, 283, - 491, 476, 442, 379, 345, 453, 209, 422, 449, 624, - 269, 632, 523, 640, 643, 380, 443, 654, 350, 811, - 306, 665, 670, 675, 678, 322, 311, 466, 682, 683, - 243, 687, 498, 499, 701, 228, 709, 722, 318, 786, - 788, 381, 382, 407, 475, 393, 412, 805, 312, 808, - 383, 384, 330, 331, 826, 823, 275, 876, 274, 347, - 240, 861, 862, 462, 354, 914, 872, 264, 385, 386, - 289, 303, 909, 335, 916, 923, 450 + -32768, 362, 3, 537, 379, 403, 562, 563, 564, 295, + 294, 552, 558, 463, 4, 560, 771, 282, 567, 283, + 472, 569, 415, 571, 572, 134, 380, 296, 297, 416, + 303, 460, 586, 206, 302, 588, 284, 590, 595, 285, + 493, 478, 444, 381, 347, 455, 211, 424, 451, 626, + 271, 634, 525, 642, 645, 382, 445, 656, 352, 814, + 308, 667, 673, 678, 681, 324, 313, 468, 685, 686, + 245, 690, 500, 501, 704, 230, 712, 725, 320, 789, + 791, 383, 384, 409, 477, 395, 414, 808, 314, 811, + 385, 386, 332, 333, 829, 826, 277, 879, 276, 349, + 242, 864, 865, 464, 356, 917, 875, 266, 387, 388, + 291, 305, 912, 337, 919, 926, 452 ); protected static $yylhs = array( @@ -850,12 +853,12 @@ class Parser 51, 51, 52, 52, 21, 21, 17, 17, 53, 19, 19, 54, 18, 18, 20, 20, 31, 31, 31, 42, 42, 56, 56, 57, 57, 58, 58, 58, 58, 59, - 59, 59, 60, 60, 61, 61, 27, 27, 62, 62, - 62, 28, 28, 63, 63, 46, 46, 64, 64, 64, - 64, 69, 69, 70, 70, 71, 71, 71, 71, 72, - 73, 73, 68, 68, 65, 65, 67, 67, 75, 75, - 74, 74, 74, 74, 74, 74, 66, 66, 76, 76, - 29, 29, 22, 22, 25, 25, 25, 25, 25, 25, + 59, 59, 60, 60, 61, 61, 61, 27, 27, 62, + 62, 62, 28, 28, 63, 63, 46, 46, 64, 64, + 64, 64, 69, 69, 70, 70, 71, 71, 71, 71, + 72, 73, 73, 68, 68, 65, 65, 67, 67, 75, + 75, 74, 74, 74, 74, 74, 74, 66, 66, 76, + 76, 29, 29, 22, 22, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, @@ -863,21 +866,21 @@ class Parser 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 16, 16, 26, 26, 81, 81, 82, - 82, 82, 77, 84, 84, 88, 88, 89, 90, 90, - 90, 90, 90, 90, 94, 94, 39, 39, 39, 78, - 78, 95, 95, 91, 91, 96, 96, 96, 96, 96, - 79, 79, 79, 83, 83, 83, 87, 87, 101, 101, + 25, 25, 25, 25, 16, 16, 26, 26, 81, 81, + 82, 82, 82, 77, 84, 84, 88, 88, 89, 90, + 90, 90, 90, 90, 90, 94, 94, 39, 39, 39, + 78, 78, 95, 95, 91, 91, 96, 96, 96, 96, + 96, 79, 79, 79, 83, 83, 83, 87, 87, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, - 101, 101, 13, 13, 13, 13, 13, 13, 80, 80, - 80, 80, 102, 102, 103, 103, 105, 105, 104, 104, - 106, 106, 33, 33, 33, 33, 108, 108, 107, 107, - 107, 107, 107, 109, 109, 93, 93, 97, 97, 92, - 92, 110, 110, 110, 110, 98, 98, 98, 98, 86, - 86, 99, 99, 99, 55, 111, 111, 112, 112, 112, - 85, 85, 113, 113, 114, 114, 114, 114, 100, 100, - 100, 100, 115, 115, 115, 115, 115, 115, 115, 116, - 116, 116 + 101, 101, 101, 13, 13, 13, 13, 13, 13, 80, + 80, 80, 80, 102, 102, 103, 103, 105, 105, 104, + 104, 106, 106, 33, 33, 33, 33, 108, 108, 107, + 107, 107, 107, 107, 109, 109, 93, 93, 97, 97, + 92, 92, 110, 110, 110, 110, 98, 98, 98, 98, + 86, 86, 99, 99, 99, 55, 111, 111, 112, 112, + 112, 85, 85, 113, 113, 114, 114, 114, 114, 100, + 100, 100, 100, 115, 115, 115, 115, 115, 115, 115, + 116, 116, 116 ); protected static $yylen = array( @@ -894,34 +897,34 @@ class Parser 4, 3, 1, 1, 1, 4, 0, 2, 3, 0, 2, 4, 0, 2, 0, 3, 1, 2, 1, 1, 0, 1, 3, 4, 6, 0, 1, 1, 1, 2, - 3, 3, 1, 3, 1, 2, 3, 1, 1, 2, - 4, 3, 1, 1, 3, 2, 0, 3, 3, 8, - 3, 1, 3, 0, 2, 4, 5, 4, 4, 3, - 1, 1, 1, 3, 1, 1, 0, 1, 1, 2, - 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, - 3, 1, 0, 1, 1, 3, 3, 4, 4, 1, - 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, + 3, 3, 1, 3, 1, 2, 2, 3, 1, 1, + 2, 4, 3, 1, 1, 3, 2, 0, 3, 3, + 8, 3, 1, 3, 0, 2, 4, 5, 4, 4, + 3, 1, 1, 1, 3, 1, 1, 0, 1, 1, + 2, 1, 1, 1, 1, 1, 1, 1, 3, 1, + 3, 3, 1, 0, 1, 1, 3, 3, 4, 4, + 1, 2, 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, 3, 3, - 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 1, 3, 5, 4, 4, - 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 1, 1, 1, 3, 2, - 1, 9, 10, 3, 3, 2, 4, 4, 3, 4, - 4, 4, 3, 0, 4, 1, 3, 2, 2, 4, - 6, 2, 2, 4, 1, 1, 1, 2, 3, 1, - 1, 1, 1, 1, 1, 0, 3, 3, 4, 4, - 0, 2, 1, 0, 1, 1, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 2, 1, 1, 3, 2, 2, 4, 3, 1, 3, - 3, 3, 1, 1, 0, 2, 0, 1, 3, 1, - 3, 1, 1, 1, 1, 1, 6, 4, 3, 4, - 2, 4, 4, 1, 3, 1, 2, 1, 1, 4, - 1, 3, 6, 4, 4, 4, 4, 1, 4, 0, - 1, 1, 3, 1, 4, 3, 1, 1, 1, 0, - 0, 2, 3, 1, 3, 1, 4, 2, 2, 2, - 1, 2, 1, 4, 3, 3, 3, 6, 3, 1, - 1, 1 + 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 1, 3, 5, 4, + 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 1, 1, 3, + 2, 1, 9, 10, 3, 3, 2, 4, 4, 3, + 4, 4, 4, 3, 0, 4, 1, 3, 2, 2, + 4, 6, 2, 2, 4, 1, 1, 1, 2, 3, + 1, 1, 1, 1, 1, 1, 0, 3, 3, 4, + 4, 0, 2, 1, 0, 1, 1, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 2, 1, 1, 3, 2, 2, 4, 3, 1, + 3, 3, 3, 1, 1, 0, 2, 0, 1, 3, + 1, 3, 1, 1, 1, 1, 1, 6, 4, 3, + 4, 2, 4, 4, 1, 3, 1, 2, 1, 1, + 4, 1, 3, 6, 4, 4, 4, 4, 1, 4, + 0, 1, 1, 3, 1, 4, 3, 1, 1, 1, + 0, 0, 2, 3, 1, 3, 1, 4, 2, 2, + 2, 1, 2, 1, 4, 3, 3, 3, 6, 3, + 1, 1, 1 ); protected $yyval; @@ -1638,7 +1641,7 @@ class Parser } protected function yyn131($attributes) { - $this->yyval = array(new Node\Arg($this->yyastk[$this->stackPos-(3-2)], false, $attributes)); + $this->yyval = array(new Node\Arg($this->yyastk[$this->stackPos-(3-2)], false, false, $attributes)); } protected function yyn132($attributes) { @@ -1650,131 +1653,131 @@ class Parser } protected function yyn134($attributes) { - $this->yyval = new Node\Arg($this->yyastk[$this->stackPos-(1-1)], false, $attributes); + $this->yyval = new Node\Arg($this->yyastk[$this->stackPos-(1-1)], false, false, $attributes); } protected function yyn135($attributes) { - $this->yyval = new Node\Arg($this->yyastk[$this->stackPos-(2-2)], true, $attributes); + $this->yyval = new Node\Arg($this->yyastk[$this->stackPos-(2-2)], true, false, $attributes); } protected function yyn136($attributes) { - $this->yyastk[$this->stackPos-(3-1)][] = $this->yyastk[$this->stackPos-(3-3)]; $this->yyval = $this->yyastk[$this->stackPos-(3-1)]; + $this->yyval = new Node\Arg($this->yyastk[$this->stackPos-(2-2)], false, true, $attributes); } protected function yyn137($attributes) { - $this->yyval = array($this->yyastk[$this->stackPos-(1-1)]); - } - - protected function yyn138($attributes) { - $this->yyval = new Node\Expr\Variable(substr($this->yyastk[$this->stackPos-(1-1)], 1), $attributes); - } - - protected function yyn139($attributes) { - $this->yyval = new Node\Expr\Variable($this->yyastk[$this->stackPos-(2-2)], $attributes); - } - - protected function yyn140($attributes) { - $this->yyval = new Node\Expr\Variable($this->yyastk[$this->stackPos-(4-3)], $attributes); - } - - protected function yyn141($attributes) { $this->yyastk[$this->stackPos-(3-1)][] = $this->yyastk[$this->stackPos-(3-3)]; $this->yyval = $this->yyastk[$this->stackPos-(3-1)]; } - protected function yyn142($attributes) { + protected function yyn138($attributes) { $this->yyval = array($this->yyastk[$this->stackPos-(1-1)]); } + protected function yyn139($attributes) { + $this->yyval = new Node\Expr\Variable(substr($this->yyastk[$this->stackPos-(1-1)], 1), $attributes); + } + + protected function yyn140($attributes) { + $this->yyval = new Node\Expr\Variable($this->yyastk[$this->stackPos-(2-2)], $attributes); + } + + protected function yyn141($attributes) { + $this->yyval = new Node\Expr\Variable($this->yyastk[$this->stackPos-(4-3)], $attributes); + } + + protected function yyn142($attributes) { + $this->yyastk[$this->stackPos-(3-1)][] = $this->yyastk[$this->stackPos-(3-3)]; $this->yyval = $this->yyastk[$this->stackPos-(3-1)]; + } + protected function yyn143($attributes) { - $this->yyval = new Node\Stmt\StaticVar(substr($this->yyastk[$this->stackPos-(1-1)], 1), null, $attributes); + $this->yyval = array($this->yyastk[$this->stackPos-(1-1)]); } protected function yyn144($attributes) { - $this->yyval = new Node\Stmt\StaticVar(substr($this->yyastk[$this->stackPos-(3-1)], 1), $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Stmt\StaticVar(substr($this->yyastk[$this->stackPos-(1-1)], 1), null, $attributes); } protected function yyn145($attributes) { - $this->yyastk[$this->stackPos-(2-1)][] = $this->yyastk[$this->stackPos-(2-2)]; $this->yyval = $this->yyastk[$this->stackPos-(2-1)]; + $this->yyval = new Node\Stmt\StaticVar(substr($this->yyastk[$this->stackPos-(3-1)], 1), $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn146($attributes) { - $this->yyval = array(); - } - - protected function yyn147($attributes) { - $this->yyval = new Node\Stmt\Property($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-2)], $attributes); - } - - protected function yyn148($attributes) { - $this->yyval = new Node\Stmt\ClassConst($this->yyastk[$this->stackPos-(3-2)], $attributes); - } - - protected function yyn149($attributes) { - $this->yyval = new Node\Stmt\ClassMethod($this->yyastk[$this->stackPos-(8-4)], array('type' => $this->yyastk[$this->stackPos-(8-1)], 'byRef' => $this->yyastk[$this->stackPos-(8-3)], 'params' => $this->yyastk[$this->stackPos-(8-6)], 'stmts' => $this->yyastk[$this->stackPos-(8-8)]), $attributes); - } - - protected function yyn150($attributes) { - $this->yyval = new Node\Stmt\TraitUse($this->yyastk[$this->stackPos-(3-2)], $this->yyastk[$this->stackPos-(3-3)], $attributes); - } - - protected function yyn151($attributes) { - $this->yyval = array(); - } - - protected function yyn152($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(3-2)]; - } - - protected function yyn153($attributes) { - $this->yyval = array(); - } - - protected function yyn154($attributes) { $this->yyastk[$this->stackPos-(2-1)][] = $this->yyastk[$this->stackPos-(2-2)]; $this->yyval = $this->yyastk[$this->stackPos-(2-1)]; } - protected function yyn155($attributes) { - $this->yyval = new Node\Stmt\TraitUseAdaptation\Precedence($this->yyastk[$this->stackPos-(4-1)][0], $this->yyastk[$this->stackPos-(4-1)][1], $this->yyastk[$this->stackPos-(4-3)], $attributes); + protected function yyn147($attributes) { + $this->yyval = array(); } - protected function yyn156($attributes) { - $this->yyval = new Node\Stmt\TraitUseAdaptation\Alias($this->yyastk[$this->stackPos-(5-1)][0], $this->yyastk[$this->stackPos-(5-1)][1], $this->yyastk[$this->stackPos-(5-3)], $this->yyastk[$this->stackPos-(5-4)], $attributes); + protected function yyn148($attributes) { + $this->yyval = new Node\Stmt\Property($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-2)], $attributes); } - protected function yyn157($attributes) { - $this->yyval = new Node\Stmt\TraitUseAdaptation\Alias($this->yyastk[$this->stackPos-(4-1)][0], $this->yyastk[$this->stackPos-(4-1)][1], $this->yyastk[$this->stackPos-(4-3)], null, $attributes); + protected function yyn149($attributes) { + $this->yyval = new Node\Stmt\ClassConst($this->yyastk[$this->stackPos-(3-2)], $attributes); } - protected function yyn158($attributes) { - $this->yyval = new Node\Stmt\TraitUseAdaptation\Alias($this->yyastk[$this->stackPos-(4-1)][0], $this->yyastk[$this->stackPos-(4-1)][1], null, $this->yyastk[$this->stackPos-(4-3)], $attributes); + protected function yyn150($attributes) { + $this->yyval = new Node\Stmt\ClassMethod($this->yyastk[$this->stackPos-(8-4)], array('type' => $this->yyastk[$this->stackPos-(8-1)], 'byRef' => $this->yyastk[$this->stackPos-(8-3)], 'params' => $this->yyastk[$this->stackPos-(8-6)], 'stmts' => $this->yyastk[$this->stackPos-(8-8)]), $attributes); } - protected function yyn159($attributes) { - $this->yyval = array($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)]); + protected function yyn151($attributes) { + $this->yyval = new Node\Stmt\TraitUse($this->yyastk[$this->stackPos-(3-2)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } - protected function yyn160($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; + protected function yyn152($attributes) { + $this->yyval = array(); } - protected function yyn161($attributes) { - $this->yyval = array(null, $this->yyastk[$this->stackPos-(1-1)]); - } - - protected function yyn162($attributes) { - $this->yyval = null; - } - - protected function yyn163($attributes) { + protected function yyn153($attributes) { $this->yyval = $this->yyastk[$this->stackPos-(3-2)]; } - protected function yyn164($attributes) { + protected function yyn154($attributes) { + $this->yyval = array(); + } + + protected function yyn155($attributes) { + $this->yyastk[$this->stackPos-(2-1)][] = $this->yyastk[$this->stackPos-(2-2)]; $this->yyval = $this->yyastk[$this->stackPos-(2-1)]; + } + + protected function yyn156($attributes) { + $this->yyval = new Node\Stmt\TraitUseAdaptation\Precedence($this->yyastk[$this->stackPos-(4-1)][0], $this->yyastk[$this->stackPos-(4-1)][1], $this->yyastk[$this->stackPos-(4-3)], $attributes); + } + + protected function yyn157($attributes) { + $this->yyval = new Node\Stmt\TraitUseAdaptation\Alias($this->yyastk[$this->stackPos-(5-1)][0], $this->yyastk[$this->stackPos-(5-1)][1], $this->yyastk[$this->stackPos-(5-3)], $this->yyastk[$this->stackPos-(5-4)], $attributes); + } + + protected function yyn158($attributes) { + $this->yyval = new Node\Stmt\TraitUseAdaptation\Alias($this->yyastk[$this->stackPos-(4-1)][0], $this->yyastk[$this->stackPos-(4-1)][1], $this->yyastk[$this->stackPos-(4-3)], null, $attributes); + } + + protected function yyn159($attributes) { + $this->yyval = new Node\Stmt\TraitUseAdaptation\Alias($this->yyastk[$this->stackPos-(4-1)][0], $this->yyastk[$this->stackPos-(4-1)][1], null, $this->yyastk[$this->stackPos-(4-3)], $attributes); + } + + protected function yyn160($attributes) { + $this->yyval = array($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)]); + } + + protected function yyn161($attributes) { $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; } + protected function yyn162($attributes) { + $this->yyval = array(null, $this->yyastk[$this->stackPos-(1-1)]); + } + + protected function yyn163($attributes) { + $this->yyval = null; + } + + protected function yyn164($attributes) { + $this->yyval = $this->yyastk[$this->stackPos-(3-2)]; + } + protected function yyn165($attributes) { - $this->yyval = Node\Stmt\Class_::MODIFIER_PUBLIC; + $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; } protected function yyn166($attributes) { @@ -1782,7 +1785,7 @@ class Parser } protected function yyn167($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; + $this->yyval = Node\Stmt\Class_::MODIFIER_PUBLIC; } protected function yyn168($attributes) { @@ -1790,63 +1793,63 @@ class Parser } protected function yyn169($attributes) { - Node\Stmt\Class_::verifyModifier($this->yyastk[$this->stackPos-(2-1)], $this->yyastk[$this->stackPos-(2-2)]); $this->yyval = $this->yyastk[$this->stackPos-(2-1)] | $this->yyastk[$this->stackPos-(2-2)]; + $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; } protected function yyn170($attributes) { - $this->yyval = Node\Stmt\Class_::MODIFIER_PUBLIC; + Node\Stmt\Class_::verifyModifier($this->yyastk[$this->stackPos-(2-1)], $this->yyastk[$this->stackPos-(2-2)]); $this->yyval = $this->yyastk[$this->stackPos-(2-1)] | $this->yyastk[$this->stackPos-(2-2)]; } protected function yyn171($attributes) { - $this->yyval = Node\Stmt\Class_::MODIFIER_PROTECTED; + $this->yyval = Node\Stmt\Class_::MODIFIER_PUBLIC; } protected function yyn172($attributes) { - $this->yyval = Node\Stmt\Class_::MODIFIER_PRIVATE; + $this->yyval = Node\Stmt\Class_::MODIFIER_PROTECTED; } protected function yyn173($attributes) { - $this->yyval = Node\Stmt\Class_::MODIFIER_STATIC; + $this->yyval = Node\Stmt\Class_::MODIFIER_PRIVATE; } protected function yyn174($attributes) { - $this->yyval = Node\Stmt\Class_::MODIFIER_ABSTRACT; + $this->yyval = Node\Stmt\Class_::MODIFIER_STATIC; } protected function yyn175($attributes) { - $this->yyval = Node\Stmt\Class_::MODIFIER_FINAL; + $this->yyval = Node\Stmt\Class_::MODIFIER_ABSTRACT; } protected function yyn176($attributes) { - $this->yyval = array($this->yyastk[$this->stackPos-(1-1)]); + $this->yyval = Node\Stmt\Class_::MODIFIER_FINAL; } protected function yyn177($attributes) { - $this->yyastk[$this->stackPos-(3-1)][] = $this->yyastk[$this->stackPos-(3-3)]; $this->yyval = $this->yyastk[$this->stackPos-(3-1)]; - } - - protected function yyn178($attributes) { - $this->yyval = new Node\Stmt\PropertyProperty(substr($this->yyastk[$this->stackPos-(1-1)], 1), null, $attributes); - } - - protected function yyn179($attributes) { - $this->yyval = new Node\Stmt\PropertyProperty(substr($this->yyastk[$this->stackPos-(3-1)], 1), $this->yyastk[$this->stackPos-(3-3)], $attributes); - } - - protected function yyn180($attributes) { - $this->yyastk[$this->stackPos-(3-1)][] = $this->yyastk[$this->stackPos-(3-3)]; $this->yyval = $this->yyastk[$this->stackPos-(3-1)]; - } - - protected function yyn181($attributes) { $this->yyval = array($this->yyastk[$this->stackPos-(1-1)]); } + protected function yyn178($attributes) { + $this->yyastk[$this->stackPos-(3-1)][] = $this->yyastk[$this->stackPos-(3-3)]; $this->yyval = $this->yyastk[$this->stackPos-(3-1)]; + } + + protected function yyn179($attributes) { + $this->yyval = new Node\Stmt\PropertyProperty(substr($this->yyastk[$this->stackPos-(1-1)], 1), null, $attributes); + } + + protected function yyn180($attributes) { + $this->yyval = new Node\Stmt\PropertyProperty(substr($this->yyastk[$this->stackPos-(3-1)], 1), $this->yyastk[$this->stackPos-(3-3)], $attributes); + } + + protected function yyn181($attributes) { + $this->yyastk[$this->stackPos-(3-1)][] = $this->yyastk[$this->stackPos-(3-3)]; $this->yyval = $this->yyastk[$this->stackPos-(3-1)]; + } + protected function yyn182($attributes) { - $this->yyval = array(); + $this->yyval = array($this->yyastk[$this->stackPos-(1-1)]); } protected function yyn183($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; + $this->yyval = array(); } protected function yyn184($attributes) { @@ -1854,7 +1857,7 @@ class Parser } protected function yyn185($attributes) { - $this->yyval = new Node\Expr\Assign($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; } protected function yyn186($attributes) { @@ -1862,7 +1865,7 @@ class Parser } protected function yyn187($attributes) { - $this->yyval = new Node\Expr\AssignRef($this->yyastk[$this->stackPos-(4-1)], $this->yyastk[$this->stackPos-(4-4)], $attributes); + $this->yyval = new Node\Expr\Assign($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn188($attributes) { @@ -1870,271 +1873,271 @@ class Parser } protected function yyn189($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; + $this->yyval = new Node\Expr\AssignRef($this->yyastk[$this->stackPos-(4-1)], $this->yyastk[$this->stackPos-(4-4)], $attributes); } protected function yyn190($attributes) { - $this->yyval = new Node\Expr\Clone_($this->yyastk[$this->stackPos-(2-2)], $attributes); + $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; } protected function yyn191($attributes) { - $this->yyval = new Node\Expr\AssignOp\Plus($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\Clone_($this->yyastk[$this->stackPos-(2-2)], $attributes); } protected function yyn192($attributes) { - $this->yyval = new Node\Expr\AssignOp\Minus($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\AssignOp\Plus($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn193($attributes) { - $this->yyval = new Node\Expr\AssignOp\Mul($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\AssignOp\Minus($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn194($attributes) { - $this->yyval = new Node\Expr\AssignOp\Div($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\AssignOp\Mul($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn195($attributes) { - $this->yyval = new Node\Expr\AssignOp\Concat($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\AssignOp\Div($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn196($attributes) { - $this->yyval = new Node\Expr\AssignOp\Mod($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\AssignOp\Concat($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn197($attributes) { - $this->yyval = new Node\Expr\AssignOp\BitwiseAnd($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\AssignOp\Mod($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn198($attributes) { - $this->yyval = new Node\Expr\AssignOp\BitwiseOr($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\AssignOp\BitwiseAnd($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn199($attributes) { - $this->yyval = new Node\Expr\AssignOp\BitwiseXor($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\AssignOp\BitwiseOr($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn200($attributes) { - $this->yyval = new Node\Expr\AssignOp\ShiftLeft($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\AssignOp\BitwiseXor($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn201($attributes) { - $this->yyval = new Node\Expr\AssignOp\ShiftRight($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\AssignOp\ShiftLeft($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn202($attributes) { - $this->yyval = new Node\Expr\PostInc($this->yyastk[$this->stackPos-(2-1)], $attributes); + $this->yyval = new Node\Expr\AssignOp\ShiftRight($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn203($attributes) { - $this->yyval = new Node\Expr\PreInc($this->yyastk[$this->stackPos-(2-2)], $attributes); + $this->yyval = new Node\Expr\PostInc($this->yyastk[$this->stackPos-(2-1)], $attributes); } protected function yyn204($attributes) { - $this->yyval = new Node\Expr\PostDec($this->yyastk[$this->stackPos-(2-1)], $attributes); + $this->yyval = new Node\Expr\PreInc($this->yyastk[$this->stackPos-(2-2)], $attributes); } protected function yyn205($attributes) { - $this->yyval = new Node\Expr\PreDec($this->yyastk[$this->stackPos-(2-2)], $attributes); + $this->yyval = new Node\Expr\PostDec($this->yyastk[$this->stackPos-(2-1)], $attributes); } protected function yyn206($attributes) { - $this->yyval = new Node\Expr\BinaryOp\BooleanOr($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\PreDec($this->yyastk[$this->stackPos-(2-2)], $attributes); } protected function yyn207($attributes) { - $this->yyval = new Node\Expr\BinaryOp\BooleanAnd($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\BinaryOp\BooleanOr($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn208($attributes) { - $this->yyval = new Node\Expr\BinaryOp\LogicalOr($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\BinaryOp\BooleanAnd($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn209($attributes) { - $this->yyval = new Node\Expr\BinaryOp\LogicalAnd($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\BinaryOp\LogicalOr($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn210($attributes) { - $this->yyval = new Node\Expr\BinaryOp\LogicalXor($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\BinaryOp\LogicalAnd($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn211($attributes) { - $this->yyval = new Node\Expr\BinaryOp\BitwiseOr($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\BinaryOp\LogicalXor($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn212($attributes) { - $this->yyval = new Node\Expr\BinaryOp\BitwiseAnd($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\BinaryOp\BitwiseOr($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn213($attributes) { - $this->yyval = new Node\Expr\BinaryOp\BitwiseXor($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\BinaryOp\BitwiseAnd($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn214($attributes) { - $this->yyval = new Node\Expr\BinaryOp\Concat($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\BinaryOp\BitwiseXor($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn215($attributes) { - $this->yyval = new Node\Expr\BinaryOp\Plus($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\BinaryOp\Concat($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn216($attributes) { - $this->yyval = new Node\Expr\BinaryOp\Minus($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\BinaryOp\Plus($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn217($attributes) { - $this->yyval = new Node\Expr\BinaryOp\Mul($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\BinaryOp\Minus($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn218($attributes) { - $this->yyval = new Node\Expr\BinaryOp\Div($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\BinaryOp\Mul($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn219($attributes) { - $this->yyval = new Node\Expr\BinaryOp\Mod($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\BinaryOp\Div($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn220($attributes) { - $this->yyval = new Node\Expr\BinaryOp\ShiftLeft($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\BinaryOp\Mod($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn221($attributes) { - $this->yyval = new Node\Expr\BinaryOp\ShiftRight($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\BinaryOp\ShiftLeft($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn222($attributes) { - $this->yyval = new Node\Expr\UnaryPlus($this->yyastk[$this->stackPos-(2-2)], $attributes); + $this->yyval = new Node\Expr\BinaryOp\ShiftRight($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn223($attributes) { - $this->yyval = new Node\Expr\UnaryMinus($this->yyastk[$this->stackPos-(2-2)], $attributes); + $this->yyval = new Node\Expr\UnaryPlus($this->yyastk[$this->stackPos-(2-2)], $attributes); } protected function yyn224($attributes) { - $this->yyval = new Node\Expr\BooleanNot($this->yyastk[$this->stackPos-(2-2)], $attributes); + $this->yyval = new Node\Expr\UnaryMinus($this->yyastk[$this->stackPos-(2-2)], $attributes); } protected function yyn225($attributes) { - $this->yyval = new Node\Expr\BitwiseNot($this->yyastk[$this->stackPos-(2-2)], $attributes); + $this->yyval = new Node\Expr\BooleanNot($this->yyastk[$this->stackPos-(2-2)], $attributes); } protected function yyn226($attributes) { - $this->yyval = new Node\Expr\BinaryOp\Identical($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\BitwiseNot($this->yyastk[$this->stackPos-(2-2)], $attributes); } protected function yyn227($attributes) { - $this->yyval = new Node\Expr\BinaryOp\NotIdentical($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\BinaryOp\Identical($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn228($attributes) { - $this->yyval = new Node\Expr\BinaryOp\Equal($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\BinaryOp\NotIdentical($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn229($attributes) { - $this->yyval = new Node\Expr\BinaryOp\NotEqual($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\BinaryOp\Equal($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn230($attributes) { - $this->yyval = new Node\Expr\BinaryOp\Smaller($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\BinaryOp\NotEqual($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn231($attributes) { - $this->yyval = new Node\Expr\BinaryOp\SmallerOrEqual($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\BinaryOp\Smaller($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn232($attributes) { - $this->yyval = new Node\Expr\BinaryOp\Greater($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\BinaryOp\SmallerOrEqual($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn233($attributes) { - $this->yyval = new Node\Expr\BinaryOp\GreaterOrEqual($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\BinaryOp\Greater($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn234($attributes) { - $this->yyval = new Node\Expr\Instanceof_($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\BinaryOp\GreaterOrEqual($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn235($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; + $this->yyval = new Node\Expr\Instanceof_($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn236($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(3-2)]; + $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; } protected function yyn237($attributes) { - $this->yyval = new Node\Expr\Ternary($this->yyastk[$this->stackPos-(5-1)], $this->yyastk[$this->stackPos-(5-3)], $this->yyastk[$this->stackPos-(5-5)], $attributes); + $this->yyval = $this->yyastk[$this->stackPos-(3-2)]; } protected function yyn238($attributes) { - $this->yyval = new Node\Expr\Ternary($this->yyastk[$this->stackPos-(4-1)], null, $this->yyastk[$this->stackPos-(4-4)], $attributes); + $this->yyval = new Node\Expr\Ternary($this->yyastk[$this->stackPos-(5-1)], $this->yyastk[$this->stackPos-(5-3)], $this->yyastk[$this->stackPos-(5-5)], $attributes); } protected function yyn239($attributes) { - $this->yyval = new Node\Expr\Isset_($this->yyastk[$this->stackPos-(4-3)], $attributes); + $this->yyval = new Node\Expr\Ternary($this->yyastk[$this->stackPos-(4-1)], null, $this->yyastk[$this->stackPos-(4-4)], $attributes); } protected function yyn240($attributes) { - $this->yyval = new Node\Expr\Empty_($this->yyastk[$this->stackPos-(4-3)], $attributes); + $this->yyval = new Node\Expr\Isset_($this->yyastk[$this->stackPos-(4-3)], $attributes); } protected function yyn241($attributes) { - $this->yyval = new Node\Expr\Include_($this->yyastk[$this->stackPos-(2-2)], Node\Expr\Include_::TYPE_INCLUDE, $attributes); + $this->yyval = new Node\Expr\Empty_($this->yyastk[$this->stackPos-(4-3)], $attributes); } protected function yyn242($attributes) { - $this->yyval = new Node\Expr\Include_($this->yyastk[$this->stackPos-(2-2)], Node\Expr\Include_::TYPE_INCLUDE_ONCE, $attributes); + $this->yyval = new Node\Expr\Include_($this->yyastk[$this->stackPos-(2-2)], Node\Expr\Include_::TYPE_INCLUDE, $attributes); } protected function yyn243($attributes) { - $this->yyval = new Node\Expr\Eval_($this->yyastk[$this->stackPos-(2-2)], $attributes); + $this->yyval = new Node\Expr\Include_($this->yyastk[$this->stackPos-(2-2)], Node\Expr\Include_::TYPE_INCLUDE_ONCE, $attributes); } protected function yyn244($attributes) { - $this->yyval = new Node\Expr\Include_($this->yyastk[$this->stackPos-(2-2)], Node\Expr\Include_::TYPE_REQUIRE, $attributes); + $this->yyval = new Node\Expr\Eval_($this->yyastk[$this->stackPos-(2-2)], $attributes); } protected function yyn245($attributes) { - $this->yyval = new Node\Expr\Include_($this->yyastk[$this->stackPos-(2-2)], Node\Expr\Include_::TYPE_REQUIRE_ONCE, $attributes); + $this->yyval = new Node\Expr\Include_($this->yyastk[$this->stackPos-(2-2)], Node\Expr\Include_::TYPE_REQUIRE, $attributes); } protected function yyn246($attributes) { - $this->yyval = new Node\Expr\Cast\Int($this->yyastk[$this->stackPos-(2-2)], $attributes); + $this->yyval = new Node\Expr\Include_($this->yyastk[$this->stackPos-(2-2)], Node\Expr\Include_::TYPE_REQUIRE_ONCE, $attributes); } protected function yyn247($attributes) { - $this->yyval = new Node\Expr\Cast\Double($this->yyastk[$this->stackPos-(2-2)], $attributes); + $this->yyval = new Node\Expr\Cast\Int($this->yyastk[$this->stackPos-(2-2)], $attributes); } protected function yyn248($attributes) { - $this->yyval = new Node\Expr\Cast\String($this->yyastk[$this->stackPos-(2-2)], $attributes); + $this->yyval = new Node\Expr\Cast\Double($this->yyastk[$this->stackPos-(2-2)], $attributes); } protected function yyn249($attributes) { - $this->yyval = new Node\Expr\Cast\Array_($this->yyastk[$this->stackPos-(2-2)], $attributes); + $this->yyval = new Node\Expr\Cast\String($this->yyastk[$this->stackPos-(2-2)], $attributes); } protected function yyn250($attributes) { - $this->yyval = new Node\Expr\Cast\Object($this->yyastk[$this->stackPos-(2-2)], $attributes); + $this->yyval = new Node\Expr\Cast\Array_($this->yyastk[$this->stackPos-(2-2)], $attributes); } protected function yyn251($attributes) { - $this->yyval = new Node\Expr\Cast\Bool($this->yyastk[$this->stackPos-(2-2)], $attributes); + $this->yyval = new Node\Expr\Cast\Object($this->yyastk[$this->stackPos-(2-2)], $attributes); } protected function yyn252($attributes) { - $this->yyval = new Node\Expr\Cast\Unset_($this->yyastk[$this->stackPos-(2-2)], $attributes); + $this->yyval = new Node\Expr\Cast\Bool($this->yyastk[$this->stackPos-(2-2)], $attributes); } protected function yyn253($attributes) { - $this->yyval = new Node\Expr\Exit_($this->yyastk[$this->stackPos-(2-2)], $attributes); + $this->yyval = new Node\Expr\Cast\Unset_($this->yyastk[$this->stackPos-(2-2)], $attributes); } protected function yyn254($attributes) { - $this->yyval = new Node\Expr\ErrorSuppress($this->yyastk[$this->stackPos-(2-2)], $attributes); + $this->yyval = new Node\Expr\Exit_($this->yyastk[$this->stackPos-(2-2)], $attributes); } protected function yyn255($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; + $this->yyval = new Node\Expr\ErrorSuppress($this->yyastk[$this->stackPos-(2-2)], $attributes); } protected function yyn256($attributes) { @@ -2146,27 +2149,27 @@ class Parser } protected function yyn258($attributes) { - $this->yyval = new Node\Expr\ShellExec($this->yyastk[$this->stackPos-(3-2)], $attributes); + $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; } protected function yyn259($attributes) { - $this->yyval = new Node\Expr\Print_($this->yyastk[$this->stackPos-(2-2)], $attributes); + $this->yyval = new Node\Expr\ShellExec($this->yyastk[$this->stackPos-(3-2)], $attributes); } protected function yyn260($attributes) { - $this->yyval = new Node\Expr\Yield_(null, null, $attributes); + $this->yyval = new Node\Expr\Print_($this->yyastk[$this->stackPos-(2-2)], $attributes); } protected function yyn261($attributes) { - $this->yyval = new Node\Expr\Closure(array('static' => false, 'byRef' => $this->yyastk[$this->stackPos-(9-2)], 'params' => $this->yyastk[$this->stackPos-(9-4)], 'uses' => $this->yyastk[$this->stackPos-(9-6)], 'stmts' => $this->yyastk[$this->stackPos-(9-8)]), $attributes); + $this->yyval = new Node\Expr\Yield_(null, null, $attributes); } protected function yyn262($attributes) { - $this->yyval = new Node\Expr\Closure(array('static' => true, 'byRef' => $this->yyastk[$this->stackPos-(10-3)], 'params' => $this->yyastk[$this->stackPos-(10-5)], 'uses' => $this->yyastk[$this->stackPos-(10-7)], 'stmts' => $this->yyastk[$this->stackPos-(10-9)]), $attributes); + $this->yyval = new Node\Expr\Closure(array('static' => false, 'byRef' => $this->yyastk[$this->stackPos-(9-2)], 'params' => $this->yyastk[$this->stackPos-(9-4)], 'uses' => $this->yyastk[$this->stackPos-(9-6)], 'stmts' => $this->yyastk[$this->stackPos-(9-8)]), $attributes); } protected function yyn263($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(3-2)]; + $this->yyval = new Node\Expr\Closure(array('static' => true, 'byRef' => $this->yyastk[$this->stackPos-(10-3)], 'params' => $this->yyastk[$this->stackPos-(10-5)], 'uses' => $this->yyastk[$this->stackPos-(10-7)], 'stmts' => $this->yyastk[$this->stackPos-(10-9)]), $attributes); } protected function yyn264($attributes) { @@ -2174,70 +2177,74 @@ class Parser } protected function yyn265($attributes) { - $this->yyval = new Node\Expr\Yield_($this->yyastk[$this->stackPos-(2-2)], null, $attributes); + $this->yyval = $this->yyastk[$this->stackPos-(3-2)]; } protected function yyn266($attributes) { - $this->yyval = new Node\Expr\Yield_($this->yyastk[$this->stackPos-(4-4)], $this->yyastk[$this->stackPos-(4-2)], $attributes); + $this->yyval = new Node\Expr\Yield_($this->yyastk[$this->stackPos-(2-2)], null, $attributes); } protected function yyn267($attributes) { - $this->yyval = new Node\Expr\Array_($this->yyastk[$this->stackPos-(4-3)], $attributes); + $this->yyval = new Node\Expr\Yield_($this->yyastk[$this->stackPos-(4-4)], $this->yyastk[$this->stackPos-(4-2)], $attributes); } protected function yyn268($attributes) { - $this->yyval = new Node\Expr\Array_($this->yyastk[$this->stackPos-(3-2)], $attributes); + $this->yyval = new Node\Expr\Array_($this->yyastk[$this->stackPos-(4-3)], $attributes); } protected function yyn269($attributes) { - $this->yyval = new Node\Expr\ArrayDimFetch($this->yyastk[$this->stackPos-(4-1)], $this->yyastk[$this->stackPos-(4-3)], $attributes); + $this->yyval = new Node\Expr\Array_($this->yyastk[$this->stackPos-(3-2)], $attributes); } protected function yyn270($attributes) { - $this->yyval = new Node\Expr\ArrayDimFetch(new Node\Scalar\String(Node\Scalar\String::parse($this->yyastk[$this->stackPos-(4-1)]), $attributes), $this->yyastk[$this->stackPos-(4-3)], $attributes); - } - - protected function yyn271($attributes) { $this->yyval = new Node\Expr\ArrayDimFetch($this->yyastk[$this->stackPos-(4-1)], $this->yyastk[$this->stackPos-(4-3)], $attributes); } + protected function yyn271($attributes) { + $this->yyval = new Node\Expr\ArrayDimFetch(new Node\Scalar\String(Node\Scalar\String::parse($this->yyastk[$this->stackPos-(4-1)]), $attributes), $this->yyastk[$this->stackPos-(4-3)], $attributes); + } + protected function yyn272($attributes) { - $this->yyval = new Node\Expr\New_($this->yyastk[$this->stackPos-(3-2)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\ArrayDimFetch($this->yyastk[$this->stackPos-(4-1)], $this->yyastk[$this->stackPos-(4-3)], $attributes); } protected function yyn273($attributes) { - $this->yyval = array(); + $this->yyval = new Node\Expr\New_($this->yyastk[$this->stackPos-(3-2)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn274($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(4-3)]; + $this->yyval = array(); } protected function yyn275($attributes) { - $this->yyval = array($this->yyastk[$this->stackPos-(1-1)]); + $this->yyval = $this->yyastk[$this->stackPos-(4-3)]; } protected function yyn276($attributes) { - $this->yyastk[$this->stackPos-(3-1)][] = $this->yyastk[$this->stackPos-(3-3)]; $this->yyval = $this->yyastk[$this->stackPos-(3-1)]; + $this->yyval = array($this->yyastk[$this->stackPos-(1-1)]); } protected function yyn277($attributes) { - $this->yyval = new Node\Expr\ClosureUse(substr($this->yyastk[$this->stackPos-(2-2)], 1), $this->yyastk[$this->stackPos-(2-1)], $attributes); + $this->yyastk[$this->stackPos-(3-1)][] = $this->yyastk[$this->stackPos-(3-3)]; $this->yyval = $this->yyastk[$this->stackPos-(3-1)]; } protected function yyn278($attributes) { - $this->yyval = new Node\Expr\FuncCall($this->yyastk[$this->stackPos-(2-1)], $this->yyastk[$this->stackPos-(2-2)], $attributes); + $this->yyval = new Node\Expr\ClosureUse(substr($this->yyastk[$this->stackPos-(2-2)], 1), $this->yyastk[$this->stackPos-(2-1)], $attributes); } protected function yyn279($attributes) { - $this->yyval = new Node\Expr\StaticCall($this->yyastk[$this->stackPos-(4-1)], $this->yyastk[$this->stackPos-(4-3)], $this->yyastk[$this->stackPos-(4-4)], $attributes); + $this->yyval = new Node\Expr\FuncCall($this->yyastk[$this->stackPos-(2-1)], $this->yyastk[$this->stackPos-(2-2)], $attributes); } protected function yyn280($attributes) { - $this->yyval = new Node\Expr\StaticCall($this->yyastk[$this->stackPos-(6-1)], $this->yyastk[$this->stackPos-(6-4)], $this->yyastk[$this->stackPos-(6-6)], $attributes); + $this->yyval = new Node\Expr\StaticCall($this->yyastk[$this->stackPos-(4-1)], $this->yyastk[$this->stackPos-(4-3)], $this->yyastk[$this->stackPos-(4-4)], $attributes); } protected function yyn281($attributes) { + $this->yyval = new Node\Expr\StaticCall($this->yyastk[$this->stackPos-(6-1)], $this->yyastk[$this->stackPos-(6-4)], $this->yyastk[$this->stackPos-(6-6)], $attributes); + } + + protected function yyn282($attributes) { if ($this->yyastk[$this->stackPos-(2-1)] instanceof Node\Expr\StaticPropertyFetch) { $this->yyval = new Node\Expr\StaticCall($this->yyastk[$this->stackPos-(2-1)]->class, new Node\Expr\Variable($this->yyastk[$this->stackPos-(2-1)]->name, $attributes), $this->yyastk[$this->stackPos-(2-2)], $attributes); @@ -2255,36 +2262,32 @@ class Parser } - protected function yyn282($attributes) { + protected function yyn283($attributes) { $this->yyval = new Node\Expr\FuncCall($this->yyastk[$this->stackPos-(2-1)], $this->yyastk[$this->stackPos-(2-2)], $attributes); } - protected function yyn283($attributes) { + protected function yyn284($attributes) { $this->yyval = new Node\Expr\ArrayDimFetch($this->yyastk[$this->stackPos-(4-1)], $this->yyastk[$this->stackPos-(4-3)], $attributes); } - protected function yyn284($attributes) { + protected function yyn285($attributes) { $this->yyval = new Node\Name('static', $attributes); } - protected function yyn285($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; - } - protected function yyn286($attributes) { - $this->yyval = new Node\Name($this->yyastk[$this->stackPos-(1-1)], $attributes); + $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; } protected function yyn287($attributes) { - $this->yyval = new Node\Name\FullyQualified($this->yyastk[$this->stackPos-(2-2)], $attributes); + $this->yyval = new Node\Name($this->yyastk[$this->stackPos-(1-1)], $attributes); } protected function yyn288($attributes) { - $this->yyval = new Node\Name\Relative($this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Name\FullyQualified($this->yyastk[$this->stackPos-(2-2)], $attributes); } protected function yyn289($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; + $this->yyval = new Node\Name\Relative($this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn290($attributes) { @@ -2307,12 +2310,12 @@ class Parser $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; } - protected function yyn295() { - $this->yyval = $this->yyastk[$this->stackPos]; + protected function yyn295($attributes) { + $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; } - protected function yyn296($attributes) { - $this->yyval = new Node\Expr\PropertyFetch($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + protected function yyn296() { + $this->yyval = $this->yyastk[$this->stackPos]; } protected function yyn297($attributes) { @@ -2320,7 +2323,7 @@ class Parser } protected function yyn298($attributes) { - $this->yyval = new Node\Expr\ArrayDimFetch($this->yyastk[$this->stackPos-(4-1)], $this->yyastk[$this->stackPos-(4-3)], $attributes); + $this->yyval = new Node\Expr\PropertyFetch($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn299($attributes) { @@ -2328,7 +2331,7 @@ class Parser } protected function yyn300($attributes) { - $this->yyval = null; + $this->yyval = new Node\Expr\ArrayDimFetch($this->yyastk[$this->stackPos-(4-1)], $this->yyastk[$this->stackPos-(4-3)], $attributes); } protected function yyn301($attributes) { @@ -2336,167 +2339,167 @@ class Parser } protected function yyn302($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; + $this->yyval = null; } protected function yyn303($attributes) { - $this->yyval = array(); + $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; } protected function yyn304($attributes) { - $this->yyval = array(Node\Scalar\String::parseEscapeSequences($this->yyastk[$this->stackPos-(1-1)], '`')); + $this->yyval = array(); } protected function yyn305($attributes) { - foreach ($this->yyastk[$this->stackPos-(1-1)] as &$s) { if (is_string($s)) { $s = Node\Scalar\String::parseEscapeSequences($s, '`'); } }; $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; + $this->yyval = array(Node\Scalar\String::parseEscapeSequences($this->yyastk[$this->stackPos-(1-1)], '`')); } protected function yyn306($attributes) { - $this->yyval = array(); + foreach ($this->yyastk[$this->stackPos-(1-1)] as &$s) { if (is_string($s)) { $s = Node\Scalar\String::parseEscapeSequences($s, '`'); } }; $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; } protected function yyn307($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; - } - - protected function yyn308($attributes) { - $this->yyval = new Node\Scalar\LNumber(Node\Scalar\LNumber::parse($this->yyastk[$this->stackPos-(1-1)]), $attributes); - } - - protected function yyn309($attributes) { - $this->yyval = new Node\Scalar\DNumber(Node\Scalar\DNumber::parse($this->yyastk[$this->stackPos-(1-1)]), $attributes); - } - - protected function yyn310($attributes) { - $this->yyval = new Node\Scalar\String(Node\Scalar\String::parse($this->yyastk[$this->stackPos-(1-1)]), $attributes); - } - - protected function yyn311($attributes) { - $this->yyval = new Node\Scalar\MagicConst\Line($attributes); - } - - protected function yyn312($attributes) { - $this->yyval = new Node\Scalar\MagicConst\File($attributes); - } - - protected function yyn313($attributes) { - $this->yyval = new Node\Scalar\MagicConst\Dir($attributes); - } - - protected function yyn314($attributes) { - $this->yyval = new Node\Scalar\MagicConst\Class_($attributes); - } - - protected function yyn315($attributes) { - $this->yyval = new Node\Scalar\MagicConst\Trait_($attributes); - } - - protected function yyn316($attributes) { - $this->yyval = new Node\Scalar\MagicConst\Method($attributes); - } - - protected function yyn317($attributes) { - $this->yyval = new Node\Scalar\MagicConst\Function_($attributes); - } - - protected function yyn318($attributes) { - $this->yyval = new Node\Scalar\MagicConst\Namespace_($attributes); - } - - protected function yyn319($attributes) { - $this->yyval = new Node\Scalar\String(Node\Scalar\String::parseDocString($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-2)]), $attributes); - } - - protected function yyn320($attributes) { - $this->yyval = new Node\Scalar\String('', $attributes); - } - - protected function yyn321($attributes) { - $this->yyval = new Node\Expr\ConstFetch($this->yyastk[$this->stackPos-(1-1)], $attributes); - } - - protected function yyn322($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; - } - - protected function yyn323($attributes) { - $this->yyval = new Node\Expr\ClassConstFetch($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); - } - - protected function yyn324($attributes) { - $this->yyval = new Node\Expr\UnaryPlus($this->yyastk[$this->stackPos-(2-2)], $attributes); - } - - protected function yyn325($attributes) { - $this->yyval = new Node\Expr\UnaryMinus($this->yyastk[$this->stackPos-(2-2)], $attributes); - } - - protected function yyn326($attributes) { - $this->yyval = new Node\Expr\Array_($this->yyastk[$this->stackPos-(4-3)], $attributes); - } - - protected function yyn327($attributes) { - $this->yyval = new Node\Expr\Array_($this->yyastk[$this->stackPos-(3-2)], $attributes); - } - - protected function yyn328($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; - } - - protected function yyn329($attributes) { - $this->yyval = new Node\Expr\ClassConstFetch($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); - } - - protected function yyn330($attributes) { - foreach ($this->yyastk[$this->stackPos-(3-2)] as &$s) { if (is_string($s)) { $s = Node\Scalar\String::parseEscapeSequences($s, '"'); } }; $this->yyval = new Node\Scalar\Encapsed($this->yyastk[$this->stackPos-(3-2)], $attributes); - } - - protected function yyn331($attributes) { - foreach ($this->yyastk[$this->stackPos-(3-2)] as &$s) { if (is_string($s)) { $s = Node\Scalar\String::parseEscapeSequences($s, null); } } $s = preg_replace('~(\r\n|\n|\r)$~', '', $s); if ('' === $s) array_pop($this->yyastk[$this->stackPos-(3-2)]);; $this->yyval = new Node\Scalar\Encapsed($this->yyastk[$this->stackPos-(3-2)], $attributes); - } - - protected function yyn332($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; - } - - protected function yyn333($attributes) { - $this->yyval = 'class'; - } - - protected function yyn334($attributes) { $this->yyval = array(); } - protected function yyn335($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(2-1)]; + protected function yyn308($attributes) { + $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; } - protected function yyn336() { - $this->yyval = $this->yyastk[$this->stackPos]; + protected function yyn309($attributes) { + $this->yyval = new Node\Scalar\LNumber(Node\Scalar\LNumber::parse($this->yyastk[$this->stackPos-(1-1)]), $attributes); + } + + protected function yyn310($attributes) { + $this->yyval = new Node\Scalar\DNumber(Node\Scalar\DNumber::parse($this->yyastk[$this->stackPos-(1-1)]), $attributes); + } + + protected function yyn311($attributes) { + $this->yyval = new Node\Scalar\String(Node\Scalar\String::parse($this->yyastk[$this->stackPos-(1-1)]), $attributes); + } + + protected function yyn312($attributes) { + $this->yyval = new Node\Scalar\MagicConst\Line($attributes); + } + + protected function yyn313($attributes) { + $this->yyval = new Node\Scalar\MagicConst\File($attributes); + } + + protected function yyn314($attributes) { + $this->yyval = new Node\Scalar\MagicConst\Dir($attributes); + } + + protected function yyn315($attributes) { + $this->yyval = new Node\Scalar\MagicConst\Class_($attributes); + } + + protected function yyn316($attributes) { + $this->yyval = new Node\Scalar\MagicConst\Trait_($attributes); + } + + protected function yyn317($attributes) { + $this->yyval = new Node\Scalar\MagicConst\Method($attributes); + } + + protected function yyn318($attributes) { + $this->yyval = new Node\Scalar\MagicConst\Function_($attributes); + } + + protected function yyn319($attributes) { + $this->yyval = new Node\Scalar\MagicConst\Namespace_($attributes); + } + + protected function yyn320($attributes) { + $this->yyval = new Node\Scalar\String(Node\Scalar\String::parseDocString($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-2)]), $attributes); + } + + protected function yyn321($attributes) { + $this->yyval = new Node\Scalar\String('', $attributes); + } + + protected function yyn322($attributes) { + $this->yyval = new Node\Expr\ConstFetch($this->yyastk[$this->stackPos-(1-1)], $attributes); + } + + protected function yyn323($attributes) { + $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; + } + + protected function yyn324($attributes) { + $this->yyval = new Node\Expr\ClassConstFetch($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + } + + protected function yyn325($attributes) { + $this->yyval = new Node\Expr\UnaryPlus($this->yyastk[$this->stackPos-(2-2)], $attributes); + } + + protected function yyn326($attributes) { + $this->yyval = new Node\Expr\UnaryMinus($this->yyastk[$this->stackPos-(2-2)], $attributes); + } + + protected function yyn327($attributes) { + $this->yyval = new Node\Expr\Array_($this->yyastk[$this->stackPos-(4-3)], $attributes); + } + + protected function yyn328($attributes) { + $this->yyval = new Node\Expr\Array_($this->yyastk[$this->stackPos-(3-2)], $attributes); + } + + protected function yyn329($attributes) { + $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; + } + + protected function yyn330($attributes) { + $this->yyval = new Node\Expr\ClassConstFetch($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + } + + protected function yyn331($attributes) { + foreach ($this->yyastk[$this->stackPos-(3-2)] as &$s) { if (is_string($s)) { $s = Node\Scalar\String::parseEscapeSequences($s, '"'); } }; $this->yyval = new Node\Scalar\Encapsed($this->yyastk[$this->stackPos-(3-2)], $attributes); + } + + protected function yyn332($attributes) { + foreach ($this->yyastk[$this->stackPos-(3-2)] as &$s) { if (is_string($s)) { $s = Node\Scalar\String::parseEscapeSequences($s, null); } } $s = preg_replace('~(\r\n|\n|\r)$~', '', $s); if ('' === $s) array_pop($this->yyastk[$this->stackPos-(3-2)]);; $this->yyval = new Node\Scalar\Encapsed($this->yyastk[$this->stackPos-(3-2)], $attributes); + } + + protected function yyn333($attributes) { + $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; + } + + protected function yyn334($attributes) { + $this->yyval = 'class'; + } + + protected function yyn335($attributes) { + $this->yyval = array(); + } + + protected function yyn336($attributes) { + $this->yyval = $this->yyastk[$this->stackPos-(2-1)]; } protected function yyn337() { $this->yyval = $this->yyastk[$this->stackPos]; } - protected function yyn338($attributes) { - $this->yyastk[$this->stackPos-(3-1)][] = $this->yyastk[$this->stackPos-(3-3)]; $this->yyval = $this->yyastk[$this->stackPos-(3-1)]; + protected function yyn338() { + $this->yyval = $this->yyastk[$this->stackPos]; } protected function yyn339($attributes) { - $this->yyval = array($this->yyastk[$this->stackPos-(1-1)]); + $this->yyastk[$this->stackPos-(3-1)][] = $this->yyastk[$this->stackPos-(3-3)]; $this->yyval = $this->yyastk[$this->stackPos-(3-1)]; } protected function yyn340($attributes) { - $this->yyval = new Node\Expr\ArrayItem($this->yyastk[$this->stackPos-(3-3)], $this->yyastk[$this->stackPos-(3-1)], false, $attributes); + $this->yyval = array($this->yyastk[$this->stackPos-(1-1)]); } protected function yyn341($attributes) { - $this->yyval = new Node\Expr\ArrayItem($this->yyastk[$this->stackPos-(1-1)], null, false, $attributes); + $this->yyval = new Node\Expr\ArrayItem($this->yyastk[$this->stackPos-(3-3)], $this->yyastk[$this->stackPos-(3-1)], false, $attributes); } protected function yyn342($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; + $this->yyval = new Node\Expr\ArrayItem($this->yyastk[$this->stackPos-(1-1)], null, false, $attributes); } protected function yyn343($attributes) { @@ -2512,27 +2515,27 @@ class Parser } protected function yyn346($attributes) { - $this->yyval = new Node\Expr\ArrayDimFetch($this->yyastk[$this->stackPos-(6-2)], $this->yyastk[$this->stackPos-(6-5)], $attributes); + $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; } protected function yyn347($attributes) { - $this->yyval = new Node\Expr\ArrayDimFetch($this->yyastk[$this->stackPos-(4-1)], $this->yyastk[$this->stackPos-(4-3)], $attributes); + $this->yyval = new Node\Expr\ArrayDimFetch($this->yyastk[$this->stackPos-(6-2)], $this->yyastk[$this->stackPos-(6-5)], $attributes); } protected function yyn348($attributes) { - $this->yyval = new Node\Expr\PropertyFetch($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\ArrayDimFetch($this->yyastk[$this->stackPos-(4-1)], $this->yyastk[$this->stackPos-(4-3)], $attributes); } protected function yyn349($attributes) { - $this->yyval = new Node\Expr\MethodCall($this->yyastk[$this->stackPos-(4-1)], $this->yyastk[$this->stackPos-(4-3)], $this->yyastk[$this->stackPos-(4-4)], $attributes); + $this->yyval = new Node\Expr\PropertyFetch($this->yyastk[$this->stackPos-(3-1)], $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn350($attributes) { - $this->yyval = new Node\Expr\FuncCall($this->yyastk[$this->stackPos-(2-1)], $this->yyastk[$this->stackPos-(2-2)], $attributes); + $this->yyval = new Node\Expr\MethodCall($this->yyastk[$this->stackPos-(4-1)], $this->yyastk[$this->stackPos-(4-3)], $this->yyastk[$this->stackPos-(4-4)], $attributes); } protected function yyn351($attributes) { - $this->yyval = new Node\Expr\ArrayDimFetch($this->yyastk[$this->stackPos-(4-1)], $this->yyastk[$this->stackPos-(4-3)], $attributes); + $this->yyval = new Node\Expr\FuncCall($this->yyastk[$this->stackPos-(2-1)], $this->yyastk[$this->stackPos-(2-2)], $attributes); } protected function yyn352($attributes) { @@ -2540,23 +2543,23 @@ class Parser } protected function yyn353($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; + $this->yyval = new Node\Expr\ArrayDimFetch($this->yyastk[$this->stackPos-(4-1)], $this->yyastk[$this->stackPos-(4-3)], $attributes); } protected function yyn354($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(3-2)]; + $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; } protected function yyn355($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; + $this->yyval = $this->yyastk[$this->stackPos-(3-2)]; } protected function yyn356($attributes) { - $this->yyval = new Node\Expr\Variable($this->yyastk[$this->stackPos-(2-2)], $attributes); + $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; } protected function yyn357($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; + $this->yyval = new Node\Expr\Variable($this->yyastk[$this->stackPos-(2-2)], $attributes); } protected function yyn358($attributes) { @@ -2564,23 +2567,23 @@ class Parser } protected function yyn359($attributes) { - $this->yyval = new Node\Expr\StaticPropertyFetch($this->yyastk[$this->stackPos-(4-1)], $this->yyastk[$this->stackPos-(4-4)], $attributes); - } - - protected function yyn360($attributes) { $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; } + protected function yyn360($attributes) { + $this->yyval = new Node\Expr\StaticPropertyFetch($this->yyastk[$this->stackPos-(4-1)], $this->yyastk[$this->stackPos-(4-4)], $attributes); + } + protected function yyn361($attributes) { - $this->yyval = new Node\Expr\StaticPropertyFetch($this->yyastk[$this->stackPos-(3-1)], substr($this->yyastk[$this->stackPos-(3-3)], 1), $attributes); + $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; } protected function yyn362($attributes) { - $this->yyval = new Node\Expr\StaticPropertyFetch($this->yyastk[$this->stackPos-(6-1)], $this->yyastk[$this->stackPos-(6-5)], $attributes); + $this->yyval = new Node\Expr\StaticPropertyFetch($this->yyastk[$this->stackPos-(3-1)], substr($this->yyastk[$this->stackPos-(3-3)], 1), $attributes); } protected function yyn363($attributes) { - $this->yyval = new Node\Expr\ArrayDimFetch($this->yyastk[$this->stackPos-(4-1)], $this->yyastk[$this->stackPos-(4-3)], $attributes); + $this->yyval = new Node\Expr\StaticPropertyFetch($this->yyastk[$this->stackPos-(6-1)], $this->yyastk[$this->stackPos-(6-5)], $attributes); } protected function yyn364($attributes) { @@ -2596,19 +2599,19 @@ class Parser } protected function yyn367($attributes) { - $this->yyval = new Node\Expr\Variable(substr($this->yyastk[$this->stackPos-(1-1)], 1), $attributes); + $this->yyval = new Node\Expr\ArrayDimFetch($this->yyastk[$this->stackPos-(4-1)], $this->yyastk[$this->stackPos-(4-3)], $attributes); } protected function yyn368($attributes) { - $this->yyval = new Node\Expr\Variable($this->yyastk[$this->stackPos-(4-3)], $attributes); + $this->yyval = new Node\Expr\Variable(substr($this->yyastk[$this->stackPos-(1-1)], 1), $attributes); } protected function yyn369($attributes) { - $this->yyval = null; + $this->yyval = new Node\Expr\Variable($this->yyastk[$this->stackPos-(4-3)], $attributes); } protected function yyn370($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; + $this->yyval = null; } protected function yyn371($attributes) { @@ -2616,27 +2619,27 @@ class Parser } protected function yyn372($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(3-2)]; + $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; } protected function yyn373($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; + $this->yyval = $this->yyastk[$this->stackPos-(3-2)]; } protected function yyn374($attributes) { - $this->yyval = new Node\Expr\List_($this->yyastk[$this->stackPos-(4-3)], $attributes); + $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; } protected function yyn375($attributes) { - $this->yyastk[$this->stackPos-(3-1)][] = $this->yyastk[$this->stackPos-(3-3)]; $this->yyval = $this->yyastk[$this->stackPos-(3-1)]; + $this->yyval = new Node\Expr\List_($this->yyastk[$this->stackPos-(4-3)], $attributes); } protected function yyn376($attributes) { - $this->yyval = array($this->yyastk[$this->stackPos-(1-1)]); + $this->yyastk[$this->stackPos-(3-1)][] = $this->yyastk[$this->stackPos-(3-3)]; $this->yyval = $this->yyastk[$this->stackPos-(3-1)]; } protected function yyn377($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; + $this->yyval = array($this->yyastk[$this->stackPos-(1-1)]); } protected function yyn378($attributes) { @@ -2644,43 +2647,43 @@ class Parser } protected function yyn379($attributes) { - $this->yyval = null; + $this->yyval = $this->yyastk[$this->stackPos-(1-1)]; } protected function yyn380($attributes) { - $this->yyval = array(); + $this->yyval = null; } protected function yyn381($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(2-1)]; + $this->yyval = array(); } protected function yyn382($attributes) { - $this->yyastk[$this->stackPos-(3-1)][] = $this->yyastk[$this->stackPos-(3-3)]; $this->yyval = $this->yyastk[$this->stackPos-(3-1)]; + $this->yyval = $this->yyastk[$this->stackPos-(2-1)]; } protected function yyn383($attributes) { - $this->yyval = array($this->yyastk[$this->stackPos-(1-1)]); + $this->yyastk[$this->stackPos-(3-1)][] = $this->yyastk[$this->stackPos-(3-3)]; $this->yyval = $this->yyastk[$this->stackPos-(3-1)]; } protected function yyn384($attributes) { - $this->yyval = new Node\Expr\ArrayItem($this->yyastk[$this->stackPos-(3-3)], $this->yyastk[$this->stackPos-(3-1)], false, $attributes); + $this->yyval = array($this->yyastk[$this->stackPos-(1-1)]); } protected function yyn385($attributes) { - $this->yyval = new Node\Expr\ArrayItem($this->yyastk[$this->stackPos-(1-1)], null, false, $attributes); + $this->yyval = new Node\Expr\ArrayItem($this->yyastk[$this->stackPos-(3-3)], $this->yyastk[$this->stackPos-(3-1)], false, $attributes); } protected function yyn386($attributes) { - $this->yyval = new Node\Expr\ArrayItem($this->yyastk[$this->stackPos-(4-4)], $this->yyastk[$this->stackPos-(4-1)], true, $attributes); + $this->yyval = new Node\Expr\ArrayItem($this->yyastk[$this->stackPos-(1-1)], null, false, $attributes); } protected function yyn387($attributes) { - $this->yyval = new Node\Expr\ArrayItem($this->yyastk[$this->stackPos-(2-2)], null, true, $attributes); + $this->yyval = new Node\Expr\ArrayItem($this->yyastk[$this->stackPos-(4-4)], $this->yyastk[$this->stackPos-(4-1)], true, $attributes); } protected function yyn388($attributes) { - $this->yyastk[$this->stackPos-(2-1)][] = $this->yyastk[$this->stackPos-(2-2)]; $this->yyval = $this->yyastk[$this->stackPos-(2-1)]; + $this->yyval = new Node\Expr\ArrayItem($this->yyastk[$this->stackPos-(2-2)], null, true, $attributes); } protected function yyn389($attributes) { @@ -2688,27 +2691,27 @@ class Parser } protected function yyn390($attributes) { - $this->yyval = array($this->yyastk[$this->stackPos-(1-1)]); + $this->yyastk[$this->stackPos-(2-1)][] = $this->yyastk[$this->stackPos-(2-2)]; $this->yyval = $this->yyastk[$this->stackPos-(2-1)]; } protected function yyn391($attributes) { - $this->yyval = array($this->yyastk[$this->stackPos-(2-1)], $this->yyastk[$this->stackPos-(2-2)]); + $this->yyval = array($this->yyastk[$this->stackPos-(1-1)]); } protected function yyn392($attributes) { - $this->yyval = new Node\Expr\Variable(substr($this->yyastk[$this->stackPos-(1-1)], 1), $attributes); + $this->yyval = array($this->yyastk[$this->stackPos-(2-1)], $this->yyastk[$this->stackPos-(2-2)]); } protected function yyn393($attributes) { - $this->yyval = new Node\Expr\ArrayDimFetch(new Node\Expr\Variable(substr($this->yyastk[$this->stackPos-(4-1)], 1), $attributes), $this->yyastk[$this->stackPos-(4-3)], $attributes); + $this->yyval = new Node\Expr\Variable(substr($this->yyastk[$this->stackPos-(1-1)], 1), $attributes); } protected function yyn394($attributes) { - $this->yyval = new Node\Expr\PropertyFetch(new Node\Expr\Variable(substr($this->yyastk[$this->stackPos-(3-1)], 1), $attributes), $this->yyastk[$this->stackPos-(3-3)], $attributes); + $this->yyval = new Node\Expr\ArrayDimFetch(new Node\Expr\Variable(substr($this->yyastk[$this->stackPos-(4-1)], 1), $attributes), $this->yyastk[$this->stackPos-(4-3)], $attributes); } protected function yyn395($attributes) { - $this->yyval = new Node\Expr\Variable($this->yyastk[$this->stackPos-(3-2)], $attributes); + $this->yyval = new Node\Expr\PropertyFetch(new Node\Expr\Variable(substr($this->yyastk[$this->stackPos-(3-1)], 1), $attributes), $this->yyastk[$this->stackPos-(3-3)], $attributes); } protected function yyn396($attributes) { @@ -2716,15 +2719,15 @@ class Parser } protected function yyn397($attributes) { - $this->yyval = new Node\Expr\ArrayDimFetch(new Node\Expr\Variable($this->yyastk[$this->stackPos-(6-2)], $attributes), $this->yyastk[$this->stackPos-(6-4)], $attributes); + $this->yyval = new Node\Expr\Variable($this->yyastk[$this->stackPos-(3-2)], $attributes); } protected function yyn398($attributes) { - $this->yyval = $this->yyastk[$this->stackPos-(3-2)]; + $this->yyval = new Node\Expr\ArrayDimFetch(new Node\Expr\Variable($this->yyastk[$this->stackPos-(6-2)], $attributes), $this->yyastk[$this->stackPos-(6-4)], $attributes); } protected function yyn399($attributes) { - $this->yyval = new Node\Scalar\String($this->yyastk[$this->stackPos-(1-1)], $attributes); + $this->yyval = $this->yyastk[$this->stackPos-(3-2)]; } protected function yyn400($attributes) { @@ -2732,6 +2735,10 @@ class Parser } protected function yyn401($attributes) { + $this->yyval = new Node\Scalar\String($this->yyastk[$this->stackPos-(1-1)], $attributes); + } + + protected function yyn402($attributes) { $this->yyval = new Node\Expr\Variable(substr($this->yyastk[$this->stackPos-(1-1)], 1), $attributes); } } diff --git a/lib/PhpParser/PrettyPrinter/Standard.php b/lib/PhpParser/PrettyPrinter/Standard.php index ce7989e9..735f204e 100644 --- a/lib/PhpParser/PrettyPrinter/Standard.php +++ b/lib/PhpParser/PrettyPrinter/Standard.php @@ -26,7 +26,7 @@ class Standard extends PrettyPrinterAbstract } public function pArg(Node\Arg $node) { - return ($node->byRef ? '&' : '') . $this->p($node->value); + return ($node->byRef ? '&' : '') . ($node->unpack ? '...' : '') . $this->p($node->value); } public function pConst(Node\Const_ $node) { diff --git a/test/code/parser/expr/fetchAndCall/args.test b/test/code/parser/expr/fetchAndCall/args.test index c980564c..6d735209 100644 --- a/test/code/parser/expr/fetchAndCall/args.test +++ b/test/code/parser/expr/fetchAndCall/args.test @@ -6,6 +6,7 @@ f(); f($a); f($a, $b); f(&$a); +f($a, ...$b); ----- array( 0: Expr_FuncCall( @@ -29,6 +30,7 @@ array( name: a ) byRef: false + unpack: false ) ) ) @@ -44,12 +46,14 @@ array( name: a ) byRef: false + unpack: false ) 1: Arg( value: Expr_Variable( name: b ) byRef: false + unpack: false ) ) ) @@ -65,6 +69,30 @@ array( name: a ) byRef: true + unpack: false + ) + ) + ) + 4: Expr_FuncCall( + name: Name( + parts: array( + 0: f + ) + ) + args: array( + 0: Arg( + value: Expr_Variable( + name: a + ) + byRef: false + unpack: false + ) + 1: Arg( + value: Expr_Variable( + name: b + ) + byRef: false + unpack: true ) ) ) diff --git a/test/code/parser/expr/new.test b/test/code/parser/expr/new.test index daca29cc..b7ce7a9d 100644 --- a/test/code/parser/expr/new.test +++ b/test/code/parser/expr/new.test @@ -40,6 +40,7 @@ array( name: b ) byRef: false + unpack: false ) ) ) diff --git a/test/code/parser/stmt/function/generator.test b/test/code/parser/stmt/function/generator.test index 9feb86e8..c8d86f55 100644 --- a/test/code/parser/stmt/function/generator.test +++ b/test/code/parser/stmt/function/generator.test @@ -184,6 +184,7 @@ array( ) ) byRef: false + unpack: false ) ) ) @@ -201,6 +202,7 @@ array( ) ) byRef: false + unpack: false ) ) ) @@ -219,6 +221,7 @@ array( ) ) byRef: false + unpack: false ) ) ) diff --git a/test/code/prettyPrinter/call.test b/test/code/prettyPrinter/call.test new file mode 100644 index 00000000..0ec8925c --- /dev/null +++ b/test/code/prettyPrinter/call.test @@ -0,0 +1,13 @@ +Calls +----- +