diff --git a/internal/php8/php8.go b/internal/php8/php8.go index ebd7c98..13f1dcb 100644 --- a/internal/php8/php8.go +++ b/internal/php8/php8.go @@ -357,10 +357,10 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php8/php8.y:5142 +// line internal/php8/php8.y:5146 // line yacctab:1 -var yyExca = [...]int{ +var yyExca = [...]int16{ -1, 1, 1, -1, -2, 0, @@ -625,209 +625,270 @@ var yyExca = [...]int{ 33, 223, 154, 223, -2, 0, - -1, 1073, + -1, 1074, 158, 238, -2, 248, } const yyPrivate = 57344 -const yyLast = 9546 +const yyLast = 9606 -var yyAct = [...]int{ +var yyAct = [...]int16{ 26, 231, 871, 886, 430, 119, 713, 7, 1008, 721, - 137, 1023, 673, 974, 950, 970, 907, 972, 881, 720, - 238, 238, 238, 889, 224, 253, 864, 718, 435, 521, - 40, 975, 789, 289, 763, 746, 810, 715, 127, 716, - 333, 133, 575, 831, 482, 658, 511, 563, 47, 515, - 660, 666, 429, 86, 526, 6, 83, 326, 337, 341, - 128, 90, 350, 351, 352, 353, 354, 655, 237, 607, - 356, 357, 358, 359, 360, 361, 362, 391, 365, 614, - 248, 373, 374, 375, 335, 323, 88, 252, 229, 242, - 243, 245, 249, 428, 84, 2, 5, 381, 382, 218, - 384, 385, 399, 221, 421, 92, 555, 398, 217, 1034, - 233, 228, 282, 343, 343, 222, 1031, 1019, 43, 369, - 1015, 345, 345, 313, 989, 795, 684, 779, 400, 326, - 982, 282, 981, 447, 424, 1051, 284, 281, 324, 1045, - 784, 935, 318, 783, 791, 934, 791, 811, 780, 1017, - 1046, 895, 255, 256, 268, 271, 272, 273, 274, 275, - 276, 278, 280, 282, 825, 346, 346, 808, 117, 733, - 261, 710, 404, 268, 271, 272, 1001, 646, 342, 349, - 278, 280, 283, 262, 266, 265, 644, 1016, 423, 394, - 396, 260, 1012, 263, 267, 269, 270, 277, 279, 264, - 527, 1017, 117, 266, 265, 268, 1013, 406, 621, 448, - 401, 445, 117, 267, 269, 270, 277, 279, 264, 635, - 443, 422, 416, 449, 241, 446, 117, 533, 410, 415, - 520, 913, 376, 432, 444, 423, 437, 438, 818, 1009, - 440, 801, 315, 416, 705, 267, 269, 270, 701, 691, - 420, 936, 678, 702, 282, 314, 450, 451, 452, 453, + 137, 1023, 673, 974, 950, 970, 907, 972, 789, 881, + 238, 238, 238, 889, 224, 253, 720, 718, 40, 521, + 975, 864, 435, 289, 763, 746, 127, 715, 810, 658, + 133, 515, 575, 831, 666, 716, 511, 563, 391, 660, + 482, 614, 252, 429, 335, 245, 6, 326, 337, 341, + 86, 128, 350, 351, 352, 353, 354, 249, 655, 607, + 356, 357, 358, 359, 360, 361, 362, 47, 365, 85, + 323, 373, 374, 375, 526, 88, 229, 555, 221, 333, + 83, 2, 399, 428, 313, 421, 5, 381, 382, 218, + 384, 385, 246, 84, 90, 398, 222, 228, 217, 1034, + 233, 237, 1031, 1019, 248, 1015, 989, 795, 684, 447, + 343, 343, 424, 982, 282, 981, 779, 1051, 400, 326, + 282, 1016, 242, 243, 1012, 784, 783, 324, 646, 791, + 621, 1017, 935, 282, 448, 1017, 445, 780, 1013, 423, + 791, 318, 369, 1046, 416, 934, 443, 422, 449, 241, + 446, 117, 282, 895, 345, 345, 268, 271, 272, 1001, + 444, 423, 268, 825, 415, 808, 117, 527, 406, 117, + 117, 733, 710, 644, 635, 268, 271, 272, 416, 394, + 396, 533, 278, 280, 520, 913, 266, 265, 393, 811, + 1009, 404, 241, 405, 268, 315, 267, 269, 270, 401, + 818, 264, 267, 269, 270, 266, 265, 695, 314, 698, + 696, 801, 705, 691, 410, 267, 269, 270, 277, 279, + 264, 1086, 678, 432, 266, 265, 437, 438, 701, 676, + 440, 549, 532, 702, 267, 269, 270, 376, 325, 264, + 420, 1070, 936, 662, 663, 1040, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 676, 478, 480, 532, 484, 326, 695, - 486, 698, 696, 1085, 549, 1040, 268, 248, 494, 497, + 474, 475, 476, 434, 478, 480, 958, 484, 326, 957, + 486, 664, 948, 931, 126, 124, 125, 918, 494, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 434, 325, 887, 958, 414, 957, 948, 330, - 931, 222, 1002, 612, 118, 413, 266, 265, 523, 238, - 525, 918, 849, 337, 1003, 836, 267, 269, 270, 343, - 536, 264, 782, 528, 613, 538, 814, 345, 337, 807, - 805, 859, 799, 392, 326, 761, 542, 750, 118, 126, - 124, 125, 735, 693, 683, 238, 407, 517, 118, 401, - 1073, 846, 550, 531, 965, 952, 951, 238, 915, 839, - 564, 565, 118, 798, 566, 775, 530, 490, 539, 1010, - 477, 346, 343, 571, 522, 548, 576, 524, 337, 485, - 345, 395, 397, 758, 483, 331, 759, 1079, 383, 556, - 560, 380, 379, 364, 329, 7, 355, 332, 611, 654, - 328, 633, 1061, 631, 610, 629, 343, 577, 570, 537, - 491, 127, 489, 543, 345, 401, 1057, 327, 606, 287, - 286, 285, 697, 236, 346, 554, 235, 232, 639, 404, - 253, 130, 1089, 734, 1088, 1056, 540, 535, 282, 513, - 493, 127, 409, 6, 408, 1039, 241, 291, 117, 998, - 959, 954, 947, 615, 122, 899, 847, 835, 346, 834, - 642, 832, 830, 630, 827, 559, 634, 545, 546, 620, - 648, 552, 649, 617, 492, 650, 651, 652, 488, 318, - 268, 271, 272, 608, 5, 618, 545, 442, 546, 546, - 545, 643, 628, 441, 439, 411, 624, 121, 945, 665, - 623, 222, 670, 938, 932, 674, 326, 902, 903, 681, - 266, 265, 896, 657, 337, 686, 637, 640, 337, 638, - 267, 269, 270, 703, 1066, 264, 902, 903, 348, 1041, - 1006, 370, 1005, 992, 704, 325, 547, 653, 943, 707, - 922, 916, 861, 850, 668, 672, 800, 790, 744, 671, - 625, 288, 544, 719, 731, 717, 665, 779, 689, 782, - 440, 129, 341, 669, 282, 373, 374, 268, 226, 890, - 381, 382, 709, 384, 385, 241, 680, 48, 49, 50, - 682, 126, 124, 125, 732, 1060, 675, 324, 241, 400, - 326, 238, 738, 344, 609, 347, 371, 372, 685, 294, - 296, 295, 378, 7, 118, 706, 268, 403, 418, 708, - 292, 293, 377, 656, 754, 437, 756, 516, 988, 937, - 368, 837, 760, 248, 114, 115, 662, 663, 519, 953, - 747, 1058, 920, 404, 927, 418, 926, 719, 1059, 717, - 665, 776, 674, 755, 741, 665, 226, 739, 901, 778, - 418, 6, 370, 665, 114, 115, 749, 547, 419, 737, - 434, 802, 622, 433, 664, 796, 615, 51, 971, 762, - 569, 401, 116, 219, 46, 220, 742, 325, 343, 343, - 1047, 370, 777, 803, 990, 781, 345, 345, 241, 417, - 699, 564, 5, 786, 843, 844, 788, 51, 785, 941, - 719, 250, 116, 665, 227, 665, 752, 234, 113, 813, - 126, 124, 125, 230, 576, 817, 787, 371, 372, 627, - 769, 343, 667, 126, 124, 125, 659, 812, 127, 345, - 346, 346, 388, 389, 626, 828, 510, 809, 806, 955, - 902, 903, 514, 483, 764, 577, 371, 372, 337, 823, - 321, 792, 841, 826, 616, 824, 815, 1, 719, 250, - 717, 665, 848, 320, 319, 665, 665, 748, 665, 665, - 665, 316, 821, 346, 865, 876, 877, 875, 216, 337, - 290, 884, 227, 833, 234, 113, 797, 867, 840, 820, - 85, 719, 241, 717, 665, 868, 1022, 731, 771, 343, - 366, 114, 115, 874, 322, 851, 852, 345, 854, 855, - 857, 437, 853, 246, 860, 856, 858, 919, 518, 878, - 337, 226, 481, 126, 124, 125, 888, 751, 917, 891, - 747, 993, 894, 873, 726, 727, 724, 723, 722, 900, - 1087, 897, 757, 662, 663, 317, 845, 892, 219, 116, - 220, 346, 910, 665, 980, 674, 904, 91, 906, 865, - 912, 813, 928, 921, 838, 226, 905, 902, 903, 893, - 661, 343, 924, 665, 923, 925, 127, 336, 42, 345, - 370, 664, 728, 949, 370, 390, 131, 940, 745, 547, - 933, 956, 114, 115, 225, 942, 370, 929, 962, 370, - 946, 961, 963, 964, 386, 822, 865, 41, 865, 393, - 908, 562, 665, 939, 405, 884, 985, 986, 987, 1007, - 944, 14, 969, 346, 574, 13, 973, 126, 124, 125, - 241, 960, 997, 984, 251, 967, 911, 694, 225, 667, - 116, 983, 402, 54, 996, 371, 372, 53, 568, 371, - 372, 120, 865, 55, 1000, 89, 991, 227, 223, 87, - 567, 371, 372, 387, 371, 372, 78, 370, 1028, 1032, - 1033, 1018, 367, 363, 334, 68, 865, 1037, 1038, 93, - 66, 662, 663, 1027, 1026, 979, 1025, 1043, 1044, 1042, - 1024, 1020, 863, 241, 1029, 117, 1049, 247, 1014, 1030, - 1052, 227, 223, 866, 512, 1036, 36, 244, 1028, 1048, - 44, 1050, 1062, 842, 1055, 1063, 768, 882, 880, 664, - 879, 865, 994, 1067, 714, 436, 870, 425, 215, 412, - 39, 908, 371, 372, 1029, 1070, 403, 38, 37, 869, - 35, 3, 872, 136, 674, 0, 0, 1053, 1080, 1077, - 1076, 1074, 0, 0, 0, 0, 719, 0, 717, 665, - 1082, 258, 282, 0, 0, 126, 124, 125, 0, 1086, - 0, 1090, 1078, 405, 0, 0, 1071, 0, 0, 1072, - 0, 0, 325, 114, 115, 0, 284, 281, 0, 1083, - 0, 0, 0, 873, 726, 727, 724, 723, 722, 0, - 0, 0, 255, 256, 268, 271, 272, 273, 274, 275, - 276, 278, 280, 0, 0, 0, 0, 0, 0, 0, - 261, 529, 529, 0, 0, 0, 51, 0, 126, 124, - 125, 116, 283, 262, 266, 265, 0, 51, 0, 405, - 0, 260, 728, 263, 267, 269, 270, 277, 279, 264, - 0, 118, 0, 0, 0, 0, 589, 590, 583, 157, - 101, 102, 578, 0, 117, 0, 0, 0, 557, 561, - 122, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 191, 192, 193, 194, 195, 183, 184, 602, - 603, 186, 187, 172, 173, 174, 579, 176, 177, 178, - 179, 180, 587, 588, 0, 203, 201, 202, 198, 199, - 0, 0, 580, 605, 197, 601, 597, 598, 599, 594, - 595, 0, 0, 0, 0, 0, 0, 111, 0, 0, - 0, 0, 200, 600, 596, 246, 573, 591, 592, 593, - 150, 151, 152, 153, 604, 581, 158, 159, 160, 584, - 585, 586, 139, 140, 141, 142, 143, 59, 60, 82, + 508, 509, 222, 849, 782, 1002, 414, 118, 836, 814, + 528, 392, 1066, 859, 807, 413, 612, 1003, 523, 238, + 525, 248, 118, 337, 805, 118, 118, 126, 124, 125, + 536, 1074, 548, 799, 330, 538, 343, 613, 337, 667, + 1010, 761, 750, 659, 326, 735, 542, 92, 693, 43, + 683, 407, 405, 965, 887, 238, 915, 517, 401, 839, + 697, 798, 550, 952, 951, 758, 775, 238, 759, 846, + 564, 565, 395, 397, 566, 383, 380, 490, 477, 379, + 345, 364, 355, 571, 522, 485, 576, 332, 337, 343, + 654, 633, 631, 570, 537, 491, 489, 327, 556, 560, + 529, 529, 287, 286, 285, 7, 530, 346, 346, 342, + 349, 611, 531, 236, 235, 629, 577, 610, 405, 127, + 331, 232, 130, 343, 401, 734, 1090, 539, 1089, 329, + 524, 513, 1080, 345, 493, 328, 902, 903, 639, 409, + 253, 408, 945, 291, 540, 902, 903, 557, 561, 127, + 1061, 1057, 1056, 1039, 6, 998, 559, 959, 954, 947, + 899, 847, 835, 615, 834, 832, 543, 345, 404, 830, + 642, 241, 827, 117, 630, 634, 620, 606, 554, 122, + 648, 617, 649, 608, 492, 650, 651, 652, 488, 442, + 637, 618, 640, 441, 5, 623, 439, 411, 318, 938, + 628, 643, 222, 370, 638, 932, 624, 896, 547, 665, + 545, 546, 670, 703, 246, 674, 326, 1041, 1006, 681, + 1005, 766, 121, 992, 337, 686, 943, 922, 337, 545, + 657, 546, 546, 545, 916, 861, 873, 726, 727, 724, + 723, 722, 850, 800, 704, 790, 668, 653, 744, 707, + 671, 625, 288, 348, 544, 672, 779, 782, 953, 268, + 325, 282, 226, 719, 731, 717, 665, 901, 371, 372, + 440, 890, 341, 418, 669, 373, 374, 418, 685, 1060, + 381, 382, 709, 384, 385, 728, 680, 226, 370, 616, + 682, 675, 226, 547, 732, 370, 324, 292, 293, 400, + 326, 238, 738, 268, 609, 378, 126, 124, 125, 294, + 296, 295, 377, 7, 219, 706, 220, 689, 344, 708, + 767, 988, 317, 765, 754, 437, 756, 622, 656, 118, + 368, 417, 760, 346, 937, 483, 114, 115, 837, 370, + 747, 434, 569, 370, 547, 516, 741, 719, 390, 717, + 665, 776, 674, 371, 372, 665, 519, 755, 742, 778, + 371, 372, 6, 665, 1058, 225, 749, 248, 920, 114, + 115, 927, 404, 926, 405, 796, 615, 843, 844, 736, + 401, 1059, 529, 740, 116, 762, 346, 739, 535, 781, + 241, 370, 777, 803, 418, 343, 343, 786, 227, 234, + 113, 564, 5, 568, 371, 372, 788, 785, 371, 372, + 719, 419, 737, 665, 433, 665, 752, 116, 802, 813, + 346, 250, 552, 227, 576, 817, 971, 787, 227, 223, + 769, 1047, 990, 129, 941, 250, 127, 812, 343, 345, + 345, 748, 388, 389, 699, 828, 234, 113, 806, 48, + 49, 50, 216, 809, 577, 567, 371, 372, 337, 823, + 230, 792, 841, 826, 627, 824, 815, 626, 719, 510, + 717, 665, 848, 514, 821, 665, 665, 321, 665, 665, + 665, 320, 345, 319, 865, 876, 877, 875, 316, 337, + 290, 884, 1, 833, 867, 868, 114, 115, 1022, 874, + 820, 719, 403, 717, 665, 771, 366, 731, 322, 851, + 852, 919, 854, 855, 857, 853, 343, 518, 856, 858, + 241, 437, 481, 751, 860, 126, 124, 125, 993, 370, + 337, 955, 902, 903, 367, 1088, 888, 757, 917, 51, + 747, 891, 894, 980, 116, 91, 46, 840, 226, 114, + 115, 897, 661, 900, 336, 42, 845, 892, 131, 921, + 345, 745, 910, 665, 822, 674, 904, 41, 906, 865, + 923, 813, 928, 562, 1007, 219, 14, 220, 878, 969, + 893, 370, 574, 665, 127, 925, 386, 924, 343, 905, + 902, 903, 51, 949, 371, 372, 13, 116, 960, 251, + 933, 956, 694, 402, 940, 942, 54, 929, 962, 325, + 946, 961, 963, 964, 53, 120, 865, 55, 865, 912, + 908, 225, 665, 939, 89, 884, 985, 986, 987, 87, + 944, 967, 345, 78, 363, 334, 68, 93, 66, 241, + 1027, 117, 997, 973, 984, 387, 371, 372, 1026, 1025, + 983, 1024, 991, 863, 996, 126, 124, 125, 247, 1030, + 866, 512, 865, 36, 1000, 244, 979, 44, 842, 768, + 882, 880, 879, 714, 436, 425, 215, 412, 1028, 1032, + 1033, 1018, 403, 39, 227, 223, 865, 1037, 1038, 38, + 37, 35, 346, 346, 483, 764, 3, 1043, 1044, 1042, + 1020, 1036, 136, 1029, 0, 0, 1049, 0, 1014, 0, + 1052, 0, 0, 0, 0, 0, 0, 0, 1028, 1048, + 0, 1050, 1062, 0, 1055, 1063, 0, 1045, 325, 114, + 115, 865, 994, 1067, 0, 346, 0, 797, 0, 0, + 0, 908, 0, 1029, 0, 1071, 0, 0, 0, 0, + 0, 0, 0, 0, 674, 0, 0, 1053, 1081, 1078, + 1077, 1075, 0, 0, 0, 0, 0, 719, 0, 717, + 665, 1083, 51, 0, 126, 124, 125, 116, 0, 0, + 1087, 1079, 1091, 0, 0, 0, 1072, 0, 0, 1073, + 0, 0, 0, 0, 0, 0, 0, 118, 0, 1084, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 346, 0, 838, 0, 589, 590, 583, + 157, 101, 102, 578, 0, 117, 0, 0, 0, 0, + 0, 122, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 191, 192, 193, 194, 195, 183, 184, + 602, 603, 186, 187, 172, 173, 174, 579, 176, 177, + 178, 179, 180, 587, 588, 0, 203, 201, 202, 198, + 199, 0, 0, 580, 605, 197, 601, 597, 598, 599, + 594, 595, 0, 0, 0, 346, 0, 911, 111, 0, + 0, 0, 0, 200, 600, 596, 0, 573, 591, 592, + 593, 150, 151, 152, 153, 604, 581, 158, 159, 160, + 584, 585, 586, 139, 140, 141, 142, 143, 59, 60, + 82, 69, 70, 71, 72, 73, 74, 75, 311, 312, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 0, 582, 0, 0, 126, 124, + 125, 144, 0, 214, 112, 79, 0, 0, 0, 0, + 65, 572, 57, 0, 0, 0, 62, 61, 63, 64, + 77, 118, 589, 590, 583, 157, 101, 102, 578, 0, + 117, 0, 0, 0, 297, 0, 122, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 191, 192, + 193, 194, 195, 183, 184, 602, 603, 186, 187, 172, + 173, 174, 579, 176, 177, 178, 179, 180, 587, 588, + 0, 203, 201, 202, 198, 199, 0, 0, 580, 605, + 197, 601, 597, 598, 599, 594, 595, 0, 0, 0, + 0, 0, 0, 111, 0, 0, 0, 0, 200, 600, + 596, 0, 816, 591, 592, 593, 150, 151, 152, 153, + 604, 581, 158, 159, 160, 584, 585, 586, 139, 140, + 141, 142, 143, 59, 60, 82, 69, 70, 71, 72, + 73, 74, 75, 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, + 582, 0, 0, 126, 124, 125, 144, 0, 214, 112, + 79, 0, 0, 0, 0, 65, 0, 57, 0, 0, + 0, 62, 61, 63, 64, 77, 118, 4, 0, 96, + 97, 76, 52, 101, 102, 34, 0, 117, 0, 25, + 0, 0, 0, 122, 24, 16, 15, 0, 17, 0, + 28, 0, 29, 0, 0, 18, 0, 0, 0, 19, + 20, 33, 45, 113, 11, 21, 31, 0, 0, 32, + 10, 0, 22, 0, 27, 94, 95, 8, 48, 49, + 50, 0, 0, 0, 0, 56, 121, 0, 110, 106, + 107, 108, 103, 104, 0, 0, 0, 0, 0, 0, + 111, 0, 0, 0, 0, 9, 109, 105, 0, 0, + 98, 99, 100, 0, 241, 0, 0, 123, 58, 0, + 0, 0, 80, 81, 23, 114, 115, 0, 0, 0, + 59, 60, 82, 69, 70, 71, 72, 73, 74, 75, + 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, 662, 663, 67, 51, 0, + 126, 124, 125, 116, 0, 46, 112, 79, 12, 743, + 30, 0, 65, 0, 57, 0, 0, 0, 62, 61, + 63, 64, 77, 118, 4, 0, 96, 97, 76, 52, + 101, 102, 34, 664, 117, 0, 25, 0, 0, 0, + 122, 24, 16, 15, 0, 17, 0, 28, 0, 29, + 0, 0, 18, 0, 0, 0, 19, 20, 33, 45, + 113, 11, 21, 31, 0, 0, 32, 10, 0, 22, + 0, 27, 94, 95, 8, 48, 49, 50, 0, 126, + 124, 125, 56, 121, 0, 110, 106, 107, 108, 103, + 104, 667, 0, 0, 0, 0, 0, 111, 0, 0, + 0, 0, 9, 109, 105, 0, 0, 98, 99, 100, + 0, 241, 0, 0, 123, 58, 0, 0, 0, 80, + 81, 23, 114, 115, 0, 0, 0, 59, 60, 82, 69, 70, 71, 72, 73, 74, 75, 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, 582, 0, 0, 126, 124, 125, - 144, 0, 214, 112, 79, 0, 0, 0, 0, 65, - 572, 57, 0, 0, 0, 62, 61, 63, 64, 77, - 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 589, 590, 583, 157, 101, 102, 578, 0, 117, 0, - 0, 0, 0, 0, 122, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 191, 192, 193, 194, - 195, 183, 184, 602, 603, 186, 187, 172, 173, 174, - 579, 176, 177, 178, 179, 180, 587, 588, 0, 203, - 201, 202, 198, 199, 0, 0, 580, 605, 197, 601, - 597, 598, 599, 594, 595, 405, 0, 0, 0, 0, - 736, 111, 0, 529, 740, 0, 200, 600, 596, 0, - 816, 591, 592, 593, 150, 151, 152, 153, 604, 581, - 158, 159, 160, 584, 585, 586, 139, 140, 141, 142, - 143, 59, 60, 82, 69, 70, 71, 72, 73, 74, - 75, 0, 311, 312, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 309, 310, 582, 0, - 0, 126, 124, 125, 144, 0, 214, 112, 79, 0, - 0, 0, 0, 65, 0, 57, 0, 0, 0, 62, - 61, 63, 64, 77, 118, 4, 0, 96, 97, 76, - 52, 101, 102, 34, 0, 117, 0, 25, 297, 0, + 0, 0, 662, 663, 67, 51, 0, 126, 124, 125, + 116, 0, 46, 112, 79, 12, 619, 30, 0, 65, + 0, 57, 0, 0, 0, 62, 61, 63, 64, 77, + 118, 4, 0, 96, 97, 76, 52, 101, 102, 34, + 664, 117, 0, 25, 0, 0, 0, 122, 24, 16, + 15, 0, 17, 0, 28, 0, 29, 0, 0, 18, + 0, 0, 0, 19, 20, 33, 45, 113, 11, 21, + 31, 0, 0, 32, 10, 0, 22, 0, 27, 94, + 95, 8, 48, 49, 50, 0, 126, 124, 125, 56, + 121, 0, 110, 106, 107, 108, 103, 104, 0, 0, + 0, 0, 0, 0, 111, 0, 0, 0, 0, 9, + 109, 105, 0, 0, 98, 99, 100, 0, 0, 0, + 0, 123, 58, 0, 0, 0, 80, 81, 23, 114, + 115, 0, 0, 0, 59, 60, 82, 69, 70, 71, + 72, 73, 74, 75, 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, 67, 51, 0, 126, 124, 125, 116, 0, 46, + 112, 79, 12, 0, 30, 0, 65, 0, 57, 0, + 0, 0, 62, 61, 63, 64, 77, 118, 427, 0, + 96, 97, 76, 52, 101, 102, 34, 0, 117, 0, + 25, 0, 0, 0, 122, 24, 16, 15, 0, 17, + 0, 28, 0, 29, 0, 0, 18, 0, 0, 0, + 19, 20, 33, 45, 113, 0, 21, 31, 0, 0, + 32, 0, 0, 22, 0, 27, 94, 95, 431, 48, + 49, 50, 0, 0, 0, 0, 56, 121, 0, 110, + 106, 107, 108, 103, 104, 0, 0, 0, 0, 0, + 0, 111, 0, 0, 0, 0, 0, 109, 105, 0, + 0, 98, 99, 100, 0, 0, 0, 0, 123, 58, + 0, 0, 0, 80, 81, 23, 114, 115, 0, 0, + 0, 59, 60, 82, 69, 70, 71, 72, 73, 74, + 75, 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, 67, 51, + 0, 126, 124, 125, 116, 0, 46, 112, 79, 12, + 1092, 30, 0, 65, 0, 57, 0, 0, 0, 62, + 61, 63, 64, 77, 118, 427, 0, 96, 97, 76, + 52, 101, 102, 34, 0, 117, 0, 25, 0, 0, 0, 122, 24, 16, 15, 0, 17, 0, 28, 0, 29, 0, 0, 18, 0, 0, 0, 19, 20, 33, - 45, 113, 11, 21, 31, 0, 0, 32, 10, 0, - 22, 0, 27, 94, 95, 8, 48, 49, 50, 0, + 45, 113, 0, 21, 31, 0, 0, 32, 0, 0, + 22, 0, 27, 94, 95, 431, 48, 49, 50, 0, 0, 0, 0, 56, 121, 0, 110, 106, 107, 108, 103, 104, 0, 0, 0, 0, 0, 0, 111, 0, - 0, 0, 0, 9, 109, 105, 0, 0, 98, 99, + 0, 0, 0, 0, 109, 105, 0, 0, 98, 99, 100, 0, 0, 0, 0, 123, 58, 0, 0, 0, 80, 81, 23, 114, 115, 0, 0, 0, 59, 60, 82, 69, 70, 71, 72, 73, 74, 75, 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, 67, 51, 0, 126, 124, - 125, 116, 0, 46, 112, 79, 12, 743, 30, 0, + 125, 116, 0, 46, 112, 79, 12, 1085, 30, 0, 65, 0, 57, 0, 0, 0, 62, 61, 63, 64, - 77, 118, 4, 0, 96, 97, 76, 52, 101, 102, + 77, 118, 427, 0, 96, 97, 76, 52, 101, 102, 34, 0, 117, 0, 25, 0, 0, 0, 122, 24, 16, 15, 0, 17, 0, 28, 0, 29, 0, 0, - 18, 0, 0, 0, 19, 20, 33, 45, 113, 11, - 21, 31, 0, 0, 32, 10, 0, 22, 0, 27, - 94, 95, 8, 48, 49, 50, 0, 0, 0, 0, + 18, 0, 0, 0, 19, 20, 33, 45, 113, 0, + 21, 31, 0, 0, 32, 0, 0, 22, 0, 27, + 94, 95, 431, 48, 49, 50, 0, 0, 0, 0, 56, 121, 0, 110, 106, 107, 108, 103, 104, 0, 0, 0, 0, 0, 0, 111, 0, 0, 0, 0, - 9, 109, 105, 0, 0, 98, 99, 100, 0, 0, + 0, 109, 105, 0, 0, 98, 99, 100, 0, 0, 0, 0, 123, 58, 0, 0, 0, 80, 81, 23, 114, 115, 0, 0, 0, 59, 60, 82, 69, 70, 71, 72, 73, 74, 75, 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, 67, 51, 0, 126, 124, 125, 116, 0, - 46, 112, 79, 12, 619, 30, 0, 65, 0, 57, - 0, 0, 0, 62, 61, 63, 64, 77, 118, 4, + 46, 112, 79, 12, 1082, 30, 0, 65, 0, 57, + 0, 0, 0, 62, 61, 63, 64, 77, 118, 427, 0, 96, 97, 76, 52, 101, 102, 34, 0, 117, 0, 25, 0, 0, 0, 122, 24, 16, 15, 0, 17, 0, 28, 0, 29, 0, 0, 18, 0, 0, - 0, 19, 20, 33, 45, 113, 11, 21, 31, 0, - 0, 32, 10, 0, 22, 0, 27, 94, 95, 8, + 0, 19, 20, 33, 45, 113, 0, 21, 31, 0, + 0, 32, 0, 0, 22, 0, 27, 94, 95, 431, 48, 49, 50, 0, 0, 0, 0, 56, 121, 0, 110, 106, 107, 108, 103, 104, 0, 0, 0, 0, - 0, 0, 111, 0, 0, 0, 0, 9, 109, 105, + 0, 0, 111, 0, 0, 0, 0, 0, 109, 105, 0, 0, 98, 99, 100, 0, 0, 0, 0, 123, 58, 0, 0, 0, 80, 81, 23, 114, 115, 0, 0, 0, 59, 60, 82, 69, 70, 71, 72, 73, @@ -835,7 +896,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 51, 0, 126, 124, 125, 116, 0, 46, 112, 79, - 12, 0, 30, 0, 65, 0, 57, 0, 0, 0, + 12, 1069, 30, 0, 65, 0, 57, 0, 0, 0, 62, 61, 63, 64, 77, 118, 427, 0, 96, 97, 76, 52, 101, 102, 34, 0, 117, 0, 25, 0, 0, 0, 122, 24, 16, 15, 0, 17, 0, 28, @@ -851,11 +912,11 @@ var yyAct = [...]int{ 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, 67, 51, 0, 126, - 124, 125, 116, 0, 46, 112, 79, 12, 1091, 30, + 124, 125, 116, 0, 46, 112, 79, 12, 1068, 30, 0, 65, 0, 57, 0, 0, 0, 62, 61, 63, 64, 77, 118, 427, 0, 96, 97, 76, 52, 101, 102, 34, 0, 117, 0, 25, 0, 0, 0, 122, - 24, 16, 15, 0, 17, 0, 28, 0, 29, 0, + 24, 16, 15, 0, 17, 1065, 28, 0, 29, 0, 0, 18, 0, 0, 0, 19, 20, 33, 45, 113, 0, 21, 31, 0, 0, 32, 0, 0, 22, 0, 27, 94, 95, 431, 48, 49, 50, 0, 0, 0, @@ -868,7 +929,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 51, 0, 126, 124, 125, 116, - 0, 46, 112, 79, 12, 1084, 30, 0, 65, 0, + 0, 46, 112, 79, 12, 0, 30, 0, 65, 0, 57, 0, 0, 0, 62, 61, 63, 64, 77, 118, 427, 0, 96, 97, 76, 52, 101, 102, 34, 0, 117, 0, 25, 0, 0, 0, 122, 24, 16, 15, @@ -885,11 +946,11 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 51, 0, 126, 124, 125, 116, 0, 46, 112, - 79, 12, 1081, 30, 0, 65, 0, 57, 0, 0, + 79, 12, 1004, 30, 0, 65, 0, 57, 0, 0, 0, 62, 61, 63, 64, 77, 118, 427, 0, 96, 97, 76, 52, 101, 102, 34, 0, 117, 0, 25, 0, 0, 0, 122, 24, 16, 15, 0, 17, 0, - 28, 0, 29, 0, 0, 18, 0, 0, 0, 19, + 28, 999, 29, 0, 0, 18, 0, 0, 0, 19, 20, 33, 45, 113, 0, 21, 31, 0, 0, 32, 0, 0, 22, 0, 27, 94, 95, 431, 48, 49, 50, 0, 0, 0, 0, 56, 121, 0, 110, 106, @@ -901,12 +962,12 @@ var yyAct = [...]int{ 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, 67, 51, 0, - 126, 124, 125, 116, 0, 46, 112, 79, 12, 1069, + 126, 124, 125, 116, 0, 46, 112, 79, 12, 0, 30, 0, 65, 0, 57, 0, 0, 0, 62, 61, 63, 64, 77, 118, 427, 0, 96, 97, 76, 52, 101, 102, 34, 0, 117, 0, 25, 0, 0, 0, 122, 24, 16, 15, 0, 17, 0, 28, 0, 29, - 0, 0, 18, 0, 0, 0, 19, 20, 33, 45, + 914, 0, 18, 0, 0, 0, 19, 20, 33, 45, 113, 0, 21, 31, 0, 0, 32, 0, 0, 22, 0, 27, 94, 95, 431, 48, 49, 50, 0, 0, 0, 0, 56, 121, 0, 110, 106, 107, 108, 103, @@ -918,11 +979,11 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 51, 0, 126, 124, 125, - 116, 0, 46, 112, 79, 12, 1068, 30, 0, 65, + 116, 0, 46, 112, 79, 12, 0, 30, 0, 65, 0, 57, 0, 0, 0, 62, 61, 63, 64, 77, 118, 427, 0, 96, 97, 76, 52, 101, 102, 34, 0, 117, 0, 25, 0, 0, 0, 122, 24, 16, - 15, 0, 17, 1065, 28, 0, 29, 0, 0, 18, + 15, 898, 17, 0, 28, 0, 29, 0, 0, 18, 0, 0, 0, 19, 20, 33, 45, 113, 0, 21, 31, 0, 0, 32, 0, 0, 22, 0, 27, 94, 95, 431, 48, 49, 50, 0, 0, 0, 0, 56, @@ -946,16 +1007,16 @@ var yyAct = [...]int{ 106, 107, 108, 103, 104, 0, 0, 0, 0, 0, 0, 111, 0, 0, 0, 0, 0, 109, 105, 0, 0, 98, 99, 100, 0, 0, 0, 0, 123, 58, - 0, 0, 0, 80, 81, 23, 114, 115, 0, 0, + 0, 0, 774, 80, 81, 23, 114, 115, 0, 0, 0, 59, 60, 82, 69, 70, 71, 72, 73, 74, 75, 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, 67, 51, 0, 126, 124, 125, 116, 0, 46, 112, 79, 12, - 1004, 30, 0, 65, 0, 57, 0, 0, 0, 62, + 0, 30, 0, 65, 0, 57, 0, 0, 0, 62, 61, 63, 64, 77, 118, 427, 0, 96, 97, 76, 52, 101, 102, 34, 0, 117, 0, 25, 0, 0, - 0, 122, 24, 16, 15, 0, 17, 0, 28, 999, + 0, 122, 24, 16, 15, 0, 17, 0, 28, 0, 29, 0, 0, 18, 0, 0, 0, 19, 20, 33, 45, 113, 0, 21, 31, 0, 0, 32, 0, 0, 22, 0, 27, 94, 95, 431, 48, 49, 50, 0, @@ -968,11 +1029,11 @@ var yyAct = [...]int{ 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, 67, 51, 0, 126, 124, - 125, 116, 0, 46, 112, 79, 12, 0, 30, 0, + 125, 116, 0, 46, 112, 79, 12, 647, 30, 0, 65, 0, 57, 0, 0, 0, 62, 61, 63, 64, 77, 118, 427, 0, 96, 97, 76, 52, 101, 102, 34, 0, 117, 0, 25, 0, 0, 0, 122, 24, - 16, 15, 0, 17, 0, 28, 0, 29, 914, 0, + 16, 15, 0, 17, 0, 28, 0, 29, 0, 0, 18, 0, 0, 0, 19, 20, 33, 45, 113, 0, 21, 31, 0, 0, 32, 0, 0, 22, 0, 27, 94, 95, 431, 48, 49, 50, 0, 0, 0, 0, @@ -985,10 +1046,10 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 51, 0, 126, 124, 125, 116, 0, - 46, 112, 79, 12, 0, 30, 0, 65, 0, 57, + 46, 112, 79, 12, 426, 30, 0, 65, 0, 57, 0, 0, 0, 62, 61, 63, 64, 77, 118, 427, 0, 96, 97, 76, 52, 101, 102, 34, 0, 117, - 0, 25, 0, 0, 0, 122, 24, 16, 15, 898, + 0, 25, 0, 0, 0, 122, 24, 16, 15, 0, 17, 0, 28, 0, 29, 0, 0, 18, 0, 0, 0, 19, 20, 33, 45, 113, 0, 21, 31, 0, 0, 32, 0, 0, 22, 0, 27, 94, 95, 431, @@ -1003,75 +1064,138 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 51, 0, 126, 124, 125, 116, 0, 46, 112, 79, 12, 0, 30, 0, 65, 0, 57, 0, 0, 0, - 62, 61, 63, 64, 77, 118, 427, 0, 96, 97, - 76, 52, 101, 102, 34, 0, 117, 0, 25, 0, - 0, 0, 122, 24, 16, 15, 0, 17, 0, 28, - 0, 29, 0, 0, 18, 0, 0, 0, 19, 20, - 33, 45, 113, 0, 21, 31, 0, 0, 32, 0, - 0, 22, 0, 27, 94, 95, 431, 48, 49, 50, - 0, 0, 0, 0, 56, 121, 0, 110, 106, 107, - 108, 103, 104, 0, 0, 0, 0, 0, 0, 111, - 0, 0, 0, 0, 0, 109, 105, 0, 0, 98, - 99, 100, 0, 0, 0, 0, 123, 58, 0, 0, - 774, 80, 81, 23, 114, 115, 0, 0, 0, 59, - 60, 82, 69, 70, 71, 72, 73, 74, 75, 0, + 62, 61, 63, 64, 77, 118, 145, 146, 156, 157, + 0, 0, 135, 0, 117, 0, 0, 0, 0, 0, + 0, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 191, 192, 193, 194, 195, 183, 184, 185, + 212, 186, 187, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 0, 203, 201, 202, 198, 199, + 0, 0, 190, 196, 197, 204, 205, 207, 206, 208, + 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 200, 211, 210, 0, 0, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 158, 159, 160, 188, + 189, 138, 139, 140, 141, 142, 143, 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, 67, 51, 0, 126, - 124, 125, 116, 0, 46, 112, 79, 12, 0, 30, - 0, 65, 0, 57, 0, 0, 0, 62, 61, 63, - 64, 77, 118, 427, 0, 96, 97, 76, 52, 101, - 102, 34, 0, 117, 0, 25, 0, 0, 0, 122, - 24, 16, 15, 0, 17, 0, 28, 0, 29, 0, - 0, 18, 0, 0, 0, 19, 20, 33, 45, 113, - 0, 21, 31, 0, 0, 32, 0, 0, 22, 0, - 27, 94, 95, 431, 48, 49, 50, 0, 0, 0, - 0, 56, 121, 0, 110, 106, 107, 108, 103, 104, - 0, 0, 0, 0, 0, 0, 111, 0, 0, 0, - 0, 0, 109, 105, 0, 0, 98, 99, 100, 0, - 0, 0, 0, 123, 58, 0, 0, 0, 80, 81, - 23, 114, 115, 0, 0, 0, 59, 60, 82, 69, - 70, 71, 72, 73, 74, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 213, 0, 0, 0, 0, 0, + 144, 0, 214, 0, 0, 558, 145, 146, 156, 157, + 0, 0, 578, 0, 0, 0, 0, 0, 0, 0, + 118, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 191, 192, 193, 194, 195, 183, 184, 185, + 212, 186, 187, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 0, 203, 201, 202, 198, 199, + 870, 0, 190, 976, 977, 204, 205, 207, 206, 208, + 209, 0, 0, 869, 0, 0, 872, 0, 0, 0, + 0, 0, 200, 211, 210, 0, 0, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 158, 159, 160, 188, + 189, 978, 139, 140, 141, 142, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 67, 51, 0, 126, 124, 125, 116, - 0, 46, 112, 79, 12, 647, 30, 0, 65, 0, - 57, 0, 0, 0, 62, 61, 63, 64, 77, 118, - 427, 0, 96, 97, 76, 52, 101, 102, 34, 0, - 117, 0, 25, 0, 0, 0, 122, 24, 16, 15, - 0, 17, 0, 28, 0, 29, 0, 0, 18, 0, - 0, 0, 19, 20, 33, 45, 113, 0, 21, 31, - 0, 0, 32, 0, 0, 22, 0, 27, 94, 95, - 431, 48, 49, 50, 0, 0, 0, 0, 56, 121, - 0, 110, 106, 107, 108, 103, 104, 0, 0, 0, - 0, 0, 0, 111, 0, 0, 0, 0, 0, 109, - 105, 0, 0, 98, 99, 100, 0, 0, 0, 0, - 123, 58, 0, 0, 0, 80, 81, 23, 114, 115, - 0, 0, 0, 59, 60, 82, 69, 70, 71, 72, - 73, 74, 75, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 873, 726, 727, + 724, 723, 722, 0, 0, 0, 0, 0, 0, 0, + 241, 0, 0, 0, 213, 870, 0, 126, 124, 125, + 144, 0, 214, 0, 0, 0, 0, 0, 869, 667, + 0, 872, 0, 659, 96, 97, 76, 52, 101, 102, + 34, 51, 117, 0, 25, 0, 728, 0, 122, 24, + 16, 15, 1064, 17, 0, 28, 0, 29, 0, 0, + 18, 662, 663, 0, 19, 20, 33, 234, 113, 0, + 21, 31, 0, 0, 32, 0, 0, 22, 0, 27, + 94, 95, 873, 726, 727, 724, 723, 722, 0, 0, + 56, 121, 0, 110, 106, 107, 108, 103, 104, 725, + 726, 727, 724, 723, 722, 111, 0, 0, 0, 0, + 0, 109, 105, 0, 0, 98, 99, 100, 0, 0, + 0, 0, 123, 58, 0, 0, 51, 80, 81, 23, + 0, 728, 0, 0, 0, 59, 60, 82, 69, 70, + 71, 72, 73, 74, 75, 126, 124, 125, 728, 0, + 0, 0, 0, 0, 0, 0, 0, 667, 0, 0, + 0, 659, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 67, 0, 0, 126, 124, 125, 0, 0, + 0, 112, 79, 12, 0, 30, 909, 65, 0, 57, + 0, 0, 0, 62, 61, 63, 64, 77, 118, 96, + 97, 76, 52, 101, 102, 34, 0, 117, 0, 25, + 0, 0, 0, 122, 24, 16, 15, 0, 17, 0, + 28, 0, 29, 0, 0, 18, 0, 0, 0, 19, + 20, 33, 234, 113, 0, 21, 31, 0, 0, 32, + 0, 0, 22, 0, 27, 94, 95, 0, 0, 0, + 0, 0, 0, 0, 0, 56, 121, 0, 110, 106, + 107, 108, 103, 104, 0, 0, 0, 0, 0, 0, + 111, 0, 0, 0, 0, 0, 109, 105, 0, 0, + 98, 99, 100, 0, 0, 0, 0, 123, 58, 0, + 0, 0, 80, 81, 23, 0, 0, 0, 0, 0, + 59, 60, 82, 69, 70, 71, 72, 73, 74, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 51, 0, 126, 124, 125, 116, 0, 46, 112, - 79, 12, 426, 30, 0, 65, 0, 57, 0, 0, - 0, 62, 61, 63, 64, 77, 118, 427, 0, 96, + 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, + 126, 124, 125, 0, 0, 0, 112, 79, 12, 0, + 30, 995, 65, 0, 57, 0, 0, 0, 62, 61, + 63, 64, 77, 118, 96, 97, 76, 52, 101, 102, + 34, 0, 117, 0, 25, 0, 0, 0, 122, 24, + 16, 15, 0, 17, 0, 28, 0, 29, 0, 0, + 18, 0, 0, 0, 19, 20, 33, 234, 113, 0, + 21, 31, 0, 0, 32, 0, 0, 22, 0, 27, + 94, 95, 0, 0, 0, 0, 0, 0, 0, 0, + 56, 121, 0, 110, 106, 107, 108, 103, 104, 0, + 0, 0, 0, 0, 0, 111, 0, 0, 0, 0, + 0, 109, 105, 0, 0, 98, 99, 100, 0, 0, + 0, 0, 123, 58, 0, 0, 0, 80, 81, 23, + 0, 0, 0, 0, 0, 59, 60, 82, 69, 70, + 71, 72, 73, 74, 75, 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, 67, 0, 0, 126, 124, 125, 0, 0, + 0, 112, 79, 12, 0, 30, 793, 65, 0, 57, + 0, 0, 0, 62, 61, 63, 64, 77, 118, 96, 97, 76, 52, 101, 102, 34, 0, 117, 0, 25, 0, 0, 0, 122, 24, 16, 15, 0, 17, 0, 28, 0, 29, 0, 0, 18, 0, 0, 0, 19, - 20, 33, 45, 113, 0, 21, 31, 0, 0, 32, - 0, 0, 22, 0, 27, 94, 95, 431, 48, 49, - 50, 0, 0, 0, 0, 56, 121, 0, 110, 106, + 20, 33, 234, 113, 0, 21, 31, 0, 0, 32, + 0, 0, 22, 0, 27, 94, 95, 0, 0, 0, + 0, 0, 0, 0, 0, 56, 121, 0, 110, 106, 107, 108, 103, 104, 0, 0, 0, 0, 0, 0, 111, 0, 0, 0, 0, 0, 109, 105, 0, 0, 98, 99, 100, 0, 0, 0, 0, 123, 58, 0, - 0, 0, 80, 81, 23, 114, 115, 0, 0, 0, + 0, 0, 80, 81, 23, 0, 0, 0, 0, 0, 59, 60, 82, 69, 70, 71, 72, 73, 74, 75, 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, 67, 51, 0, - 126, 124, 125, 116, 0, 46, 112, 79, 12, 0, + 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, + 126, 124, 125, 0, 0, 0, 112, 79, 12, 0, + 30, 770, 65, 0, 57, 0, 0, 0, 62, 61, + 63, 64, 77, 118, 96, 97, 76, 52, 101, 102, + 34, 0, 117, 0, 25, 0, 0, 0, 122, 24, + 16, 15, 0, 17, 0, 28, 0, 29, 0, 0, + 18, 0, 0, 0, 19, 20, 33, 234, 113, 0, + 21, 31, 0, 0, 32, 0, 0, 22, 0, 27, + 94, 95, 0, 0, 0, 0, 0, 0, 0, 0, + 56, 121, 0, 110, 106, 107, 108, 103, 104, 0, + 0, 0, 0, 0, 0, 111, 0, 0, 0, 0, + 0, 109, 105, 0, 0, 98, 99, 100, 0, 0, + 0, 0, 123, 58, 0, 0, 0, 80, 81, 23, + 0, 0, 0, 0, 0, 59, 60, 82, 69, 70, + 71, 72, 73, 74, 75, 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, 67, 0, 0, 126, 124, 125, 0, 0, + 0, 112, 79, 12, 0, 30, 753, 65, 0, 57, + 0, 0, 0, 62, 61, 63, 64, 77, 118, 96, + 97, 76, 52, 101, 102, 34, 0, 117, 0, 25, + 0, 0, 0, 122, 24, 16, 15, 0, 17, 0, + 28, 0, 29, 0, 0, 18, 0, 0, 0, 19, + 20, 33, 234, 113, 0, 21, 31, 0, 0, 32, + 0, 0, 22, 0, 27, 94, 95, 0, 0, 0, + 0, 0, 0, 0, 0, 56, 121, 0, 110, 106, + 107, 108, 103, 104, 0, 0, 0, 0, 0, 0, + 111, 0, 0, 0, 0, 0, 109, 105, 0, 0, + 98, 99, 100, 0, 0, 0, 0, 123, 58, 0, + 0, 0, 80, 81, 23, 0, 0, 0, 0, 0, + 59, 60, 82, 69, 70, 71, 72, 73, 74, 75, + 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, 67, 0, 0, + 126, 124, 125, 0, 0, 0, 112, 79, 12, 0, 30, 0, 65, 0, 57, 0, 0, 0, 62, 61, 63, 64, 77, 118, 145, 146, 156, 157, 0, 0, - 135, 0, 117, 0, 0, 0, 0, 0, 0, 161, + 578, 0, 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 191, 192, 193, 194, 195, 183, 184, 185, 212, 186, 187, 172, 173, 174, 175, 176, 177, 178, 179, 180, @@ -1084,232 +1208,152 @@ var yyAct = [...]int{ 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, 213, 0, 0, 0, 0, 0, 144, 0, - 214, 0, 0, 558, 145, 146, 156, 157, 0, 0, - 578, 0, 0, 0, 0, 0, 0, 0, 118, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 191, 192, 193, 194, 195, 183, 184, 185, 212, 186, - 187, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 0, 203, 201, 202, 198, 199, 870, 0, - 190, 976, 977, 204, 205, 207, 206, 208, 209, 0, - 0, 869, 0, 0, 872, 0, 0, 0, 0, 0, - 200, 211, 210, 0, 0, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 158, 159, 160, 188, 189, 978, - 139, 140, 141, 142, 143, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 873, 726, 727, 724, 723, - 722, 0, 0, 0, 0, 0, 0, 0, 241, 0, 0, 0, 213, 0, 0, 126, 124, 125, 144, 0, - 214, 0, 0, 0, 0, 0, 0, 667, 0, 0, - 0, 659, 96, 97, 76, 52, 101, 102, 34, 51, - 117, 0, 25, 0, 728, 0, 122, 24, 16, 15, - 1064, 17, 0, 28, 0, 29, 0, 0, 18, 662, - 663, 0, 19, 20, 33, 234, 113, 0, 21, 31, - 0, 0, 32, 0, 0, 22, 0, 27, 94, 95, - 0, 0, 0, 0, 0, 0, 0, 0, 56, 121, - 0, 110, 106, 107, 108, 103, 104, 725, 726, 727, - 724, 723, 722, 111, 0, 0, 0, 0, 0, 109, - 105, 0, 0, 98, 99, 100, 0, 0, 0, 0, - 123, 58, 0, 0, 0, 80, 81, 23, 0, 0, - 0, 0, 0, 59, 60, 82, 69, 70, 71, 72, - 73, 74, 75, 126, 124, 125, 728, 0, 0, 0, - 0, 0, 0, 0, 0, 667, 0, 0, 0, 659, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 0, 0, 126, 124, 125, 0, 0, 0, 112, - 79, 12, 0, 30, 909, 65, 0, 57, 0, 0, - 0, 62, 61, 63, 64, 77, 118, 96, 97, 76, - 52, 101, 102, 34, 0, 117, 0, 25, 0, 0, - 0, 122, 24, 16, 15, 0, 17, 0, 28, 0, - 29, 0, 0, 18, 0, 0, 0, 19, 20, 33, - 234, 113, 0, 21, 31, 0, 0, 32, 0, 0, - 22, 0, 27, 94, 95, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 121, 0, 110, 106, 107, 108, - 103, 104, 0, 0, 0, 0, 0, 0, 111, 0, - 0, 0, 0, 0, 109, 105, 0, 0, 98, 99, - 100, 0, 0, 0, 0, 123, 58, 0, 0, 0, - 80, 81, 23, 0, 0, 0, 0, 0, 59, 60, - 82, 69, 70, 71, 72, 73, 74, 75, 0, 0, + 214, 0, 0, 870, 1054, 145, 146, 156, 157, 0, + 0, 578, 0, 0, 0, 0, 869, 0, 0, 872, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 191, 192, 193, 194, 195, 183, 184, 185, 212, + 186, 187, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 0, 203, 201, 202, 198, 199, 0, + 0, 190, 196, 197, 204, 205, 207, 206, 208, 209, + 873, 726, 727, 724, 723, 722, 0, 0, 0, 0, + 0, 200, 211, 210, 0, 0, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 158, 159, 160, 188, 189, + 138, 139, 140, 141, 142, 143, 0, 0, 0, 0, + 0, 0, 0, 0, 51, 0, 0, 0, 0, 728, + 0, 0, 0, 0, 0, 1035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 213, 0, 0, 126, 124, 125, 144, + 0, 214, 0, 0, 870, 1021, 145, 146, 156, 157, + 0, 0, 135, 0, 0, 0, 0, 869, 0, 0, + 872, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 191, 192, 193, 194, 195, 183, 184, 185, + 212, 186, 187, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 0, 203, 201, 202, 198, 199, + 0, 0, 190, 196, 197, 204, 205, 207, 206, 208, + 209, 873, 726, 727, 724, 723, 722, 0, 0, 0, + 0, 0, 200, 211, 210, 0, 0, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 158, 159, 160, 188, + 189, 138, 139, 140, 141, 142, 143, 0, 0, 0, + 0, 0, 0, 0, 0, 51, 0, 0, 0, 0, + 728, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 67, 0, 0, 126, 124, - 125, 0, 0, 0, 112, 79, 12, 0, 30, 995, - 65, 0, 57, 0, 0, 0, 62, 61, 63, 64, - 77, 118, 96, 97, 76, 52, 101, 102, 34, 0, - 117, 0, 25, 0, 0, 0, 122, 24, 16, 15, - 0, 17, 0, 28, 0, 29, 0, 0, 18, 0, - 0, 0, 19, 20, 33, 234, 113, 0, 21, 31, - 0, 0, 32, 0, 0, 22, 0, 27, 94, 95, - 0, 0, 0, 0, 0, 0, 0, 0, 56, 121, - 0, 110, 106, 107, 108, 103, 104, 0, 0, 0, - 0, 0, 0, 111, 0, 0, 0, 0, 0, 109, - 105, 0, 0, 98, 99, 100, 0, 0, 0, 0, - 123, 58, 0, 0, 0, 80, 81, 23, 0, 0, - 0, 0, 0, 59, 60, 82, 69, 70, 71, 72, - 73, 74, 75, 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, - 67, 0, 0, 126, 124, 125, 0, 0, 0, 112, - 79, 12, 0, 30, 793, 65, 0, 57, 0, 0, - 0, 62, 61, 63, 64, 77, 118, 96, 97, 76, - 52, 101, 102, 34, 0, 117, 0, 25, 0, 0, - 0, 122, 24, 16, 15, 0, 17, 0, 28, 0, - 29, 0, 0, 18, 0, 0, 0, 19, 20, 33, - 234, 113, 0, 21, 31, 0, 0, 32, 0, 0, - 22, 0, 27, 94, 95, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 121, 0, 110, 106, 107, 108, - 103, 104, 0, 0, 0, 0, 0, 0, 111, 0, - 0, 0, 0, 0, 109, 105, 0, 0, 98, 99, - 100, 0, 0, 0, 0, 123, 58, 0, 0, 0, - 80, 81, 23, 0, 0, 0, 0, 0, 59, 60, - 82, 69, 70, 71, 72, 73, 74, 75, 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, 67, 0, 0, 126, 124, - 125, 0, 0, 0, 112, 79, 12, 0, 30, 770, - 65, 0, 57, 0, 0, 0, 62, 61, 63, 64, - 77, 118, 96, 97, 76, 52, 101, 102, 34, 0, - 117, 0, 25, 0, 0, 0, 122, 24, 16, 15, - 0, 17, 0, 28, 0, 29, 0, 0, 18, 0, - 0, 0, 19, 20, 33, 234, 113, 0, 21, 31, - 0, 0, 32, 0, 0, 22, 0, 27, 94, 95, - 0, 0, 0, 0, 0, 0, 0, 0, 56, 121, + 0, 0, 0, 0, 213, 0, 0, 0, 134, 0, + 144, 0, 214, 0, 870, 132, 145, 146, 156, 157, + 0, 0, 135, 0, 0, 0, 0, 869, 0, 0, + 872, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 191, 192, 193, 194, 195, 183, 184, 185, + 212, 186, 187, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 0, 203, 201, 202, 198, 199, + 0, 0, 190, 196, 197, 204, 205, 207, 206, 208, + 209, 873, 726, 727, 724, 723, 722, 0, 0, 0, + 0, 0, 200, 211, 210, 0, 0, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 158, 159, 160, 188, + 189, 138, 139, 140, 141, 142, 143, 0, 0, 0, + 0, 0, 0, 0, 0, 51, 0, 0, 0, 0, + 728, 0, 0, 0, 0, 0, 968, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, + 146, 156, 157, 0, 213, 1076, 0, 0, 0, 0, + 144, 0, 214, 0, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 191, 192, 193, 194, 195, + 183, 184, 185, 212, 186, 187, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 0, 203, 201, + 202, 198, 199, 0, 870, 190, 196, 197, 204, 205, + 207, 206, 208, 209, 0, 0, 0, 869, 0, 0, + 872, 0, 0, 0, 0, 200, 211, 210, 0, 0, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 158, + 159, 160, 188, 189, 873, 726, 727, 724, 723, 722, + 96, 97, 76, 0, 101, 102, 241, 0, 117, 0, + 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, + 0, 873, 726, 727, 724, 723, 722, 0, 0, 0, + 0, 0, 0, 234, 113, 0, 0, 213, 0, 241, + 239, 0, 0, 728, 0, 214, 94, 95, 0, 0, + 0, 0, 0, 0, 0, 0, 340, 121, 0, 110, + 106, 107, 108, 103, 104, 51, 0, 0, 0, 0, + 728, 111, 0, 0, 0, 0, 966, 109, 105, 0, + 339, 98, 99, 100, 0, 0, 0, 0, 123, 58, + 662, 663, 0, 80, 81, 240, 0, 0, 0, 0, + 0, 59, 60, 82, 69, 70, 71, 72, 73, 74, + 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 725, 726, + 727, 724, 723, 722, 0, 0, 0, 0, 67, 0, + 0, 126, 124, 125, 0, 0, 0, 112, 79, 0, + 0, 0, 0, 65, 0, 57, 0, 0, 338, 62, + 61, 63, 64, 77, 118, 96, 97, 76, 0, 101, + 102, 241, 51, 117, 126, 124, 125, 728, 0, 122, + 0, 0, 0, 0, 0, 0, 667, 0, 0, 0, + 659, 0, 0, 0, 0, 0, 0, 0, 234, 113, + 0, 0, 0, 0, 0, 239, 0, 0, 0, 0, + 0, 94, 95, 0, 0, 0, 0, 0, 0, 0, + 0, 56, 121, 0, 110, 106, 107, 108, 103, 104, + 0, 0, 0, 0, 0, 0, 111, 0, 0, 0, + 0, 0, 109, 105, 0, 0, 98, 99, 100, 0, + 0, 0, 0, 123, 58, 0, 0, 0, 80, 81, + 240, 0, 0, 0, 0, 0, 59, 60, 82, 69, + 70, 71, 72, 73, 74, 75, 0, 0, 0, 0, + 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 869, 0, 0, + 872, 0, 0, 67, 0, 0, 126, 124, 125, 0, + 495, 0, 112, 79, 0, 0, 0, 0, 65, 0, + 57, 0, 0, 496, 62, 61, 63, 64, 77, 118, + 96, 97, 76, 0, 101, 102, 241, 0, 117, 0, + 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, + 0, 873, 726, 727, 724, 723, 722, 0, 0, 883, + 0, 0, 0, 234, 113, 0, 0, 0, 0, 0, + 239, 0, 0, 0, 0, 0, 94, 95, 0, 0, + 0, 0, 0, 0, 0, 0, 56, 121, 0, 110, + 106, 107, 108, 103, 104, 51, 0, 0, 0, 0, + 728, 111, 0, 0, 0, 0, 930, 109, 105, 0, + 0, 98, 99, 100, 0, 0, 0, 0, 123, 58, + 0, 0, 0, 80, 81, 240, 0, 0, 0, 0, + 0, 59, 60, 82, 69, 70, 71, 72, 73, 74, + 75, 96, 97, 76, 0, 101, 102, 241, 0, 117, + 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, + 0, 126, 124, 125, 234, 113, 0, 112, 79, 0, + 0, 239, 0, 65, 0, 57, 0, 94, 95, 62, + 61, 63, 64, 77, 118, 0, 0, 56, 121, 0, + 110, 106, 107, 108, 103, 104, 0, 0, 0, 0, + 0, 0, 111, 0, 0, 0, 0, 0, 109, 105, + 0, 0, 98, 99, 100, 0, 0, 0, 0, 123, + 58, 0, 0, 0, 80, 81, 240, 0, 0, 0, + 0, 0, 59, 60, 82, 69, 70, 71, 72, 73, + 74, 75, 96, 97, 76, 0, 101, 102, 241, 0, + 117, 0, 0, 0, 0, 0, 122, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, + 0, 0, 126, 124, 125, 234, 113, 0, 112, 79, + 0, 0, 239, 0, 65, 730, 57, 0, 94, 95, + 62, 61, 63, 64, 77, 118, 0, 0, 688, 121, 0, 110, 106, 107, 108, 103, 104, 0, 0, 0, 0, 0, 0, 111, 0, 0, 0, 0, 0, 109, 105, 0, 0, 98, 99, 100, 0, 0, 0, 0, - 123, 58, 0, 0, 0, 80, 81, 23, 0, 0, + 123, 58, 0, 0, 0, 80, 81, 240, 0, 0, 0, 0, 0, 59, 60, 82, 69, 70, 71, 72, 73, 74, 75, 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, 870, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 869, 0, 0, 872, 0, 0, 67, 0, 0, 126, 124, 125, 0, 0, 0, 112, - 79, 12, 0, 30, 753, 65, 0, 57, 0, 0, - 0, 62, 61, 63, 64, 77, 118, 96, 97, 76, - 52, 101, 102, 34, 0, 117, 0, 25, 0, 0, - 0, 122, 24, 16, 15, 0, 17, 0, 28, 0, - 29, 0, 0, 18, 0, 0, 0, 19, 20, 33, - 234, 113, 0, 21, 31, 0, 0, 32, 0, 0, - 22, 0, 27, 94, 95, 0, 0, 0, 0, 0, + 79, 0, 0, 0, 0, 65, 0, 57, 0, 0, + 687, 62, 61, 63, 64, 77, 118, 96, 97, 76, + 0, 101, 102, 241, 551, 117, 0, 0, 0, 0, + 0, 122, 0, 0, 0, 0, 0, 0, 873, 726, + 727, 724, 723, 722, 0, 0, 0, 0, 0, 0, + 234, 113, 0, 0, 0, 0, 0, 239, 0, 0, + 0, 0, 0, 94, 95, 0, 0, 0, 0, 0, 0, 0, 0, 56, 121, 0, 110, 106, 107, 108, - 103, 104, 0, 0, 0, 0, 0, 0, 111, 0, - 0, 0, 0, 0, 109, 105, 0, 0, 98, 99, + 103, 104, 51, 0, 0, 0, 0, 728, 111, 0, + 0, 0, 0, 862, 109, 105, 0, 0, 98, 99, 100, 0, 0, 0, 0, 123, 58, 0, 0, 0, - 80, 81, 23, 0, 0, 0, 0, 0, 59, 60, - 82, 69, 70, 71, 72, 73, 74, 75, 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, 67, 0, 0, 126, 124, - 125, 0, 0, 0, 112, 79, 12, 0, 30, 0, - 65, 0, 57, 0, 0, 0, 62, 61, 63, 64, - 77, 118, 145, 146, 156, 157, 0, 0, 578, 0, - 0, 0, 0, 0, 0, 0, 0, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 191, 192, - 193, 194, 195, 183, 184, 185, 212, 186, 187, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 0, 203, 201, 202, 198, 199, 0, 0, 190, 196, - 197, 204, 205, 207, 206, 208, 209, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 200, 211, - 210, 0, 0, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 158, 159, 160, 188, 189, 138, 139, 140, - 141, 142, 143, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 213, 0, 0, 126, 124, 125, 144, 0, 214, 0, - 0, 870, 1054, 145, 146, 156, 157, 0, 0, 578, - 0, 0, 0, 0, 869, 0, 0, 872, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 191, - 192, 193, 194, 195, 183, 184, 185, 212, 186, 187, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 0, 203, 201, 202, 198, 199, 0, 0, 190, - 196, 197, 204, 205, 207, 206, 208, 209, 873, 726, - 727, 724, 723, 722, 0, 0, 0, 0, 0, 200, - 211, 210, 0, 0, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 158, 159, 160, 188, 189, 138, 139, - 140, 141, 142, 143, 0, 0, 0, 0, 0, 0, - 0, 0, 51, 0, 0, 0, 0, 728, 0, 0, - 0, 0, 0, 1035, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 213, 0, 0, 126, 124, 125, 144, 0, 214, - 0, 0, 870, 1021, 145, 146, 156, 157, 0, 0, - 135, 0, 0, 0, 0, 869, 0, 0, 872, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 191, 192, 193, 194, 195, 183, 184, 185, 212, 186, - 187, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 0, 203, 201, 202, 198, 199, 0, 0, - 190, 196, 197, 204, 205, 207, 206, 208, 209, 873, - 726, 727, 724, 723, 722, 0, 0, 0, 0, 0, - 200, 211, 210, 0, 0, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 158, 159, 160, 188, 189, 138, - 139, 140, 141, 142, 143, 0, 0, 0, 0, 0, - 0, 0, 0, 51, 0, 0, 0, 0, 728, 0, - 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 213, 0, 0, 0, 134, 0, 144, 0, - 214, 0, 870, 132, 145, 146, 156, 157, 0, 0, - 135, 0, 0, 0, 0, 869, 0, 0, 872, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 191, 192, 193, 194, 195, 183, 184, 185, 212, 186, - 187, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 0, 203, 201, 202, 198, 199, 0, 0, - 190, 196, 197, 204, 205, 207, 206, 208, 209, 873, - 726, 727, 724, 723, 722, 0, 0, 0, 0, 0, - 200, 211, 210, 0, 0, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 158, 159, 160, 188, 189, 138, - 139, 140, 141, 142, 143, 0, 0, 0, 0, 0, - 0, 0, 0, 51, 0, 0, 0, 0, 728, 0, - 0, 0, 0, 0, 968, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 145, 146, 156, - 157, 0, 213, 1075, 0, 0, 0, 0, 144, 0, - 214, 0, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 191, 192, 193, 194, 195, 183, 184, - 185, 212, 186, 187, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 0, 203, 201, 202, 198, - 199, 0, 870, 190, 196, 197, 204, 205, 207, 206, - 208, 209, 0, 0, 0, 869, 0, 0, 872, 0, - 0, 0, 0, 200, 211, 210, 0, 0, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 158, 159, 160, - 188, 189, 873, 726, 727, 724, 723, 722, 96, 97, - 76, 0, 101, 102, 241, 0, 117, 0, 0, 0, - 0, 0, 122, 0, 0, 0, 0, 0, 0, 873, - 726, 727, 724, 723, 722, 0, 0, 0, 0, 0, - 0, 234, 113, 0, 0, 213, 0, 241, 239, 0, - 0, 728, 0, 214, 94, 95, 0, 0, 0, 0, - 0, 0, 0, 0, 340, 121, 0, 110, 106, 107, - 108, 103, 104, 51, 0, 0, 0, 0, 728, 111, - 0, 0, 0, 0, 966, 109, 105, 0, 339, 98, - 99, 100, 0, 0, 0, 0, 123, 58, 662, 663, - 0, 80, 81, 240, 0, 0, 0, 0, 0, 59, - 60, 82, 69, 70, 71, 72, 73, 74, 75, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 725, 726, 727, 724, - 723, 722, 0, 0, 0, 0, 67, 0, 0, 126, - 124, 125, 0, 0, 0, 112, 79, 0, 0, 0, - 0, 65, 0, 57, 0, 0, 338, 62, 61, 63, - 64, 77, 118, 96, 97, 76, 0, 101, 102, 241, - 51, 117, 126, 124, 125, 728, 0, 122, 0, 0, - 0, 0, 0, 0, 667, 0, 0, 0, 659, 0, - 0, 0, 0, 0, 0, 0, 234, 113, 0, 0, - 0, 0, 0, 239, 0, 0, 0, 0, 0, 94, - 95, 0, 0, 0, 0, 0, 0, 0, 0, 56, - 121, 0, 110, 106, 107, 108, 103, 104, 0, 0, - 0, 0, 0, 0, 111, 0, 0, 0, 0, 0, - 109, 105, 0, 0, 98, 99, 100, 0, 0, 0, - 0, 123, 58, 0, 0, 0, 80, 81, 240, 0, - 0, 0, 0, 0, 59, 60, 82, 69, 70, 71, - 72, 73, 74, 75, 0, 0, 0, 0, 0, 0, - 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 869, 0, 0, 872, 0, - 0, 67, 0, 0, 126, 124, 125, 0, 495, 0, - 112, 79, 0, 0, 0, 0, 65, 0, 57, 0, - 0, 496, 62, 61, 63, 64, 77, 118, 96, 97, + 80, 81, 240, 0, 0, 0, 0, 0, 59, 60, + 82, 69, 70, 71, 72, 73, 74, 75, 96, 97, 76, 0, 101, 102, 241, 0, 117, 0, 0, 0, - 0, 0, 122, 0, 0, 0, 0, 0, 0, 873, - 726, 727, 724, 723, 722, 0, 0, 883, 0, 0, - 0, 234, 113, 0, 0, 0, 0, 0, 239, 0, - 0, 0, 0, 0, 94, 95, 0, 0, 0, 0, - 0, 0, 0, 0, 56, 121, 0, 110, 106, 107, - 108, 103, 104, 51, 0, 0, 0, 0, 728, 111, - 0, 0, 0, 0, 930, 109, 105, 0, 0, 98, + 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 67, 0, 0, 126, 124, + 125, 234, 113, 0, 112, 79, 0, 0, 239, 0, + 65, 0, 57, 0, 94, 95, 62, 61, 63, 64, + 77, 118, 0, 0, 56, 121, 0, 110, 106, 107, + 108, 103, 104, 0, 0, 0, 0, 0, 0, 111, + 0, 0, 0, 0, 0, 109, 105, 0, 0, 98, 99, 100, 0, 0, 0, 0, 123, 58, 0, 0, 0, 80, 81, 240, 0, 0, 0, 0, 0, 59, 60, 82, 69, 70, 71, 72, 73, 74, 75, 96, @@ -1317,236 +1361,198 @@ var yyAct = [...]int{ 0, 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 126, 124, 125, 234, 113, 0, 112, 79, 0, 0, 239, - 0, 65, 0, 57, 0, 94, 95, 62, 61, 63, + 479, 65, 0, 57, 0, 94, 95, 62, 61, 63, 64, 77, 118, 0, 0, 56, 121, 0, 110, 106, 107, 108, 103, 104, 0, 0, 0, 0, 0, 0, 111, 0, 0, 0, 0, 0, 109, 105, 0, 0, 98, 99, 100, 0, 0, 0, 0, 123, 58, 0, 0, 0, 80, 81, 240, 0, 0, 0, 0, 0, 59, 60, 82, 69, 70, 71, 72, 73, 74, 75, - 96, 97, 76, 0, 101, 102, 241, 0, 117, 0, - 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 257, 259, 258, 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, - 126, 124, 125, 234, 113, 0, 112, 79, 0, 0, - 239, 0, 65, 730, 57, 0, 94, 95, 62, 61, - 63, 64, 77, 118, 0, 0, 688, 121, 0, 110, - 106, 107, 108, 103, 104, 0, 0, 0, 0, 0, - 0, 111, 0, 0, 0, 0, 0, 109, 105, 0, - 0, 98, 99, 100, 0, 0, 0, 0, 123, 58, - 0, 0, 0, 80, 81, 240, 0, 0, 0, 0, - 0, 59, 60, 82, 69, 70, 71, 72, 73, 74, - 75, 0, 0, 0, 0, 0, 0, 0, 0, 870, + 126, 124, 125, 0, 0, 0, 112, 79, 284, 281, + 0, 0, 65, 0, 57, 0, 0, 0, 62, 61, + 63, 64, 77, 118, 255, 256, 268, 271, 272, 273, + 274, 275, 276, 278, 280, 0, 0, 0, 0, 0, + 0, 0, 261, 0, 0, 0, 0, 0, 952, 951, + 257, 259, 258, 282, 283, 262, 266, 265, 0, 0, + 0, 0, 0, 260, 0, 263, 267, 269, 270, 277, + 279, 264, 0, 0, 0, 0, 0, 284, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 869, 0, 0, 872, 0, 0, 67, 0, - 0, 126, 124, 125, 0, 0, 0, 112, 79, 0, - 0, 0, 0, 65, 0, 57, 0, 0, 687, 62, - 61, 63, 64, 77, 118, 96, 97, 76, 0, 101, - 102, 241, 551, 117, 0, 0, 0, 0, 0, 122, - 0, 0, 0, 0, 0, 0, 873, 726, 727, 724, - 723, 722, 0, 0, 0, 0, 0, 0, 234, 113, - 0, 0, 0, 0, 0, 239, 0, 0, 0, 0, - 0, 94, 95, 0, 0, 0, 0, 0, 0, 0, - 0, 56, 121, 0, 110, 106, 107, 108, 103, 104, - 51, 0, 0, 0, 0, 728, 111, 0, 0, 0, - 0, 862, 109, 105, 0, 0, 98, 99, 100, 0, - 0, 0, 0, 123, 58, 0, 0, 0, 80, 81, - 240, 0, 0, 0, 0, 0, 59, 60, 82, 69, - 70, 71, 72, 73, 74, 75, 96, 97, 76, 0, - 101, 102, 241, 0, 117, 0, 0, 0, 0, 0, - 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 67, 0, 0, 126, 124, 125, 234, - 113, 0, 112, 79, 0, 0, 239, 0, 65, 0, - 57, 0, 94, 95, 62, 61, 63, 64, 77, 118, - 0, 0, 56, 121, 0, 110, 106, 107, 108, 103, - 104, 0, 0, 0, 0, 0, 0, 111, 0, 0, - 0, 0, 0, 109, 105, 0, 0, 98, 99, 100, - 0, 0, 0, 0, 123, 58, 0, 0, 0, 80, - 81, 240, 0, 0, 0, 0, 0, 59, 60, 82, - 69, 70, 71, 72, 73, 74, 75, 96, 97, 76, - 0, 101, 102, 241, 0, 117, 0, 0, 0, 0, - 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67, 0, 0, 126, 124, 125, - 234, 113, 0, 112, 79, 0, 0, 239, 479, 65, - 0, 57, 0, 94, 95, 62, 61, 63, 64, 77, - 118, 0, 0, 56, 121, 0, 110, 106, 107, 108, - 103, 104, 0, 0, 0, 0, 0, 0, 111, 0, - 0, 0, 0, 0, 109, 105, 0, 0, 98, 99, - 100, 0, 0, 0, 0, 123, 58, 0, 0, 0, - 80, 81, 240, 0, 0, 0, 0, 0, 59, 60, - 82, 69, 70, 71, 72, 73, 74, 75, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 257, - 259, 258, 282, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 67, 0, 0, 126, 124, - 125, 0, 0, 0, 112, 79, 284, 281, 0, 0, - 65, 0, 57, 0, 0, 0, 62, 61, 63, 64, - 77, 118, 255, 256, 268, 271, 272, 273, 274, 275, - 276, 278, 280, 0, 0, 0, 0, 0, 0, 0, - 261, 0, 0, 0, 0, 0, 952, 951, 257, 259, - 258, 282, 283, 262, 266, 265, 0, 0, 0, 0, - 0, 260, 0, 263, 267, 269, 270, 277, 279, 264, - 0, 0, 0, 0, 0, 284, 281, 0, 0, 0, + 0, 0, 0, 255, 256, 268, 271, 272, 273, 274, + 275, 276, 278, 280, 0, 0, 0, 0, 0, 0, + 0, 261, 0, 0, 257, 259, 258, 282, 0, 0, + 0, 0, 885, 283, 262, 266, 265, 0, 0, 0, + 0, 0, 260, 0, 263, 267, 269, 270, 277, 279, + 264, 284, 281, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 255, 256, 268, + 271, 272, 273, 274, 275, 276, 278, 280, 0, 0, + 0, 0, 0, 0, 0, 261, 0, 0, 257, 259, + 258, 282, 0, 0, 829, 0, 0, 283, 262, 266, + 265, 0, 0, 0, 0, 0, 260, 0, 263, 267, + 269, 270, 277, 279, 264, 284, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 256, 268, 271, 272, 273, 274, 275, 276, 278, 280, 0, 0, 0, 0, 0, 0, 0, 261, - 0, 0, 257, 259, 258, 282, 0, 0, 0, 0, - 885, 283, 262, 266, 265, 0, 0, 0, 0, 0, - 260, 0, 263, 267, 269, 270, 277, 279, 264, 284, + 0, 0, 0, 0, 819, 257, 259, 258, 282, 0, + 0, 283, 262, 266, 265, 0, 0, 0, 0, 0, + 260, 0, 263, 267, 269, 270, 277, 279, 264, 0, + 0, 0, 284, 281, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 255, 256, + 268, 271, 272, 273, 274, 275, 276, 278, 280, 0, + 0, 0, 0, 0, 0, 0, 261, 0, 0, 0, + 0, 804, 257, 259, 258, 282, 0, 0, 283, 262, + 266, 265, 0, 0, 0, 0, 0, 260, 0, 263, + 267, 269, 270, 277, 279, 264, 0, 0, 0, 284, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 256, 268, 271, 272, 273, 274, 275, 276, 278, 280, 0, 0, 0, 0, - 0, 0, 0, 261, 0, 0, 257, 259, 258, 282, - 0, 0, 829, 0, 0, 283, 262, 266, 265, 0, + 0, 0, 0, 261, 0, 0, 0, 0, 794, 257, + 259, 258, 282, 0, 0, 283, 262, 266, 265, 0, 0, 0, 0, 0, 260, 0, 263, 267, 269, 270, - 277, 279, 264, 284, 281, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, - 256, 268, 271, 272, 273, 274, 275, 276, 278, 280, - 0, 0, 0, 0, 0, 0, 0, 261, 0, 0, - 0, 0, 819, 257, 259, 258, 282, 0, 0, 283, - 262, 266, 265, 0, 0, 0, 0, 0, 260, 0, - 263, 267, 269, 270, 277, 279, 264, 0, 0, 0, + 277, 279, 264, 0, 0, 0, 284, 281, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 255, 256, 268, 271, 272, 273, 274, 275, + 276, 278, 280, 0, 0, 0, 0, 0, 0, 0, + 261, 0, 0, 257, 259, 258, 282, 0, 0, 773, + 0, 0, 283, 262, 266, 265, 0, 0, 0, 0, + 0, 260, 0, 263, 267, 269, 270, 277, 279, 264, 284, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 256, 268, 271, 272, 273, 274, 275, 276, 278, 280, 0, 0, 0, - 0, 0, 0, 0, 261, 0, 0, 0, 0, 804, - 257, 259, 258, 282, 0, 0, 283, 262, 266, 265, + 0, 0, 0, 0, 261, 0, 0, 257, 259, 258, + 282, 0, 0, 772, 0, 0, 283, 262, 266, 265, 0, 0, 0, 0, 0, 260, 0, 263, 267, 269, - 270, 277, 279, 264, 0, 0, 0, 284, 281, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 255, 256, 268, 271, 272, 273, 274, - 275, 276, 278, 280, 0, 0, 0, 0, 0, 0, - 0, 261, 0, 0, 0, 0, 794, 257, 259, 258, - 282, 0, 0, 283, 262, 266, 265, 0, 0, 0, - 0, 0, 260, 0, 263, 267, 269, 270, 277, 279, - 264, 0, 0, 0, 284, 281, 0, 0, 0, 0, + 270, 277, 279, 264, 284, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 256, 268, 271, 272, 273, 274, 275, 276, 278, 280, 0, 0, 0, 0, 0, 0, 0, 261, 0, - 0, 257, 259, 258, 282, 0, 0, 773, 0, 0, + 0, 0, 0, 729, 257, 259, 258, 282, 0, 0, 283, 262, 266, 265, 0, 0, 0, 0, 0, 260, - 0, 263, 267, 269, 270, 277, 279, 264, 284, 281, + 0, 263, 267, 269, 270, 277, 279, 264, 0, 0, + 0, 284, 281, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 255, 256, 268, + 271, 272, 273, 274, 275, 276, 278, 280, 0, 0, + 0, 0, 0, 0, 0, 261, 0, 0, 257, 259, + 258, 282, 0, 0, 712, 0, 0, 283, 262, 266, + 265, 0, 0, 0, 0, 0, 260, 0, 263, 267, + 269, 270, 277, 279, 264, 284, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 255, 256, 268, 271, 272, 273, - 274, 275, 276, 278, 280, 0, 0, 0, 0, 0, - 0, 0, 261, 0, 0, 257, 259, 258, 282, 0, - 0, 772, 0, 0, 283, 262, 266, 265, 0, 0, - 0, 0, 0, 260, 0, 263, 267, 269, 270, 277, - 279, 264, 284, 281, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 255, 256, - 268, 271, 272, 273, 274, 275, 276, 278, 280, 0, - 0, 0, 0, 0, 0, 0, 261, 0, 0, 0, - 0, 729, 257, 259, 258, 282, 0, 0, 283, 262, - 266, 265, 0, 0, 0, 0, 0, 260, 0, 263, - 267, 269, 270, 277, 279, 264, 0, 0, 0, 284, + 0, 255, 256, 268, 271, 272, 273, 274, 275, 276, + 278, 280, 0, 0, 0, 0, 0, 0, 0, 261, + 0, 0, 257, 259, 258, 282, 0, 0, 711, 0, + 0, 283, 262, 266, 265, 0, 0, 0, 0, 0, + 260, 0, 263, 267, 269, 270, 277, 279, 264, 284, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 256, 268, 271, 272, 273, 274, 275, 276, 278, 280, 0, 0, 0, 0, - 0, 0, 0, 261, 0, 0, 257, 259, 258, 282, - 0, 0, 712, 0, 0, 283, 262, 266, 265, 0, + 0, 0, 0, 261, 0, 0, 0, 0, 700, 257, + 259, 258, 282, 0, 0, 283, 262, 266, 265, 0, 0, 0, 0, 0, 260, 0, 263, 267, 269, 270, - 277, 279, 264, 284, 281, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, - 256, 268, 271, 272, 273, 274, 275, 276, 278, 280, - 0, 0, 0, 0, 0, 0, 0, 261, 0, 0, - 257, 259, 258, 282, 0, 0, 711, 0, 0, 283, - 262, 266, 265, 0, 0, 0, 0, 0, 260, 0, - 263, 267, 269, 270, 277, 279, 264, 284, 281, 0, + 277, 279, 264, 0, 0, 0, 284, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 255, 256, 268, 271, 272, 273, 274, - 275, 276, 278, 280, 0, 0, 0, 0, 0, 0, - 0, 261, 0, 0, 0, 0, 700, 257, 259, 258, - 282, 0, 0, 283, 262, 266, 265, 0, 0, 0, - 0, 0, 260, 0, 263, 267, 269, 270, 277, 279, - 264, 0, 0, 0, 284, 281, 0, 0, 0, 0, + 0, 0, 255, 256, 268, 271, 272, 273, 274, 275, + 276, 278, 280, 0, 0, 0, 0, 0, 0, 0, + 261, 0, 0, 257, 259, 258, 282, 0, 0, 692, + 0, 0, 283, 262, 266, 265, 0, 0, 0, 0, + 0, 260, 0, 263, 267, 269, 270, 277, 279, 264, + 284, 281, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 255, 256, 268, 271, + 272, 273, 274, 275, 276, 278, 280, 0, 0, 0, + 0, 0, 0, 0, 261, 0, 0, 257, 259, 258, + 282, 0, 0, 690, 0, 0, 283, 262, 266, 265, + 0, 0, 0, 0, 0, 260, 0, 263, 267, 269, + 270, 277, 279, 264, 284, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 256, 268, 271, 272, 273, 274, 275, 276, 278, 280, 0, 0, 0, 0, 0, 0, 0, 261, 0, - 0, 257, 259, 258, 282, 0, 0, 692, 0, 0, + 0, 0, 0, 679, 257, 259, 258, 282, 0, 645, 283, 262, 266, 265, 0, 0, 0, 0, 0, 260, - 0, 263, 267, 269, 270, 277, 279, 264, 284, 281, + 0, 263, 267, 269, 270, 277, 279, 264, 0, 0, + 0, 284, 281, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 255, 256, 268, + 271, 272, 273, 274, 275, 276, 278, 280, 0, 0, + 0, 0, 0, 0, 0, 261, 0, 0, 257, 259, + 258, 282, 0, 0, 677, 0, 0, 283, 262, 266, + 265, 0, 0, 0, 0, 0, 260, 0, 263, 267, + 269, 270, 277, 279, 264, 284, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 255, 256, 268, 271, 272, 273, - 274, 275, 276, 278, 280, 0, 0, 0, 0, 0, - 0, 0, 261, 0, 0, 257, 259, 258, 282, 0, - 0, 690, 0, 0, 283, 262, 266, 265, 0, 0, - 0, 0, 0, 260, 0, 263, 267, 269, 270, 277, - 279, 264, 284, 281, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 255, 256, - 268, 271, 272, 273, 274, 275, 276, 278, 280, 0, - 0, 0, 0, 0, 0, 0, 261, 0, 0, 0, - 0, 679, 257, 259, 258, 282, 0, 645, 283, 262, - 266, 265, 0, 0, 0, 0, 0, 260, 0, 263, - 267, 269, 270, 277, 279, 264, 0, 0, 0, 284, + 0, 255, 256, 268, 271, 272, 273, 274, 275, 276, + 278, 280, 0, 0, 0, 0, 0, 0, 0, 261, + 0, 0, 257, 259, 258, 282, 0, 0, 0, 0, + 0, 283, 262, 266, 265, 0, 0, 0, 0, 0, + 260, 0, 263, 267, 269, 270, 277, 279, 264, 284, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 256, 268, 271, 272, 273, 274, 275, 276, 278, 280, 0, 0, 0, 0, 0, 0, 0, 261, 0, 0, 257, 259, 258, 282, - 0, 0, 677, 0, 0, 283, 262, 266, 265, 0, + 641, 0, 0, 0, 0, 283, 262, 266, 265, 0, 0, 0, 0, 0, 260, 0, 263, 267, 269, 270, 277, 279, 264, 284, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 256, 268, 271, 272, 273, 274, 275, 276, 278, 280, 0, 0, 0, 0, 0, 0, 0, 261, 0, 0, - 257, 259, 258, 282, 0, 0, 0, 0, 0, 283, + 257, 259, 258, 282, 0, 0, 636, 0, 0, 283, 262, 266, 265, 0, 0, 0, 0, 0, 260, 0, 263, 267, 269, 270, 277, 279, 264, 284, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 256, 268, 271, 272, 273, 274, 275, 276, 278, 280, 0, 0, 0, 0, 0, 0, - 0, 261, 0, 0, 257, 259, 258, 282, 641, 0, - 0, 0, 0, 283, 262, 266, 265, 0, 0, 0, + 0, 261, 0, 0, 257, 259, 258, 282, 0, 0, + 632, 0, 0, 283, 262, 266, 265, 0, 0, 0, 0, 0, 260, 0, 263, 267, 269, 270, 277, 279, - 264, 284, 281, 0, 0, 0, 0, 0, 0, 0, + 264, 284, 281, 0, 0, 0, 0, 0, 0, 534, 0, 0, 0, 0, 0, 0, 0, 255, 256, 268, 271, 272, 273, 274, 275, 276, 278, 280, 0, 0, 0, 0, 0, 0, 0, 261, 0, 0, 257, 259, - 258, 282, 0, 0, 636, 0, 0, 283, 262, 266, + 258, 282, 0, 0, 541, 0, 0, 283, 262, 266, 265, 0, 0, 0, 0, 0, 260, 0, 263, 267, 269, 270, 277, 279, 264, 284, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 256, 268, 271, 272, 273, 274, 275, 276, 278, 280, 0, 0, 0, 0, 0, 0, 0, 261, - 0, 0, 257, 259, 258, 282, 0, 0, 632, 0, + 0, 0, 257, 259, 258, 282, 0, 0, 0, 0, 0, 283, 262, 266, 265, 0, 0, 0, 0, 0, 260, 0, 263, 267, 269, 270, 277, 279, 264, 284, - 281, 0, 0, 0, 0, 0, 0, 534, 0, 0, + 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 256, 268, 271, 272, 273, 274, 275, 276, 278, 280, 0, 0, 0, 0, - 0, 0, 0, 261, 0, 0, 257, 259, 258, 282, - 0, 0, 541, 0, 0, 283, 262, 266, 265, 0, + 0, 0, 0, 261, 0, 0, 0, 0, 0, 487, + 257, 259, 258, 282, 0, 283, 262, 266, 265, 0, 0, 0, 0, 0, 260, 0, 263, 267, 269, 270, - 277, 279, 264, 284, 281, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, - 256, 268, 271, 272, 273, 274, 275, 276, 278, 280, - 0, 0, 0, 0, 0, 0, 0, 261, 0, 0, - 257, 259, 258, 282, 0, 0, 0, 0, 0, 283, - 262, 266, 265, 0, 0, 0, 0, 0, 260, 0, - 263, 267, 269, 270, 277, 279, 264, 284, 281, 0, + 277, 279, 264, 0, 0, 0, 0, 284, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 256, 268, 271, 272, 273, 274, 275, 276, 278, 280, 0, 0, 0, 0, 0, 0, - 0, 261, 0, 0, 0, 0, 0, 487, 257, 259, + 0, 261, 0, 0, 0, 0, 0, 254, 257, 259, 258, 282, 0, 283, 262, 266, 265, 0, 0, 0, 0, 0, 260, 0, 263, 267, 269, 270, 277, 279, 264, 0, 0, 0, 0, 284, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 256, 268, 271, 272, 273, 274, 275, 276, - 278, 280, 0, 0, 0, 0, 0, 0, 0, 261, - 0, 0, 0, 0, 0, 254, 257, 259, 258, 282, - 0, 283, 262, 266, 265, 0, 0, 0, 0, 0, + 278, 280, 259, 258, 282, 0, 0, 0, 0, 261, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 283, 262, 266, 265, 0, 0, 0, 284, 281, 260, 0, 263, 267, 269, 270, 277, 279, 264, 0, - 0, 0, 0, 284, 281, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, - 256, 268, 271, 272, 273, 274, 275, 276, 278, 280, - 259, 258, 282, 0, 0, 0, 0, 261, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, - 262, 266, 265, 553, 0, 0, 284, 281, 260, 0, - 263, 267, 269, 270, 277, 279, 264, 0, 0, 0, - 0, 0, 255, 256, 268, 271, 272, 273, 274, 275, - 276, 278, 280, 0, 0, 282, 0, 0, 0, 0, - 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 283, 262, 266, 265, 0, 0, 0, 284, - 281, 260, 0, 263, 267, 269, 270, 277, 279, 264, - 0, 0, 0, 0, 0, 255, 256, 268, 271, 272, + 0, 0, 0, 0, 255, 256, 268, 271, 272, 273, + 274, 275, 276, 278, 280, 258, 282, 0, 0, 0, + 0, 0, 261, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 283, 262, 266, 265, 0, 0, + 284, 281, 0, 260, 0, 263, 267, 269, 270, 277, + 279, 264, 553, 0, 0, 0, 255, 256, 268, 271, + 272, 273, 274, 275, 276, 278, 280, 0, 0, 0, + 0, 0, 0, 0, 261, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 282, 0, 283, 262, 266, 265, + 0, 0, 0, 0, 0, 260, 0, 263, 267, 269, + 270, 277, 279, 264, 0, 0, 0, 0, 284, 281, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 255, 256, 268, 271, 272, 273, + 274, 275, 276, 278, 280, 282, 0, 0, 0, 0, + 0, 0, 261, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 283, 262, 266, 265, 0, 284, + 281, 0, 0, 260, 0, 263, 267, 269, 270, 277, + 279, 264, 0, 0, 0, 255, 256, 268, 271, 272, 273, 274, 275, 276, 278, 280, 282, 0, 0, 0, 0, 0, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 262, 266, 265, 0, @@ -1578,7 +1584,7 @@ var yyAct = [...]int{ 0, 262, 266, 265, 0, 0, 281, 0, 0, 0, 0, 0, 267, 269, 270, 277, 279, 264, 0, 0, 0, 0, 0, 268, 271, 272, 273, 274, 275, 276, - 278, 280, 0, 0, 0, 0, 0, 766, 121, 0, + 278, 280, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 266, 265, 0, 0, 0, 0, 0, 0, 0, 0, 267, 269, 270, 277, 279, 264, 348, @@ -1588,143 +1594,143 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 124, 125, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 344, 0, 767, 0, 0, 765, + 0, 0, 0, 0, 344, 0, 347, 0, 0, 0, 0, 0, 0, 0, 0, 118, } -var yyPact = [...]int{ - -1000, -1000, 1847, -1000, -1000, -1000, -1000, 544, 294, 5950, - 831, 723, -1000, -1000, -1000, 290, 5483, 289, 286, 7273, - 7273, 7273, 156, 767, 7273, -1000, 8810, 284, 283, 282, - -1000, 418, 7273, 790, 311, -1000, -1000, -1000, -1000, -1000, - -1000, 536, 525, 1357, -1000, 93, 781, 812, 774, 773, - 760, 598, 280, -1000, -1000, 261, 260, 6334, 7273, 456, - 456, 7273, 7273, 7273, 7273, 7273, -1000, 259, -1000, 7273, - 7273, 7273, 7273, 7273, 7273, 7273, 256, 7273, -1000, 975, - 7273, 7273, 7273, -1000, -1000, -1000, 73, -1000, 553, 543, - -1000, -1000, -1000, -1000, 255, 254, 7273, 7273, 251, 7273, - 7273, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 907, 888, 93, -1000, -1000, -1000, -1000, 200, 244, - 244, 245, -1000, 1003, -1000, -1000, -1000, -1000, -1000, 93, - 208, 309, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 360, 875, 74, 626, -1000, - -1000, -1000, 649, -1000, -1000, 578, -1000, -1000, 66, -1000, - -37, 4018, 7273, 662, 93, 7273, 7273, 359, 8878, 7273, - 690, -1000, 358, 352, 65, -1000, -1000, 56, -1000, -1000, - -38, 54, -1000, 8878, -1000, 7273, 7273, 7273, 7273, 7273, - 7273, 7273, 7273, 7273, 7273, 7273, 7273, 7273, 7273, 7273, - 7273, 7273, 7273, 7273, 7273, 7273, 7273, 7273, 7273, 7273, - 7273, 7273, 214, 7162, 7273, 456, 7273, 723, -1000, 8742, - 343, -1000, 275, 5483, 273, 339, 304, 6499, 7273, 7273, - 7273, 7273, 7273, 7273, 7273, 7273, 7273, 7273, 7273, 7273, - 7273, -1000, -1000, 746, -1000, -1000, 303, 752, -1000, 581, - -1000, 592, 61, -1000, 244, -1000, -1000, 7273, 7273, 7273, - 190, 190, 6334, 126, 58, -1000, -1000, 8678, 456, 7273, - 272, -1000, -1000, 73, 7273, -1000, -1000, 6334, 214, -1000, - 454, 454, 493, 454, 8614, 7273, 454, 454, 454, 454, - 454, 454, 454, -1000, 7273, 454, 420, 689, 660, -1000, - 236, 7051, 456, 21, 8984, 21, 7273, 4350, 4350, 7273, - 7273, 8878, 8878, 7273, 8878, 8878, 904, -1000, 892, 539, - 689, 271, 7273, -1000, -1000, 1172, -1000, 6334, 244, -1000, - 574, 535, 265, 244, 721, -1000, 746, 338, -1000, -1000, - 1680, -1000, 334, 53, 599, -1000, 875, 417, 744, 729, - -1000, 649, -1000, 723, 7273, -1000, -1000, -1000, -1000, -1000, - 544, 266, 8550, 264, -1000, 331, 50, 8878, 8486, -1000, - 8878, -1000, -1000, -1000, 156, -1000, 709, 7273, -1000, 7273, - 9086, 9137, 8931, 21, 991, 9188, 9290, 9290, 9239, 72, - 72, 72, 493, 454, 493, 493, 163, 163, 40, 40, - 40, 40, 367, 367, 367, 367, 40, -1000, 8422, 7273, - 9035, 17, -1000, -1000, 8358, 19, 3851, -1000, -1000, 7273, - -1000, 7273, -1000, -1000, 21, 7273, 7273, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - -1000, 262, 576, 585, 581, 576, 698, 416, -1000, 698, - 598, 123, -1000, 8294, 92, 8227, 244, -1000, 7273, -1000, - 244, 206, -45, 6334, 6886, -1000, 8878, 6334, 8163, 89, - 244, -1000, 8099, 205, -1000, -1000, -1000, -1000, 279, 700, - 8032, 94, 389, 7273, 84, 244, -1000, -1000, 7273, 244, - -1000, -1000, 2, -1000, 8878, 7968, 7904, -1000, -1000, -1000, - 6367, 7837, -1000, 6775, 0, -1000, 8878, 297, -1000, 7273, - 260, 7273, 259, 256, 7273, 7273, 690, 255, 254, 7273, - 7273, 251, 7273, 7273, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 93, 93, 1003, 245, 204, -1000, -1000, 156, - 7273, 7273, 190, 156, 581, -1000, 244, -1000, 1513, -1000, - -1000, -1000, 415, -1000, 641, 656, -1000, -1000, -1000, 8878, - -1000, 199, 5318, 7273, 7273, 7273, 250, -1000, -1000, 8878, - -1000, 7273, 9035, 197, 456, 9377, 5153, -1000, 7773, 7709, - 3684, 9290, 9290, 228, 6367, -1000, 698, -1000, -22, 940, - 430, -27, -1000, -1000, -1000, -1000, -30, 940, 576, -1000, - -1000, -1000, 414, -25, -1000, -1000, -1000, 4988, -1000, -1000, - -1000, 7642, -1000, -46, 7273, -1000, 8878, 456, 226, 194, - -1000, -1000, 413, -1000, 81, -1000, -1000, 668, -1000, -1000, - -1000, -1000, 7273, -1000, 21, -1000, -1000, 7575, -1000, 192, - 7273, -1000, -1000, 191, -2, -1000, -1000, 6367, -15, 4628, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 8878, 188, 1346, 7273, -1000, -1000, 78, 7508, -1000, - -1000, 576, 581, -1000, 578, -5, -1000, -1000, 578, -1000, - 329, -1000, -1000, -1000, 7444, 327, 8878, -1000, 326, 324, - 9035, 322, -1000, 177, 582, 456, 222, 6334, -1000, -1000, - -1000, 672, 5483, 215, 321, 6367, 174, 410, -25, 940, - 802, -1000, 940, 802, 802, 193, 428, -1000, 409, 6977, - -1000, 698, -1000, -1000, -1000, 7273, 21, -1000, 6334, -46, - 6664, -1000, -1000, 7380, -1000, -1000, -1000, 158, 6367, -1000, - 505, -1000, -15, -1000, -1000, -1000, 7273, 8878, -1000, -1000, - -1000, 576, -18, -1000, 378, 656, -1000, -1000, 3517, 320, - 7273, 514, -1000, 855, -1000, -1000, 4658, 9377, -1000, 6334, - 71, 3350, -1000, 221, 408, -1000, -1000, -1000, 173, 607, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 407, -1000, -1000, -1000, -1000, 1014, -1000, 585, 617, 698, - -1000, 754, -1000, -1000, 6590, -1000, 4185, 21, 162, 370, - -24, -1000, 82, 580, 8878, 369, -1000, 585, -1000, 707, - -1000, 505, 405, -1000, 364, 578, -1000, -1000, 317, -1000, - 160, -1000, 7273, 220, 495, 316, 728, -1000, -1000, -1000, - 159, -1000, 157, -1000, 315, 698, -1000, 4185, 158, 158, - 217, 6260, -1000, 6070, -1000, 676, 4500, 93, -23, 6100, - -1000, -46, -1000, -1000, 6664, 7273, 7273, 7273, -1000, 579, - -1000, -47, 692, -1000, 400, -1000, -1000, -1000, 4823, 7311, - -1000, -1000, -1000, -1000, -1000, 314, 3183, 4658, -1000, -1000, - 164, -1000, 3016, 399, 397, 227, -1000, 5920, -1000, 37, - -1000, -51, 32, 6100, -1000, -54, -1000, -1000, -1000, 6100, - -1000, -1000, 5799, -55, -1000, 8878, 8878, 8878, 7273, 7273, - -62, 5769, -1000, -1000, -1000, -1000, -1000, 4185, -1000, 310, - -1000, 137, 396, 698, -1000, -1000, -1000, -19, -1000, -1000, - 688, -1000, -1000, 676, -1000, 7273, -1000, 6100, -20, 7273, - -1000, -1000, 5648, -1000, 300, 281, 605, 629, 526, -1000, - 267, 7273, 21, 8878, 7273, -1000, 4526, 2849, 4185, -1000, - 391, -1000, -1000, 2682, 2515, -1000, 227, -1000, -1000, 8878, - -1000, -1000, 8878, 213, -1000, -1000, -1000, -1000, 698, 6233, - 6100, -1000, 8878, 8878, -1000, 252, -1000, 2348, -1000, -1000, - -1000, -1000, -1000, 6367, -25, -1000, -1000, 6100, -1000, -1000, - 2181, -1000, 135, -1000, -1000, 158, 299, -1000, -1000, -1000, - 2014, -1000, +var yyPact = [...]int16{ + -32768, -32768, 1789, -32768, -32768, -32768, -32768, 706, 275, 5892, + 848, 760, -32768, -32768, -32768, 274, 5425, 267, 266, 7215, + 7215, 7215, 164, 719, 7215, -32768, 8752, 257, 256, 255, + -32768, 409, 7215, 790, 297, -32768, -32768, -32768, -32768, -32768, + -32768, 513, 525, 1133, -32768, 56, 788, 579, 783, 781, + 777, 820, 250, -32768, -32768, 286, 240, 6276, 7215, 9437, + 9437, 7215, 7215, 7215, 7215, 7215, -32768, 235, -32768, 7215, + 7215, 7215, 7215, 7215, 7215, 7215, 234, 7215, -32768, 827, + 7215, 7215, 7215, -32768, -32768, -32768, 88, -32768, 543, 536, + -32768, -32768, -32768, -32768, 232, 229, 7215, 7215, 228, 7215, + 7215, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, + -32768, 879, 641, 56, -32768, -32768, -32768, -32768, 168, 225, + 225, 226, -32768, 939, -32768, -32768, -32768, -32768, -32768, 56, + 203, 296, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, + -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, + -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, + -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, + -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, + -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, + -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, + -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, + -32768, -32768, -32768, -32768, -32768, 352, 592, 19, 558, -32768, + -32768, -32768, 692, -32768, -32768, 562, -32768, -32768, 2, -32768, + -49, 3960, 7215, 703, 56, 7215, 7215, 351, 8820, 7215, + 672, -32768, 348, 344, 1, -32768, -32768, -9, -32768, -32768, + -52, -11, -32768, 8820, -32768, 7215, 7215, 7215, 7215, 7215, + 7215, 7215, 7215, 7215, 7215, 7215, 7215, 7215, 7215, 7215, + 7215, 7215, 7215, 7215, 7215, 7215, 7215, 7215, 7215, 7215, + 7215, 7215, 149, 7104, 7215, 9437, 7215, 760, -32768, 8684, + 343, -32768, 249, 5425, 248, 339, 288, 6441, 7215, 7215, + 7215, 7215, 7215, 7215, 7215, 7215, 7215, 7215, 7215, 7215, + 7215, -32768, -32768, 769, -32768, -32768, 285, 773, -32768, 599, + -32768, 610, 25, -32768, 225, -32768, -32768, 7215, 7215, 7215, + 167, 167, 6276, 82, 22, -32768, -32768, 8620, 9437, 7215, + 247, -32768, -32768, 88, 7215, -32768, -32768, 6276, 149, -32768, + 436, 436, 480, 436, 8556, 7215, 436, 436, 436, 436, + 436, 436, 436, -32768, 7215, 436, 412, 593, 586, -32768, + 183, 6993, 9437, 9044, 8993, 9044, 7215, 4292, 4292, 7215, + 7215, 8820, 8820, 7215, 8820, 8820, 689, -32768, 637, 501, + 593, 246, 7215, -32768, -32768, 1123, -32768, 6276, 225, -32768, + 759, 535, 268, 225, 546, -32768, 769, 336, -32768, -32768, + 1622, -32768, 331, -15, 554, -32768, 592, 408, 767, 764, + -32768, 692, -32768, 760, 7215, -32768, -32768, -32768, -32768, -32768, + 706, 245, 8492, 244, -32768, 330, 15, 8820, 8428, -32768, + 8820, -32768, -32768, -32768, 164, -32768, 733, 7215, -32768, 7215, + 9146, 9197, 8873, 9044, 8925, 9248, 9350, 9350, 9299, 39, + 39, 39, 480, 436, 480, 480, 71, 71, 52, 52, + 52, 52, 33, 33, 33, 33, 52, -32768, 8364, 7215, + 9095, 14, -32768, -32768, 8300, -20, 3793, -32768, -32768, 7215, + -32768, 7215, -32768, -32768, 9044, 7215, 7215, 9044, 9044, 9044, + 9044, 9044, 9044, 9044, 9044, 9044, 9044, 9044, 9044, 9044, + -32768, 243, 581, 192, 599, 581, 690, 407, -32768, 690, + 820, 79, -32768, 8236, 72, 8169, 225, -32768, 7215, -32768, + 225, 202, -53, 6276, 6828, -32768, 8820, 6276, 8105, 63, + 225, -32768, 8041, 200, -32768, -32768, -32768, -32768, 207, 744, + 7974, 84, 369, 7215, 62, 225, -32768, -32768, 7215, 225, + -32768, -32768, 13, -32768, 8820, 7910, 7846, -32768, -32768, -32768, + 6309, 7779, -32768, 6717, 12, -32768, 8820, 279, -32768, 7215, + 240, 7215, 235, 234, 7215, 7215, 672, 232, 229, 7215, + 7215, 228, 7215, 7215, -32768, -32768, -32768, -32768, -32768, -32768, + -32768, -32768, 56, 56, 939, 226, 197, -32768, -32768, 164, + 7215, 7215, 167, 164, 599, -32768, 225, -32768, 1455, -32768, + -32768, -32768, 405, -32768, 675, 587, -32768, -32768, -32768, 8820, + -32768, 194, 5260, 7215, 7215, 7215, 222, -32768, -32768, 8820, + -32768, 7215, 9095, 193, 9437, 471, 5095, -32768, 7715, 7651, + 3626, 9350, 9350, 219, 6309, -32768, 690, -32768, -23, 1701, + 418, -34, -32768, -32768, -32768, -32768, -35, 1701, 581, -32768, + -32768, -32768, 402, -19, -32768, -32768, -32768, 4930, -32768, -32768, + -32768, 7584, -32768, -54, 7215, -32768, 8820, 9437, 214, 185, + -32768, -32768, 400, -32768, 61, -32768, -32768, 715, -32768, -32768, + -32768, -32768, 7215, -32768, 9044, -32768, -32768, 7517, -32768, 176, + 7215, -32768, -32768, 166, 6, -32768, -32768, 6309, 37, 4570, + -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, + -32768, 8820, 161, 1288, 7215, -32768, -32768, 50, 7450, -32768, + -32768, 581, 599, -32768, 562, 4, -32768, -32768, 562, -32768, + 327, -32768, -32768, -32768, 7386, 324, 8820, -32768, 320, 319, + 9095, 317, -32768, 160, 589, 9437, 212, 6276, -32768, -32768, + -32768, 645, 5425, 223, 316, 6309, 155, 399, -19, 1701, + 1534, -32768, 1701, 1534, 1534, 165, 417, -32768, 392, 6919, + -32768, 690, -32768, -32768, -32768, 7215, 9044, -32768, 6276, -54, + 6606, -32768, -32768, 7322, -32768, -32768, -32768, 208, 6309, -32768, + 497, -32768, 37, -32768, -32768, -32768, 7215, 8820, -32768, -32768, + -32768, 581, -6, -32768, 363, 587, -32768, -32768, 3459, 315, + 7215, 423, -32768, 868, -32768, -32768, 4600, 471, -32768, 6276, + 35, 3292, -32768, 209, 391, -32768, -32768, -32768, 139, 633, + -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, + 384, -32768, -32768, -32768, -32768, 4553, -32768, 192, 644, 690, + -32768, 447, -32768, -32768, 6532, -32768, 4127, 9044, 135, 361, + -14, -32768, 83, 585, 8820, 355, -32768, 192, -32768, 732, + -32768, 497, 383, -32768, 298, 562, -32768, -32768, 314, -32768, + 134, -32768, 7215, 218, 414, 313, 810, -32768, -32768, -32768, + 131, -32768, 128, -32768, 312, 690, -32768, 4127, 208, 208, + 206, 6202, -32768, 6012, -32768, 724, 4442, 56, -30, 6042, + -32768, -54, -32768, -32768, 6606, 7215, 7215, 7215, -32768, 572, + -32768, -55, 730, -32768, 380, -32768, -32768, -32768, 4765, 7253, + -32768, -32768, -32768, -32768, -32768, 310, 3125, 4600, -32768, -32768, + 157, -32768, 2958, 377, 375, 188, -32768, 5862, -32768, -21, + -32768, -56, -24, 6042, -32768, -58, -32768, -32768, -32768, 6042, + -32768, -32768, 5741, -59, -32768, 8820, 8820, 8820, 7215, 7215, + -62, 5711, -32768, -32768, -32768, -32768, -32768, 4127, -32768, 308, + -32768, 97, 374, 690, -32768, -32768, -32768, -16, -32768, -32768, + 729, -32768, -32768, 724, -32768, 7215, -32768, 6042, -28, 7215, + -32768, -32768, 5590, -32768, 307, 306, 628, 662, 510, -32768, + 305, 7215, 9044, 8820, 7215, -32768, 4468, 2791, 4127, -32768, + 169, -32768, -32768, 2624, 2457, 93, 188, -32768, -32768, 8820, + -32768, -32768, 8820, 184, -32768, -32768, -32768, -32768, 690, 6175, + 6042, -32768, 8820, 8820, -32768, 287, -32768, 2290, -32768, -32768, + -32768, -32768, -32768, -32768, 6309, -19, -32768, -32768, 6042, -32768, + -32768, 2123, -32768, 73, -32768, -32768, 208, 283, -32768, -32768, + -32768, 1956, -32768, } -var yyPgo = [...]int{ - 0, 36, 23, 77, 10, 1063, 31, 29, 14, 1061, - 5, 93, 1060, 1058, 1057, 1050, 1049, 35, 1048, 103, - 24, 88, 1047, 28, 1045, 0, 68, 6, 1044, 1040, - 1038, 18, 1037, 1036, 1033, 44, 118, 39, 37, 27, - 42, 1030, 1027, 91, 26, 1026, 1024, 1023, 1019, 1017, - 92, 1012, 11, 1010, 1006, 1004, 1003, 15, 87, 1000, - 999, 105, 102, 86, 107, 810, 995, 994, 40, 993, - 986, 8, 979, 106, 54, 975, 61, 53, 973, 971, - 967, 963, 962, 119, 957, 954, 951, 12, 945, 111, - 944, 942, 941, 939, 931, 17, 927, 925, 908, 108, - 13, 104, 99, 906, 898, 897, 84, 47, 45, 3, - 19, 890, 50, 877, 51, 94, 69, 79, 874, 862, - 860, 16, 851, 847, 56, 842, 49, 67, 838, 837, - 85, 824, 30, 52, 9, 787, 34, 640, 820, 818, - 43, 816, 95, 1, 32, 815, 807, 2, 48, 4, - 777, 46, +var yyPgo = [...]int16{ + 0, 38, 23, 48, 10, 1012, 30, 29, 14, 1006, + 5, 93, 1001, 1000, 999, 993, 987, 35, 986, 88, + 24, 86, 985, 32, 984, 0, 111, 6, 983, 982, + 981, 19, 980, 979, 978, 50, 359, 45, 37, 27, + 42, 977, 975, 55, 31, 973, 971, 970, 969, 968, + 67, 963, 11, 961, 959, 958, 950, 15, 52, 948, + 947, 357, 92, 85, 105, 79, 946, 945, 89, 944, + 943, 8, 939, 87, 84, 934, 104, 60, 927, 925, + 924, 916, 913, 152, 912, 909, 908, 12, 906, 107, + 892, 889, 886, 884, 883, 17, 877, 874, 871, 108, + 13, 95, 99, 868, 865, 864, 54, 47, 39, 3, + 26, 862, 49, 855, 44, 103, 69, 51, 853, 847, + 845, 16, 838, 833, 90, 832, 41, 68, 827, 821, + 80, 818, 28, 53, 9, 751, 34, 640, 816, 815, + 43, 808, 91, 1, 18, 805, 804, 2, 77, 4, + 802, 46, } -var yyR1 = [...]int{ +var yyR1 = [...]uint8{ 0, 150, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, @@ -1784,7 +1790,7 @@ var yyR1 = [...]int{ 66, 66, 66, 94, 94, 107, } -var yyR2 = [...]int{ +var yyR2 = [...]int8{ 0, 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, @@ -1829,7 +1835,7 @@ var yyR2 = [...]int{ 3, 3, 3, 3, 1, 5, 4, 3, 7, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 3, 2, 1, 2, 4, 2, 1, 2, 11, 9, - 0, 0, 1, 1, 0, 4, 3, 1, 1, 2, + 0, 0, 1, 1, 0, 5, 3, 1, 1, 2, 2, 4, 4, 2, 1, 1, 1, 1, 0, 3, 0, 1, 1, 0, 1, 4, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, @@ -1844,8 +1850,8 @@ var yyR2 = [...]int{ 4, 2, 2, 1, 3, 1, } -var yyChk = [...]int{ - -1000, -150, -142, -9, 2, -11, -133, -149, 52, 80, +var yyChk = [...]int16{ + -32768, -150, -142, -9, 2, -11, -133, -149, 52, 80, 45, 39, 153, -88, -92, 21, 20, 23, 30, 34, 35, 40, 47, 99, 19, 14, -25, 49, 25, 27, 155, 41, 44, 36, 10, -12, -45, -13, -14, -15, @@ -1949,15 +1955,15 @@ var yyChk = [...]int{ 162, 154, 155, 169, -151, 171, 155, 169, -95, 171, -6, 154, -141, -52, -53, -54, -55, -56, -10, -6, -48, 171, -25, -25, 171, 154, -144, -143, -143, 155, - 158, 153, -10, -143, -143, 158, 169, 12, -57, -25, + 158, 153, -10, -143, -143, -7, 169, 12, -57, -25, -100, 155, -25, -151, 154, -52, 155, 155, 46, 29, 79, 155, -25, -25, 154, 24, 153, -143, 154, 154, - -71, -151, -151, 157, -87, 10, -4, -134, -6, 155, - -143, 154, -27, -6, 154, 158, -109, -120, 155, 153, - -143, 154, + 158, -71, -151, -151, 157, -87, 10, -4, -134, -6, + 155, -143, 154, -27, -6, 154, 158, -109, -120, 155, + 153, -143, 154, } -var yyDef = [...]int{ +var yyDef = [...]int16{ 83, -2, -2, 82, 106, 107, 108, 0, 0, 0, 0, 0, 142, 149, 150, 0, 0, 0, 0, 490, 490, 490, 0, 454, 0, 161, 0, 0, 0, 0, @@ -2058,19 +2064,19 @@ var yyDef = [...]int{ 335, 440, 0, 0, 339, 0, -2, -2, -2, 0, 300, 304, 0, 198, 280, 281, 284, 282, 0, 0, 246, 323, 293, 153, 212, 142, 142, -2, 221, 0, - 165, 0, 0, 0, 178, 142, 142, 0, 447, 448, + 165, 0, 0, 0, 178, 142, 142, 123, 447, 448, 0, 187, 297, 0, 336, 0, 298, 0, 0, 0, 440, 305, 0, 307, 0, 0, 317, 0, 0, 316, 0, 0, 439, 245, 0, 349, 323, 0, -2, 215, - 0, 142, 176, 0, 0, 445, 0, 449, 334, 440, + 0, 142, 176, 0, 0, 0, 124, 449, 334, 440, 338, 299, 440, 0, 306, 308, 309, 310, 0, 0, 0, 197, 199, 247, 350, 0, 142, 0, 182, 438, - 446, 337, 340, -2, 311, 312, 313, 315, 318, 213, - 0, 174, 0, 314, 173, 267, 0, 301, 319, 142, - 0, 320, + 445, 446, 337, 340, -2, 311, 312, 313, 315, 318, + 213, 0, 174, 0, 314, 173, 267, 0, 301, 319, + 142, 0, 320, } -var yyTok1 = [...]int{ +var yyTok1 = [...]uint8{ 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, @@ -2086,7 +2092,7 @@ var yyTok1 = [...]int{ 3, 3, 3, 153, 170, 154, 166, } -var yyTok2 = [...]int{ +var yyTok2 = [...]uint8{ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, @@ -2104,7 +2110,7 @@ var yyTok2 = [...]int{ 142, 143, 144, 145, 146, 147, 148, 149, 150, } -var yyTok3 = [...]int{ +var yyTok3 = [...]int8{ 0, } @@ -2147,7 +2153,7 @@ func yyNewParser() yyParser { return &yyParserImpl{} } -const yyFlag = -1000 +const yyFlag = -32768 func yyTokname(c int) string { if c >= 1 && c-1 < len(yyToknames) { @@ -2186,9 +2192,9 @@ func yyErrorMessage(state, lookAhead int) string { expected := make([]int, 0, 4) // Look for shiftable tokens. - base := yyPact[state] + base := int(yyPact[state]) for tok := TOKSTART; tok-1 < len(yyToknames); tok++ { - if n := base + tok; n >= 0 && n < yyLast && yyChk[yyAct[n]] == tok { + if n := base + tok; n >= 0 && n < yyLast && int(yyChk[int(yyAct[n])]) == tok { if len(expected) == cap(expected) { return res } @@ -2198,13 +2204,13 @@ func yyErrorMessage(state, lookAhead int) string { if yyDef[state] == -2 { i := 0 - for yyExca[i] != -1 || yyExca[i+1] != state { + for yyExca[i] != -1 || int(yyExca[i+1]) != state { i += 2 } // Look for tokens that we accept or reduce. for i += 2; yyExca[i] >= 0; i += 2 { - tok := yyExca[i] + tok := int(yyExca[i]) if tok < TOKSTART || yyExca[i+1] == 0 { continue } @@ -2235,30 +2241,30 @@ func yylex1(lex yyLexer, lval *yySymType) (char, token int) { token = 0 char = lex.Lex(lval) if char <= 0 { - token = yyTok1[0] + token = int(yyTok1[0]) goto out } if char < len(yyTok1) { - token = yyTok1[char] + token = int(yyTok1[char]) goto out } if char >= yyPrivate { if char < yyPrivate+len(yyTok2) { - token = yyTok2[char-yyPrivate] + token = int(yyTok2[char-yyPrivate]) goto out } } for i := 0; i < len(yyTok3); i += 2 { - token = yyTok3[i+0] + token = int(yyTok3[i+0]) if token == char { - token = yyTok3[i+1] + token = int(yyTok3[i+1]) goto out } } out: if token == 0 { - token = yyTok2[1] /* unknown char */ + token = int(yyTok2[1]) /* unknown char */ } if yyDebug >= 3 { __yyfmt__.Printf("lex %s(%d)\n", yyTokname(token), uint(char)) @@ -2313,7 +2319,7 @@ yystack: yyS[yyp].yys = yystate yynewstate: - yyn = yyPact[yystate] + yyn = int(yyPact[yystate]) if yyn <= yyFlag { goto yydefault /* simple state */ } @@ -2324,8 +2330,8 @@ yynewstate: if yyn < 0 || yyn >= yyLast { goto yydefault } - yyn = yyAct[yyn] - if yyChk[yyn] == yytoken { /* valid shift */ + yyn = int(yyAct[yyn]) + if int(yyChk[yyn]) == yytoken { /* valid shift */ yyrcvr.char = -1 yytoken = -1 yyVAL = yyrcvr.lval @@ -2338,7 +2344,7 @@ yynewstate: yydefault: /* default state action */ - yyn = yyDef[yystate] + yyn = int(yyDef[yystate]) if yyn == -2 { if yyrcvr.char < 0 { yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval) @@ -2347,18 +2353,18 @@ yydefault: /* look through exception table */ xi := 0 for { - if yyExca[xi+0] == -1 && yyExca[xi+1] == yystate { + if yyExca[xi+0] == -1 && int(yyExca[xi+1]) == yystate { break } xi += 2 } for xi += 2; ; xi += 2 { - yyn = yyExca[xi+0] + yyn = int(yyExca[xi+0]) if yyn < 0 || yyn == yytoken { break } } - yyn = yyExca[xi+1] + yyn = int(yyExca[xi+1]) if yyn < 0 { goto ret0 } @@ -2380,10 +2386,10 @@ yydefault: /* find a state where "error" is a legal shift action */ for yyp >= 0 { - yyn = yyPact[yyS[yyp].yys] + yyErrCode + yyn = int(yyPact[yyS[yyp].yys]) + yyErrCode if yyn >= 0 && yyn < yyLast { - yystate = yyAct[yyn] /* simulate a shift of "error" */ - if yyChk[yystate] == yyErrCode { + yystate = int(yyAct[yyn]) /* simulate a shift of "error" */ + if int(yyChk[yystate]) == yyErrCode { goto yystack } } @@ -2419,7 +2425,7 @@ yydefault: yypt := yyp _ = yypt // guard against "declared and not used" - yyp -= yyR2[yyn] + yyp -= int(yyR2[yyn]) // yyp is now the index of $0. Perform the default action. Iff the // reduced production is ε, $1 is possibly out of range. if yyp+1 >= len(yyS) { @@ -2430,16 +2436,16 @@ yydefault: yyVAL = yyS[yyp+1] /* consult goto table to find next state */ - yyn = yyR1[yyn] - yyg := yyPgo[yyn] + yyn = int(yyR1[yyn]) + yyg := int(yyPgo[yyn]) yyj := yyg + yyS[yyp].yys + 1 if yyj >= yyLast { - yystate = yyAct[yyg] + yystate = int(yyAct[yyg]) } else { - yystate = yyAct[yyj] - if yyChk[yystate] != -yyn { - yystate = yyAct[yyg] + yystate = int(yyAct[yyj]) + if int(yyChk[yystate]) != -yyn { + yystate = int(yyAct[yyg]) } } // dummy call; replaced with literal code @@ -6955,20 +6961,24 @@ yydefault: yyVAL.node = &ast.ExprClosure{} } case 445: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-5 : yypt+1] // line internal/php8/php8.y:3962 { + if yyDollar[4].token != nil { + yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[4].token) + } + yyVAL.node = &ast.ExprClosure{ UseTkn: yyDollar[1].token, UseOpenParenthesisTkn: yyDollar[2].token, Uses: yyDollar[3].node.(*ParserSeparatedList).Items, UseSeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, - UseCloseParenthesisTkn: yyDollar[4].token, + UseCloseParenthesisTkn: yyDollar[5].token, } } case 446: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php8/php8.y:3975 + // line internal/php8/php8.y:3979 { yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].node) @@ -6977,7 +6987,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:3982 + // line internal/php8/php8.y:3986 { yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6985,7 +6995,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:3991 + // line internal/php8/php8.y:3995 { yyVAL.node = &ast.ExprClosureUse{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7001,7 +7011,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php8/php8.y:4005 + // line internal/php8/php8.y:4009 { yyVAL.node = &ast.ExprClosureUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -7018,7 +7028,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php8/php8.y:4023 + // line internal/php8/php8.y:4027 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), @@ -7031,7 +7041,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php8/php8.y:4034 + // line internal/php8/php8.y:4038 { staticCall := &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -7054,7 +7064,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php8/php8.y:4055 + // line internal/php8/php8.y:4059 { staticCall := &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -7077,7 +7087,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php8/php8.y:4076 + // line internal/php8/php8.y:4080 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), @@ -7090,7 +7100,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4090 + // line internal/php8/php8.y:4094 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7100,31 +7110,31 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4098 + // line internal/php8/php8.y:4102 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4105 + // line internal/php8/php8.y:4109 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4109 + // line internal/php8/php8.y:4113 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php8/php8.y:4116 + // line internal/php8/php8.y:4120 { yyVAL.node = nil } case 459: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php8/php8.y:4120 + // line internal/php8/php8.y:4124 { yyVAL.node = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7135,13 +7145,13 @@ yydefault: } case 460: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php8/php8.y:4132 + // line internal/php8/php8.y:4136 { yyVAL.list = []ast.Vertex{} } case 461: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4136 + // line internal/php8/php8.y:4140 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7153,25 +7163,25 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4146 + // line internal/php8/php8.y:4150 { yyVAL.list = yyDollar[1].list } case 463: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php8/php8.y:4153 + // line internal/php8/php8.y:4157 { yyVAL.node = nil } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4157 + // line internal/php8/php8.y:4161 { yyVAL.node = yyDollar[1].node } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php8/php8.y:4164 + // line internal/php8/php8.y:4168 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7184,7 +7194,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php8/php8.y:4175 + // line internal/php8/php8.y:4179 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7196,7 +7206,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4185 + // line internal/php8/php8.y:4189 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7206,7 +7216,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4196 + // line internal/php8/php8.y:4200 { yyVAL.node = &ast.ScalarLnumber{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7216,7 +7226,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4204 + // line internal/php8/php8.y:4208 { yyVAL.node = &ast.ScalarDnumber{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7226,7 +7236,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4212 + // line internal/php8/php8.y:4216 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7236,7 +7246,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4220 + // line internal/php8/php8.y:4224 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7246,7 +7256,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4228 + // line internal/php8/php8.y:4232 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7256,7 +7266,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4236 + // line internal/php8/php8.y:4240 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7266,7 +7276,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4244 + // line internal/php8/php8.y:4248 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7276,7 +7286,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4252 + // line internal/php8/php8.y:4256 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7286,7 +7296,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4260 + // line internal/php8/php8.y:4264 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7296,7 +7306,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4268 + // line internal/php8/php8.y:4272 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7306,7 +7316,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php8/php8.y:4276 + // line internal/php8/php8.y:4280 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7323,7 +7333,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php8/php8.y:4291 + // line internal/php8/php8.y:4295 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -7333,7 +7343,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php8/php8.y:4299 + // line internal/php8/php8.y:4303 { yyVAL.node = &ast.ScalarEncapsed{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7344,7 +7354,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php8/php8.y:4308 + // line internal/php8/php8.y:4312 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7355,19 +7365,19 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4317 + // line internal/php8/php8.y:4321 { yyVAL.node = yyDollar[1].node } case 483: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4321 + // line internal/php8/php8.y:4325 { yyVAL.node = yyDollar[1].node } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4328 + // line internal/php8/php8.y:4332 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -7376,13 +7386,13 @@ yydefault: } case 485: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4335 + // line internal/php8/php8.y:4339 { yyVAL.node = yyDollar[1].node } case 486: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php8/php8.y:4342 + // line internal/php8/php8.y:4346 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -7397,7 +7407,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php8/php8.y:4355 + // line internal/php8/php8.y:4359 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -7412,43 +7422,43 @@ yydefault: } case 488: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4371 + // line internal/php8/php8.y:4375 { yyVAL.node = yyDollar[1].node } case 489: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4375 + // line internal/php8/php8.y:4379 { yyVAL.node = yyDollar[1].node } case 490: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php8/php8.y:4382 + // line internal/php8/php8.y:4386 { yyVAL.node = nil } case 491: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4386 + // line internal/php8/php8.y:4390 { yyVAL.node = yyDollar[1].node } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4393 + // line internal/php8/php8.y:4397 { yyVAL.node = yyDollar[1].node } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4400 + // line internal/php8/php8.y:4404 { yyVAL.node = yyDollar[1].node } case 494: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php8/php8.y:4404 + // line internal/php8/php8.y:4408 { yyVAL.node = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7459,31 +7469,31 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4413 + // line internal/php8/php8.y:4417 { yyVAL.node = yyDollar[1].node } case 496: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4417 + // line internal/php8/php8.y:4421 { yyVAL.node = yyDollar[1].node } case 497: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4421 + // line internal/php8/php8.y:4425 { yyVAL.node = yyDollar[1].node } case 498: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4428 + // line internal/php8/php8.y:4432 { yyVAL.node = yyDollar[1].node } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php8/php8.y:4432 + // line internal/php8/php8.y:4436 { yyVAL.node = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7494,19 +7504,19 @@ yydefault: } case 500: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4441 + // line internal/php8/php8.y:4445 { yyVAL.node = yyDollar[1].node } case 501: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4448 + // line internal/php8/php8.y:4452 { yyVAL.node = yyDollar[1].node } case 502: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php8/php8.y:4452 + // line internal/php8/php8.y:4456 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7518,7 +7528,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php8/php8.y:4462 + // line internal/php8/php8.y:4466 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7530,7 +7540,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php8/php8.y:4472 + // line internal/php8/php8.y:4476 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7542,7 +7552,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php8/php8.y:4482 + // line internal/php8/php8.y:4486 { methodCall := &ast.ExprMethodCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -7565,7 +7575,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php8/php8.y:4503 + // line internal/php8/php8.y:4507 { methodCall := &ast.ExprNullsafeMethodCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -7588,25 +7598,25 @@ yydefault: } case 507: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4524 + // line internal/php8/php8.y:4528 { yyVAL.node = yyDollar[1].node } case 508: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4531 + // line internal/php8/php8.y:4535 { yyVAL.node = yyDollar[1].node } case 509: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4535 + // line internal/php8/php8.y:4539 { yyVAL.node = yyDollar[1].node } case 510: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php8/php8.y:4539 + // line internal/php8/php8.y:4543 { propertyFetch := &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7625,7 +7635,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php8/php8.y:4556 + // line internal/php8/php8.y:4560 { propertyFetch := &ast.ExprNullsafePropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7644,7 +7654,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4576 + // line internal/php8/php8.y:4580 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7657,7 +7667,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php8/php8.y:4587 + // line internal/php8/php8.y:4591 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7669,7 +7679,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php8/php8.y:4597 + // line internal/php8/php8.y:4601 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7679,7 +7689,7 @@ yydefault: } case 515: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php8/php8.y:4608 + // line internal/php8/php8.y:4612 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7690,7 +7700,7 @@ yydefault: } case 516: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php8/php8.y:4617 + // line internal/php8/php8.y:4621 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7701,13 +7711,13 @@ yydefault: } case 517: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4629 + // line internal/php8/php8.y:4633 { yyVAL.node = yyDollar[1].node } case 518: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php8/php8.y:4633 + // line internal/php8/php8.y:4637 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7719,7 +7729,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php8/php8.y:4643 + // line internal/php8/php8.y:4647 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7731,7 +7741,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php8/php8.y:4653 + // line internal/php8/php8.y:4657 { propertyFetch := &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7750,7 +7760,7 @@ yydefault: } case 521: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php8/php8.y:4670 + // line internal/php8/php8.y:4674 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7761,7 +7771,7 @@ yydefault: } case 522: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php8/php8.y:4679 + // line internal/php8/php8.y:4683 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7772,7 +7782,7 @@ yydefault: } case 523: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4691 + // line internal/php8/php8.y:4695 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7782,7 +7792,7 @@ yydefault: } case 524: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php8/php8.y:4699 + // line internal/php8/php8.y:4703 { yyVAL.node = &ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7793,13 +7803,13 @@ yydefault: } case 525: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4708 + // line internal/php8/php8.y:4712 { yyVAL.node = yyDollar[1].node } case 526: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4715 + // line internal/php8/php8.y:4719 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7809,7 +7819,7 @@ yydefault: } case 527: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php8/php8.y:4723 + // line internal/php8/php8.y:4727 { yyVAL.node = &ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7820,13 +7830,13 @@ yydefault: } case 528: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4732 + // line internal/php8/php8.y:4736 { yyVAL.node = yyDollar[1].node } case 529: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4739 + // line internal/php8/php8.y:4743 { pairList := yyDollar[1].node.(*ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7839,19 +7849,19 @@ yydefault: } case 530: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php8/php8.y:4753 + // line internal/php8/php8.y:4757 { yyVAL.node = &ast.ExprArrayItem{} } case 531: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4757 + // line internal/php8/php8.y:4761 { yyVAL.node = yyDollar[1].node } case 532: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php8/php8.y:4764 + // line internal/php8/php8.y:4768 { yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].node) @@ -7860,7 +7870,7 @@ yydefault: } case 533: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4771 + // line internal/php8/php8.y:4775 { yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7868,7 +7878,7 @@ yydefault: } case 534: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php8/php8.y:4780 + // line internal/php8/php8.y:4784 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7879,7 +7889,7 @@ yydefault: } case 535: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4789 + // line internal/php8/php8.y:4793 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -7888,7 +7898,7 @@ yydefault: } case 536: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php8/php8.y:4796 + // line internal/php8/php8.y:4800 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -7900,7 +7910,7 @@ yydefault: } case 537: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php8/php8.y:4806 + // line internal/php8/php8.y:4810 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7910,7 +7920,7 @@ yydefault: } case 538: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php8/php8.y:4814 + // line internal/php8/php8.y:4818 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7920,7 +7930,7 @@ yydefault: } case 539: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php8/php8.y:4822 + // line internal/php8/php8.y:4826 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token), @@ -7938,7 +7948,7 @@ yydefault: } case 540: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php8/php8.y:4838 + // line internal/php8/php8.y:4842 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7954,13 +7964,13 @@ yydefault: } case 541: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php8/php8.y:4855 + // line internal/php8/php8.y:4859 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 542: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php8/php8.y:4859 + // line internal/php8/php8.y:4863 { yyVAL.list = append( yyDollar[1].list, @@ -7973,13 +7983,13 @@ yydefault: } case 543: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4870 + // line internal/php8/php8.y:4874 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 544: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php8/php8.y:4874 + // line internal/php8/php8.y:4878 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7992,7 +8002,7 @@ yydefault: } case 545: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4888 + // line internal/php8/php8.y:4892 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -8005,7 +8015,7 @@ yydefault: } case 546: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php8/php8.y:4899 + // line internal/php8/php8.y:4903 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8024,7 +8034,7 @@ yydefault: } case 547: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php8/php8.y:4916 + // line internal/php8/php8.y:4920 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -8046,7 +8056,7 @@ yydefault: } case 548: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php8/php8.y:4936 + // line internal/php8/php8.y:4940 { yyVAL.node = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -8057,7 +8067,7 @@ yydefault: } case 549: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php8/php8.y:4945 + // line internal/php8/php8.y:4949 { yyVAL.node = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -8072,7 +8082,7 @@ yydefault: } case 550: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php8/php8.y:4958 + // line internal/php8/php8.y:4962 { yyVAL.node = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -8090,7 +8100,7 @@ yydefault: } case 551: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php8/php8.y:4974 + // line internal/php8/php8.y:4978 { yyVAL.node = &ast.ScalarEncapsedStringBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -8101,7 +8111,7 @@ yydefault: } case 552: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4986 + // line internal/php8/php8.y:4990 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -8111,7 +8121,7 @@ yydefault: } case 553: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:4994 + // line internal/php8/php8.y:4998 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8130,7 +8140,7 @@ yydefault: } case 554: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php8/php8.y:5011 + // line internal/php8/php8.y:5015 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -8156,7 +8166,7 @@ yydefault: } case 555: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:5035 + // line internal/php8/php8.y:5039 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -8169,7 +8179,7 @@ yydefault: } case 556: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php8/php8.y:5049 + // line internal/php8/php8.y:5053 { if yyDollar[4].token != nil { yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[4].token) @@ -8186,7 +8196,7 @@ yydefault: } case 557: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php8/php8.y:5064 + // line internal/php8/php8.y:5068 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8198,7 +8208,7 @@ yydefault: } case 558: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php8/php8.y:5074 + // line internal/php8/php8.y:5078 { yyVAL.node = &ast.ExprInclude{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8208,7 +8218,7 @@ yydefault: } case 559: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php8/php8.y:5082 + // line internal/php8/php8.y:5086 { yyVAL.node = &ast.ExprIncludeOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8218,7 +8228,7 @@ yydefault: } case 560: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php8/php8.y:5090 + // line internal/php8/php8.y:5094 { yyVAL.node = &ast.ExprEval{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8230,7 +8240,7 @@ yydefault: } case 561: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php8/php8.y:5100 + // line internal/php8/php8.y:5104 { yyVAL.node = &ast.ExprRequire{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8240,7 +8250,7 @@ yydefault: } case 562: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php8/php8.y:5108 + // line internal/php8/php8.y:5112 { yyVAL.node = &ast.ExprRequireOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8250,7 +8260,7 @@ yydefault: } case 563: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:5119 + // line internal/php8/php8.y:5123 { yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8258,7 +8268,7 @@ yydefault: } case 564: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php8/php8.y:5125 + // line internal/php8/php8.y:5129 { yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].node) @@ -8267,7 +8277,7 @@ yydefault: } case 565: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php8/php8.y:5135 + // line internal/php8/php8.y:5139 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php8/php8.y b/internal/php8/php8.y index 16ba822..e336f0a 100644 --- a/internal/php8/php8.y +++ b/internal/php8/php8.y @@ -3958,14 +3958,18 @@ lexical_vars: { $$ = &ast.ExprClosure{} } - | T_USE '(' lexical_var_list ')' + | T_USE '(' lexical_var_list possible_comma ')' { + if $4 != nil { + $3.(*ParserSeparatedList).SeparatorTkns = append($3.(*ParserSeparatedList).SeparatorTkns, $4) + } + $$ = &ast.ExprClosure{ UseTkn: $1, UseOpenParenthesisTkn: $2, Uses: $3.(*ParserSeparatedList).Items, UseSeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, - UseCloseParenthesisTkn: $4, + UseCloseParenthesisTkn: $5, } } ; diff --git a/internal/php8/trailing_comma_closure_use_test.go b/internal/php8/trailing_comma_closure_use_test.go new file mode 100644 index 0000000..b8c981d --- /dev/null +++ b/internal/php8/trailing_comma_closure_use_test.go @@ -0,0 +1,51 @@ +package php8_test + +import ( + "bytes" + "testing" + + "github.com/rectorphp/php-parser-in-go/pkg/ast" + "github.com/rectorphp/php-parser-in-go/pkg/visitor/printer" +) + +// PHP 8.0 allows a trailing comma in a closure use list. +func TestTrailingCommaInClosureUseList(test *testing.T) { + root, parserErrors := parsePhp8(`