From 69dfc4fa9bec7d7ef9041a0962185d7a20026ee7 Mon Sep 17 00:00:00 2001 From: fennecdjay Date: Sun, 25 Feb 2024 19:24:15 +0100 Subject: [PATCH] :fire: update --- src/parser.c | 2467 +++++++++++++++++++++++++------------------------- 1 file changed, 1215 insertions(+), 1252 deletions(-) diff --git a/src/parser.c b/src/parser.c index 811857ca..8ac07a59 100644 --- a/src/parser.c +++ b/src/parser.c @@ -728,18 +728,18 @@ union yyalloc #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 229 +#define YYFINAL 227 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 2854 +#define YYLAST 2715 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 129 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 141 /* YYNRULES -- Number of rules. */ -#define YYNRULES 350 +#define YYNRULES 349 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 628 +#define YYNSTATES 625 /* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 383 @@ -815,28 +815,27 @@ static const yytype_int16 yyrline[] = 489, 494, 494, 497, 506, 507, 509, 518, 527, 528, 532, 539, 547, 555, 564, 573, 583, 590, 599, 611, 618, 627, 627, 629, 630, 631, 632, 635, 636, 639, - 640, 641, 651, 652, 653, 654, 656, 656, 658, 658, - 658, 658, 658, 661, 662, 665, 669, 670, 671, 675, - 676, 679, 680, 681, 685, 685, 686, 687, 688, 694, - 694, 695, 695, 698, 699, 703, 707, 709, 710, 710, - 712, 712, 714, 715, 718, 719, 720, 721, 724, 724, - 726, 726, 729, 734, 741, 747, 755, 764, 764, 764, - 764, 764, 766, 776, 785, 795, 801, 801, 803, 805, - 807, 810, 810, 810, 811, 817, 824, 833, 834, 848, - 849, 853, 854, 857, 857, 857, 858, 859, 859, 862, - 863, 865, 865, 868, 872, 874, 875, 878, 887, 889, - 890, 890, 892, 892, 893, 893, 893, 893, 894, 894, - 895, 895, 896, 896, 896, 898, 898, 899, 900, 902, - 905, 905, 906, 906, 907, 907, 908, 908, 909, 909, - 910, 910, 911, 911, 912, 912, 913, 913, 914, 914, - 915, 915, 917, 917, 920, 920, 920, 921, 921, 924, - 925, 926, 927, 928, 931, 932, 933, 934, 935, 936, - 939, 942, 947, 947, 949, 950, 953, 957, 958, 961, - 962, 964, 964, 966, 975, 976, 978, 980, 983, 985, - 989, 990, 991, 993, 994, 1005, 1005, 1007, 1008, 1009, - 1009, 1010, 1010, 1013, 1017, 1018, 1019, 1022, 1023, 1024, - 1025, 1033, 1034, 1035, 1036, 1037, 1043, 1044, 1045, 1046, - 1047 + 640, 650, 651, 652, 653, 655, 655, 657, 657, 657, + 657, 657, 660, 661, 664, 668, 669, 670, 674, 675, + 678, 679, 680, 684, 684, 685, 686, 687, 693, 693, + 694, 694, 697, 698, 702, 706, 708, 709, 709, 711, + 711, 713, 714, 717, 718, 719, 720, 723, 723, 725, + 725, 728, 733, 740, 746, 754, 763, 763, 763, 763, + 763, 765, 775, 784, 794, 800, 800, 802, 804, 806, + 809, 809, 809, 810, 816, 823, 832, 833, 847, 848, + 852, 853, 856, 856, 856, 857, 858, 858, 861, 862, + 864, 864, 867, 871, 873, 874, 877, 886, 888, 889, + 889, 891, 891, 892, 892, 892, 892, 893, 893, 894, + 894, 895, 895, 895, 897, 897, 898, 899, 901, 904, + 904, 905, 905, 906, 906, 907, 907, 908, 908, 909, + 909, 910, 910, 911, 911, 912, 912, 913, 913, 914, + 914, 916, 916, 919, 919, 919, 920, 920, 923, 924, + 925, 926, 927, 930, 931, 932, 933, 934, 935, 938, + 941, 946, 946, 948, 949, 952, 956, 957, 960, 961, + 963, 963, 965, 974, 975, 977, 979, 982, 984, 988, + 989, 990, 992, 993, 1004, 1004, 1006, 1007, 1008, 1008, + 1009, 1009, 1012, 1016, 1017, 1018, 1021, 1022, 1023, 1024, + 1032, 1033, 1034, 1035, 1036, 1042, 1043, 1044, 1045, 1046 }; #endif @@ -902,12 +901,12 @@ yysymbol_name (yysymbol_kind_t yysymbol) } #endif -#define YYPACT_NINF (-467) +#define YYPACT_NINF (-464) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF (-253) +#define YYTABLE_NINF (-252) #define yytable_value_is_error(Yyn) \ 0 @@ -916,69 +915,69 @@ yysymbol_name (yysymbol_kind_t yysymbol) STATE-NUM. */ static const yytype_int16 yypact[] = { - 954, -467, 1812, 1969, 1062, 216, -467, 54, -467, 1491, - -467, 57, 66, 78, 2476, 216, 1675, -467, -467, 1491, - 3, 101, 216, 216, 154, 221, 154, 216, -467, -467, - 216, 216, -467, 119, 1491, 149, 9, 153, -467, -467, - -467, -467, -467, 1928, -467, -467, -467, -467, -467, -467, - -467, -467, -467, -467, -467, 155, -467, -467, -467, -467, - 221, 221, 2653, 2653, 2476, -467, -467, -467, 283, 604, - -467, -467, -467, -467, -467, -467, 1596, -467, 216, -467, - -467, -467, -467, -467, -467, -467, -467, -467, 286, -467, - -467, -467, 50, -467, -467, 294, 40, -467, -467, -467, - -467, 277, -467, -467, -467, 216, -467, -467, 10, 206, - 219, 215, 222, 130, 236, 6, 127, 212, 239, 253, - 2717, -467, 244, -467, -467, 120, 285, -467, -467, -467, - 2517, -467, 347, 348, -467, -467, -467, -467, -467, -467, - -467, -467, -467, -467, -467, -467, -467, 349, -467, 350, - -467, -467, -467, -467, 2476, 267, 233, -467, 1170, 37, - 84, -467, -467, -467, -467, 361, -467, -467, 223, 246, - 2476, 231, 2613, 1716, -22, 357, 287, -467, 365, 340, - -467, -467, -467, 292, 278, 293, -467, 297, 216, -467, - 55, -467, 288, 269, 333, 234, -467, 378, 25, -467, - 303, 382, 221, 306, 296, -467, -467, 308, 387, 312, - 2476, 1928, -467, 329, -467, 2517, -467, -467, 392, 1278, - -467, -13, -467, -467, 388, -467, -467, 388, 299, -467, - -467, -467, -467, 221, 2476, -467, -467, 398, -467, 2476, - 2517, 2517, 2517, 262, 361, 2735, 109, 221, 221, 2476, - 2717, 2717, 2717, 2717, 2717, 2717, -467, -467, 2717, 2717, - 2717, -467, 2717, -467, 2717, 2717, 221, -467, 393, 1969, - 322, 352, 392, -467, -467, -467, 1928, 82, -467, -467, - 399, 2065, -467, -467, -467, -467, 2517, 2517, -467, 74, - 181, -467, 221, -467, 221, 400, 2476, 404, 44, 1716, - 406, 328, 324, 396, 410, -467, -467, -467, 340, 309, - 379, -467, -467, 309, 331, 221, 269, 339, -467, 25, - -467, -467, -467, 2106, -467, 416, -467, -467, 366, 134, - 395, 346, 309, 339, -467, 221, 425, -467, 372, -467, - 1928, 79, 2202, -467, -467, 1386, -467, -467, -10, 1278, - -467, -467, -467, 351, 426, -467, -467, -467, -467, -467, - 361, 430, 185, 361, 309, 309, -467, -467, 309, 77, - 342, -467, 206, 219, 215, 222, 130, 236, 6, 127, - 212, 239, 253, -467, 1278, -467, 26, -467, -467, -467, - -467, 226, -467, -467, -467, -467, -467, 429, 79, 171, - -467, 355, -467, 290, -467, -467, 356, 359, 1491, 437, - 2517, 1491, 2243, -13, -467, 2517, 2476, -467, 53, 2, - 3, -467, 16, 401, -467, 331, 339, 209, 309, -467, - -467, 320, -467, -467, 435, 2339, -467, 443, -467, 355, - -467, 307, 364, 367, 445, 309, 439, 170, -467, 449, - 450, 221, -467, -467, -467, 451, -467, -467, -467, 309, - 1491, 456, -467, -467, -467, -467, 455, 457, 460, -467, - -467, 383, 2717, 35, 454, 352, -467, -467, 2517, -467, - 373, 221, -467, 309, 309, 453, -467, 48, -467, 1491, - 463, 377, 51, 448, 459, -467, -467, 354, -467, 470, - 1491, 221, 468, 331, -467, 47, 221, 331, 209, 475, - -467, 838, -467, 382, -467, 402, -467, -467, -467, -467, - 221, -467, -467, -467, -467, -467, 247, -467, 221, 388, - 476, -467, 462, -467, -467, 221, 221, 221, -467, -467, - -467, 2380, -467, -467, 79, 2517, -467, 382, -467, 1491, - 1491, -467, 1491, 2517, 1491, 2476, 394, 1491, 407, 2, - 478, -467, 409, -467, -467, 14, -467, 479, -467, 209, - -467, -467, 722, 395, -467, -467, 490, 411, -467, 210, - 417, -467, -467, 388, 2517, 492, 494, 493, 495, -467, - 79, 499, -467, -467, -467, 59, -467, -467, 1491, -467, - -467, -467, -467, -467, -467, -467, -467, -467, 498, -467, - 504, -467, -467, -467, -467, 79, -467, 221, -467, -467, - -467, 1491, 1491, -467, -467, 502, -467, -467 + 951, -464, 1809, 1925, 1059, 274, -464, 97, -464, 1488, + -464, 117, 135, 165, 2377, 274, 1672, -464, -464, 1488, + 111, 202, 274, 274, 175, 152, 175, 274, -464, -464, + 274, 274, -464, 133, 1488, 144, 14, 164, -464, -464, + -464, -464, -464, 275, -464, -464, -464, -464, -464, -464, + -464, -464, -464, -464, -464, -464, -464, -464, -464, -464, + 152, 152, 2513, 2513, 2377, -464, -464, -464, 250, 601, + -464, -464, -464, -464, -464, -464, 1593, -464, 274, -464, + -464, -464, -464, -464, -464, -464, -464, -464, 263, -464, + -464, -464, 47, -464, -464, 278, 37, -464, -464, -464, + -464, 348, -464, -464, -464, 274, -464, -464, -10, 190, + 183, 192, 198, 157, 240, 128, 94, 209, 226, 234, + 2577, -464, 237, -464, -464, 204, 271, -464, -464, -464, + 2377, -464, 336, 342, -464, -464, -464, -464, -464, -464, + -464, -464, -464, -464, -464, -464, -464, 351, -464, 353, + -464, -464, -464, -464, 2377, 260, 293, -464, 1167, 23, + 116, -464, -464, -464, -464, 371, -464, -464, 291, 310, + 2377, 179, 2473, 1713, 43, 373, 301, -464, 382, 354, + -464, -464, -464, 304, 323, 305, -464, 307, 274, -464, + 42, -464, 299, 279, 357, 277, -464, 390, 53, -464, + 315, 398, 152, 321, 311, -464, -464, 324, 404, 327, + 2377, 275, -464, 345, -464, -464, -464, 408, 1275, 103, + -464, -464, 405, -464, -464, 405, 313, -464, -464, -464, + -464, 152, 2377, -464, -464, 413, -464, 2377, 2377, 2377, + 2377, 2562, 371, 2596, 181, 152, 152, 2377, 2577, 2577, + 2577, 2577, 2577, 2577, -464, -464, 2577, 2577, 2577, -464, + 2577, -464, 2577, 2577, 152, -464, 407, 1925, 335, 49, + 408, -464, -464, -464, 275, 138, -464, -464, 411, 1966, + -464, -464, -464, -464, 2377, 2377, -464, 24, 233, -464, + 152, -464, 152, 414, 2377, 417, 50, 1713, 418, 340, + 330, 403, 419, -464, -464, -464, 354, 312, 386, -464, + -464, 312, 338, 152, 279, 356, -464, 53, -464, -464, + -464, 2062, -464, 430, -464, -464, 379, 168, 410, 360, + 312, 356, -464, 152, 439, -464, 387, -464, 275, 2103, + -464, -464, 1383, -464, -464, 4, 1275, -464, -464, -464, + 364, 444, -464, -464, -464, -464, -464, 371, 448, 252, + 371, 312, 312, -464, -464, 312, 54, 362, -464, 190, + 183, 192, 198, 157, 240, 128, 94, 209, 226, 234, + -464, 1275, -464, 45, -464, -464, -464, -464, 65, -464, + -464, -464, -464, -464, 446, 74, 140, -464, 374, -464, + 220, -464, -464, 375, 377, 1488, 459, 2377, 1488, 2199, + 103, -464, 2377, 2377, -464, 66, 2, 111, -464, 12, + 420, -464, 338, 356, 284, 312, -464, -464, 378, -464, + -464, 458, 2240, -464, 465, -464, 374, -464, 316, 388, + 393, 466, 312, 460, 96, -464, 469, 473, 152, -464, + -464, -464, 475, -464, -464, -464, 312, 1488, 479, -464, + -464, -464, -464, 478, 480, 481, -464, -464, 401, 2577, + 40, 482, 49, -464, -464, 2377, -464, 396, 152, -464, + 312, 312, 472, -464, 69, -464, 1488, 485, 399, 82, + 468, 470, -464, -464, 380, -464, 492, 1488, 152, 490, + 338, -464, 58, 152, 338, 284, 497, -464, 835, -464, + 398, -464, 421, -464, -464, -464, -464, 152, -464, -464, + -464, -464, -464, 319, -464, 152, 405, 499, -464, 483, + -464, -464, 152, 152, 152, -464, -464, -464, 2336, -464, + -464, 74, 2377, -464, 398, -464, 1488, 1488, -464, 1488, + 2377, 1488, 2377, 422, 1488, 425, 2, 501, -464, 431, + -464, -464, 16, -464, 505, -464, 284, -464, -464, 719, + 410, -464, -464, 512, 434, -464, 266, 440, -464, -464, + 405, 2377, 515, 516, 517, 518, -464, 74, 519, -464, + -464, -464, 84, -464, -464, 1488, -464, -464, -464, -464, + -464, -464, -464, -464, -464, 520, -464, 522, -464, -464, + -464, -464, 74, -464, 152, -464, -464, -464, 1488, 1488, + -464, -464, 521, -464, -464 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -986,108 +985,108 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_int16 yydefact[] = { - 3, 138, 0, 256, 0, 187, 231, 0, 118, 0, - 119, 0, 0, 0, 0, 187, 0, 131, 132, 0, - 103, 0, 187, 187, 179, 0, 206, 187, 49, 50, - 187, 187, 230, 0, 0, 303, 0, 0, 229, 24, - 334, 335, 336, 0, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 337, 311, 284, 312, 285, - 0, 0, 0, 0, 0, 288, 287, 345, 0, 0, - 4, 9, 10, 333, 16, 11, 7, 14, 187, 15, + 3, 138, 0, 255, 0, 186, 230, 0, 118, 0, + 119, 0, 0, 0, 0, 186, 0, 131, 132, 0, + 103, 0, 186, 186, 178, 0, 205, 186, 49, 50, + 186, 186, 229, 0, 0, 302, 0, 0, 228, 24, + 333, 334, 335, 0, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 336, 310, 283, 311, 284, + 0, 0, 0, 0, 0, 287, 286, 344, 0, 0, + 4, 9, 10, 332, 16, 11, 7, 14, 186, 15, 86, 89, 38, 93, 92, 91, 12, 87, 0, 84, - 90, 85, 0, 88, 83, 0, 139, 342, 142, 211, - 212, 0, 213, 8, 232, 187, 13, 166, 257, 260, - 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, - 0, 282, 330, 286, 319, 289, 339, 338, 314, 350, - 0, 250, 284, 285, 253, 254, 152, 148, 247, 245, - 246, 244, 149, 248, 249, 150, 151, 0, 197, 0, - 199, 198, 201, 200, 0, 255, 0, 67, 0, 139, - 0, 180, 177, 182, 183, 0, 181, 185, 184, 189, + 90, 85, 0, 88, 83, 0, 139, 341, 141, 210, + 211, 0, 212, 8, 231, 186, 13, 165, 256, 259, + 261, 263, 265, 267, 269, 271, 273, 275, 277, 279, + 0, 281, 329, 285, 318, 288, 338, 337, 313, 349, + 0, 249, 283, 284, 252, 253, 151, 147, 246, 244, + 245, 243, 148, 247, 248, 149, 150, 0, 196, 0, + 198, 197, 200, 199, 0, 254, 0, 67, 0, 139, + 0, 179, 176, 181, 182, 0, 180, 184, 183, 188, 0, 0, 0, 0, 0, 0, 0, 134, 0, 0, - 102, 349, 96, 0, 189, 0, 178, 0, 187, 217, - 0, 55, 0, 147, 221, 225, 227, 53, 0, 207, - 0, 0, 0, 0, 0, 128, 300, 302, 0, 0, - 256, 0, 320, 0, 323, 0, 299, 54, 294, 0, - 337, 0, 295, 291, 0, 296, 292, 0, 0, 1, - 6, 5, 39, 0, 0, 136, 25, 0, 137, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, - 0, 0, 0, 0, 0, 0, 242, 243, 0, 0, - 0, 251, 0, 252, 0, 0, 0, 290, 0, 0, - 0, 0, 0, 315, 316, 318, 0, 0, 344, 348, - 0, 0, 332, 331, 340, 68, 0, 0, 341, 0, - 0, 186, 0, 188, 0, 0, 0, 337, 0, 0, - 325, 0, 0, 0, 0, 133, 97, 99, 101, 176, - 189, 191, 17, 176, 29, 0, 147, 0, 219, 0, - 223, 224, 226, 0, 164, 165, 52, 228, 0, 0, - 43, 0, 176, 0, 301, 63, 0, 255, 0, 321, - 0, 140, 0, 293, 69, 0, 325, 327, 0, 0, - 297, 298, 343, 0, 0, 135, 141, 145, 143, 144, - 0, 0, 0, 0, 176, 176, 209, 208, 176, 0, - 0, 259, 261, 263, 265, 267, 269, 271, 273, 275, - 277, 279, 281, 283, 0, 346, 0, 313, 305, 306, - 307, 0, 304, 317, 324, 163, 162, 0, 159, 0, - 170, 0, 58, 0, 193, 192, 0, 0, 0, 0, - 0, 0, 0, 0, 326, 0, 0, 114, 0, 0, - 103, 100, 0, 28, 190, 29, 0, 0, 176, 220, - 32, 0, 222, 156, 0, 0, 158, 0, 172, 241, - 65, 0, 0, 44, 0, 176, 0, 0, 60, 62, - 0, 63, 82, 322, 310, 0, 70, 329, 328, 176, - 0, 0, 210, 215, 214, 205, 0, 0, 0, 238, - 167, 0, 0, 139, 153, 0, 146, 161, 0, 239, - 57, 0, 169, 176, 176, 129, 121, 0, 126, 0, - 0, 0, 0, 112, 117, 115, 106, 0, 108, 105, - 0, 0, 0, 29, 36, 0, 0, 29, 0, 30, - 22, 0, 23, 0, 31, 0, 157, 26, 240, 64, - 0, 171, 41, 42, 46, 40, 0, 94, 0, 0, - 0, 309, 47, 120, 216, 0, 0, 0, 168, 258, - 347, 0, 154, 308, 160, 0, 59, 0, 45, 0, - 0, 122, 0, 0, 0, 0, 0, 0, 0, 104, - 0, 98, 0, 175, 34, 0, 173, 0, 27, 0, - 19, 21, 0, 43, 33, 66, 217, 0, 235, 0, - 0, 61, 195, 0, 0, 0, 0, 0, 0, 155, - 56, 0, 130, 127, 123, 0, 124, 111, 0, 116, - 107, 109, 110, 35, 37, 174, 18, 20, 0, 233, - 0, 237, 236, 95, 194, 48, 51, 0, 203, 204, - 196, 0, 113, 218, 234, 0, 125, 202 + 102, 348, 96, 0, 188, 0, 177, 0, 186, 216, + 0, 55, 0, 146, 220, 224, 226, 53, 0, 206, + 0, 0, 0, 0, 0, 128, 299, 301, 0, 0, + 255, 0, 319, 0, 322, 298, 54, 293, 0, 0, + 294, 290, 0, 295, 291, 0, 0, 1, 6, 5, + 39, 0, 0, 136, 25, 0, 137, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, + 0, 0, 0, 0, 241, 242, 0, 0, 0, 250, + 0, 251, 0, 0, 0, 289, 0, 0, 0, 0, + 0, 314, 315, 317, 0, 0, 343, 347, 0, 0, + 331, 330, 339, 68, 0, 0, 340, 0, 0, 185, + 0, 187, 0, 0, 0, 336, 0, 0, 324, 0, + 0, 0, 0, 133, 97, 99, 101, 175, 188, 190, + 17, 175, 29, 0, 146, 0, 218, 0, 222, 223, + 225, 0, 163, 164, 52, 227, 0, 0, 43, 0, + 175, 0, 300, 63, 0, 254, 0, 320, 0, 0, + 292, 69, 0, 324, 326, 0, 0, 296, 297, 342, + 0, 0, 135, 140, 144, 142, 143, 0, 0, 0, + 0, 175, 175, 208, 207, 175, 0, 0, 258, 260, + 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, + 282, 0, 345, 0, 312, 304, 305, 306, 0, 303, + 316, 323, 162, 161, 0, 158, 0, 169, 0, 58, + 0, 192, 191, 0, 0, 0, 0, 0, 0, 0, + 0, 325, 0, 0, 114, 0, 0, 103, 100, 0, + 28, 189, 29, 0, 0, 175, 219, 32, 0, 221, + 155, 0, 0, 157, 0, 171, 240, 65, 0, 0, + 44, 0, 175, 0, 0, 60, 62, 0, 63, 82, + 321, 309, 0, 70, 328, 327, 175, 0, 0, 209, + 214, 213, 204, 0, 0, 0, 237, 166, 0, 0, + 139, 152, 0, 145, 160, 0, 238, 57, 0, 168, + 175, 175, 129, 121, 0, 126, 0, 0, 0, 0, + 112, 117, 115, 106, 0, 108, 105, 0, 0, 0, + 29, 36, 0, 0, 29, 0, 30, 22, 0, 23, + 0, 31, 0, 156, 26, 239, 64, 0, 170, 41, + 42, 46, 40, 0, 94, 0, 0, 0, 308, 47, + 120, 215, 0, 0, 0, 167, 257, 346, 0, 153, + 307, 159, 0, 59, 0, 45, 0, 0, 122, 0, + 0, 0, 0, 0, 0, 0, 104, 0, 98, 0, + 174, 34, 0, 172, 0, 27, 0, 19, 21, 0, + 43, 33, 66, 216, 0, 234, 0, 0, 61, 194, + 0, 0, 0, 0, 0, 0, 154, 56, 0, 130, + 127, 123, 0, 124, 111, 0, 116, 107, 109, 110, + 35, 37, 173, 18, 20, 0, 232, 0, 236, 235, + 95, 193, 48, 51, 0, 202, 203, 195, 0, 113, + 217, 233, 0, 125, 201 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -467, -467, 0, -63, 166, -467, -466, -467, -84, 182, - -467, -467, -389, -467, -304, -50, -467, -3, -467, -467, - -57, -467, -467, -467, -467, -467, -52, 11, -20, -278, - -467, -467, 67, 1, -467, -467, -59, -467, -9, -467, - -467, -467, 211, -467, -467, -467, 100, -467, -37, -467, - -467, -467, 105, -467, -467, 358, -467, -467, -467, -467, - -467, -153, 29, -1, -166, -467, -190, -467, -467, 403, - -467, 75, -218, -457, -255, 81, -467, 362, -467, 18, - -163, -467, -467, -467, 280, 284, -467, -467, -467, 336, - -467, 213, -467, 335, -467, -23, -467, -48, -467, -467, - 63, 96, -467, -467, -102, -101, -103, -100, -158, -235, - -467, 291, 295, 298, 282, 300, 279, 301, 289, 276, - 275, 281, -82, 12, -467, -467, -467, 83, -467, -248, - -97, -467, -467, -189, -467, -205, -467, -28, -467, -253, - -467 + -464, -464, 20, -63, 56, -464, -463, -464, -84, 203, + -464, -464, -328, -464, -295, -32, -464, -3, -464, -464, + -39, -464, -464, -464, -464, -464, -50, 30, -20, -280, + -464, -464, 86, 15, -464, -464, -59, -464, -9, -464, + -464, -464, 229, -464, -464, -464, 119, -464, -13, -464, + -464, -464, 124, -464, -464, 376, -464, -464, -464, -464, + -464, -151, 29, -1, -167, -464, -185, -464, -464, 423, + -464, 77, -207, -453, -291, 95, -464, 383, -464, 18, + -160, -464, -464, -464, 303, 309, -464, -464, -464, 365, + -464, 227, -464, 359, -464, -23, -464, -24, -464, -464, + 90, 118, -464, -464, -101, -100, -102, -99, -155, -239, + -464, 314, 318, 308, 317, 320, 306, 322, 302, 325, + 326, 298, -80, -2, -464, -464, -464, 92, -464, -242, + -91, -464, -464, -194, -464, -200, -464, -17, -464, -253, + -464 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - 0, 68, 69, 70, 183, 71, 512, 72, 73, 237, - 74, 507, 427, 75, 431, 504, 505, 76, 201, 443, - 444, 165, 77, 585, 78, 79, 191, 218, 401, 448, - 403, 449, 450, 440, 441, 80, 222, 81, 82, 83, - 580, 84, 307, 420, 308, 85, 181, 560, 498, 499, - 86, 556, 417, 418, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 272, 148, 273, 325, 160, 97, - 326, 98, 290, 330, 423, 166, 187, 167, 168, 184, - 294, 312, 99, 100, 149, 246, 101, 102, 103, 193, - 194, 195, 322, 196, 197, 104, 105, 578, 579, 106, - 470, 480, 519, 258, 150, 151, 152, 153, 156, 107, + 0, 68, 69, 70, 183, 71, 509, 72, 73, 235, + 74, 504, 424, 75, 428, 501, 502, 76, 201, 440, + 441, 165, 77, 582, 78, 79, 191, 217, 398, 445, + 400, 446, 447, 437, 438, 80, 220, 81, 82, 83, + 577, 84, 305, 417, 306, 85, 181, 557, 495, 496, + 86, 553, 414, 415, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 270, 148, 271, 323, 160, 97, + 324, 98, 288, 328, 420, 166, 187, 167, 168, 184, + 292, 310, 99, 100, 149, 244, 101, 102, 103, 193, + 194, 195, 320, 196, 197, 104, 105, 575, 576, 106, + 467, 477, 516, 256, 150, 151, 152, 153, 156, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 207, 122, 389, 390, 391, 343, - 123, 124, 125, 214, 126, 302, 348, 224, 284, 127, + 118, 119, 120, 121, 207, 122, 386, 387, 388, 340, + 123, 124, 125, 214, 126, 300, 345, 222, 282, 127, 128 }; @@ -1096,136 +1095,157 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 171, 158, 198, 159, 225, 192, 231, 324, 236, 217, - 179, 402, 259, 262, 260, 371, 347, 264, 392, 247, - 299, 311, 339, 169, 393, 205, 362, 318, 275, 447, - 188, 147, 155, 176, 474, 227, 508, 198, 198, 239, - 216, 239, 570, 175, 239, 178, 540, 162, 202, 203, - 411, 565, 338, 235, 550, 566, 573, 554, 425, 170, - 188, 300, 172, 39, 494, 621, 501, 232, 501, 502, - 346, 173, 213, 346, 223, 226, 416, 446, 198, 188, - 400, 245, 342, 174, 457, 496, 180, 394, 287, 301, - 591, 370, 208, 228, 268, 288, 233, 503, 301, 503, - 567, 301, 249, 606, 182, 186, 250, 199, 189, 466, - 467, 39, 366, 468, 564, 143, 144, 209, 569, 349, - 281, 471, 509, 248, 251, -147, 32, 269, 240, 277, - 240, 286, 267, 240, 38, 436, 190, 240, 189, 188, - 438, 240, 461, 458, 240, 465, 412, 424, 365, 232, - 429, 453, 240, 241, 242, 241, 242, 189, 241, 242, - 469, 247, 241, 242, 270, 350, 241, 242, 351, 241, - 242, 298, 240, 513, 515, 240, 286, 241, 242, 198, - 527, 353, 331, 280, 404, 190, 32, 367, 463, 185, - 525, 349, 162, 200, 38, 349, 369, 241, 242, 295, - 241, 242, 204, 546, 532, 56, 315, 58, 491, 385, - 198, 131, 510, 261, 341, 188, 345, 189, 159, 511, - 198, 611, 392, 245, 198, 198, 188, 368, 547, 548, - 475, 405, 206, 256, 476, 271, 210, 539, 257, 337, - 213, 282, 283, 198, 236, 190, 383, 8, 198, 10, - 581, 388, 188, 161, 162, 163, 164, 586, 587, 588, - 161, 162, 32, 354, 240, 478, 198, 188, 356, 198, - 38, 198, 406, 32, 407, 259, 262, 260, 337, 215, - 264, 38, 188, 229, 542, 398, 399, 292, 293, 241, - 242, 234, 198, 576, 481, 428, 482, 238, 386, 32, - 263, 134, 135, 464, 189, 213, 198, 38, 252, 439, - 397, 520, 198, 521, 32, 357, 358, 359, 243, 310, - 293, 190, 38, 514, 515, 409, 320, 321, 254, 32, - 576, 253, 190, 255, 265, 497, 232, 38, 221, 625, - 138, 139, 140, 141, 266, 189, 345, 56, 57, 58, - 59, 276, 434, -251, -252, 278, 279, 188, 190, 360, - 189, 281, 56, 57, 58, 59, 289, 303, 305, 213, - 304, 455, 306, 190, 244, 309, 313, 319, 65, 66, - 314, 345, 317, 473, 271, 323, 328, 329, 190, 332, - 333, 334, 335, 65, 66, 336, 340, 342, 349, 485, - 352, 355, 488, 384, 32, 387, 408, 395, 410, 487, - 413, 414, 38, 39, 492, 40, 41, 42, 415, 416, - 419, 293, 430, 435, 422, 426, 442, 39, 198, 445, - 451, 452, 460, 462, 459, 189, 472, 477, 479, 483, - 486, 490, 484, 474, 506, 493, 517, 522, 524, 526, - 523, 533, 198, 528, 217, 388, 529, 531, 198, 534, - 535, 541, 536, 190, 434, 537, 469, 545, 549, 552, - 582, 553, 555, 558, 559, 497, 563, 544, 198, 515, - 551, 562, 583, 198, 557, 574, 584, 605, 598, 602, - 600, 561, 603, 609, 610, 616, 613, 198, 617, 618, - 439, 619, 620, 198, 623, 198, 577, 624, 627, 231, - 437, 572, 198, 198, 198, 604, 608, 568, 530, 421, - 500, 575, 601, 495, 614, 364, 316, 361, 274, 296, - 291, 612, 432, 327, 538, 518, 375, 377, 380, 381, - 592, 593, 372, 594, 590, 596, 382, 373, 599, 379, - 0, 374, 595, 0, 0, 376, 198, 0, 543, 577, - 378, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 434, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 615, 597, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 622, 0, 0, 0, 0, - 0, 0, 0, 0, -2, 230, 0, 1, 0, 2, - 0, 3, 626, 232, 4, 0, 5, 6, 7, 0, - 8, 9, 10, 11, 12, 13, 14, 0, 0, 0, - 15, 16, 17, 18, 19, 20, 0, 21, 22, 23, - 24, 0, 0, 0, 0, 0, 0, 25, 0, 26, - 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, - 0, 36, 37, 0, 38, 39, 0, 40, 41, 42, - 43, 0, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 0, 0, 0, 0, 55, 0, 56, - 57, 58, 59, 0, 0, 60, 0, 0, 0, 0, - 0, 61, 62, 63, 64, 0, 0, 0, 0, 0, + 171, 158, 198, 159, 223, 192, 229, 399, 234, 368, + 179, 216, 322, 257, 260, 258, 389, 337, 262, 344, + 422, 245, 297, 169, 309, 205, 316, 237, 390, 188, + 397, 147, 155, 176, 273, 359, 444, 198, 198, 443, + 215, 237, 567, 175, 237, 178, 225, 188, 202, 203, + 233, 537, 162, 471, 188, 336, 408, 570, 188, 339, + 221, 224, 562, 39, 498, 499, 563, 230, 498, 472, + 463, 464, 213, 473, 465, 547, 32, 491, 198, 185, + 391, 243, 247, 200, 38, 493, 248, 343, 551, 413, + 618, 588, 367, 226, 505, 500, 231, 208, 454, 500, + 512, 32, 170, 603, 249, 266, 524, 189, 39, 38, + 39, 564, 40, 41, 42, 299, 238, 284, 265, 186, + 285, 199, 172, 246, 468, 189, 298, 286, 506, 275, + 238, 209, 189, 238, 510, 190, 189, 466, 433, 279, + 173, 239, 240, 238, 450, 455, 409, 426, 421, 230, + 458, 522, 362, 462, 299, 239, 240, 188, 239, 240, + 190, 245, 238, 347, 190, 529, 348, 238, 239, 240, + 174, 296, 561, 188, 435, 238, 566, 238, 131, 198, + 259, 350, 329, 278, 363, 364, 343, 239, 240, 544, + 545, 346, 239, 240, 180, 8, 366, 10, 543, 293, + 239, 240, 239, 240, 32, 182, 313, 382, 198, -146, + 488, 267, 38, 162, 299, 342, 204, 159, 198, 389, + 32, 243, 198, 198, 478, 365, 479, 206, 38, 402, + 536, 238, 284, 238, 475, 189, 401, 143, 144, 335, + 213, 198, 234, 346, 380, 578, 198, 210, 268, 385, + 227, 189, 583, 584, 585, 460, 239, 240, 239, 240, + 254, 351, 346, 190, 198, 255, 353, 198, 232, 198, + 403, 188, 404, 257, 260, 258, 335, 608, 262, 190, + 2, 236, 3, 395, 396, 130, 539, 507, 6, 56, + 198, 58, 250, 425, 508, 251, 383, 261, 134, 135, + 461, 280, 281, 213, 198, 252, 20, 436, 394, 253, + 198, 161, 162, 163, 164, 354, 355, 356, 32, 269, + 517, 263, 518, 406, 188, 264, 38, 32, 161, 162, + 35, 219, 494, 230, 622, 38, 39, 274, 40, 41, + 42, 43, -250, 342, 138, 139, 140, 141, -251, 573, + 431, 290, 291, 188, 279, 211, 212, 276, 55, 277, + 56, 57, 58, 59, 308, 291, 60, 213, 452, 318, + 319, 32, 61, 62, 63, 64, 287, 190, 342, 38, + 470, 511, 512, 301, 302, 303, 304, 307, 311, 241, + 312, 65, 66, 315, 269, 67, 482, 321, 326, 485, + 32, 317, 573, 327, 330, 331, 484, 332, 38, 333, + 334, 489, 338, 339, 349, 346, 352, 381, 384, 392, + 405, 407, 410, 411, 412, 198, 413, 419, 291, 416, + 190, 189, 423, 56, 57, 58, 59, 432, 487, 427, + 39, 439, 490, 442, 448, 242, 449, 456, 530, 198, + 457, 459, 385, 216, 474, 198, 469, 476, 480, 190, + 481, 431, 483, 503, 65, 66, 471, 579, 514, 521, + 523, 519, 494, 525, 541, 198, 520, 548, 559, 526, + 198, 528, 531, 532, 466, 533, 534, 546, 558, 538, + 542, 549, 552, 550, 198, 554, 556, 436, 560, 555, + 198, 512, 198, 574, 571, 580, 229, 581, 597, 198, + 198, 198, 599, 602, 600, 606, 595, 607, 613, 610, + 614, 611, 617, 615, 616, 621, 620, 624, 569, 434, + 601, 605, 572, 565, 527, 418, 497, 589, 590, 492, + 591, 587, 593, 598, 429, 596, 361, 294, 272, 592, + 358, 289, 609, 198, 515, 314, 574, 325, 535, 371, + 376, 379, 374, 369, 540, 0, 0, 431, 370, 372, + 0, 0, 0, 373, 0, 0, 0, 0, 0, 375, + 612, 594, 0, 0, 0, 377, 0, 0, 378, 0, + 0, 198, 619, 0, 0, 0, 0, 0, 0, 0, + 0, -2, 228, 0, 1, 0, 2, 0, 3, 623, + 230, 4, 0, 5, 6, 7, 0, 8, 9, 10, + 11, 12, 13, 14, 0, 0, 0, 15, 16, 17, + 18, 19, 20, 0, 21, 22, 23, 24, 0, 0, + 0, 0, 0, 0, 25, 0, 26, 27, 28, 29, + 30, 0, 31, 32, 33, 34, 35, 0, 36, 37, + 0, 38, 39, 0, 40, 41, 42, 43, 0, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 0, 0, 0, 0, 55, 0, 56, 57, 58, 59, + 0, 0, 60, 0, 0, 0, 0, 0, 61, 62, + 63, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 65, 66, 0, + 228, 67, 1, 0, 2, 0, 3, 0, 0, 4, + 604, 5, 6, 7, 0, 8, 9, 10, 11, 12, + 13, 14, 0, 0, 0, 15, 16, 17, 18, 19, + 20, 0, 21, 22, 23, 24, 0, 0, 0, 0, + 0, 0, 25, 0, 26, 27, 28, 29, 30, 0, + 31, 32, 33, 34, 35, 0, 36, 37, 0, 38, + 39, 0, 40, 41, 42, 43, 0, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 0, 0, + 0, 0, 55, 0, 56, 57, 58, 59, 0, 0, + 60, 0, 0, 0, 0, 0, 61, 62, 63, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 65, 66, 0, 230, 67, 1, 0, 2, 0, 3, - 0, 0, 4, 607, 5, 6, 7, 0, 8, 9, - 10, 11, 12, 13, 14, 0, 0, 0, 15, 16, - 17, 18, 19, 20, 0, 21, 22, 23, 24, 0, - 0, 0, 0, 0, 0, 25, 0, 26, 27, 28, - 29, 30, 0, 31, 32, 33, 34, 35, 0, 36, - 37, 0, 38, 39, 0, 40, 41, 42, 43, 0, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 0, 0, 0, 0, 55, 0, 56, 57, 58, - 59, 0, 0, 60, 0, 0, 0, 0, 0, 61, - 62, 63, 64, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 65, 66, - 0, 1, 67, 2, 0, 3, 0, 0, 4, 571, - 5, 6, 7, 0, 8, 9, 10, 11, 12, 13, - 14, 0, 0, 0, 15, 16, 17, 18, 19, 20, - 0, 21, 22, 23, 24, 0, 0, 0, 0, 0, - 0, 25, 0, 26, 27, 28, 29, 30, 0, 31, - 32, 33, 34, 35, 0, 36, 37, 0, 38, 39, - 0, 40, 41, 42, 43, 0, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 0, 0, 0, - 0, 55, 0, 56, 57, 58, 59, 0, 0, 60, - 0, 0, 0, 0, 0, 61, 62, 63, 64, 0, + 0, 0, 0, 0, 0, 65, 66, 0, 1, 67, + 2, 0, 3, 0, 0, 4, 568, 5, 6, 7, + 0, 8, 9, 10, 11, 12, 13, 14, 0, 0, + 0, 15, 16, 17, 18, 19, 20, 0, 21, 22, + 23, 24, 0, 0, 0, 0, 0, 0, 25, 0, + 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, + 35, 0, 36, 37, 0, 38, 39, 0, 40, 41, + 42, 43, 0, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 0, 0, 0, 0, 55, 0, + 56, 57, 58, 59, 0, 0, 60, 0, 0, 0, + 0, 0, 61, 62, 63, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 65, 66, 0, 1, 67, 2, - 0, 3, 0, 0, 4, 0, 5, 6, 7, 0, - 8, 9, 10, 11, 12, 13, 14, 0, 0, 0, - 15, 16, 17, 18, 19, 20, 0, 21, 22, 23, - 24, 0, 0, 0, 0, 0, 0, 25, 0, 26, - 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, - 0, 36, 37, 0, 38, 39, 0, 40, 41, 42, - 43, 0, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 0, 0, 0, 0, 55, 0, 56, - 57, 58, 59, 0, 0, 60, 0, 0, 0, 0, - 0, 61, 62, 63, 64, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 2, 0, 3, - 65, 66, 4, 157, 67, 6, 7, 0, 8, 9, - 10, 11, 12, 13, 14, 0, 0, 0, 0, 16, - 17, 18, 19, 20, 0, 21, 0, 0, 0, 0, + 0, 65, 66, 0, 1, 67, 2, 0, 3, 0, + 0, 4, 0, 5, 6, 7, 0, 8, 9, 10, + 11, 12, 13, 14, 0, 0, 0, 15, 16, 17, + 18, 19, 20, 0, 21, 22, 23, 24, 0, 0, + 0, 0, 0, 0, 25, 0, 26, 27, 28, 29, + 30, 0, 31, 32, 33, 34, 35, 0, 36, 37, + 0, 38, 39, 0, 40, 41, 42, 43, 0, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 0, 0, 0, 0, 55, 0, 56, 57, 58, 59, + 0, 0, 60, 0, 0, 0, 0, 0, 61, 62, + 63, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 2, 0, 3, 65, 66, 4, + 157, 67, 6, 7, 0, 8, 9, 10, 11, 12, + 13, 14, 0, 0, 0, 0, 16, 17, 18, 19, + 20, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32, 33, 34, 35, 0, 0, - 37, 0, 38, 39, 0, 40, 41, 42, 43, 0, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 0, 0, 0, 0, 55, 0, 56, 57, 58, - 59, 0, 0, 60, 0, 0, 0, 0, 0, 61, - 62, 63, 64, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 2, 0, 3, 65, 66, - 4, 285, 67, 6, 7, 0, 8, 9, 10, 11, - 12, 13, 14, 0, 0, 0, 0, 16, 17, 18, - 19, 20, 0, 21, 0, 0, 0, 0, 0, 0, + 0, 32, 33, 34, 35, 0, 0, 37, 0, 38, + 39, 0, 40, 41, 42, 43, 0, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 0, 0, + 0, 0, 55, 0, 56, 57, 58, 59, 0, 0, + 60, 0, 0, 0, 0, 0, 61, 62, 63, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 33, 34, 35, 0, 0, 37, 0, - 38, 39, 0, 40, 41, 42, 43, 0, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 0, - 0, 0, 0, 55, 0, 56, 57, 58, 59, 0, - 0, 60, 0, 0, 0, 0, 0, 61, 62, 63, - 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 2, 0, 3, 65, 66, 4, 344, - 67, 6, 7, 0, 8, 9, 10, 11, 12, 13, + 1, 0, 2, 0, 3, 65, 66, 4, 283, 67, + 6, 7, 0, 8, 9, 10, 11, 12, 13, 14, + 0, 0, 0, 0, 16, 17, 18, 19, 20, 0, + 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, + 33, 34, 35, 0, 0, 37, 0, 38, 39, 0, + 40, 41, 42, 43, 0, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 0, 0, 0, 0, + 55, 0, 56, 57, 58, 59, 0, 0, 60, 0, + 0, 0, 0, 0, 61, 62, 63, 64, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 2, 0, 3, 65, 66, 4, 341, 67, 6, 7, + 0, 8, 9, 10, 11, 12, 13, 14, 0, 0, + 0, 0, 16, 17, 18, 19, 20, 0, 21, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 32, 33, 34, + 35, 0, 0, 37, 0, 38, 39, 0, 40, 41, + 42, 43, 0, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 0, 0, 0, 0, 55, 0, + 56, 57, 58, 59, 0, 0, 60, 0, 0, 0, + 0, 0, 61, 62, 63, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, + 3, 65, 66, 4, 453, 67, 6, 7, 0, 8, + 9, 10, 11, 12, 13, 14, 0, 0, 0, 0, + 16, 17, 18, 19, 20, 0, 21, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 32, 33, 34, 35, 0, + 0, 37, 0, 38, 39, 0, 40, 41, 42, 43, + 0, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 0, 0, 0, 0, 55, 0, 56, 57, + 58, 59, 0, 0, 60, 0, 0, 0, 0, 0, + 61, 62, 63, 64, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 2, 0, 3, 0, 0, 4, 65, + 66, 6, 7, 67, 8, 9, 10, 11, 12, 13, 14, 0, 0, 0, 0, 16, 17, 18, 19, 20, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1234,93 +1254,58 @@ static const yytype_int16 yytable[] = 48, 49, 50, 51, 52, 53, 54, 0, 0, 0, 0, 55, 0, 56, 57, 58, 59, 0, 0, 60, 0, 0, 0, 0, 0, 61, 62, 63, 64, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 0, 2, 0, 3, 65, 66, 4, 456, 67, 6, - 7, 0, 8, 9, 10, 11, 12, 13, 14, 0, - 0, 0, 0, 16, 17, 18, 19, 20, 0, 21, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 32, 33, - 34, 35, 0, 0, 37, 0, 38, 39, 0, 40, - 41, 42, 43, 0, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 0, 0, 0, 0, 55, - 0, 56, 57, 58, 59, 0, 0, 60, 0, 0, - 0, 0, 0, 61, 62, 63, 64, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 2, 0, 3, 0, - 0, 4, 65, 66, 6, 7, 67, 8, 9, 10, - 11, 12, 13, 14, 0, 0, 0, 0, 16, 17, - 18, 19, 20, 0, 21, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, + 3, 0, 0, 4, 65, 66, 6, 7, 67, 8, + 9, 10, 11, 12, 13, 14, 0, 0, 0, 0, + 16, 17, 18, 19, 20, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 32, 33, 34, 35, 0, 0, 37, - 0, 38, 39, 0, 40, 41, 42, 43, 0, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 0, 0, 0, 0, 55, 0, 56, 57, 58, 59, - 0, 0, 60, 0, 0, 0, 0, 0, 61, 62, - 63, 64, 0, 0, 0, 0, 0, 0, 0, 1, - 0, 2, 0, 3, 0, 0, 4, 65, 66, 6, - 7, 67, 8, 9, 10, 11, 12, 13, 14, 0, - 0, 0, 0, 16, 17, 18, 19, 20, 0, 21, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 32, 33, - 34, 35, 0, 0, 37, 0, 38, 39, 0, 40, - 41, 42, 43, 0, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 0, 0, 0, 177, 55, - 2, 56, 3, 58, 0, 130, 0, 60, 6, 0, - 0, 0, 0, 61, 62, 63, 64, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 67, 0, 0, 1, - 0, 2, 0, 3, 0, 0, 130, 32, 0, 6, - 35, 0, 0, 0, 0, 38, 39, 0, 40, 41, - 42, 43, 0, 0, 0, 0, 0, 20, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, - 56, 57, 58, 59, 0, 0, 60, 0, 32, 0, - 0, 35, 61, 62, 63, 64, 38, 39, 0, 40, - 41, 42, 43, 0, 0, 0, 0, 0, 0, 0, - 0, 65, 66, 0, 0, 67, 0, 0, 0, 55, - 0, 56, 57, 58, 59, 0, 0, 60, 0, 0, - 0, 0, 0, 61, 62, 63, 64, 2, 129, 3, - 0, 0, 130, 0, 0, 6, 0, 0, 0, 0, - 0, 0, 65, 66, 0, 0, 67, 0, 0, 0, + 0, 0, 0, 0, 0, 32, 33, 34, 35, 0, + 0, 37, 0, 38, 39, 0, 40, 41, 42, 43, + 0, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 0, 0, 0, 177, 55, 2, 56, 3, + 58, 0, 130, 0, 60, 6, 0, 0, 0, 0, + 61, 62, 63, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32, 0, 0, 35, 0, 0, + 0, 0, 0, 67, 0, 0, 1, 0, 2, 0, + 3, 0, 0, 130, 32, 0, 6, 35, 0, 0, 0, 0, 38, 39, 0, 40, 41, 42, 43, 0, + 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 55, 0, 56, 57, 58, + 59, 0, 0, 60, 0, 32, 0, 0, 35, 61, + 62, 63, 64, 38, 39, 0, 40, 41, 42, 43, + 0, 0, 0, 0, 0, 0, 0, 0, 65, 66, + 0, 0, 67, 0, 0, 0, 55, 0, 56, 57, + 58, 59, 0, 0, 60, 0, 0, 0, 0, 0, + 61, 62, 63, 64, 2, 129, 3, 0, 0, 130, + 0, 0, 6, 0, 0, 0, 0, 0, 0, 65, + 66, 0, 0, 67, 0, 0, 0, 0, 0, 0, + 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 55, 131, 56, 132, 58, - 133, 134, 135, 60, 0, 136, 0, 0, 0, 61, - 62, 63, 64, 0, 0, 137, 138, 139, 140, 141, - 142, 143, 144, 0, 0, 0, 0, 0, 65, 66, - 145, 146, 67, 2, 0, 3, 0, 0, 130, 0, - 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 3, 0, 0, 130, - 32, 0, 6, 35, 0, 0, 0, 0, 38, 39, - 0, 40, 41, 42, 43, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 0, 0, 0, 0, 211, 212, - 0, 55, 0, 56, 57, 58, 59, 0, 0, 60, - 0, 32, 0, 0, 35, 61, 62, 63, 64, 38, + 0, 32, 0, 0, 35, 0, 0, 0, 0, 38, 39, 0, 40, 41, 42, 43, 0, 0, 0, 0, - 0, 0, 0, 0, 65, 66, 0, 0, 67, 0, - 0, 0, 55, 0, 56, 57, 58, 59, 0, 0, - 60, 0, 0, 154, 0, 0, 61, 62, 63, 64, - 2, 0, 3, 396, 0, 130, 0, 0, 6, 0, - 0, 0, 0, 0, 0, 65, 66, 0, 0, 67, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 55, 131, 56, 132, 58, 133, 134, 135, + 60, 0, 136, 0, 0, 0, 61, 62, 63, 64, + 0, 0, 137, 138, 139, 140, 141, 142, 143, 144, + 0, 0, 0, 0, 0, 65, 66, 145, 146, 67, + 2, 0, 3, 0, 0, 130, 0, 0, 6, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 0, 3, 433, 0, 130, 32, 0, 6, + 0, 2, 0, 3, 393, 0, 130, 32, 0, 6, 35, 0, 0, 0, 0, 38, 39, 0, 40, 41, 42, 43, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, - 56, 57, 58, 59, 0, 0, 60, 0, 32, 0, + 56, 57, 58, 59, 0, 0, 60, 0, 32, 154, 0, 35, 61, 62, 63, 64, 38, 39, 0, 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, 65, 66, 0, 0, 67, 0, 0, 0, 55, 0, 56, 57, 58, 59, 0, 0, 60, 0, 0, - 0, 0, 0, 61, 62, 63, 64, 2, 454, 3, - 0, 0, 130, 0, 0, 6, 0, 0, 0, 0, + 0, 0, 0, 61, 62, 63, 64, 2, 0, 3, + 430, 0, 130, 0, 0, 6, 0, 0, 0, 0, 0, 0, 65, 66, 0, 0, 67, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 489, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 451, 3, 0, 0, 130, 32, 0, 6, 35, 0, 0, 0, 0, 38, 39, 0, 40, 41, 42, 43, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, @@ -1330,11 +1315,11 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 0, 0, 0, 65, 66, 0, 0, 67, 0, 0, 0, 55, 0, 56, 57, 58, 59, 0, 0, 60, 0, 0, 0, 0, 0, - 61, 62, 63, 64, 2, 0, 3, 516, 0, 130, + 61, 62, 63, 64, 2, 486, 3, 0, 0, 130, 0, 0, 6, 0, 0, 0, 0, 0, 0, 65, 66, 0, 0, 67, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 0, 3, 589, 0, + 0, 0, 0, 0, 0, 2, 0, 3, 513, 0, 130, 32, 0, 6, 35, 0, 0, 0, 0, 38, 39, 0, 40, 41, 42, 43, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1344,7 +1329,7 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 65, 66, 0, 0, 67, 0, 0, 0, 55, 0, 56, 57, 58, 59, 0, 0, 60, 0, 0, 0, 0, 0, 61, 62, 63, - 64, 2, 0, 3, 0, 0, 130, 0, 0, 6, + 64, 2, 0, 3, 586, 0, 130, 0, 0, 6, 0, 0, 0, 0, 0, 0, 65, 66, 0, 0, 67, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1356,166 +1341,187 @@ static const yytype_int16 yytable[] = 0, 0, 35, 61, 62, 63, 64, 38, 39, 0, 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, 65, 66, 0, 0, 67, 0, 0, 0, - 220, 0, 56, 57, 58, 59, 0, 0, 60, 0, + 55, 0, 56, 57, 58, 59, 0, 0, 60, 0, 0, 0, 0, 0, 61, 62, 63, 64, 2, 0, 3, 0, 0, 130, 0, 0, 6, 0, 0, 0, 0, 0, 0, 65, 66, 0, 0, 67, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 3, 0, 0, 219, 0, 32, 0, 0, 35, 0, + 3, 0, 0, 218, 0, 32, 0, 0, 35, 0, 0, 0, 0, 38, 39, 0, 40, 41, 42, 43, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 297, 0, 56, 57, - 58, 59, 0, 0, 60, 0, 0, 0, 35, 0, + 0, 0, 0, 0, 0, 0, 295, 0, 56, 57, + 58, 59, 0, 0, 60, 0, 0, 188, 35, 0, 61, 62, 63, 64, 39, 0, 40, 41, 42, 43, 0, 0, 2, 0, 3, 0, 0, 130, 0, 65, - 66, 0, 0, 67, 0, 0, 220, 0, 56, 57, - 58, 59, 0, 0, 60, 0, 0, 221, 20, 0, - 61, 62, 63, 64, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, + 66, 0, 0, 67, 0, 0, 55, 0, 56, 57, + 58, 59, 0, 0, 60, 0, 0, 219, 20, 0, + 61, 62, 63, 64, 32, 0, 0, 0, 0, 0, + 0, 0, 38, 0, 0, 0, 0, 0, 0, 65, 66, 0, 35, 67, 0, 0, 0, 0, 39, 0, - 40, 41, 42, 43, 0, 0, 0, 0, 0, 0, - 0, 363, 0, 0, 0, 0, 0, 0, 0, 0, - 220, 0, 56, 57, 58, 59, 0, 0, 60, 0, - 0, 0, 0, 0, 61, 62, 63, 64, 0, 131, - 56, 261, 58, 263, 134, 135, 0, 0, 136, 0, - 0, 0, 0, 65, 66, 0, 0, 67, 137, 138, - 139, 140, 141, 142, 143, 144, 0, 0, 0, 0, - 0, 0, 0, 145, 146 + 40, 41, 42, 43, 0, 189, 0, 56, 57, 58, + 59, 0, 360, 0, 0, 0, 0, 0, 0, 357, + 55, 0, 56, 57, 58, 59, 0, 0, 60, 0, + 0, 0, 0, 190, 61, 62, 63, 64, 65, 66, + 131, 56, 259, 58, 261, 134, 135, 0, 0, 136, + 0, 0, 0, 65, 66, 0, 0, 67, 0, 137, + 138, 139, 140, 141, 142, 143, 144, 0, 0, 0, + 0, 0, 0, 0, 145, 146 }; static const yytype_int16 yycheck[] = { - 9, 4, 25, 4, 63, 25, 69, 197, 92, 61, - 19, 289, 114, 116, 115, 250, 221, 117, 271, 101, - 173, 184, 211, 5, 272, 34, 244, 193, 125, 333, - 5, 2, 3, 15, 8, 63, 425, 60, 61, 4, - 60, 4, 508, 14, 4, 16, 11, 38, 30, 31, - 6, 4, 210, 3, 6, 8, 513, 6, 313, 5, - 5, 83, 5, 61, 11, 6, 52, 76, 52, 53, - 83, 5, 43, 83, 62, 63, 23, 332, 101, 5, - 6, 101, 5, 5, 94, 83, 83, 276, 4, 111, - 547, 249, 83, 64, 122, 11, 78, 83, 111, 83, - 53, 111, 92, 569, 3, 24, 96, 26, 83, 364, - 365, 61, 3, 368, 503, 109, 110, 36, 507, 10, - 94, 369, 426, 105, 114, 5, 52, 7, 93, 130, - 93, 94, 120, 93, 60, 325, 111, 93, 83, 5, - 6, 93, 360, 348, 93, 363, 299, 310, 245, 158, - 316, 340, 93, 118, 119, 118, 119, 83, 118, 119, - 83, 243, 118, 119, 44, 224, 118, 119, 227, 118, - 119, 172, 93, 428, 4, 93, 94, 118, 119, 202, - 10, 233, 202, 154, 3, 111, 52, 246, 3, 23, - 445, 10, 38, 27, 60, 10, 248, 118, 119, 170, - 118, 119, 83, 481, 459, 85, 188, 87, 413, 268, - 233, 84, 3, 86, 215, 5, 219, 83, 219, 10, - 243, 11, 475, 243, 247, 248, 5, 247, 483, 484, - 4, 290, 83, 103, 8, 115, 83, 472, 108, 210, - 211, 8, 9, 266, 328, 111, 266, 16, 271, 18, - 528, 271, 5, 37, 38, 39, 40, 535, 536, 537, - 37, 38, 52, 234, 93, 94, 289, 5, 239, 292, - 60, 294, 292, 52, 294, 377, 379, 378, 249, 124, - 380, 60, 5, 0, 474, 286, 287, 41, 42, 118, - 119, 5, 315, 83, 4, 315, 6, 3, 269, 52, - 88, 89, 90, 362, 83, 276, 329, 60, 102, 329, - 281, 4, 335, 6, 52, 240, 241, 242, 41, 41, - 42, 111, 60, 3, 4, 296, 92, 93, 113, 52, - 83, 112, 111, 111, 95, 419, 345, 60, 94, 617, - 104, 105, 106, 107, 91, 83, 349, 85, 86, 87, - 88, 66, 323, 6, 6, 6, 6, 5, 111, 97, - 83, 94, 85, 86, 87, 88, 5, 10, 3, 340, - 83, 342, 32, 111, 97, 83, 83, 44, 116, 117, - 83, 384, 94, 384, 115, 7, 83, 5, 111, 83, - 94, 83, 5, 116, 117, 83, 67, 5, 10, 408, - 101, 3, 411, 10, 52, 83, 6, 8, 4, 410, - 4, 83, 60, 61, 415, 63, 64, 65, 94, 23, - 10, 42, 83, 7, 115, 94, 31, 61, 451, 83, - 5, 59, 6, 3, 83, 83, 94, 8, 83, 83, - 3, 412, 83, 8, 43, 416, 3, 83, 3, 10, - 83, 460, 475, 4, 506, 475, 6, 6, 481, 3, - 5, 7, 5, 111, 435, 5, 83, 94, 15, 6, - 529, 94, 24, 119, 4, 559, 8, 478, 501, 4, - 489, 501, 6, 506, 25, 83, 24, 8, 94, 11, - 83, 500, 83, 3, 83, 3, 79, 520, 4, 6, - 520, 6, 3, 526, 6, 528, 526, 3, 6, 572, - 328, 511, 535, 536, 537, 565, 573, 506, 451, 308, - 420, 520, 559, 418, 583, 245, 190, 243, 125, 171, - 168, 579, 319, 198, 471, 439, 254, 258, 262, 264, - 549, 550, 251, 552, 545, 554, 265, 252, 557, 260, - -1, 253, 553, -1, -1, 255, 579, -1, 475, 579, - 259, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 584, 555, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 617, 598, -1, -1, -1, -1, - -1, -1, -1, -1, 0, 1, -1, 3, -1, 5, - -1, 7, 621, 622, 10, -1, 12, 13, 14, -1, - 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, - 26, 27, 28, 29, 30, 31, -1, 33, 34, 35, - 36, -1, -1, -1, -1, -1, -1, 43, -1, 45, - 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, - -1, 57, 58, -1, 60, 61, -1, 63, 64, 65, - 66, -1, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, -1, -1, -1, -1, 83, -1, 85, - 86, 87, 88, -1, -1, 91, -1, -1, -1, -1, - -1, 97, 98, 99, 100, -1, -1, -1, -1, -1, + 9, 4, 25, 4, 63, 25, 69, 287, 92, 248, + 19, 61, 197, 114, 116, 115, 269, 211, 117, 219, + 311, 101, 173, 5, 184, 34, 193, 4, 270, 5, + 6, 2, 3, 15, 125, 242, 331, 60, 61, 330, + 60, 4, 505, 14, 4, 16, 63, 5, 30, 31, + 3, 11, 38, 8, 5, 210, 6, 510, 5, 5, + 62, 63, 4, 61, 52, 53, 8, 76, 52, 4, + 361, 362, 43, 8, 365, 6, 52, 11, 101, 23, + 274, 101, 92, 27, 60, 83, 96, 83, 6, 23, + 6, 544, 247, 64, 422, 83, 78, 83, 94, 83, + 4, 52, 5, 566, 114, 122, 10, 83, 61, 60, + 61, 53, 63, 64, 65, 111, 93, 94, 120, 24, + 4, 26, 5, 105, 366, 83, 83, 11, 423, 130, + 93, 36, 83, 93, 425, 111, 83, 83, 323, 94, + 5, 118, 119, 93, 338, 345, 297, 314, 308, 158, + 357, 442, 243, 360, 111, 118, 119, 5, 118, 119, + 111, 241, 93, 222, 111, 456, 225, 93, 118, 119, + 5, 172, 500, 5, 6, 93, 504, 93, 84, 202, + 86, 231, 202, 154, 3, 244, 83, 118, 119, 480, + 481, 10, 118, 119, 83, 16, 246, 18, 478, 170, + 118, 119, 118, 119, 52, 3, 188, 266, 231, 5, + 410, 7, 60, 38, 111, 218, 83, 218, 241, 472, + 52, 241, 245, 246, 4, 245, 6, 83, 60, 288, + 469, 93, 94, 93, 94, 83, 3, 109, 110, 210, + 211, 264, 326, 10, 264, 525, 269, 83, 44, 269, + 0, 83, 532, 533, 534, 3, 118, 119, 118, 119, + 103, 232, 10, 111, 287, 108, 237, 290, 5, 292, + 290, 5, 292, 374, 376, 375, 247, 11, 377, 111, + 5, 3, 7, 284, 285, 10, 471, 3, 13, 85, + 313, 87, 102, 313, 10, 112, 267, 88, 89, 90, + 359, 8, 9, 274, 327, 113, 31, 327, 279, 111, + 333, 37, 38, 39, 40, 238, 239, 240, 52, 115, + 4, 95, 6, 294, 5, 91, 60, 52, 37, 38, + 55, 94, 416, 342, 614, 60, 61, 66, 63, 64, + 65, 66, 6, 346, 104, 105, 106, 107, 6, 83, + 321, 41, 42, 5, 94, 80, 81, 6, 83, 6, + 85, 86, 87, 88, 41, 42, 91, 338, 339, 92, + 93, 52, 97, 98, 99, 100, 5, 111, 381, 60, + 381, 3, 4, 10, 83, 3, 32, 83, 83, 41, + 83, 116, 117, 94, 115, 120, 405, 7, 83, 408, + 52, 44, 83, 5, 83, 94, 407, 83, 60, 5, + 83, 412, 67, 5, 101, 10, 3, 10, 83, 8, + 6, 4, 4, 83, 94, 448, 23, 115, 42, 10, + 111, 83, 94, 85, 86, 87, 88, 7, 409, 83, + 61, 31, 413, 83, 5, 97, 59, 83, 457, 472, + 6, 3, 472, 503, 8, 478, 94, 83, 83, 111, + 83, 432, 3, 43, 116, 117, 8, 526, 3, 3, + 10, 83, 556, 4, 475, 498, 83, 486, 498, 6, + 503, 6, 3, 5, 83, 5, 5, 15, 497, 7, + 94, 6, 24, 94, 517, 25, 4, 517, 8, 119, + 523, 4, 525, 523, 83, 6, 569, 24, 83, 532, + 533, 534, 11, 8, 83, 3, 94, 83, 3, 79, + 4, 580, 3, 6, 6, 3, 6, 6, 508, 326, + 562, 570, 517, 503, 448, 306, 417, 546, 547, 415, + 549, 542, 551, 556, 317, 554, 243, 171, 125, 550, + 241, 168, 576, 576, 436, 190, 576, 198, 468, 251, + 258, 263, 256, 249, 472, -1, -1, 538, 250, 252, + -1, -1, -1, 253, -1, -1, -1, -1, -1, 257, + 581, 552, -1, -1, -1, 260, -1, -1, 262, -1, + -1, 614, 595, -1, -1, -1, -1, -1, -1, -1, + -1, 0, 1, -1, 3, -1, 5, -1, 7, 618, + 619, 10, -1, 12, 13, 14, -1, 16, 17, 18, + 19, 20, 21, 22, -1, -1, -1, 26, 27, 28, + 29, 30, 31, -1, 33, 34, 35, 36, -1, -1, + -1, -1, -1, -1, 43, -1, 45, 46, 47, 48, + 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, + -1, 60, 61, -1, 63, 64, 65, 66, -1, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + -1, -1, -1, -1, 83, -1, 85, 86, 87, 88, + -1, -1, 91, -1, -1, -1, -1, -1, 97, 98, + 99, 100, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 116, 117, -1, + 1, 120, 3, -1, 5, -1, 7, -1, -1, 10, + 11, 12, 13, 14, -1, 16, 17, 18, 19, 20, + 21, 22, -1, -1, -1, 26, 27, 28, 29, 30, + 31, -1, 33, 34, 35, 36, -1, -1, -1, -1, + -1, -1, 43, -1, 45, 46, 47, 48, 49, -1, + 51, 52, 53, 54, 55, -1, 57, 58, -1, 60, + 61, -1, 63, 64, 65, 66, -1, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, -1, -1, + -1, -1, 83, -1, 85, 86, 87, 88, -1, -1, + 91, -1, -1, -1, -1, -1, 97, 98, 99, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 116, 117, -1, 1, 120, 3, -1, 5, -1, 7, - -1, -1, 10, 11, 12, 13, 14, -1, 16, 17, - 18, 19, 20, 21, 22, -1, -1, -1, 26, 27, - 28, 29, 30, 31, -1, 33, 34, 35, 36, -1, - -1, -1, -1, -1, -1, 43, -1, 45, 46, 47, - 48, 49, -1, 51, 52, 53, 54, 55, -1, 57, - 58, -1, 60, 61, -1, 63, 64, 65, 66, -1, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, -1, -1, -1, -1, 83, -1, 85, 86, 87, - 88, -1, -1, 91, -1, -1, -1, -1, -1, 97, - 98, 99, 100, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 116, 117, - -1, 3, 120, 5, -1, 7, -1, -1, 10, 11, - 12, 13, 14, -1, 16, 17, 18, 19, 20, 21, - 22, -1, -1, -1, 26, 27, 28, 29, 30, 31, - -1, 33, 34, 35, 36, -1, -1, -1, -1, -1, - -1, 43, -1, 45, 46, 47, 48, 49, -1, 51, - 52, 53, 54, 55, -1, 57, 58, -1, 60, 61, - -1, 63, 64, 65, 66, -1, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, -1, -1, -1, - -1, 83, -1, 85, 86, 87, 88, -1, -1, 91, - -1, -1, -1, -1, -1, 97, 98, 99, 100, -1, + -1, -1, -1, -1, -1, 116, 117, -1, 3, 120, + 5, -1, 7, -1, -1, 10, 11, 12, 13, 14, + -1, 16, 17, 18, 19, 20, 21, 22, -1, -1, + -1, 26, 27, 28, 29, 30, 31, -1, 33, 34, + 35, 36, -1, -1, -1, -1, -1, -1, 43, -1, + 45, 46, 47, 48, 49, -1, 51, 52, 53, 54, + 55, -1, 57, 58, -1, 60, 61, -1, 63, 64, + 65, 66, -1, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, -1, -1, -1, -1, 83, -1, + 85, 86, 87, 88, -1, -1, 91, -1, -1, -1, + -1, -1, 97, 98, 99, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 116, 117, -1, 3, 120, 5, - -1, 7, -1, -1, 10, -1, 12, 13, 14, -1, - 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, - 26, 27, 28, 29, 30, 31, -1, 33, 34, 35, - 36, -1, -1, -1, -1, -1, -1, 43, -1, 45, - 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, - -1, 57, 58, -1, 60, 61, -1, 63, 64, 65, - 66, -1, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, -1, -1, -1, -1, 83, -1, 85, - 86, 87, 88, -1, -1, 91, -1, -1, -1, -1, - -1, 97, 98, 99, 100, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 3, -1, 5, -1, 7, - 116, 117, 10, 11, 120, 13, 14, -1, 16, 17, - 18, 19, 20, 21, 22, -1, -1, -1, -1, 27, - 28, 29, 30, 31, -1, 33, -1, -1, -1, -1, + -1, 116, 117, -1, 3, 120, 5, -1, 7, -1, + -1, 10, -1, 12, 13, 14, -1, 16, 17, 18, + 19, 20, 21, 22, -1, -1, -1, 26, 27, 28, + 29, 30, 31, -1, 33, 34, 35, 36, -1, -1, + -1, -1, -1, -1, 43, -1, 45, 46, 47, 48, + 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, + -1, 60, 61, -1, 63, 64, 65, 66, -1, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + -1, -1, -1, -1, 83, -1, 85, 86, 87, 88, + -1, -1, 91, -1, -1, -1, -1, -1, 97, 98, + 99, 100, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 3, -1, 5, -1, 7, 116, 117, 10, + 11, 120, 13, 14, -1, 16, 17, 18, 19, 20, + 21, 22, -1, -1, -1, -1, 27, 28, 29, 30, + 31, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 52, 53, 54, 55, -1, -1, - 58, -1, 60, 61, -1, 63, 64, 65, 66, -1, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, -1, -1, -1, -1, 83, -1, 85, 86, 87, - 88, -1, -1, 91, -1, -1, -1, -1, -1, 97, - 98, 99, 100, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 3, -1, 5, -1, 7, 116, 117, - 10, 11, 120, 13, 14, -1, 16, 17, 18, 19, - 20, 21, 22, -1, -1, -1, -1, 27, 28, 29, - 30, 31, -1, 33, -1, -1, -1, -1, -1, -1, + -1, 52, 53, 54, 55, -1, -1, 58, -1, 60, + 61, -1, 63, 64, 65, 66, -1, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, -1, -1, + -1, -1, 83, -1, 85, 86, 87, 88, -1, -1, + 91, -1, -1, -1, -1, -1, 97, 98, 99, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 52, 53, 54, 55, -1, -1, 58, -1, - 60, 61, -1, 63, 64, 65, 66, -1, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, - -1, -1, -1, 83, -1, 85, 86, 87, 88, -1, - -1, 91, -1, -1, -1, -1, -1, 97, 98, 99, - 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 3, -1, 5, -1, 7, 116, 117, 10, 11, - 120, 13, 14, -1, 16, 17, 18, 19, 20, 21, + 3, -1, 5, -1, 7, 116, 117, 10, 11, 120, + 13, 14, -1, 16, 17, 18, 19, 20, 21, 22, + -1, -1, -1, -1, 27, 28, 29, 30, 31, -1, + 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, + 53, 54, 55, -1, -1, 58, -1, 60, 61, -1, + 63, 64, 65, 66, -1, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, -1, -1, -1, -1, + 83, -1, 85, 86, 87, 88, -1, -1, 91, -1, + -1, -1, -1, -1, 97, 98, 99, 100, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, + 5, -1, 7, 116, 117, 10, 11, 120, 13, 14, + -1, 16, 17, 18, 19, 20, 21, 22, -1, -1, + -1, -1, 27, 28, 29, 30, 31, -1, 33, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 52, 53, 54, + 55, -1, -1, 58, -1, 60, 61, -1, 63, 64, + 65, 66, -1, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, -1, -1, -1, -1, 83, -1, + 85, 86, 87, 88, -1, -1, 91, -1, -1, -1, + -1, -1, 97, 98, 99, 100, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3, -1, 5, -1, + 7, 116, 117, 10, 11, 120, 13, 14, -1, 16, + 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, + 27, 28, 29, 30, 31, -1, 33, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 52, 53, 54, 55, -1, + -1, 58, -1, 60, 61, -1, 63, 64, 65, 66, + -1, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, -1, -1, -1, -1, 83, -1, 85, 86, + 87, 88, -1, -1, 91, -1, -1, -1, -1, -1, + 97, 98, 99, 100, -1, -1, -1, -1, -1, -1, + -1, 3, -1, 5, -1, 7, -1, -1, 10, 116, + 117, 13, 14, 120, 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, 27, 28, 29, 30, 31, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -1524,90 +1530,55 @@ static const yytype_int16 yycheck[] = 72, 73, 74, 75, 76, 77, 78, -1, -1, -1, -1, 83, -1, 85, 86, 87, 88, -1, -1, 91, -1, -1, -1, -1, -1, 97, 98, 99, 100, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, - -1, 5, -1, 7, 116, 117, 10, 11, 120, 13, - 14, -1, 16, 17, 18, 19, 20, 21, 22, -1, - -1, -1, -1, 27, 28, 29, 30, 31, -1, 33, + -1, -1, -1, -1, -1, -1, 3, -1, 5, -1, + 7, -1, -1, 10, 116, 117, 13, 14, 120, 16, + 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, + 27, 28, 29, 30, 31, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 52, 53, - 54, 55, -1, -1, 58, -1, 60, 61, -1, 63, - 64, 65, 66, -1, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, -1, -1, -1, -1, 83, - -1, 85, 86, 87, 88, -1, -1, 91, -1, -1, - -1, -1, -1, 97, 98, 99, 100, -1, -1, -1, - -1, -1, -1, -1, 3, -1, 5, -1, 7, -1, - -1, 10, 116, 117, 13, 14, 120, 16, 17, 18, - 19, 20, 21, 22, -1, -1, -1, -1, 27, 28, - 29, 30, 31, -1, 33, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 52, 53, 54, 55, -1, -1, 58, - -1, 60, 61, -1, 63, 64, 65, 66, -1, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - -1, -1, -1, -1, 83, -1, 85, 86, 87, 88, - -1, -1, 91, -1, -1, -1, -1, -1, 97, 98, - 99, 100, -1, -1, -1, -1, -1, -1, -1, 3, - -1, 5, -1, 7, -1, -1, 10, 116, 117, 13, - 14, 120, 16, 17, 18, 19, 20, 21, 22, -1, - -1, -1, -1, 27, 28, 29, 30, 31, -1, 33, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 52, 53, - 54, 55, -1, -1, 58, -1, 60, 61, -1, 63, - 64, 65, 66, -1, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, -1, -1, -1, 3, 83, - 5, 85, 7, 87, -1, 10, -1, 91, 13, -1, - -1, -1, -1, 97, 98, 99, 100, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 31, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 120, -1, -1, 3, - -1, 5, -1, 7, -1, -1, 10, 52, -1, 13, - 55, -1, -1, -1, -1, 60, 61, -1, 63, 64, - 65, 66, -1, -1, -1, -1, -1, 31, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 83, -1, - 85, 86, 87, 88, -1, -1, 91, -1, 52, -1, - -1, 55, 97, 98, 99, 100, 60, 61, -1, 63, - 64, 65, 66, -1, -1, -1, -1, -1, -1, -1, - -1, 116, 117, -1, -1, 120, -1, -1, -1, 83, - -1, 85, 86, 87, 88, -1, -1, 91, -1, -1, - -1, -1, -1, 97, 98, 99, 100, 5, 6, 7, - -1, -1, 10, -1, -1, 13, -1, -1, -1, -1, - -1, -1, 116, 117, -1, -1, 120, -1, -1, -1, + -1, -1, -1, -1, -1, 52, 53, 54, 55, -1, + -1, 58, -1, 60, 61, -1, 63, 64, 65, 66, + -1, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, -1, -1, -1, 3, 83, 5, 85, 7, + 87, -1, 10, -1, 91, 13, -1, -1, -1, -1, + 97, 98, 99, 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, 31, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 52, -1, -1, 55, -1, -1, + -1, -1, -1, 120, -1, -1, 3, -1, 5, -1, + 7, -1, -1, 10, 52, -1, 13, 55, -1, -1, -1, -1, 60, 61, -1, 63, 64, 65, 66, -1, + -1, -1, -1, -1, 31, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 83, -1, 85, 86, 87, + 88, -1, -1, 91, -1, 52, -1, -1, 55, 97, + 98, 99, 100, 60, 61, -1, 63, 64, 65, 66, + -1, -1, -1, -1, -1, -1, -1, -1, 116, 117, + -1, -1, 120, -1, -1, -1, 83, -1, 85, 86, + 87, 88, -1, -1, 91, -1, -1, -1, -1, -1, + 97, 98, 99, 100, 5, 6, 7, -1, -1, 10, + -1, -1, 13, -1, -1, -1, -1, -1, -1, 116, + 117, -1, -1, 120, -1, -1, -1, -1, -1, -1, + 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 83, 84, 85, 86, 87, - 88, 89, 90, 91, -1, 93, -1, -1, -1, 97, - 98, 99, 100, -1, -1, 103, 104, 105, 106, 107, - 108, 109, 110, -1, -1, -1, -1, -1, 116, 117, - 118, 119, 120, 5, -1, 7, -1, -1, 10, -1, - -1, 13, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 31, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 5, -1, 7, -1, -1, 10, - 52, -1, 13, 55, -1, -1, -1, -1, 60, 61, - -1, 63, 64, 65, 66, -1, -1, -1, -1, -1, - 31, -1, -1, -1, -1, -1, -1, -1, 80, 81, - -1, 83, -1, 85, 86, 87, 88, -1, -1, 91, - -1, 52, -1, -1, 55, 97, 98, 99, 100, 60, + -1, 52, -1, -1, 55, -1, -1, -1, -1, 60, 61, -1, 63, 64, 65, 66, -1, -1, -1, -1, - -1, -1, -1, -1, 116, 117, -1, -1, 120, -1, - -1, -1, 83, -1, 85, 86, 87, 88, -1, -1, - 91, -1, -1, 94, -1, -1, 97, 98, 99, 100, - 5, -1, 7, 8, -1, 10, -1, -1, 13, -1, - -1, -1, -1, -1, -1, 116, 117, -1, -1, 120, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 83, 84, 85, 86, 87, 88, 89, 90, + 91, -1, 93, -1, -1, -1, 97, 98, 99, 100, + -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, + -1, -1, -1, -1, -1, 116, 117, 118, 119, 120, + 5, -1, 7, -1, -1, 10, -1, -1, 13, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, 7, 8, -1, 10, 52, -1, 13, 55, -1, -1, -1, -1, 60, 61, -1, 63, 64, 65, 66, -1, -1, -1, -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 83, -1, - 85, 86, 87, 88, -1, -1, 91, -1, 52, -1, + 85, 86, 87, 88, -1, -1, 91, -1, 52, 94, -1, 55, 97, 98, 99, 100, 60, 61, -1, 63, 64, 65, 66, -1, -1, -1, -1, -1, -1, -1, -1, 116, 117, -1, -1, 120, -1, -1, -1, 83, -1, 85, 86, 87, 88, -1, -1, 91, -1, -1, - -1, -1, -1, 97, 98, 99, 100, 5, 6, 7, - -1, -1, 10, -1, -1, 13, -1, -1, -1, -1, + -1, -1, -1, 97, 98, 99, 100, 5, -1, 7, + 8, -1, 10, -1, -1, 13, -1, -1, -1, -1, -1, -1, 116, 117, -1, -1, 120, -1, -1, -1, -1, -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, 6, @@ -1620,7 +1591,7 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, -1, -1, 116, 117, -1, -1, 120, -1, -1, -1, 83, -1, 85, 86, 87, 88, -1, -1, 91, -1, -1, -1, -1, -1, - 97, 98, 99, 100, 5, -1, 7, 8, -1, 10, + 97, 98, 99, 100, 5, 6, 7, -1, -1, 10, -1, -1, 13, -1, -1, -1, -1, -1, -1, 116, 117, -1, -1, 120, -1, -1, -1, -1, -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -1634,7 +1605,7 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, 116, 117, -1, -1, 120, -1, -1, -1, 83, -1, 85, 86, 87, 88, -1, -1, 91, -1, -1, -1, -1, -1, 97, 98, 99, - 100, 5, -1, 7, -1, -1, 10, -1, -1, 13, + 100, 5, -1, 7, 8, -1, 10, -1, -1, 13, -1, -1, -1, -1, -1, -1, 116, 117, -1, -1, 120, -1, -1, -1, -1, -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -1656,22 +1627,22 @@ static const yytype_int16 yycheck[] = -1, -1, -1, 60, 61, -1, 63, 64, 65, 66, -1, -1, -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 83, -1, 85, 86, - 87, 88, -1, -1, 91, -1, -1, -1, 55, -1, + 87, 88, -1, -1, 91, -1, -1, 5, 55, -1, 97, 98, 99, 100, 61, -1, 63, 64, 65, 66, -1, -1, 5, -1, 7, -1, -1, 10, -1, 116, 117, -1, -1, 120, -1, -1, 83, -1, 85, 86, 87, 88, -1, -1, 91, -1, -1, 94, 31, -1, - 97, 98, 99, 100, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, + 97, 98, 99, 100, 52, -1, -1, -1, -1, -1, + -1, -1, 60, -1, -1, -1, -1, -1, -1, 116, 117, -1, 55, 120, -1, -1, -1, -1, 61, -1, - 63, 64, 65, 66, -1, -1, -1, -1, -1, -1, - -1, 56, -1, -1, -1, -1, -1, -1, -1, -1, + 63, 64, 65, 66, -1, 83, -1, 85, 86, 87, + 88, -1, 56, -1, -1, -1, -1, -1, -1, 97, 83, -1, 85, 86, 87, 88, -1, -1, 91, -1, - -1, -1, -1, -1, 97, 98, 99, 100, -1, 84, - 85, 86, 87, 88, 89, 90, -1, -1, 93, -1, - -1, -1, -1, 116, 117, -1, -1, 120, 103, 104, - 105, 106, 107, 108, 109, 110, -1, -1, -1, -1, - -1, -1, -1, 118, 119 + -1, -1, -1, 111, 97, 98, 99, 100, 116, 117, + 84, 85, 86, 87, 88, 89, 90, -1, -1, 93, + -1, -1, -1, 116, 117, -1, -1, 120, -1, 103, + 104, 105, 106, 107, 108, 109, 110, -1, -1, -1, + -1, -1, -1, -1, 118, 119 }; /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of @@ -1699,48 +1670,48 @@ static const yytype_int16 yystos[] = 83, 175, 3, 133, 208, 133, 204, 205, 5, 83, 111, 155, 157, 218, 219, 220, 222, 223, 224, 204, 133, 147, 208, 208, 83, 167, 83, 253, 83, 204, - 83, 80, 81, 191, 262, 124, 157, 155, 156, 10, - 83, 94, 165, 252, 266, 165, 252, 266, 191, 0, - 1, 132, 167, 208, 5, 3, 137, 138, 3, 4, - 93, 118, 119, 41, 97, 157, 214, 251, 208, 92, - 96, 114, 102, 112, 113, 111, 103, 108, 232, 233, - 234, 86, 235, 88, 236, 95, 91, 252, 266, 7, - 44, 115, 193, 195, 198, 259, 66, 192, 6, 6, - 191, 94, 8, 9, 267, 11, 94, 4, 11, 5, - 201, 206, 41, 42, 209, 191, 184, 83, 192, 190, - 83, 111, 264, 10, 83, 3, 32, 171, 173, 83, - 41, 209, 210, 83, 83, 208, 218, 94, 193, 44, - 92, 93, 221, 7, 195, 196, 199, 222, 83, 5, - 202, 157, 83, 94, 83, 5, 83, 191, 237, 262, - 67, 192, 5, 258, 11, 146, 83, 264, 265, 10, - 165, 165, 101, 155, 191, 3, 191, 200, 200, 200, - 97, 214, 201, 56, 213, 259, 3, 165, 157, 155, - 237, 238, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 157, 10, 165, 191, 83, 157, 255, - 256, 257, 268, 258, 262, 8, 8, 191, 192, 192, - 6, 157, 158, 159, 3, 165, 157, 157, 6, 191, - 4, 6, 190, 4, 83, 94, 23, 181, 182, 10, - 172, 171, 115, 203, 209, 203, 94, 141, 157, 193, - 83, 143, 220, 8, 191, 7, 195, 138, 6, 157, - 162, 163, 31, 148, 149, 83, 203, 143, 158, 160, - 161, 5, 59, 262, 6, 191, 11, 94, 264, 83, - 6, 201, 3, 3, 165, 201, 203, 203, 203, 83, - 229, 258, 94, 192, 8, 4, 8, 8, 94, 83, - 230, 4, 6, 83, 83, 167, 3, 192, 167, 6, - 191, 264, 192, 191, 11, 181, 83, 137, 177, 178, - 175, 52, 53, 83, 144, 145, 43, 140, 141, 143, - 3, 10, 135, 203, 3, 4, 8, 3, 230, 231, - 4, 6, 83, 83, 3, 203, 10, 10, 4, 6, - 161, 6, 203, 167, 3, 5, 5, 5, 229, 238, - 11, 7, 195, 256, 192, 94, 158, 203, 203, 15, - 6, 167, 6, 94, 6, 24, 180, 25, 119, 4, - 176, 167, 157, 8, 141, 4, 8, 53, 156, 141, - 135, 11, 131, 202, 83, 162, 83, 157, 226, 227, - 169, 158, 165, 6, 24, 152, 158, 158, 158, 8, - 192, 202, 167, 167, 167, 192, 167, 191, 94, 167, - 83, 177, 11, 83, 144, 8, 135, 11, 149, 3, - 83, 11, 226, 79, 165, 192, 3, 4, 6, 6, - 3, 6, 146, 6, 3, 158, 167, 6 + 83, 80, 81, 191, 262, 157, 155, 156, 10, 94, + 165, 252, 266, 165, 252, 266, 191, 0, 1, 132, + 167, 208, 5, 3, 137, 138, 3, 4, 93, 118, + 119, 41, 97, 157, 214, 251, 208, 92, 96, 114, + 102, 112, 113, 111, 103, 108, 232, 233, 234, 86, + 235, 88, 236, 95, 91, 252, 266, 7, 44, 115, + 193, 195, 198, 259, 66, 192, 6, 6, 191, 94, + 8, 9, 267, 11, 94, 4, 11, 5, 201, 206, + 41, 42, 209, 191, 184, 83, 192, 190, 83, 111, + 264, 10, 83, 3, 32, 171, 173, 83, 41, 209, + 210, 83, 83, 208, 218, 94, 193, 44, 92, 93, + 221, 7, 195, 196, 199, 222, 83, 5, 202, 157, + 83, 94, 83, 5, 83, 191, 237, 262, 67, 5, + 258, 11, 146, 83, 264, 265, 10, 165, 165, 101, + 155, 191, 3, 191, 200, 200, 200, 97, 214, 201, + 56, 213, 259, 3, 165, 157, 155, 237, 238, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 157, 10, 165, 191, 83, 157, 255, 256, 257, 268, + 258, 262, 8, 8, 191, 192, 192, 6, 157, 158, + 159, 3, 165, 157, 157, 6, 191, 4, 6, 190, + 4, 83, 94, 23, 181, 182, 10, 172, 171, 115, + 203, 209, 203, 94, 141, 157, 193, 83, 143, 220, + 8, 191, 7, 195, 138, 6, 157, 162, 163, 31, + 148, 149, 83, 203, 143, 158, 160, 161, 5, 59, + 262, 6, 191, 11, 94, 264, 83, 6, 201, 3, + 3, 165, 201, 203, 203, 203, 83, 229, 258, 94, + 192, 8, 4, 8, 8, 94, 83, 230, 4, 6, + 83, 83, 167, 3, 192, 167, 6, 191, 264, 192, + 191, 11, 181, 83, 137, 177, 178, 175, 52, 53, + 83, 144, 145, 43, 140, 141, 143, 3, 10, 135, + 203, 3, 4, 8, 3, 230, 231, 4, 6, 83, + 83, 3, 203, 10, 10, 4, 6, 161, 6, 203, + 167, 3, 5, 5, 5, 229, 238, 11, 7, 195, + 256, 192, 94, 158, 203, 203, 15, 6, 167, 6, + 94, 6, 24, 180, 25, 119, 4, 176, 167, 157, + 8, 141, 4, 8, 53, 156, 141, 135, 11, 131, + 202, 83, 162, 83, 157, 226, 227, 169, 158, 165, + 6, 24, 152, 158, 158, 158, 8, 192, 202, 167, + 167, 167, 192, 167, 191, 94, 167, 83, 177, 11, + 83, 144, 8, 135, 11, 149, 3, 83, 11, 226, + 79, 165, 192, 3, 4, 6, 6, 3, 6, 146, + 6, 3, 158, 167, 6 }; /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ @@ -1760,28 +1731,27 @@ static const yytype_int16 yyr1[] = 179, 180, 180, 181, 182, 182, 183, 183, 184, 184, 185, 185, 185, 185, 185, 185, 185, 185, 186, 187, 187, 188, 188, 189, 189, 189, 189, 190, 190, 191, - 191, 191, 192, 192, 192, 192, 193, 193, 194, 194, - 194, 194, 194, 195, 195, 195, 196, 196, 196, 197, - 197, 198, 198, 198, 199, 199, 200, 200, 200, 201, - 201, 202, 202, 203, 203, 203, 203, 204, 205, 205, - 206, 206, 207, 207, 208, 208, 208, 208, 209, 209, - 210, 210, 211, 211, 211, 211, 212, 213, 213, 213, - 213, 213, 214, 214, 214, 214, 215, 215, 216, 216, - 216, 217, 217, 217, 217, 217, 217, 218, 218, 219, - 219, 220, 220, 221, 221, 221, 222, 223, 223, 224, - 224, 225, 225, 226, 226, 227, 227, 228, 229, 230, - 231, 231, 232, 232, 233, 233, 233, 233, 234, 234, - 235, 235, 236, 236, 236, 237, 237, 238, 238, 238, - 239, 239, 240, 240, 241, 241, 242, 242, 243, 243, - 244, 244, 245, 245, 246, 246, 247, 247, 248, 248, - 249, 249, 250, 250, 251, 251, 251, 251, 251, 252, - 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - 253, 253, 254, 254, 255, 256, 256, 257, 257, 258, - 258, 259, 259, 260, 261, 261, 261, 261, 261, 261, - 262, 262, 262, 263, 263, 264, 264, 265, 265, 266, - 266, 267, 267, 268, 268, 268, 268, 269, 269, 269, - 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, - 269 + 191, 192, 192, 192, 192, 193, 193, 194, 194, 194, + 194, 194, 195, 195, 195, 196, 196, 196, 197, 197, + 198, 198, 198, 199, 199, 200, 200, 200, 201, 201, + 202, 202, 203, 203, 203, 203, 204, 205, 205, 206, + 206, 207, 207, 208, 208, 208, 208, 209, 209, 210, + 210, 211, 211, 211, 211, 212, 213, 213, 213, 213, + 213, 214, 214, 214, 214, 215, 215, 216, 216, 216, + 217, 217, 217, 217, 217, 217, 218, 218, 219, 219, + 220, 220, 221, 221, 221, 222, 223, 223, 224, 224, + 225, 225, 226, 226, 227, 227, 228, 229, 230, 231, + 231, 232, 232, 233, 233, 233, 233, 234, 234, 235, + 235, 236, 236, 236, 237, 237, 238, 238, 238, 239, + 239, 240, 240, 241, 241, 242, 242, 243, 243, 244, + 244, 245, 245, 246, 246, 247, 247, 248, 248, 249, + 249, 250, 250, 251, 251, 251, 251, 251, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, + 253, 254, 254, 255, 256, 256, 257, 257, 258, 258, + 259, 259, 260, 261, 261, 261, 261, 261, 261, 262, + 262, 262, 263, 263, 264, 264, 265, 265, 266, 266, + 267, 267, 268, 268, 268, 268, 269, 269, 269, 269, + 269, 269, 269, 269, 269, 269, 269, 269, 269, 269 }; /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ @@ -1801,28 +1771,27 @@ static const yytype_int8 yyr2[] = 7, 2, 0, 5, 1, 2, 7, 5, 1, 1, 5, 5, 6, 7, 7, 9, 5, 7, 2, 5, 7, 1, 1, 3, 2, 3, 2, 2, 1, 1, - 3, 3, 1, 3, 3, 3, 3, 0, 1, 1, - 1, 1, 1, 3, 4, 5, 2, 3, 2, 3, - 5, 5, 4, 4, 1, 1, 1, 4, 5, 3, - 2, 3, 2, 3, 4, 3, 0, 1, 1, 0, - 1, 1, 1, 1, 1, 1, 2, 0, 1, 0, - 2, 1, 4, 4, 7, 6, 8, 1, 1, 1, - 1, 1, 8, 6, 6, 3, 1, 2, 3, 3, - 4, 1, 1, 1, 4, 4, 5, 1, 7, 2, - 3, 1, 3, 1, 1, 0, 2, 1, 2, 1, - 1, 1, 1, 2, 3, 1, 2, 7, 1, 1, - 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 1, 5, 3, - 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, - 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, - 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 3, 2, 2, 2, 3, 3, 2, - 1, 2, 2, 1, 1, 1, 1, 1, 3, 3, - 2, 1, 1, 3, 1, 2, 2, 3, 2, 1, - 1, 2, 3, 2, 3, 1, 2, 1, 2, 3, + 3, 1, 3, 3, 3, 3, 0, 1, 1, 1, + 1, 1, 3, 4, 5, 2, 3, 2, 3, 5, + 5, 4, 4, 1, 1, 1, 4, 5, 3, 2, + 3, 2, 3, 4, 3, 0, 1, 1, 0, 1, + 1, 1, 1, 1, 1, 2, 0, 1, 0, 2, + 1, 4, 4, 7, 6, 8, 1, 1, 1, 1, + 1, 8, 6, 6, 3, 1, 2, 3, 3, 4, + 1, 1, 1, 4, 4, 5, 1, 7, 2, 3, + 1, 3, 1, 1, 0, 2, 1, 2, 1, 1, + 1, 1, 2, 3, 1, 2, 7, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 3, 3, 1, 3, 3, 1, 3, 5, 3, 2, - 2 + 1, 1, 1, 1, 1, 0, 1, 5, 3, 1, + 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, + 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, + 3, 1, 3, 1, 1, 1, 1, 1, 1, 2, + 2, 2, 3, 2, 2, 2, 3, 3, 2, 1, + 2, 2, 1, 1, 1, 1, 1, 3, 3, 2, + 1, 1, 3, 1, 2, 2, 3, 2, 1, 1, + 2, 3, 2, 3, 1, 2, 1, 2, 3, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, + 3, 1, 3, 3, 1, 3, 5, 3, 2, 2 }; @@ -2633,91 +2602,91 @@ YYLTYPE yylloc = yyloc_default; case 2: /* ast: section_list */ #line 204 "src/gwion.y" { arg->ppa->ast = (yyval.ast) = (yyvsp[0].ast); } -#line 2637 "src/parser.c" +#line 2606 "src/parser.c" break; case 3: /* ast: %empty */ #line 205 "src/gwion.y" { loc_t loc = { {1, 1}, {1,1} }; parser_error(&loc, arg, "file is empty.", 0201); YYERROR; } -#line 2643 "src/parser.c" +#line 2612 "src/parser.c" break; case 4: /* section_list: section */ #line 208 "src/gwion.y" { YYLIST_INI(Section, (yyval.ast), (yyvsp[0].section)); } -#line 2649 "src/parser.c" +#line 2618 "src/parser.c" break; case 5: /* section_list: section_list section */ #line 209 "src/gwion.y" { YYLIST_END(Section, (yyval.ast), (yyvsp[-1].ast), (yyvsp[0].section)); } -#line 2655 "src/parser.c" +#line 2624 "src/parser.c" break; case 7: /* section: stmt_list */ #line 213 "src/gwion.y" { (yyval.section) = MK_SECTION(stmt, stmt_list, (yyvsp[0].stmt_list), (yylsp[0])); } -#line 2661 "src/parser.c" +#line 2630 "src/parser.c" break; case 8: /* section: func_def */ #line 214 "src/gwion.y" { (yyval.section) = MK_SECTION(func, func_def, (yyvsp[0].func_def), (yylsp[0])); } -#line 2667 "src/parser.c" +#line 2636 "src/parser.c" break; case 9: /* section: class_def */ #line 215 "src/gwion.y" { (yyval.section) = MK_SECTION(class, class_def, (yyvsp[0].class_def), (yylsp[0])); } -#line 2673 "src/parser.c" +#line 2642 "src/parser.c" break; case 10: /* section: trait_def */ #line 216 "src/gwion.y" { (yyval.section) = MK_SECTION(trait, trait_def, (yyvsp[0].trait_def), (yylsp[0])); } -#line 2679 "src/parser.c" +#line 2648 "src/parser.c" break; case 11: /* section: extend_def */ #line 217 "src/gwion.y" { (yyval.section) = MK_SECTION(extend, extend_def, (yyvsp[0].extend_def), (yylsp[0])); } -#line 2685 "src/parser.c" +#line 2654 "src/parser.c" break; case 12: /* section: enum_def */ #line 218 "src/gwion.y" { (yyval.section) = MK_SECTION(enum, enum_def, (yyvsp[0].enum_def), (yylsp[0])); } -#line 2691 "src/parser.c" +#line 2660 "src/parser.c" break; case 13: /* section: union_def */ #line 219 "src/gwion.y" { (yyval.section) = MK_SECTION(union, union_def, (yyvsp[0].union_def), (yylsp[0])); } -#line 2697 "src/parser.c" +#line 2666 "src/parser.c" break; case 14: /* section: fptr_def */ #line 220 "src/gwion.y" { (yyval.section) = MK_SECTION(fptr, fptr_def, (yyvsp[0].fptr_def), (yylsp[0])); } -#line 2703 "src/parser.c" +#line 2672 "src/parser.c" break; case 15: /* section: type_def */ #line 221 "src/gwion.y" { (yyval.section) = MK_SECTION(type, type_def, (yyvsp[0].type_def), (yylsp[0])); } -#line 2709 "src/parser.c" +#line 2678 "src/parser.c" break; case 16: /* section: prim_def */ #line 222 "src/gwion.y" { (yyval.section) = MK_SECTION(primitive, prim_def, (yyvsp[0].prim_def), (yylsp[0])); } -#line 2715 "src/parser.c" +#line 2684 "src/parser.c" break; case 17: /* class_flag: flag modifier */ #line 225 "src/gwion.y" { (yyval.flag) = (yyvsp[-1].flag) | (yyvsp[0].flag); } -#line 2721 "src/parser.c" +#line 2690 "src/parser.c" break; case 18: /* class_def: "class" class_flag "" decl_template class_ext traits class_body */ @@ -2728,7 +2697,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.class_def)->base.tmpl = new_tmpl(mpool(arg), (yyvsp[-3].specialized_list)); (yyval.class_def)->traits = (yyvsp[-1].id_list); } -#line 2732 "src/parser.c" +#line 2701 "src/parser.c" break; case 19: /* class_def: "struct" class_flag "" decl_template traits class_body */ @@ -2740,25 +2709,25 @@ YYLTYPE yylloc = yyloc_default; (yyval.class_def)->cflag |= cflag_struct; (yyval.class_def)->traits = (yyvsp[-1].id_list); } -#line 2744 "src/parser.c" +#line 2713 "src/parser.c" break; case 20: /* class_body: "{" section_list "}" */ #line 243 "src/gwion.y" { (yyval.ast) = (yyvsp[-1].ast); } -#line 2750 "src/parser.c" +#line 2719 "src/parser.c" break; case 21: /* class_body: "{" "}" */ #line 243 "src/gwion.y" { (yyval.ast) = NULL; } -#line 2756 "src/parser.c" +#line 2725 "src/parser.c" break; case 22: /* class_body: ";" */ #line 243 "src/gwion.y" { (yyval.ast) = NULL; } -#line 2762 "src/parser.c" +#line 2731 "src/parser.c" break; case 23: /* trait_def: "trait" opt_global "" traits class_body */ @@ -2767,7 +2736,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.trait_def) = new_trait_def(mpool(arg), (yyvsp[-3].flag), (yyvsp[-2].sym), (yyvsp[0].ast), (yylsp[-2])); (yyval.trait_def)->traits = (yyvsp[-1].id_list); } -#line 2771 "src/parser.c" +#line 2740 "src/parser.c" break; case 24: /* number: INTEGER */ @@ -2778,7 +2747,7 @@ YYLTYPE yylloc = yyloc_default; } (yyval.gwint) = GWINT((yyvsp[0].yyint).num, (yyvsp[0].yyint).int_type); } -#line 2782 "src/parser.c" +#line 2751 "src/parser.c" break; case 25: /* decimal: number */ @@ -2789,7 +2758,7 @@ YYLTYPE yylloc = yyloc_default; } (yyval.gwint) = (yyvsp[0].gwint); } -#line 2793 "src/parser.c" +#line 2762 "src/parser.c" break; case 26: /* prim_def: "primitive" class_flag "" decimal ";" */ @@ -2797,31 +2766,31 @@ YYLTYPE yylloc = yyloc_default; { (yyval.prim_def) = new_prim_def(mpool(arg), (yyvsp[-2].sym), (yyvsp[-1].gwint).num, (yylsp[-2]), (yyvsp[-3].flag)); } -#line 2801 "src/parser.c" +#line 2770 "src/parser.c" break; case 27: /* class_ext: "extends" type_decl_exp */ #line 269 "src/gwion.y" { (yyval.type_decl) = (yyvsp[0].type_decl); } -#line 2807 "src/parser.c" +#line 2776 "src/parser.c" break; case 28: /* class_ext: %empty */ #line 269 "src/gwion.y" { (yyval.type_decl) = NULL; } -#line 2813 "src/parser.c" +#line 2782 "src/parser.c" break; case 29: /* traits: %empty */ #line 270 "src/gwion.y" { (yyval.id_list) = NULL; } -#line 2819 "src/parser.c" +#line 2788 "src/parser.c" break; case 30: /* traits: ":" id_list */ #line 270 "src/gwion.y" { (yyval.id_list) = (yyvsp[0].id_list); } -#line 2825 "src/parser.c" +#line 2794 "src/parser.c" break; case 31: /* extend_def: "extends" type_decl_empty ":" id_list ";" */ @@ -2829,19 +2798,19 @@ YYLTYPE yylloc = yyloc_default; { (yyval.extend_def) = new_extend_def(mpool(arg), (yyvsp[-3].type_decl), (yyvsp[-1].id_list)); } -#line 2833 "src/parser.c" +#line 2802 "src/parser.c" break; case 32: /* id_list: "" */ #line 277 "src/gwion.y" { YYLIST_INI(Symbol, (yyval.id_list), (yyvsp[0].sym)); } -#line 2839 "src/parser.c" +#line 2808 "src/parser.c" break; case 33: /* id_list: id_list "," "" */ #line 278 "src/gwion.y" { YYLIST_END(Symbol, (yyval.id_list), (yyvsp[-2].id_list), (yyvsp[0].sym)); } -#line 2845 "src/parser.c" +#line 2814 "src/parser.c" break; case 34: /* specialized: "" traits */ @@ -2852,7 +2821,7 @@ YYLTYPE yylloc = yyloc_default; .traits = (yyvsp[0].id_list), }; } -#line 2856 "src/parser.c" +#line 2825 "src/parser.c" break; case 35: /* specialized: "const" type_decl_empty "" */ @@ -2863,69 +2832,69 @@ YYLTYPE yylloc = yyloc_default; .td = (yyvsp[-1].type_decl), }; } -#line 2867 "src/parser.c" +#line 2836 "src/parser.c" break; case 36: /* specialized_list: specialized */ #line 293 "src/gwion.y" { YYLIST_INI(Specialized, (yyval.specialized_list), (yyvsp[0].specialized)); } -#line 2873 "src/parser.c" +#line 2842 "src/parser.c" break; case 37: /* specialized_list: specialized_list "," specialized */ #line 294 "src/gwion.y" { YYLIST_END(Specialized, (yyval.specialized_list), (yyvsp[-2].specialized_list), (yyvsp[0].specialized)); } -#line 2879 "src/parser.c" +#line 2848 "src/parser.c" break; case 38: /* stmt_list: stmt */ #line 296 "src/gwion.y" { YYLIST_INI(Stmt, (yyval.stmt_list), (yyvsp[0].stmt)); } -#line 2885 "src/parser.c" +#line 2854 "src/parser.c" break; case 39: /* stmt_list: stmt_list stmt */ #line 297 "src/gwion.y" { YYLIST_END(Stmt, (yyval.stmt_list), (yyvsp[-1].stmt_list), (yyvsp[0].stmt)); } -#line 2891 "src/parser.c" +#line 2860 "src/parser.c" break; case 40: /* fptr_base: flag type_decl_empty "" decl_template */ #line 299 "src/gwion.y" { (yyval.func_base) = new_func_base(mpool(arg), (yyvsp[-2].type_decl), (yyvsp[-1].sym), NULL, (yyvsp[-3].flag), (yylsp[-2])); if((yyvsp[0].specialized_list)) { (yyval.func_base)->tmpl = new_tmpl(mpool(arg), (yyvsp[0].specialized_list)); } } -#line 2898 "src/parser.c" +#line 2867 "src/parser.c" break; case 41: /* _func_effects: "perform" "" */ #line 302 "src/gwion.y" { vector_init(&(yyval.vector)); vector_add(&(yyval.vector), (m_uint)(yyvsp[0].sym)); } -#line 2904 "src/parser.c" +#line 2873 "src/parser.c" break; case 42: /* _func_effects: _func_effects "" */ #line 302 "src/gwion.y" { vector_add(&(yyval.vector), (m_uint)(yyvsp[0].sym)); } -#line 2910 "src/parser.c" +#line 2879 "src/parser.c" break; case 43: /* func_effects: %empty */ #line 303 "src/gwion.y" { (yyval.vector).ptr = NULL; } -#line 2916 "src/parser.c" +#line 2885 "src/parser.c" break; case 44: /* func_effects: _func_effects */ #line 303 "src/gwion.y" { (yyval.vector).ptr = (yyvsp[0].vector).ptr; } -#line 2922 "src/parser.c" +#line 2891 "src/parser.c" break; case 45: /* func_base: flag final type_decl_empty "" decl_template */ #line 305 "src/gwion.y" { (yyval.func_base) = new_func_base(mpool(arg), (yyvsp[-2].type_decl), (yyvsp[-1].sym), NULL, (yyvsp[-4].flag) | (yyvsp[-3].flag), (yylsp[-1])); if((yyvsp[0].specialized_list)) { (yyval.func_base)->tmpl = new_tmpl(mpool(arg), (yyvsp[0].specialized_list)); } } -#line 2929 "src/parser.c" +#line 2898 "src/parser.c" break; case 46: /* fptr_def: "funptr" fptr_base fptr_args func_effects ";" */ @@ -2935,31 +2904,31 @@ YYLTYPE yylloc = yyloc_default; (yyval.fptr_def) = new_fptr_def(mpool(arg), (yyvsp[-3].func_base)); (yyval.fptr_def)->base->effects.ptr = (yyvsp[-1].vector).ptr; } -#line 2939 "src/parser.c" +#line 2908 "src/parser.c" break; case 47: /* typedef_when: %empty */ #line 314 "src/gwion.y" { (yyval.exp) = NULL;} -#line 2945 "src/parser.c" +#line 2914 "src/parser.c" break; case 48: /* typedef_when: "when" binary_exp */ #line 314 "src/gwion.y" { (yyval.exp) = (yyvsp[0].exp); } -#line 2951 "src/parser.c" +#line 2920 "src/parser.c" break; case 49: /* type_def_type: "typedef" */ #line 315 "src/gwion.y" { (yyval.yybool) = false; } -#line 2957 "src/parser.c" +#line 2926 "src/parser.c" break; case 50: /* type_def_type: "distinct" */ #line 315 "src/gwion.y" { (yyval.yybool) = true; } -#line 2963 "src/parser.c" +#line 2932 "src/parser.c" break; case 51: /* type_def: type_def_type flag type_decl_array "" decl_template typedef_when ";" */ @@ -2972,13 +2941,13 @@ YYLTYPE yylloc = yyloc_default; (yyval.type_def)->tmpl = new_tmpl(mpool(arg), (yyvsp[-2].specialized_list)); (yyval.type_def)->distinct = (yyvsp[-6].yybool); } -#line 2976 "src/parser.c" +#line 2945 "src/parser.c" break; case 52: /* type_decl_array: type_decl array */ #line 325 "src/gwion.y" { (yyvsp[-1].type_decl)->array = (yyvsp[0].array_sub); } -#line 2982 "src/parser.c" +#line 2951 "src/parser.c" break; case 54: /* type_decl_exp: type_decl_array */ @@ -2986,7 +2955,7 @@ YYLTYPE yylloc = yyloc_default; { if((yyvsp[0].type_decl)->array && !(yyvsp[0].type_decl)->array->exp) { parser_error(&(yyloc), arg, "can't instantiate with empty `[]`", 0203); YYERROR;} (yyval.type_decl) = (yyvsp[0].type_decl); } -#line 2990 "src/parser.c" +#line 2959 "src/parser.c" break; case 55: /* type_decl_empty: type_decl_array */ @@ -2994,7 +2963,7 @@ YYLTYPE yylloc = yyloc_default; { if((yyvsp[0].type_decl)->array && (yyvsp[0].type_decl)->array->exp) { parser_error(&(yyloc), arg, "type must be defined with empty []'s", 0204); YYERROR;} (yyval.type_decl) = (yyvsp[0].type_decl); } -#line 2998 "src/parser.c" +#line 2967 "src/parser.c" break; case 56: /* arg: type_decl_empty arg_decl ":" binary_exp */ @@ -3003,7 +2972,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.default_args).arg = (Arg) { .var = MK_VAR((yyvsp[-3].type_decl), (yyvsp[-2].var_decl)), .exp = (yyvsp[0].exp) }; (yyval.default_args).flag = fbflag_default; } -#line 3007 "src/parser.c" +#line 2976 "src/parser.c" break; case 57: /* arg: type_decl_empty arg_decl */ @@ -3012,7 +2981,7 @@ YYLTYPE yylloc = yyloc_default; (yyval.default_args).arg = (Arg) { .var = MK_VAR((yyvsp[-1].type_decl), (yyvsp[0].var_decl)) }; (yyval.default_args).flag = fbflag_none; } -#line 3016 "src/parser.c" +#line 2985 "src/parser.c" break; case 58: /* arg_list: arg */ @@ -3021,7 +2990,7 @@ YYLTYPE yylloc = yyloc_default; YYLIST_INI(Arg, (yyval.default_args).args, (yyvsp[0].default_args).arg); (yyval.default_args).flag = (yyvsp[0].default_args).flag; } -#line 3025 "src/parser.c" +#line 2994 "src/parser.c" break; case 59: /* arg_list: arg_list "," arg */ @@ -3033,7 +3002,7 @@ YYLTYPE yylloc = yyloc_default; mp_vector_add(mpool(arg), &(yyvsp[-2].default_args).args, Arg, (yyvsp[0].default_args).arg); (yyval.default_args) = (yyvsp[-2].default_args); } -#line 3037 "src/parser.c" +#line 3006 "src/parser.c" break; case 60: /* locale_arg: arg */ @@ -3050,7 +3019,7 @@ YYLTYPE yylloc = yyloc_default; mp_vector_set((yyval.default_args).args, Arg, 1, (yyvsp[0].default_args).arg); (yyval.default_args).flag = (yyvsp[0].default_args).flag; } -#line 3054 "src/parser.c" +#line 3023 "src/parser.c" break; case 61: /* locale_arg: locale_arg "," arg */ @@ -3062,7 +3031,7 @@ YYLTYPE yylloc = yyloc_default; mp_vector_add(mpool(arg), &(yyvsp[-2].default_args).args, Arg, (yyvsp[0].default_args).arg); (yyval.default_args) = (yyvsp[-2].default_args); } -#line 3066 "src/parser.c" +#line 3035 "src/parser.c" break; case 63: /* locale_list: %empty */ @@ -3077,129 +3046,129 @@ YYLTYPE yylloc = yyloc_default; }; YYLIST_INI(Arg, (yyval.default_args).args, self); } -#line 3081 "src/parser.c" +#line 3050 "src/parser.c" break; case 64: /* fptr_arg: type_decl_empty fptr_arg_decl */ #line 390 "src/gwion.y" { (yyval.arg) = (Arg) { .var = MK_VAR((yyvsp[-1].type_decl), (yyvsp[0].var_decl)) }; } -#line 3087 "src/parser.c" +#line 3056 "src/parser.c" break; case 65: /* fptr_list: fptr_arg */ #line 392 "src/gwion.y" { YYLIST_INI(Arg, (yyval.arg_list), (yyvsp[0].arg)); } -#line 3093 "src/parser.c" +#line 3062 "src/parser.c" break; case 66: /* fptr_list: fptr_list "," fptr_arg */ #line 393 "src/gwion.y" { YYLIST_END(Arg, (yyval.arg_list), (yyvsp[-2].arg_list), (yyvsp[0].arg)); } -#line 3099 "src/parser.c" +#line 3068 "src/parser.c" break; case 67: /* code_stmt: "{" "}" */ #line 396 "src/gwion.y" { (yyval.stmt) = MK_STMT(ae_stmt_code, (yyloc)); } -#line 3106 "src/parser.c" +#line 3075 "src/parser.c" break; case 68: /* code_stmt: "{" stmt_list "}" */ #line 398 "src/gwion.y" { (yyval.stmt) = MK_STMT(ae_stmt_code, (yyloc), .stmt_code = { .stmt_list = (yyvsp[-1].stmt_list) });} -#line 3113 "src/parser.c" +#line 3082 "src/parser.c" break; case 69: /* code_list: "{" "}" */ #line 402 "src/gwion.y" { (yyval.stmt_list) = new_mp_vector(mpool(arg), Stmt, 0); } -#line 3119 "src/parser.c" +#line 3088 "src/parser.c" break; case 70: /* code_list: "{" stmt_list "}" */ #line 403 "src/gwion.y" { (yyval.stmt_list) = (yyvsp[-1].stmt_list); } -#line 3125 "src/parser.c" +#line 3094 "src/parser.c" break; case 71: /* stmt_pp: "" */ #line 406 "src/gwion.y" { /*if(!arg->ppa->fmt)return 0; */(yyval.stmt) = MK_STMT_PP(comment, (yyloc), .data = (yyvsp[0].sval)); } -#line 3131 "src/parser.c" +#line 3100 "src/parser.c" break; case 72: /* stmt_pp: "#include" */ #line 407 "src/gwion.y" { (yyval.stmt) = MK_STMT_PP(include, (yyloc), .data = (yyvsp[0].sval)); } -#line 3137 "src/parser.c" +#line 3106 "src/parser.c" break; case 73: /* stmt_pp: "#define" */ #line 408 "src/gwion.y" { (yyval.stmt) = MK_STMT_PP(define, (yyloc), .data = (yyvsp[0].sval)); } -#line 3143 "src/parser.c" +#line 3112 "src/parser.c" break; case 74: /* stmt_pp: "#pragma" */ #line 409 "src/gwion.y" { (yyval.stmt) = MK_STMT_PP(pragma, (yyloc), .data = (yyvsp[0].sval)); } -#line 3149 "src/parser.c" +#line 3118 "src/parser.c" break; case 75: /* stmt_pp: "#undef" */ #line 410 "src/gwion.y" { (yyval.stmt) = MK_STMT_PP(undef, (yyloc), .data = (yyvsp[0].sval)); } -#line 3155 "src/parser.c" +#line 3124 "src/parser.c" break; case 76: /* stmt_pp: "#ifdef" */ #line 411 "src/gwion.y" { (yyval.stmt) = MK_STMT_PP(ifdef, (yyloc), .data = (yyvsp[0].sval)); } -#line 3161 "src/parser.c" +#line 3130 "src/parser.c" break; case 77: /* stmt_pp: "#ifndef" */ #line 412 "src/gwion.y" { (yyval.stmt) = MK_STMT_PP(ifndef, (yyloc), .data = (yyvsp[0].sval)); } -#line 3167 "src/parser.c" +#line 3136 "src/parser.c" break; case 78: /* stmt_pp: "#else" */ #line 413 "src/gwion.y" { (yyval.stmt) = MK_STMT_PP(else, (yyloc), .data = (yyvsp[0].sval)); } -#line 3173 "src/parser.c" +#line 3142 "src/parser.c" break; case 79: /* stmt_pp: "#if" */ #line 414 "src/gwion.y" { (yyval.stmt) = MK_STMT_PP(endif, (yyloc), .data = (yyvsp[0].sval)); } -#line 3179 "src/parser.c" +#line 3148 "src/parser.c" break; case 80: /* stmt_pp: "\n" */ #line 415 "src/gwion.y" { if(!arg->ppa->fmt)return 0; (yyval.stmt) = MK_STMT_PP(nl, (yyloc), .data = (yyvsp[0].sval)); } -#line 3185 "src/parser.c" +#line 3154 "src/parser.c" break; case 81: /* stmt_pp: "import" */ #line 416 "src/gwion.y" { (yyval.stmt) = MK_STMT_PP(import, (yyloc), .data = (yyvsp[0].sval)); } -#line 3191 "src/parser.c" +#line 3160 "src/parser.c" break; case 82: /* stmt_pp: LOCALE_INI "" opt_exp LOCALE_END */ #line 418 "src/gwion.y" { (yyval.stmt) = MK_STMT_PP(locale, (yyloc), .xid = (yyvsp[-2].sym), .exp = (yyvsp[-1].exp)); } -#line 3197 "src/parser.c" +#line 3166 "src/parser.c" break; case 94: /* $@1: %empty */ #line 435 "src/gwion.y" {lex_spread(((Scanner*)scan));} -#line 3203 "src/parser.c" +#line 3172 "src/parser.c" break; case 95: /* spread_stmt: "..." "" ":" id_list "{" $@1 "}..." */ @@ -3212,7 +3181,7 @@ YYLTYPE yylloc = yyloc_default; }; (yyval.stmt) = MK_STMT(ae_stmt_spread, (yylsp[-5]), .stmt_spread = spread); } -#line 3216 "src/parser.c" +#line 3185 "src/parser.c" break; case 96: /* retry_stmt: "retry" ";" */ @@ -3221,19 +3190,19 @@ YYLTYPE yylloc = yyloc_default; if(!arg->handling) { parser_error(&(yylsp[-1]), arg, "`retry` outside of `handle` block", 0); YYERROR; } (yyval.stmt) = MK_STMT(ae_stmt_retry, (yylsp[-1]));} -#line 3225 "src/parser.c" +#line 3194 "src/parser.c" break; case 97: /* $@2: %empty */ #line 449 "src/gwion.y" { arg->handling = true; } -#line 3231 "src/parser.c" +#line 3200 "src/parser.c" break; case 98: /* handler: "handle" $@2 opt_id stmt */ #line 449 "src/gwion.y" { (yyval.handler) = (Handler){ .tag = MK_TAG((yyvsp[-1].sym), (yyvsp[-1].sym) ? (yylsp[-1]) :(yylsp[-3])), .stmt = cpy_stmt3(mpool(arg), &(yyvsp[0].stmt)) }; arg->handling = false; } -#line 3237 "src/parser.c" +#line 3206 "src/parser.c" break; case 99: /* handler_list: handler */ @@ -3242,7 +3211,7 @@ YYLTYPE yylloc = yyloc_default; YYLIST_INI(Handler, (yyval.handler_list).handlers, (yyvsp[0].handler)); (yyval.handler_list).has_xid = !!(yyvsp[0].handler).tag.sym; } -#line 3246 "src/parser.c" +#line 3215 "src/parser.c" break; case 100: /* handler_list: handler_list handler */ @@ -3263,32 +3232,32 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] (yyval.handler_list) = (yyvsp[-1].handler_list); // $1->next = $2; } -#line 3267 "src/parser.c" +#line 3236 "src/parser.c" break; case 101: /* try_stmt: "try" stmt handler_list */ #line 470 "src/gwion.y" { (yyval.stmt) = MK_STMT(ae_stmt_try, (yylsp[-2]), .stmt_try = { .stmt = cpy_stmt3(mpool(arg), &(yyvsp[-1].stmt)), .handler = (yyvsp[0].handler_list).handlers});} -#line 3274 "src/parser.c" +#line 3243 "src/parser.c" break; case 103: /* opt_id: %empty */ #line 473 "src/gwion.y" { (yyval.sym) = NULL; } -#line 3280 "src/parser.c" +#line 3249 "src/parser.c" break; case 105: /* opt_comma: %empty */ #line 474 "src/gwion.y" {} -#line 3286 "src/parser.c" +#line 3255 "src/parser.c" break; case 106: /* enum_value: "" */ #line 477 "src/gwion.y" { (yyval.enum_value) = (EnumValue) { .tag = MK_TAG((yyvsp[0].sym), (yylsp[0])) }; } -#line 3292 "src/parser.c" +#line 3261 "src/parser.c" break; case 107: /* enum_value: number "" "" */ @@ -3299,19 +3268,19 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] } (yyval.enum_value) = (EnumValue) {.tag = MK_TAG((yyvsp[0].sym), (yylsp[0])), .gwint = (yyvsp[-2].gwint), .set = true }; } -#line 3303 "src/parser.c" +#line 3272 "src/parser.c" break; case 108: /* enum_list: enum_value */ #line 485 "src/gwion.y" { YYLIST_INI(EnumValue, (yyval.enum_list), (yyvsp[0].enum_value)); } -#line 3309 "src/parser.c" +#line 3278 "src/parser.c" break; case 109: /* enum_list: enum_list "," enum_value */ #line 486 "src/gwion.y" { YYLIST_END(EnumValue, (yyval.enum_list), (yyvsp[-2].enum_list), (yyvsp[0].enum_value)) ;} -#line 3315 "src/parser.c" +#line 3284 "src/parser.c" break; case 110: /* enum_def: "enum" flag "" "{" enum_list opt_comma "}" */ @@ -3320,19 +3289,19 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] (yyval.enum_def) = new_enum_def(mpool(arg), (yyvsp[-2].enum_list), (yyvsp[-4].sym), (yyloc)); (yyval.enum_def)->flag = (yyvsp[-5].flag); } -#line 3324 "src/parser.c" +#line 3293 "src/parser.c" break; case 111: /* when_exp: "when" exp */ #line 494 "src/gwion.y" { (yyval.exp) = (yyvsp[0].exp); } -#line 3330 "src/parser.c" +#line 3299 "src/parser.c" break; case 112: /* when_exp: %empty */ #line 494 "src/gwion.y" { (yyval.exp) = NULL; } -#line 3336 "src/parser.c" +#line 3305 "src/parser.c" break; case 113: /* match_case_stmt: "case" exp when_exp ":" stmt_list */ @@ -3345,19 +3314,19 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] .list = (yyvsp[0].stmt_list) }); } -#line 3349 "src/parser.c" +#line 3318 "src/parser.c" break; case 114: /* match_list: match_case_stmt */ #line 506 "src/gwion.y" { YYLIST_INI(Stmt, (yyval.stmt_list), (yyvsp[0].stmt)); } -#line 3355 "src/parser.c" +#line 3324 "src/parser.c" break; case 115: /* match_list: match_list match_case_stmt */ #line 507 "src/gwion.y" { YYLIST_END(Stmt, (yyval.stmt_list), (yyvsp[-1].stmt_list), (yyvsp[0].stmt)); } -#line 3361 "src/parser.c" +#line 3330 "src/parser.c" break; case 116: /* match_stmt: "match" exp "{" match_list "}" "where" stmt */ @@ -3370,7 +3339,7 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] .where = cpy_stmt3(mpool(arg), &(yyvsp[0].stmt)) }); } -#line 3374 "src/parser.c" +#line 3343 "src/parser.c" break; case 117: /* match_stmt: "match" exp "{" match_list "}" */ @@ -3382,19 +3351,19 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] .list = (yyvsp[-1].stmt_list), }); } -#line 3386 "src/parser.c" +#line 3355 "src/parser.c" break; case 118: /* flow: "while" */ #line 527 "src/gwion.y" { (yyval.stmt_t) = ae_stmt_while; } -#line 3392 "src/parser.c" +#line 3361 "src/parser.c" break; case 119: /* flow: "until" */ #line 528 "src/gwion.y" { (yyval.stmt_t) = ae_stmt_until; } -#line 3398 "src/parser.c" +#line 3367 "src/parser.c" break; case 120: /* loop_stmt: flow "(" exp ")" stmt */ @@ -3405,7 +3374,7 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] .body = cpy_stmt3(mpool(arg), &(yyvsp[0].stmt)) }); } -#line 3409 "src/parser.c" +#line 3378 "src/parser.c" break; case 121: /* loop_stmt: "do" stmt flow exp ";" */ @@ -3417,7 +3386,7 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] .is_do = true }); } -#line 3421 "src/parser.c" +#line 3390 "src/parser.c" break; case 122: /* loop_stmt: "for" "(" exp_stmt exp_stmt ")" stmt */ @@ -3429,7 +3398,7 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] .body = cpy_stmt3(mpool(arg), &(yyvsp[0].stmt)), }); } -#line 3433 "src/parser.c" +#line 3402 "src/parser.c" break; case 123: /* loop_stmt: "for" "(" exp_stmt exp_stmt exp ")" stmt */ @@ -3442,7 +3411,7 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] .body = cpy_stmt3(mpool(arg), &(yyvsp[0].stmt)), }); } -#line 3446 "src/parser.c" +#line 3415 "src/parser.c" break; case 124: /* loop_stmt: "foreach" "(" capture ":" binary_exp ")" stmt */ @@ -3455,7 +3424,7 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] .is_ref = (yyvsp[-4].capture).is_ref }); } -#line 3459 "src/parser.c" +#line 3428 "src/parser.c" break; case 125: /* loop_stmt: "foreach" "(" "" "," capture ":" binary_exp ")" stmt */ @@ -3469,7 +3438,7 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] .is_ref = (yyvsp[-4].capture).is_ref }); } -#line 3473 "src/parser.c" +#line 3442 "src/parser.c" break; case 126: /* loop_stmt: "repeat" "(" binary_exp ")" stmt */ @@ -3480,7 +3449,7 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] .body = cpy_stmt3(mpool(arg), &(yyvsp[0].stmt)) }); } -#line 3484 "src/parser.c" +#line 3453 "src/parser.c" break; case 127: /* loop_stmt: "repeat" "(" "" "," binary_exp ")" stmt */ @@ -3492,7 +3461,7 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] }); (yyval.stmt).d.stmt_loop.idx = (Var_Decl){ .tag = MK_TAG((yyvsp[-4].sym), (yylsp[-4])) }; } -#line 3496 "src/parser.c" +#line 3465 "src/parser.c" break; case 128: /* defer_stmt: "defer" stmt */ @@ -3507,7 +3476,7 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] (yyval.stmt) = MK_STMT(ae_stmt_defer, (yylsp[-1]), .stmt_defer = { .stmt = cpy_stmt3(mpool(arg), &(yyvsp[0].stmt)) }); } -#line 3511 "src/parser.c" +#line 3480 "src/parser.c" break; case 129: /* selection_stmt: "if" "(" exp ")" stmt */ @@ -3518,7 +3487,7 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] .if_body = cpy_stmt3(mpool(arg), &(yyvsp[0].stmt)) }); } -#line 3522 "src/parser.c" +#line 3491 "src/parser.c" break; case 130: /* selection_stmt: "if" "(" exp ")" stmt "else" stmt */ @@ -3530,71 +3499,65 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] .else_body = cpy_stmt3(mpool(arg), &(yyvsp[0].stmt)) }); } -#line 3534 "src/parser.c" +#line 3503 "src/parser.c" break; case 131: /* breaks: "break" */ #line 627 "src/gwion.y" { (yyval.stmt_t) = ae_stmt_break; } -#line 3540 "src/parser.c" +#line 3509 "src/parser.c" break; case 132: /* breaks: "continue" */ #line 627 "src/gwion.y" { (yyval.stmt_t) = ae_stmt_continue; } -#line 3546 "src/parser.c" +#line 3515 "src/parser.c" break; case 133: /* jump_stmt: "return" exp ";" */ #line 629 "src/gwion.y" { (yyval.stmt) = MK_STMT_RETURN((yylsp[-2]), (yyvsp[-1].exp)); } -#line 3552 "src/parser.c" +#line 3521 "src/parser.c" break; case 134: /* jump_stmt: "return" ";" */ #line 630 "src/gwion.y" { (yyval.stmt) = MK_STMT_RETURN((yylsp[-1]), NULL); } -#line 3558 "src/parser.c" +#line 3527 "src/parser.c" break; case 135: /* jump_stmt: breaks decimal ";" */ #line 631 "src/gwion.y" { (yyval.stmt) = MK_STMT((yyvsp[-2].stmt_t), (yylsp[-2]), .stmt_index = { .idx = (yyvsp[-1].gwint).num });} -#line 3564 "src/parser.c" +#line 3533 "src/parser.c" break; case 136: /* jump_stmt: breaks ";" */ #line 632 "src/gwion.y" { (yyval.stmt) = MK_STMT((yyvsp[-1].stmt_t), (yylsp[-1]), .stmt_index = { .idx = -1 });} -#line 3570 "src/parser.c" +#line 3539 "src/parser.c" break; case 137: /* exp_stmt: exp ";" */ #line 635 "src/gwion.y" { (yyval.stmt) = MK_STMT_EXP((yylsp[-1]), (yyvsp[-1].exp)); } -#line 3576 "src/parser.c" +#line 3545 "src/parser.c" break; case 138: /* exp_stmt: ";" */ #line 636 "src/gwion.y" { (yyval.stmt) = MK_STMT(ae_stmt_exp, (yylsp[0])); } -#line 3582 "src/parser.c" +#line 3551 "src/parser.c" break; case 139: /* exp: binary_exp */ #line 639 "src/gwion.y" { (yyval.exp) = (yyvsp[0].exp); } -#line 3588 "src/parser.c" - break; - - case 140: /* exp: "" "=" binary_exp */ -#line 640 "src/gwion.y" - { (yyval.exp) = (yyvsp[0].exp); } -#line 3594 "src/parser.c" +#line 3557 "src/parser.c" break; - case 141: /* exp: binary_exp "," exp */ -#line 642 "src/gwion.y" + case 140: /* exp: binary_exp "," exp */ +#line 641 "src/gwion.y" { if((yyvsp[-2].exp)->next) { parser_error(&(yylsp[0]), arg, "invalid format for expression", 0); @@ -3602,261 +3565,261 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] } (yyvsp[-2].exp)->next = (yyvsp[0].exp); } -#line 3606 "src/parser.c" +#line 3569 "src/parser.c" break; - case 143: /* binary_exp: binary_exp "@" decl_exp */ -#line 652 "src/gwion.y" + case 142: /* binary_exp: binary_exp "@" decl_exp */ +#line 651 "src/gwion.y" { (yyval.exp) = new_exp_binary(mpool(arg), (yyvsp[-2].exp), (yyvsp[-1].sym), (yyvsp[0].exp), (yylsp[-1])); } -#line 3612 "src/parser.c" +#line 3575 "src/parser.c" break; - case 144: /* binary_exp: binary_exp "" decl_exp */ -#line 653 "src/gwion.y" + case 143: /* binary_exp: binary_exp "" decl_exp */ +#line 652 "src/gwion.y" { (yyval.exp) = new_exp_binary(mpool(arg), (yyvsp[-2].exp), (yyvsp[-1].sym), (yyvsp[0].exp), (yylsp[-1])); } -#line 3618 "src/parser.c" +#line 3581 "src/parser.c" break; - case 145: /* binary_exp: binary_exp OPTIONS decl_exp */ -#line 654 "src/gwion.y" + case 144: /* binary_exp: binary_exp OPTIONS decl_exp */ +#line 653 "src/gwion.y" { (yyval.exp) = new_exp_binary(mpool(arg), (yyvsp[-2].exp), (yyvsp[-1].sym), (yyvsp[0].exp), (yylsp[-1])); } -#line 3624 "src/parser.c" +#line 3587 "src/parser.c" break; - case 146: /* call_template: ":[" tmplarg_list "]" */ -#line 656 "src/gwion.y" + case 145: /* call_template: ":[" tmplarg_list "]" */ +#line 655 "src/gwion.y" { (yyval.tmplarg_list) = (yyvsp[-1].tmplarg_list); } -#line 3630 "src/parser.c" +#line 3593 "src/parser.c" break; - case 147: /* call_template: %empty */ -#line 656 "src/gwion.y" + case 146: /* call_template: %empty */ +#line 655 "src/gwion.y" { (yyval.tmplarg_list) = NULL; } -#line 3636 "src/parser.c" +#line 3599 "src/parser.c" break; - case 153: /* array_exp: "[" exp "]" */ -#line 661 "src/gwion.y" + case 152: /* array_exp: "[" exp "]" */ +#line 660 "src/gwion.y" { (yyval.array_sub) = new_array_sub(mpool(arg), (yyvsp[-1].exp)); } -#line 3642 "src/parser.c" +#line 3605 "src/parser.c" break; - case 154: /* array_exp: "[" exp "]" array_exp */ -#line 662 "src/gwion.y" + case 153: /* array_exp: "[" exp "]" array_exp */ +#line 661 "src/gwion.y" { if((yyvsp[-2].exp)->next){ parser_error(&(yylsp[-2]), arg, "invalid format for array init [...][...]...", 0x0208); YYERROR; } (yyval.array_sub) = prepend_array_sub((yyvsp[0].array_sub), (yyvsp[-2].exp)); } -#line 3650 "src/parser.c" +#line 3613 "src/parser.c" break; - case 155: /* array_exp: "[" exp "]" "[" "]" */ -#line 665 "src/gwion.y" + case 154: /* array_exp: "[" exp "]" "[" "]" */ +#line 664 "src/gwion.y" { parser_error(&(yylsp[-2]), arg, "partially empty array init [...][]...", 0x0209); YYERROR; } -#line 3656 "src/parser.c" +#line 3619 "src/parser.c" break; - case 156: /* array_empty: "[" "]" */ -#line 669 "src/gwion.y" + case 155: /* array_empty: "[" "]" */ +#line 668 "src/gwion.y" { (yyval.array_sub) = new_array_sub(mpool(arg), NULL); } -#line 3662 "src/parser.c" +#line 3625 "src/parser.c" break; - case 157: /* array_empty: array_empty "[" "]" */ -#line 670 "src/gwion.y" + case 156: /* array_empty: array_empty "[" "]" */ +#line 669 "src/gwion.y" { (yyval.array_sub) = prepend_array_sub((yyvsp[-2].array_sub), NULL); } -#line 3668 "src/parser.c" +#line 3631 "src/parser.c" break; - case 158: /* array_empty: array_empty array_exp */ -#line 671 "src/gwion.y" + case 157: /* array_empty: array_empty array_exp */ +#line 670 "src/gwion.y" { parser_error(&(yylsp[-1]), arg, "partially empty array init [][...]", 0x0210); YYERROR; } -#line 3674 "src/parser.c" +#line 3637 "src/parser.c" break; - case 159: /* dict_list: binary_exp ":" binary_exp */ -#line 675 "src/gwion.y" + case 158: /* dict_list: binary_exp ":" binary_exp */ +#line 674 "src/gwion.y" { (yyvsp[-2].exp)->next = (yyvsp[0].exp); (yyval.exp) = (yyvsp[-2].exp); } -#line 3680 "src/parser.c" +#line 3643 "src/parser.c" break; - case 160: /* dict_list: dict_list "," binary_exp ":" binary_exp */ -#line 676 "src/gwion.y" + case 159: /* dict_list: dict_list "," binary_exp ":" binary_exp */ +#line 675 "src/gwion.y" { (yyvsp[-4].exp)->next->next = (yyvsp[-2].exp); (yyvsp[-2].exp)-> next = (yyvsp[0].exp); (yyval.exp) = (yyvsp[-4].exp); } -#line 3686 "src/parser.c" +#line 3649 "src/parser.c" break; - case 161: /* range: "[" exp ":" exp "]" */ -#line 679 "src/gwion.y" + case 160: /* range: "[" exp ":" exp "]" */ +#line 678 "src/gwion.y" { (yyval.range) = new_range(mpool(arg), (yyvsp[-3].exp), (yyvsp[-1].exp)); } -#line 3692 "src/parser.c" +#line 3655 "src/parser.c" break; - case 162: /* range: "[" exp ":" "]" */ -#line 680 "src/gwion.y" + case 161: /* range: "[" exp ":" "]" */ +#line 679 "src/gwion.y" { (yyval.range) = new_range(mpool(arg), (yyvsp[-2].exp), NULL); } -#line 3698 "src/parser.c" +#line 3661 "src/parser.c" break; - case 163: /* range: "[" ":" exp "]" */ -#line 681 "src/gwion.y" + case 162: /* range: "[" ":" exp "]" */ +#line 680 "src/gwion.y" { (yyval.range) = new_range(mpool(arg), NULL, (yyvsp[-1].exp)); } -#line 3704 "src/parser.c" +#line 3667 "src/parser.c" break; - case 167: /* decl_exp: type_decl_flag2 flag type_decl_array var_decl */ -#line 687 "src/gwion.y" + case 166: /* decl_exp: type_decl_flag2 flag type_decl_array var_decl */ +#line 686 "src/gwion.y" { (yyval.exp)= new_exp_decl(mpool(arg), (yyvsp[-1].type_decl), &(yyvsp[0].var_decl), (yyloc)); (yyval.exp)->d.exp_decl.var.td->flag |= (yyvsp[-3].flag) | (yyvsp[-2].flag); } -#line 3710 "src/parser.c" +#line 3673 "src/parser.c" break; - case 168: /* decl_exp: type_decl_flag2 flag type_decl_array call_paren var_decl */ -#line 688 "src/gwion.y" + case 167: /* decl_exp: type_decl_flag2 flag type_decl_array call_paren var_decl */ +#line 687 "src/gwion.y" { (yyval.exp) = new_exp_decl(mpool(arg), (yyvsp[-2].type_decl), &(yyvsp[0].var_decl), (yylsp[0])); (yyval.exp)->d.exp_decl.var.td->flag |= (yyvsp[-4].flag) | (yyvsp[-3].flag); (yyval.exp)->d.exp_decl.args = (yyvsp[-1].exp) ?: new_prim_nil(mpool(arg), (yylsp[-1])); } -#line 3720 "src/parser.c" +#line 3683 "src/parser.c" break; - case 169: /* func_args: "(" arg_list ")" */ -#line 694 "src/gwion.y" + case 168: /* func_args: "(" arg_list ")" */ +#line 693 "src/gwion.y" { (yyval.default_args) = (yyvsp[-1].default_args); } -#line 3726 "src/parser.c" +#line 3689 "src/parser.c" break; - case 170: /* func_args: "(" ")" */ -#line 694 "src/gwion.y" + case 169: /* func_args: "(" ")" */ +#line 693 "src/gwion.y" { (yyval.default_args) = (struct ParserArg){}; } -#line 3732 "src/parser.c" +#line 3695 "src/parser.c" break; - case 171: /* fptr_args: "(" fptr_list ")" */ -#line 695 "src/gwion.y" + case 170: /* fptr_args: "(" fptr_list ")" */ +#line 694 "src/gwion.y" { (yyval.arg_list) = (yyvsp[-1].arg_list); } -#line 3738 "src/parser.c" +#line 3701 "src/parser.c" break; - case 172: /* fptr_args: "(" ")" */ -#line 695 "src/gwion.y" + case 171: /* fptr_args: "(" ")" */ +#line 694 "src/gwion.y" { (yyval.arg_list) = NULL; } -#line 3744 "src/parser.c" +#line 3707 "src/parser.c" break; - case 173: /* decl_template: ":[" specialized_list "]" */ -#line 698 "src/gwion.y" + case 172: /* decl_template: ":[" specialized_list "]" */ +#line 697 "src/gwion.y" { (yyval.specialized_list) = (yyvsp[-1].specialized_list); } -#line 3750 "src/parser.c" +#line 3713 "src/parser.c" break; - case 174: /* decl_template: ":[" specialized_list "..." "]" */ -#line 699 "src/gwion.y" + case 173: /* decl_template: ":[" specialized_list "..." "]" */ +#line 698 "src/gwion.y" { Specialized spec = { .tag = MK_TAG(insert_symbol("..."), (yylsp[-1])) }; YYLIST_END(Specialized, (yyval.specialized_list), (yyvsp[-2].specialized_list), spec); } -#line 3759 "src/parser.c" +#line 3722 "src/parser.c" break; - case 175: /* decl_template: ":[" "..." "]" */ -#line 703 "src/gwion.y" + case 174: /* decl_template: ":[" "..." "]" */ +#line 702 "src/gwion.y" { Specialized spec = { .tag = MK_TAG(insert_symbol("..."), (yylsp[-1])) }; YYLIST_INI(Specialized, (yyval.specialized_list), spec); } -#line 3768 "src/parser.c" +#line 3731 "src/parser.c" break; - case 176: /* decl_template: %empty */ -#line 707 "src/gwion.y" + case 175: /* decl_template: %empty */ +#line 706 "src/gwion.y" { (yyval.specialized_list) = NULL; } -#line 3774 "src/parser.c" +#line 3737 "src/parser.c" break; - case 177: /* global: "global" */ -#line 709 "src/gwion.y" + case 176: /* global: "global" */ +#line 708 "src/gwion.y" { (yyval.flag) = ae_flag_global; /*arg->global = true;*/ } -#line 3780 "src/parser.c" +#line 3743 "src/parser.c" break; - case 179: /* opt_global: %empty */ -#line 710 "src/gwion.y" + case 178: /* opt_global: %empty */ +#line 709 "src/gwion.y" { (yyval.flag) = ae_flag_none; } -#line 3786 "src/parser.c" +#line 3749 "src/parser.c" break; - case 180: /* storage_flag: "static" */ -#line 712 "src/gwion.y" + case 179: /* storage_flag: "static" */ +#line 711 "src/gwion.y" { (yyval.flag) = ae_flag_static; } -#line 3792 "src/parser.c" +#line 3755 "src/parser.c" break; - case 182: /* access_flag: "private" */ -#line 714 "src/gwion.y" + case 181: /* access_flag: "private" */ +#line 713 "src/gwion.y" { (yyval.flag) = ae_flag_private; } -#line 3798 "src/parser.c" +#line 3761 "src/parser.c" break; - case 183: /* access_flag: "protect" */ -#line 715 "src/gwion.y" + case 182: /* access_flag: "protect" */ +#line 714 "src/gwion.y" { (yyval.flag) = ae_flag_protect; } -#line 3804 "src/parser.c" +#line 3767 "src/parser.c" break; - case 184: /* flag: access_flag */ -#line 718 "src/gwion.y" + case 183: /* flag: access_flag */ +#line 717 "src/gwion.y" { (yyval.flag) = (yyvsp[0].flag); } -#line 3810 "src/parser.c" +#line 3773 "src/parser.c" break; - case 185: /* flag: storage_flag */ -#line 719 "src/gwion.y" + case 184: /* flag: storage_flag */ +#line 718 "src/gwion.y" { (yyval.flag) = (yyvsp[0].flag); } -#line 3816 "src/parser.c" +#line 3779 "src/parser.c" break; - case 186: /* flag: access_flag storage_flag */ -#line 720 "src/gwion.y" + case 185: /* flag: access_flag storage_flag */ +#line 719 "src/gwion.y" { (yyval.flag) = (yyvsp[-1].flag) | (yyvsp[0].flag); } -#line 3822 "src/parser.c" +#line 3785 "src/parser.c" break; - case 187: /* flag: %empty */ -#line 721 "src/gwion.y" + case 186: /* flag: %empty */ +#line 720 "src/gwion.y" { (yyval.flag) = ae_flag_none; } -#line 3828 "src/parser.c" +#line 3791 "src/parser.c" break; - case 188: /* final: "final" */ -#line 724 "src/gwion.y" + case 187: /* final: "final" */ +#line 723 "src/gwion.y" { (yyval.flag) = ae_flag_final; } -#line 3834 "src/parser.c" +#line 3797 "src/parser.c" break; - case 189: /* final: %empty */ -#line 724 "src/gwion.y" + case 188: /* final: %empty */ +#line 723 "src/gwion.y" { (yyval.flag) = ae_flag_none; } -#line 3840 "src/parser.c" +#line 3803 "src/parser.c" break; - case 190: /* modifier: "abstract" final */ -#line 726 "src/gwion.y" + case 189: /* modifier: "abstract" final */ +#line 725 "src/gwion.y" { (yyval.flag) = ae_flag_abstract | (yyvsp[0].flag); } -#line 3846 "src/parser.c" +#line 3809 "src/parser.c" break; - case 192: /* func_def_base: "fun" func_base func_args code_list */ -#line 729 "src/gwion.y" + case 191: /* func_def_base: "fun" func_base func_args code_list */ +#line 728 "src/gwion.y" { (yyvsp[-2].func_base)->args = (yyvsp[-1].default_args).args; (yyvsp[-2].func_base)->fbflag |= (yyvsp[-1].default_args).flag; (yyval.func_def) = new_func_def(mpool(arg), (yyvsp[-2].func_base), (yyvsp[0].stmt_list)); } -#line 3856 "src/parser.c" +#line 3819 "src/parser.c" break; - case 193: /* func_def_base: "fun" func_base func_args ";" */ -#line 734 "src/gwion.y" + case 192: /* func_def_base: "fun" func_base func_args ";" */ +#line 733 "src/gwion.y" { if((yyvsp[-1].default_args).flag == fbflag_default) { parser_error(&(yylsp[-2]), arg, "default arguments not allowed in abstract operators", 0210); YYERROR; }; @@ -3864,33 +3827,33 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] SET_FLAG((yyvsp[-2].func_base), abstract); (yyval.func_def) = new_func_def(mpool(arg), (yyvsp[-2].func_base), NULL); } -#line 3868 "src/parser.c" +#line 3831 "src/parser.c" break; - case 194: /* func_def_base: LOCALE global "" "(" locale_list ")" code_list */ -#line 741 "src/gwion.y" + case 193: /* func_def_base: LOCALE global "" "(" locale_list ")" code_list */ +#line 740 "src/gwion.y" { Type_Decl *td = new_type_decl(mpool(arg), insert_symbol("float"), (yylsp[-4])); Func_Base *base = new_func_base(mpool(arg), td, (yyvsp[-4].sym), (yyvsp[-2].default_args).args, (yyvsp[-5].flag), (yylsp[-4])); base->fbflag |= fbflag_locale | (yyvsp[-2].default_args).flag; (yyval.func_def) = new_func_def(mpool(arg), base, (yyvsp[0].stmt_list)); } -#line 3879 "src/parser.c" +#line 3842 "src/parser.c" break; - case 195: /* func_def_base: LOCALE "" "(" locale_list ")" code_list */ -#line 747 "src/gwion.y" + case 194: /* func_def_base: LOCALE "" "(" locale_list ")" code_list */ +#line 746 "src/gwion.y" { Type_Decl *td = new_type_decl(mpool(arg), insert_symbol("float"), (yylsp[-4])); Func_Base *base = new_func_base(mpool(arg), td, (yyvsp[-4].sym), (yyvsp[-2].default_args).args, ae_flag_none, (yylsp[-4])); base->fbflag |= fbflag_locale | (yyvsp[-2].default_args).flag; (yyval.func_def) = new_func_def(mpool(arg), base, (yyvsp[0].stmt_list)); } -#line 3890 "src/parser.c" +#line 3853 "src/parser.c" break; - case 196: /* abstract_fdef: "fun" flag "abstract" type_decl_empty "" decl_template fptr_args ";" */ -#line 756 "src/gwion.y" + case 195: /* abstract_fdef: "fun" flag "abstract" type_decl_empty "" decl_template fptr_args ";" */ +#line 755 "src/gwion.y" { Func_Base *base = new_func_base(mpool(arg), (yyvsp[-4].type_decl), (yyvsp[-3].sym), NULL, (yyvsp[-6].flag) | ae_flag_abstract, (yylsp[-3])); if((yyvsp[-2].specialized_list)) @@ -3898,11 +3861,11 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] base->args = (yyvsp[-1].arg_list); (yyval.func_def) = new_func_def(mpool(arg), base, NULL); } -#line 3902 "src/parser.c" +#line 3865 "src/parser.c" break; - case 202: /* op_base: type_decl_empty op_op decl_template "(" arg "," arg ")" */ -#line 767 "src/gwion.y" + case 201: /* op_base: type_decl_empty op_op decl_template "(" arg "," arg ")" */ +#line 766 "src/gwion.y" { if((yyvsp[-3].default_args).flag == fbflag_default || (yyvsp[-1].default_args).flag == fbflag_default) { parser_error(&(yylsp[-6]), arg, "default arguments not allowed in binary operators", 0210); YYERROR; }; @@ -3912,11 +3875,11 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] (yyval.func_base) = new_func_base(mpool(arg), (yyvsp[-7].type_decl), (yyvsp[-6].sym), args, ae_flag_none, (yylsp[-6])); if((yyvsp[-5].specialized_list))(yyval.func_base)->tmpl = new_tmpl(mpool(arg), (yyvsp[-5].specialized_list)); } -#line 3916 "src/parser.c" +#line 3879 "src/parser.c" break; - case 203: /* op_base: type_decl_empty post_op decl_template "(" arg ")" */ -#line 777 "src/gwion.y" + case 202: /* op_base: type_decl_empty post_op decl_template "(" arg ")" */ +#line 776 "src/gwion.y" { if((yyvsp[-1].default_args).flag == fbflag_default) { parser_error(&(yylsp[-4]), arg, "default arguments not allowed in postfix operators", 0210); YYERROR; }; @@ -3925,11 +3888,11 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] (yyval.func_base) = new_func_base(mpool(arg), (yyvsp[-5].type_decl), (yyvsp[-4].sym), args, ae_flag_none, (yylsp[-4])); if((yyvsp[-3].specialized_list))(yyval.func_base)->tmpl = new_tmpl(mpool(arg), (yyvsp[-3].specialized_list)); } -#line 3929 "src/parser.c" +#line 3892 "src/parser.c" break; - case 204: /* op_base: unary_op type_decl_empty decl_template "(" arg ")" */ -#line 786 "src/gwion.y" + case 203: /* op_base: unary_op type_decl_empty decl_template "(" arg ")" */ +#line 785 "src/gwion.y" { if((yyvsp[-1].default_args).flag == fbflag_default) { parser_error(&(yylsp[-4]), arg, "default arguments not allowed in unary operators", 0210); YYERROR; }; @@ -3939,88 +3902,88 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] (yyval.func_base)->fbflag |= fbflag_unary; if((yyvsp[-3].specialized_list))(yyval.func_base)->tmpl = new_tmpl(mpool(arg), (yyvsp[-3].specialized_list)); } -#line 3943 "src/parser.c" +#line 3906 "src/parser.c" break; - case 205: /* op_base: type_decl_empty OPID_A func_args */ -#line 796 "src/gwion.y" + case 204: /* op_base: type_decl_empty OPID_A func_args */ +#line 795 "src/gwion.y" { (yyval.func_base) = new_func_base(mpool(arg), (yyvsp[-2].type_decl), (yyvsp[-1].sym), (yyvsp[0].default_args).args, ae_flag_none, (yylsp[-1])); (yyval.func_base)->fbflag |= fbflag_internal; } -#line 3952 "src/parser.c" +#line 3915 "src/parser.c" break; - case 206: /* operator: "operator" */ -#line 801 "src/gwion.y" + case 205: /* operator: "operator" */ +#line 800 "src/gwion.y" { (yyval.flag) = ae_flag_none; } -#line 3958 "src/parser.c" +#line 3921 "src/parser.c" break; - case 207: /* operator: "operator" global */ -#line 801 "src/gwion.y" + case 206: /* operator: "operator" global */ +#line 800 "src/gwion.y" { (yyval.flag) = (yyvsp[0].flag); } -#line 3964 "src/parser.c" +#line 3927 "src/parser.c" break; - case 208: /* op_def: operator op_base code_list */ -#line 804 "src/gwion.y" + case 207: /* op_def: operator op_base code_list */ +#line 803 "src/gwion.y" { (yyval.func_def) = new_func_def(mpool(arg), (yyvsp[-1].func_base), (yyvsp[0].stmt_list)); (yyvsp[-1].func_base)->fbflag |= fbflag_op; (yyvsp[-1].func_base)->flag |= (yyvsp[-2].flag); } -#line 3970 "src/parser.c" +#line 3933 "src/parser.c" break; - case 209: /* op_def: operator op_base ";" */ -#line 806 "src/gwion.y" + case 208: /* op_def: operator op_base ";" */ +#line 805 "src/gwion.y" { (yyval.func_def) = new_func_def(mpool(arg), (yyvsp[-1].func_base), NULL); (yyvsp[-1].func_base)->fbflag |= fbflag_op; (yyvsp[-1].func_base)->flag |= (yyvsp[-2].flag) | ae_flag_abstract; } -#line 3976 "src/parser.c" +#line 3939 "src/parser.c" break; - case 210: /* op_def: operator "abstract" op_base ";" */ -#line 808 "src/gwion.y" + case 209: /* op_def: operator "abstract" op_base ";" */ +#line 807 "src/gwion.y" { (yyval.func_def) = new_func_def(mpool(arg), (yyvsp[-1].func_base), NULL); (yyvsp[-1].func_base)->fbflag |= fbflag_op; (yyvsp[-1].func_base)->flag |= (yyvsp[-3].flag) | ae_flag_abstract; } -#line 3982 "src/parser.c" +#line 3945 "src/parser.c" break; - case 214: /* func_def: operator "new" func_args code_list */ -#line 812 "src/gwion.y" + case 213: /* func_def: operator "new" func_args code_list */ +#line 811 "src/gwion.y" { Func_Base *const base = new_func_base(mpool(arg), NULL, (yyvsp[-2].sym), (yyvsp[-1].default_args).args, (yyvsp[-3].flag), (yylsp[-2])); base->fbflag = (yyvsp[-1].default_args).flag; (yyval.func_def) = new_func_def(mpool(arg), base, (yyvsp[0].stmt_list)); } -#line 3992 "src/parser.c" +#line 3955 "src/parser.c" break; - case 215: /* func_def: operator "new" func_args ";" */ -#line 818 "src/gwion.y" + case 214: /* func_def: operator "new" func_args ";" */ +#line 817 "src/gwion.y" { if((yyvsp[-1].default_args).flag == fbflag_default) { parser_error(&(yylsp[-2]), arg, "default arguments not allowed in abstract operators", 0210); YYERROR; }; Func_Base *const base = new_func_base(mpool(arg), NULL, (yyvsp[-2].sym), (yyvsp[-1].default_args).args, (yyvsp[-3].flag) | ae_flag_abstract, (yylsp[-2])); (yyval.func_def) = new_func_def(mpool(arg), base, NULL); } -#line 4003 "src/parser.c" +#line 3966 "src/parser.c" break; - case 216: /* func_def: operator "abstract" "new" func_args ";" */ -#line 825 "src/gwion.y" + case 215: /* func_def: operator "abstract" "new" func_args ";" */ +#line 824 "src/gwion.y" { if((yyvsp[-1].default_args).flag == fbflag_default) { parser_error(&(yylsp[-3]), arg, "default arguments not allowed in abstract operators", 0210); YYERROR; }; Func_Base *const base = new_func_base(mpool(arg), NULL, (yyvsp[-2].sym), (yyvsp[-1].default_args).args, (yyvsp[-4].flag) | ae_flag_abstract, (yylsp[-2])); (yyval.func_def) =new_func_def(mpool(arg), base, NULL); } -#line 4014 "src/parser.c" +#line 3977 "src/parser.c" break; - case 217: /* type_decl_base: "" */ -#line 833 "src/gwion.y" + case 216: /* type_decl_base: "" */ +#line 832 "src/gwion.y" { (yyval.type_decl) = new_type_decl(mpool(arg), (yyvsp[0].sym), (yyloc)); } -#line 4020 "src/parser.c" +#line 3983 "src/parser.c" break; - case 218: /* type_decl_base: "(" flag type_decl_empty decl_template fptr_args func_effects ")" */ -#line 834 "src/gwion.y" + case 217: /* type_decl_base: "(" flag type_decl_empty decl_template fptr_args func_effects ")" */ +#line 833 "src/gwion.y" { const Symbol name = sig_name(arg, (yylsp[-4]).first); (yyval.type_decl) = new_type_decl(mpool(arg), name, (yylsp[-6])); @@ -4032,104 +3995,104 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] fptr->base->effects.ptr = (yyvsp[-1].vector).ptr; (yyval.type_decl)->fptr = fptr; } -#line 4036 "src/parser.c" +#line 3999 "src/parser.c" break; - case 219: /* type_decl_tmpl: type_decl_base call_template */ -#line 848 "src/gwion.y" + case 218: /* type_decl_tmpl: type_decl_base call_template */ +#line 847 "src/gwion.y" { (yyval.type_decl) = (yyvsp[-1].type_decl); (yyval.type_decl)->types = (yyvsp[0].tmplarg_list); } -#line 4042 "src/parser.c" +#line 4005 "src/parser.c" break; - case 220: /* type_decl_tmpl: "&" type_decl_base call_template */ -#line 849 "src/gwion.y" + case 219: /* type_decl_tmpl: "&" type_decl_base call_template */ +#line 848 "src/gwion.y" { (yyval.type_decl) = (yyvsp[-1].type_decl); (yyval.type_decl)->ref = true; (yyval.type_decl)->types = (yyvsp[0].tmplarg_list); } -#line 4048 "src/parser.c" +#line 4011 "src/parser.c" break; - case 222: /* type_decl_noflag: type_decl_tmpl "." type_decl_noflag */ -#line 854 "src/gwion.y" + case 221: /* type_decl_noflag: type_decl_tmpl "." type_decl_noflag */ +#line 853 "src/gwion.y" { (yyvsp[-2].type_decl)->next = (yyvsp[0].type_decl); } -#line 4054 "src/parser.c" +#line 4017 "src/parser.c" break; - case 223: /* option: "?" */ -#line 857 "src/gwion.y" + case 222: /* option: "?" */ +#line 856 "src/gwion.y" { (yyval.uval) = 1; } -#line 4060 "src/parser.c" +#line 4023 "src/parser.c" break; - case 224: /* option: OPTIONS */ -#line 857 "src/gwion.y" + case 223: /* option: OPTIONS */ +#line 856 "src/gwion.y" { (yyval.uval) = strlen(s_name((yyvsp[0].sym))); } -#line 4066 "src/parser.c" +#line 4029 "src/parser.c" break; - case 225: /* option: %empty */ -#line 857 "src/gwion.y" + case 224: /* option: %empty */ +#line 856 "src/gwion.y" { (yyval.uval) = 0; } -#line 4072 "src/parser.c" +#line 4035 "src/parser.c" break; - case 226: /* type_decl_opt: type_decl_noflag option */ -#line 858 "src/gwion.y" + case 225: /* type_decl_opt: type_decl_noflag option */ +#line 857 "src/gwion.y" { (yyval.type_decl) = (yyvsp[-1].type_decl); (yyval.type_decl)->option = (yyvsp[0].uval); } -#line 4078 "src/parser.c" +#line 4041 "src/parser.c" break; - case 228: /* type_decl: type_decl_flag type_decl_opt */ -#line 859 "src/gwion.y" + case 227: /* type_decl: type_decl_flag type_decl_opt */ +#line 858 "src/gwion.y" { (yyval.type_decl) = (yyvsp[0].type_decl); (yyval.type_decl)->flag |= (yyvsp[-1].flag); } -#line 4084 "src/parser.c" +#line 4047 "src/parser.c" break; - case 229: /* type_decl_flag: "late" */ -#line 862 "src/gwion.y" + case 228: /* type_decl_flag: "late" */ +#line 861 "src/gwion.y" { (yyval.flag) = ae_flag_late; } -#line 4090 "src/parser.c" +#line 4053 "src/parser.c" break; - case 230: /* type_decl_flag: "const" */ -#line 863 "src/gwion.y" + case 229: /* type_decl_flag: "const" */ +#line 862 "src/gwion.y" { (yyval.flag) = ae_flag_const; } -#line 4096 "src/parser.c" +#line 4059 "src/parser.c" break; - case 231: /* type_decl_flag2: "var" */ -#line 865 "src/gwion.y" + case 230: /* type_decl_flag2: "var" */ +#line 864 "src/gwion.y" { (yyval.flag) = ae_flag_none; } -#line 4102 "src/parser.c" +#line 4065 "src/parser.c" break; - case 233: /* variable: "" ";" */ -#line 868 "src/gwion.y" + case 232: /* variable: "" ";" */ +#line 867 "src/gwion.y" { Type_Decl *td = new_type_decl(mpool(arg), insert_symbol("None"), (yylsp[-1])); (yyval.variable) = MK_VAR(td, (Var_Decl){ .tag = MK_TAG((yyvsp[-1].sym), (yylsp[-1]))}); } -#line 4111 "src/parser.c" +#line 4074 "src/parser.c" break; - case 234: /* variable: type_decl_empty "" ";" */ -#line 872 "src/gwion.y" + case 233: /* variable: type_decl_empty "" ";" */ +#line 871 "src/gwion.y" { (yyval.variable) = MK_VAR((yyvsp[-2].type_decl), (Var_Decl){ .tag = MK_TAG((yyvsp[-1].sym), (yylsp[-1]))});} -#line 4117 "src/parser.c" +#line 4080 "src/parser.c" break; - case 235: /* variable_list: variable */ -#line 874 "src/gwion.y" + case 234: /* variable_list: variable */ +#line 873 "src/gwion.y" { YYLIST_INI(Variable, (yyval.variable_list), (yyvsp[0].variable)); } -#line 4123 "src/parser.c" +#line 4086 "src/parser.c" break; - case 236: /* variable_list: variable_list variable */ -#line 875 "src/gwion.y" + case 235: /* variable_list: variable_list variable */ +#line 874 "src/gwion.y" { YYLIST_END(Variable, (yyval.variable_list), (yyvsp[-1].variable_list), (yyvsp[0].variable)); } -#line 4129 "src/parser.c" +#line 4092 "src/parser.c" break; - case 237: /* union_def: "union" flag "" decl_template "{" variable_list "}" */ -#line 878 "src/gwion.y" + case 236: /* union_def: "union" flag "" decl_template "{" variable_list "}" */ +#line 877 "src/gwion.y" { (yyval.union_def) = new_union_def(mpool(arg), (yyvsp[-1].variable_list), (yylsp[-4])); (yyval.union_def)->tag.sym = (yyvsp[-4].sym); // put tag in ctor @@ -4137,256 +4100,256 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] if((yyvsp[-3].specialized_list)) (yyval.union_def)->tmpl = new_tmpl(mpool(arg), (yyvsp[-3].specialized_list)); } -#line 4141 "src/parser.c" +#line 4104 "src/parser.c" break; - case 238: /* var_decl: "" */ -#line 887 "src/gwion.y" + case 237: /* var_decl: "" */ +#line 886 "src/gwion.y" { (yyval.var_decl) = (struct Var_Decl_) { .tag = MK_TAG((yyvsp[0].sym), (yylsp[0]))}; } -#line 4147 "src/parser.c" +#line 4110 "src/parser.c" break; - case 239: /* arg_decl: "" */ -#line 889 "src/gwion.y" + case 238: /* arg_decl: "" */ +#line 888 "src/gwion.y" { (yyval.var_decl) = (struct Var_Decl_) { .tag = MK_TAG((yyvsp[0].sym), (yylsp[0]))}; } -#line 4153 "src/parser.c" +#line 4116 "src/parser.c" break; - case 241: /* fptr_arg_decl: %empty */ -#line 890 "src/gwion.y" + case 240: /* fptr_arg_decl: %empty */ +#line 889 "src/gwion.y" { (yyval.var_decl) = (struct Var_Decl_){}; } -#line 4159 "src/parser.c" +#line 4122 "src/parser.c" break; - case 255: /* opt_exp: exp */ -#line 898 "src/gwion.y" + case 254: /* opt_exp: exp */ +#line 897 "src/gwion.y" { (yyval.exp) = (yyvsp[0].exp); } -#line 4165 "src/parser.c" +#line 4128 "src/parser.c" break; - case 256: /* opt_exp: %empty */ -#line 898 "src/gwion.y" + case 255: /* opt_exp: %empty */ +#line 897 "src/gwion.y" { (yyval.exp) = NULL; } -#line 4171 "src/parser.c" +#line 4134 "src/parser.c" break; - case 258: /* con_exp: log_or_exp "?" opt_exp ":" con_exp */ -#line 901 "src/gwion.y" + case 257: /* con_exp: log_or_exp "?" opt_exp ":" con_exp */ +#line 900 "src/gwion.y" { (yyval.exp) = new_exp_if(mpool(arg), (yyvsp[-4].exp), (yyvsp[-2].exp), (yyvsp[0].exp), (yyloc)); } -#line 4177 "src/parser.c" +#line 4140 "src/parser.c" break; - case 259: /* con_exp: log_or_exp "?:" con_exp */ -#line 903 "src/gwion.y" + case 258: /* con_exp: log_or_exp "?:" con_exp */ +#line 902 "src/gwion.y" { (yyval.exp) = new_exp_if(mpool(arg), (yyvsp[-2].exp), NULL, (yyvsp[0].exp), (yyloc)); } -#line 4183 "src/parser.c" +#line 4146 "src/parser.c" break; - case 261: /* log_or_exp: log_or_exp "||" log_and_exp */ + case 260: /* log_or_exp: log_or_exp "||" log_and_exp */ +#line 904 "src/gwion.y" + { (yyval.exp) = new_exp_binary(mpool(arg), (yyvsp[-2].exp), (yyvsp[-1].sym), (yyvsp[0].exp), (yyloc)); } +#line 4152 "src/parser.c" + break; + + case 262: /* log_and_exp: log_and_exp "&&" inc_or_exp */ #line 905 "src/gwion.y" { (yyval.exp) = new_exp_binary(mpool(arg), (yyvsp[-2].exp), (yyvsp[-1].sym), (yyvsp[0].exp), (yyloc)); } -#line 4189 "src/parser.c" +#line 4158 "src/parser.c" break; - case 263: /* log_and_exp: log_and_exp "&&" inc_or_exp */ + case 264: /* inc_or_exp: inc_or_exp "|" exc_or_exp */ #line 906 "src/gwion.y" { (yyval.exp) = new_exp_binary(mpool(arg), (yyvsp[-2].exp), (yyvsp[-1].sym), (yyvsp[0].exp), (yyloc)); } -#line 4195 "src/parser.c" +#line 4164 "src/parser.c" break; - case 265: /* inc_or_exp: inc_or_exp "|" exc_or_exp */ + case 266: /* exc_or_exp: exc_or_exp "^" and_exp */ #line 907 "src/gwion.y" { (yyval.exp) = new_exp_binary(mpool(arg), (yyvsp[-2].exp), (yyvsp[-1].sym), (yyvsp[0].exp), (yyloc)); } -#line 4201 "src/parser.c" +#line 4170 "src/parser.c" break; - case 267: /* exc_or_exp: exc_or_exp "^" and_exp */ + case 268: /* and_exp: and_exp "&" eq_exp */ #line 908 "src/gwion.y" { (yyval.exp) = new_exp_binary(mpool(arg), (yyvsp[-2].exp), (yyvsp[-1].sym), (yyvsp[0].exp), (yyloc)); } -#line 4207 "src/parser.c" +#line 4176 "src/parser.c" break; - case 269: /* and_exp: and_exp "&" eq_exp */ + case 270: /* eq_exp: eq_exp eq_op rel_exp */ #line 909 "src/gwion.y" { (yyval.exp) = new_exp_binary(mpool(arg), (yyvsp[-2].exp), (yyvsp[-1].sym), (yyvsp[0].exp), (yyloc)); } -#line 4213 "src/parser.c" +#line 4182 "src/parser.c" break; - case 271: /* eq_exp: eq_exp eq_op rel_exp */ + case 272: /* rel_exp: rel_exp rel_op shift_exp */ #line 910 "src/gwion.y" { (yyval.exp) = new_exp_binary(mpool(arg), (yyvsp[-2].exp), (yyvsp[-1].sym), (yyvsp[0].exp), (yyloc)); } -#line 4219 "src/parser.c" +#line 4188 "src/parser.c" break; - case 273: /* rel_exp: rel_exp rel_op shift_exp */ + case 274: /* shift_exp: shift_exp shift_op add_exp */ #line 911 "src/gwion.y" { (yyval.exp) = new_exp_binary(mpool(arg), (yyvsp[-2].exp), (yyvsp[-1].sym), (yyvsp[0].exp), (yyloc)); } -#line 4225 "src/parser.c" +#line 4194 "src/parser.c" break; - case 275: /* shift_exp: shift_exp shift_op add_exp */ + case 276: /* add_exp: add_exp add_op mul_exp */ #line 912 "src/gwion.y" { (yyval.exp) = new_exp_binary(mpool(arg), (yyvsp[-2].exp), (yyvsp[-1].sym), (yyvsp[0].exp), (yyloc)); } -#line 4231 "src/parser.c" +#line 4200 "src/parser.c" break; - case 277: /* add_exp: add_exp add_op mul_exp */ + case 278: /* mul_exp: mul_exp mul_op dur_exp */ #line 913 "src/gwion.y" { (yyval.exp) = new_exp_binary(mpool(arg), (yyvsp[-2].exp), (yyvsp[-1].sym), (yyvsp[0].exp), (yyloc)); } -#line 4237 "src/parser.c" +#line 4206 "src/parser.c" break; - case 279: /* mul_exp: mul_exp mul_op dur_exp */ + case 280: /* dur_exp: dur_exp "::" cast_exp */ #line 914 "src/gwion.y" { (yyval.exp) = new_exp_binary(mpool(arg), (yyvsp[-2].exp), (yyvsp[-1].sym), (yyvsp[0].exp), (yyloc)); } -#line 4243 "src/parser.c" - break; - - case 281: /* dur_exp: dur_exp "::" cast_exp */ -#line 915 "src/gwion.y" - { (yyval.exp) = new_exp_binary(mpool(arg), (yyvsp[-2].exp), (yyvsp[-1].sym), (yyvsp[0].exp), (yyloc)); } -#line 4249 "src/parser.c" +#line 4212 "src/parser.c" break; - case 283: /* cast_exp: cast_exp "$" type_decl_empty */ -#line 918 "src/gwion.y" + case 282: /* cast_exp: cast_exp "$" type_decl_empty */ +#line 917 "src/gwion.y" { (yyval.exp) = new_exp_cast(mpool(arg), (yyvsp[0].type_decl), (yyvsp[-2].exp), (yyloc)); } -#line 4255 "src/parser.c" +#line 4218 "src/parser.c" break; - case 290: /* unary_exp: unary_op unary_exp */ -#line 925 "src/gwion.y" + case 289: /* unary_exp: unary_op unary_exp */ +#line 924 "src/gwion.y" { (yyval.exp) = new_exp_unary(mpool(arg), (yyvsp[-1].sym), (yyvsp[0].exp), (yyloc)); } -#line 4261 "src/parser.c" +#line 4224 "src/parser.c" break; - case 291: /* unary_exp: "spork" unary_exp */ -#line 926 "src/gwion.y" + case 290: /* unary_exp: "spork" unary_exp */ +#line 925 "src/gwion.y" { (yyval.exp) = new_exp_unary(mpool(arg), (yyvsp[-1].sym), (yyvsp[0].exp), (yylsp[-1])); } -#line 4267 "src/parser.c" +#line 4230 "src/parser.c" break; - case 292: /* unary_exp: "fork" unary_exp */ -#line 927 "src/gwion.y" + case 291: /* unary_exp: "fork" unary_exp */ +#line 926 "src/gwion.y" { (yyval.exp) = new_exp_unary(mpool(arg), (yyvsp[-1].sym), (yyvsp[0].exp), (yylsp[-1])); } -#line 4273 "src/parser.c" +#line 4236 "src/parser.c" break; - case 293: /* unary_exp: "new" type_decl_exp call_paren */ -#line 928 "src/gwion.y" + case 292: /* unary_exp: "new" type_decl_exp call_paren */ +#line 927 "src/gwion.y" { (yyval.exp) = new_exp_unary2(mpool(arg), (yyvsp[-2].sym), (yyvsp[-1].type_decl), (yyvsp[0].exp) ?: new_prim_nil(mpool(arg), (yylsp[0])), (yyloc)); } -#line 4281 "src/parser.c" +#line 4244 "src/parser.c" break; - case 294: /* unary_exp: "new" type_decl_exp */ -#line 931 "src/gwion.y" + case 293: /* unary_exp: "new" type_decl_exp */ +#line 930 "src/gwion.y" {(yyval.exp) = new_exp_unary2(mpool(arg), (yyvsp[-1].sym), (yyvsp[0].type_decl), NULL, (yyloc)); } -#line 4287 "src/parser.c" +#line 4250 "src/parser.c" break; - case 295: /* unary_exp: "spork" code_list */ -#line 932 "src/gwion.y" + case 294: /* unary_exp: "spork" code_list */ +#line 931 "src/gwion.y" { (yyval.exp) = new_exp_unary3(mpool(arg), (yyvsp[-1].sym), (yyvsp[0].stmt_list), (yylsp[-1])); } -#line 4293 "src/parser.c" +#line 4256 "src/parser.c" break; - case 296: /* unary_exp: "fork" code_list */ -#line 933 "src/gwion.y" + case 295: /* unary_exp: "fork" code_list */ +#line 932 "src/gwion.y" { (yyval.exp) = new_exp_unary3(mpool(arg), (yyvsp[-1].sym), (yyvsp[0].stmt_list), (yylsp[-1])); } -#line 4299 "src/parser.c" +#line 4262 "src/parser.c" break; - case 297: /* unary_exp: "spork" captures code_list */ -#line 934 "src/gwion.y" + case 296: /* unary_exp: "spork" captures code_list */ +#line 933 "src/gwion.y" { (yyval.exp) = new_exp_unary3(mpool(arg), (yyvsp[-2].sym), (yyvsp[0].stmt_list), (yylsp[-2])); (yyval.exp)->d.exp_unary.captures = (yyvsp[-1].captures); } -#line 4305 "src/parser.c" +#line 4268 "src/parser.c" break; - case 298: /* unary_exp: "fork" captures code_list */ -#line 935 "src/gwion.y" + case 297: /* unary_exp: "fork" captures code_list */ +#line 934 "src/gwion.y" { (yyval.exp) = new_exp_unary3(mpool(arg), (yyvsp[-2].sym), (yyvsp[0].stmt_list), (yylsp[-2])); (yyval.exp)->d.exp_unary.captures = (yyvsp[-1].captures); } -#line 4311 "src/parser.c" +#line 4274 "src/parser.c" break; - case 299: /* unary_exp: "$" type_decl_empty */ -#line 936 "src/gwion.y" + case 298: /* unary_exp: "$" type_decl_empty */ +#line 935 "src/gwion.y" { (yyval.exp) = new_exp_td(mpool(arg), (yyvsp[0].type_decl), (yylsp[0])); } -#line 4317 "src/parser.c" +#line 4280 "src/parser.c" break; - case 300: /* lambda_list: "" */ -#line 939 "src/gwion.y" + case 299: /* lambda_list: "" */ +#line 938 "src/gwion.y" { Arg a = (Arg) { .var = MK_VAR(NULL, (Var_Decl){.tag = MK_TAG((yyvsp[0].sym), (yylsp[0]))})}; YYLIST_INI(Arg, (yyval.arg_list), a); } -#line 4325 "src/parser.c" +#line 4288 "src/parser.c" break; - case 301: /* lambda_list: lambda_list "" */ -#line 942 "src/gwion.y" + case 300: /* lambda_list: lambda_list "" */ +#line 941 "src/gwion.y" { Arg a = (Arg) { .var = MK_VAR(NULL, (Var_Decl){ .tag = MK_TAG((yyvsp[0].sym), (yylsp[0]))})}; YYLIST_END(Arg, (yyval.arg_list), (yyvsp[-1].arg_list), a); } -#line 4334 "src/parser.c" +#line 4297 "src/parser.c" break; - case 302: /* lambda_arg: "\\" lambda_list */ -#line 947 "src/gwion.y" + case 301: /* lambda_arg: "\\" lambda_list */ +#line 946 "src/gwion.y" { (yyval.arg_list) = (yyvsp[0].arg_list); } -#line 4340 "src/parser.c" +#line 4303 "src/parser.c" break; - case 303: /* lambda_arg: "\\" */ -#line 947 "src/gwion.y" + case 302: /* lambda_arg: "\\" */ +#line 946 "src/gwion.y" { (yyval.arg_list) = NULL; } -#line 4346 "src/parser.c" +#line 4309 "src/parser.c" break; - case 305: /* tmplarg: type_decl_empty */ -#line 950 "src/gwion.y" + case 304: /* tmplarg: type_decl_empty */ +#line 949 "src/gwion.y" { (yyval.tmplarg) = (TmplArg) { .d = { .td = (yyvsp[0].type_decl)}, .type = tmplarg_td}; } -#line 4354 "src/parser.c" +#line 4317 "src/parser.c" break; - case 306: /* tmplarg: tmplarg_exp */ -#line 953 "src/gwion.y" + case 305: /* tmplarg: tmplarg_exp */ +#line 952 "src/gwion.y" { (yyval.tmplarg) = (TmplArg) { .d = { .exp = (yyvsp[0].exp)}, .type = tmplarg_exp}; } -#line 4362 "src/parser.c" +#line 4325 "src/parser.c" break; - case 307: /* tmplarg_list: tmplarg */ -#line 957 "src/gwion.y" + case 306: /* tmplarg_list: tmplarg */ +#line 956 "src/gwion.y" { YYLIST_INI(TmplArg, (yyval.tmplarg_list), (yyvsp[0].tmplarg)); } -#line 4368 "src/parser.c" +#line 4331 "src/parser.c" break; - case 308: /* tmplarg_list: tmplarg_list "," tmplarg */ -#line 958 "src/gwion.y" + case 307: /* tmplarg_list: tmplarg_list "," tmplarg */ +#line 957 "src/gwion.y" { YYLIST_END(TmplArg, (yyval.tmplarg_list), (yyvsp[-2].tmplarg_list), (yyvsp[0].tmplarg)); } -#line 4374 "src/parser.c" +#line 4337 "src/parser.c" break; - case 309: /* call_paren: "(" exp ")" */ -#line 961 "src/gwion.y" + case 308: /* call_paren: "(" exp ")" */ +#line 960 "src/gwion.y" { (yyval.exp) = (yyvsp[-1].exp); } -#line 4380 "src/parser.c" +#line 4343 "src/parser.c" break; - case 310: /* call_paren: "(" ")" */ -#line 962 "src/gwion.y" + case 309: /* call_paren: "(" ")" */ +#line 961 "src/gwion.y" { (yyval.exp) = NULL; } -#line 4386 "src/parser.c" +#line 4349 "src/parser.c" break; - case 313: /* dot_exp: post_exp "." "" */ -#line 966 "src/gwion.y" + case 312: /* dot_exp: post_exp "." "" */ +#line 965 "src/gwion.y" { if((yyvsp[-2].exp)->next) { parser_error(&(yylsp[-2]), arg, "can't use multiple expressions" @@ -4395,66 +4358,66 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] }; (yyval.exp) = new_exp_dot(mpool(arg), (yyvsp[-2].exp), (yyvsp[0].sym), (yyloc)); } -#line 4399 "src/parser.c" +#line 4362 "src/parser.c" break; - case 315: /* post_exp: post_exp array_exp */ -#line 977 "src/gwion.y" + case 314: /* post_exp: post_exp array_exp */ +#line 976 "src/gwion.y" { (yyval.exp) = new_exp_array(mpool(arg), (yyvsp[-1].exp), (yyvsp[0].array_sub), (yyloc)); } -#line 4405 "src/parser.c" +#line 4368 "src/parser.c" break; - case 316: /* post_exp: post_exp range */ -#line 979 "src/gwion.y" + case 315: /* post_exp: post_exp range */ +#line 978 "src/gwion.y" { (yyval.exp) = new_exp_slice(mpool(arg), (yyvsp[-1].exp), (yyvsp[0].range), (yyloc)); } -#line 4411 "src/parser.c" +#line 4374 "src/parser.c" break; - case 317: /* post_exp: post_exp call_template call_paren */ -#line 981 "src/gwion.y" + case 316: /* post_exp: post_exp call_template call_paren */ +#line 980 "src/gwion.y" { (yyval.exp) = new_exp_call(mpool(arg), (yyvsp[-2].exp), (yyvsp[0].exp), (yyloc)); if((yyvsp[-1].tmplarg_list))(yyval.exp)->d.exp_call.tmpl = new_tmpl_call(mpool(arg), (yyvsp[-1].tmplarg_list)); } -#line 4418 "src/parser.c" +#line 4381 "src/parser.c" break; - case 318: /* post_exp: post_exp post_op */ -#line 984 "src/gwion.y" + case 317: /* post_exp: post_exp post_op */ +#line 983 "src/gwion.y" { (yyval.exp) = new_exp_post(mpool(arg), (yyvsp[-1].exp), (yyvsp[0].sym), (yyloc)); } -#line 4424 "src/parser.c" +#line 4387 "src/parser.c" break; - case 319: /* post_exp: dot_exp */ -#line 985 "src/gwion.y" + case 318: /* post_exp: dot_exp */ +#line 984 "src/gwion.y" { (yyval.exp) = (yyvsp[0].exp); } -#line 4430 "src/parser.c" +#line 4393 "src/parser.c" break; - case 320: /* interp_exp: "" */ -#line 989 "src/gwion.y" + case 319: /* interp_exp: "" */ +#line 988 "src/gwion.y" { (yyval.exp) = new_prim_string(mpool(arg), (yyvsp[0].string).data, (yyvsp[0].string).delim, (yyloc)); } -#line 4436 "src/parser.c" +#line 4399 "src/parser.c" break; - case 321: /* interp_exp: "" interp_exp */ -#line 990 "src/gwion.y" + case 320: /* interp_exp: "" interp_exp */ +#line 989 "src/gwion.y" { (yyval.exp) = new_prim_string(mpool(arg), (yyvsp[-1].string).data, (yyvsp[-1].string).delim, (yyloc)); (yyval.exp)->next = (yyvsp[0].exp); } -#line 4442 "src/parser.c" +#line 4405 "src/parser.c" break; - case 322: /* interp_exp: exp INTERP_EXP interp_exp */ -#line 991 "src/gwion.y" + case 321: /* interp_exp: exp INTERP_EXP interp_exp */ +#line 990 "src/gwion.y" { (yyval.exp) = (yyvsp[-2].exp); (yyval.exp)->next = (yyvsp[0].exp); } -#line 4448 "src/parser.c" +#line 4411 "src/parser.c" break; - case 323: /* interp: "${" interp_exp */ -#line 993 "src/gwion.y" + case 322: /* interp: "${" interp_exp */ +#line 992 "src/gwion.y" { (yyval.exp) = (yyvsp[0].exp); } -#line 4454 "src/parser.c" +#line 4417 "src/parser.c" break; - case 324: /* interp: interp "${" interp_exp */ -#line 994 "src/gwion.y" + case 323: /* interp: interp "${" interp_exp */ +#line 993 "src/gwion.y" { if(!(yyvsp[0].exp)->next) { char c[strlen((yyvsp[-2].exp)->d.prim.d.string.data) + strlen((yyvsp[0].exp)->d.prim.d.string.data) + 1]; @@ -4465,86 +4428,86 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] } else (yyvsp[-2].exp)->next = (yyvsp[0].exp); } -#line 4469 "src/parser.c" +#line 4432 "src/parser.c" break; - case 325: /* capture: "" */ -#line 1005 "src/gwion.y" + case 324: /* capture: "" */ +#line 1004 "src/gwion.y" { (yyval.capture) = (Capture){ .var = { .tag = MK_TAG((yyvsp[0].sym), (yylsp[0])) }};} -#line 4475 "src/parser.c" +#line 4438 "src/parser.c" break; - case 326: /* capture: "&" "" */ -#line 1005 "src/gwion.y" + case 325: /* capture: "&" "" */ +#line 1004 "src/gwion.y" { (yyval.capture) = (Capture){ .var = { .tag = MK_TAG((yyvsp[0].sym), (yylsp[0])) }, .is_ref = true }; } -#line 4481 "src/parser.c" +#line 4444 "src/parser.c" break; - case 327: /* capture_list: capture */ -#line 1007 "src/gwion.y" + case 326: /* capture_list: capture */ +#line 1006 "src/gwion.y" { YYLIST_INI(Capture, (yyval.captures), (yyvsp[0].capture)); } -#line 4487 "src/parser.c" +#line 4450 "src/parser.c" break; - case 328: /* capture_list: capture_list capture */ -#line 1008 "src/gwion.y" + case 327: /* capture_list: capture_list capture */ +#line 1007 "src/gwion.y" { YYLIST_END(Capture, (yyval.captures), (yyvsp[-1].captures), (yyvsp[0].capture)); } -#line 4493 "src/parser.c" +#line 4456 "src/parser.c" break; - case 329: /* captures: ":" capture_list ":" */ -#line 1009 "src/gwion.y" + case 328: /* captures: ":" capture_list ":" */ +#line 1008 "src/gwion.y" { (yyval.captures) = (yyvsp[-1].captures); } -#line 4499 "src/parser.c" +#line 4462 "src/parser.c" break; - case 330: /* captures: %empty */ -#line 1009 "src/gwion.y" + case 329: /* captures: %empty */ +#line 1008 "src/gwion.y" { (yyval.captures) = NULL; } -#line 4505 "src/parser.c" +#line 4468 "src/parser.c" break; - case 333: /* basic_exp: number */ -#line 1013 "src/gwion.y" + case 332: /* basic_exp: number */ +#line 1012 "src/gwion.y" { (yyval.exp) = new_prim_int( mpool(arg), (yyvsp[0].gwint).num, (yyloc)); (yyval.exp)->d.prim.d.gwint.int_type = (yyvsp[0].gwint).int_type; } -#line 4514 "src/parser.c" +#line 4477 "src/parser.c" break; - case 334: /* basic_exp: "" */ -#line 1017 "src/gwion.y" + case 333: /* basic_exp: "" */ +#line 1016 "src/gwion.y" { (yyval.exp) = new_prim_float( mpool(arg), (yyvsp[0].fval), (yyloc)); } -#line 4520 "src/parser.c" +#line 4483 "src/parser.c" break; - case 335: /* basic_exp: "" */ -#line 1018 "src/gwion.y" + case 334: /* basic_exp: "" */ +#line 1017 "src/gwion.y" { (yyval.exp) = new_prim_string( mpool(arg), (yyvsp[0].sval), 0, (yyloc)); } -#line 4526 "src/parser.c" +#line 4489 "src/parser.c" break; - case 336: /* basic_exp: "" */ -#line 1019 "src/gwion.y" + case 335: /* basic_exp: "" */ +#line 1018 "src/gwion.y" { (yyval.exp) = new_prim_char( mpool(arg), (yyvsp[0].sval), (yyloc)); } -#line 4532 "src/parser.c" +#line 4495 "src/parser.c" break; - case 337: /* prim_exp: "" */ -#line 1022 "src/gwion.y" + case 336: /* prim_exp: "" */ +#line 1021 "src/gwion.y" { (yyval.exp) = new_prim_id( mpool(arg), (yyvsp[0].sym), (yyloc)); } -#line 4538 "src/parser.c" +#line 4501 "src/parser.c" break; - case 339: /* prim_exp: interp */ -#line 1024 "src/gwion.y" + case 338: /* prim_exp: interp */ +#line 1023 "src/gwion.y" { (yyval.exp) = !(yyvsp[0].exp)->next ? (yyvsp[0].exp) : new_prim_interp(mpool(arg), (yyvsp[0].exp), (yyloc)); } -#line 4544 "src/parser.c" +#line 4507 "src/parser.c" break; - case 340: /* prim_exp: "[" opt_exp array_lit_ed */ -#line 1025 "src/gwion.y" + case 339: /* prim_exp: "[" opt_exp array_lit_ed */ +#line 1024 "src/gwion.y" { if(!(yyvsp[-1].exp)) { parser_error(&(yylsp[-2]), arg, "must provide values/expressions for array [...]", 0); @@ -4553,76 +4516,76 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] Array_Sub array = new_array_sub(mpool(arg), (yyvsp[-1].exp)); (yyval.exp) = new_prim_array( mpool(arg), array, (yyloc)); } -#line 4557 "src/parser.c" +#line 4520 "src/parser.c" break; - case 341: /* prim_exp: "{" dict_list "}" */ -#line 1033 "src/gwion.y" + case 340: /* prim_exp: "{" dict_list "}" */ +#line 1032 "src/gwion.y" { (yyval.exp) = new_prim_dict( mpool(arg), (yyvsp[-1].exp), (yyloc)); } -#line 4563 "src/parser.c" +#line 4526 "src/parser.c" break; - case 342: /* prim_exp: range */ -#line 1034 "src/gwion.y" + case 341: /* prim_exp: range */ +#line 1033 "src/gwion.y" { (yyval.exp) = new_prim_range( mpool(arg), (yyvsp[0].range), (yyloc)); } -#line 4569 "src/parser.c" +#line 4532 "src/parser.c" break; - case 343: /* prim_exp: "<<<" exp ">>>" */ -#line 1035 "src/gwion.y" + case 342: /* prim_exp: "<<<" exp ">>>" */ +#line 1034 "src/gwion.y" { (yyval.exp) = new_prim_hack( mpool(arg), (yyvsp[-1].exp), (yyloc)); } -#line 4575 "src/parser.c" +#line 4538 "src/parser.c" break; - case 344: /* prim_exp: "(" exp ")" */ -#line 1036 "src/gwion.y" + case 343: /* prim_exp: "(" exp ")" */ +#line 1035 "src/gwion.y" { (yyval.exp) = (yyvsp[-1].exp); if(!(yyvsp[-1].exp)->next) (yyval.exp)->paren = true; } -#line 4581 "src/parser.c" +#line 4544 "src/parser.c" break; - case 345: /* prim_exp: "`foo`" */ -#line 1037 "src/gwion.y" + case 344: /* prim_exp: "`foo`" */ +#line 1036 "src/gwion.y" { const loc_t loc = { .first = { .line = (yylsp[0]).first.line, .column = (yylsp[0]).first.column - 1}, .last = { .line = (yylsp[0]).last.line, .column = (yylsp[0]).last.column - 1}}; (yyval.exp) = new_prim_id(mpool(arg), (yyvsp[0].sym), loc); (yyval.exp)->d.prim.prim_type = ae_prim_locale; } -#line 4592 "src/parser.c" +#line 4555 "src/parser.c" break; - case 346: /* prim_exp: lambda_arg captures code_list */ -#line 1043 "src/gwion.y" + case 345: /* prim_exp: lambda_arg captures code_list */ +#line 1042 "src/gwion.y" { (yyval.exp) = new_exp_lambda( mpool(arg), lambda_name(arg, (yylsp[-2]).first), (yyvsp[-2].arg_list), (yyvsp[0].stmt_list), (yylsp[-2])); (yyval.exp)->d.exp_lambda.def->captures = (yyvsp[-1].captures);} -#line 4598 "src/parser.c" +#line 4561 "src/parser.c" break; - case 347: /* prim_exp: lambda_arg captures "{" binary_exp "}" */ -#line 1044 "src/gwion.y" + case 346: /* prim_exp: lambda_arg captures "{" binary_exp "}" */ +#line 1043 "src/gwion.y" { (yyval.exp) = new_exp_lambda2( mpool(arg), lambda_name(arg, (yylsp[-4]).first), (yyvsp[-4].arg_list), (yyvsp[-1].exp), (yylsp[-4])); (yyval.exp)->d.exp_lambda.def->captures = (yyvsp[-3].captures);} -#line 4604 "src/parser.c" +#line 4567 "src/parser.c" break; - case 348: /* prim_exp: "(" op_op ")" */ -#line 1045 "src/gwion.y" + case 347: /* prim_exp: "(" op_op ")" */ +#line 1044 "src/gwion.y" { (yyval.exp) = new_prim_id( mpool(arg), (yyvsp[-1].sym), (yyloc)); (yyval.exp)->paren = true; } -#line 4610 "src/parser.c" +#line 4573 "src/parser.c" break; - case 349: /* prim_exp: "perform" opt_id */ -#line 1046 "src/gwion.y" + case 348: /* prim_exp: "perform" opt_id */ +#line 1045 "src/gwion.y" { (yyval.exp) = new_prim_perform(mpool(arg), (yyvsp[0].sym), (yylsp[0])); } -#line 4616 "src/parser.c" +#line 4579 "src/parser.c" break; - case 350: /* prim_exp: "(" ")" */ -#line 1047 "src/gwion.y" + case 349: /* prim_exp: "(" ")" */ +#line 1046 "src/gwion.y" { (yyval.exp) = new_prim_nil( mpool(arg), (yyloc)); } -#line 4622 "src/parser.c" +#line 4585 "src/parser.c" break; -#line 4626 "src/parser.c" +#line 4589 "src/parser.c" default: break; } @@ -4851,7 +4814,7 @@ mp_vector_add(mpool(arg), &(yyvsp[-1].handler_list).handlers, Handler, (yyvsp[0] return yyresult; } -#line 1049 "src/gwion.y" +#line 1048 "src/gwion.y" #undef scan #undef insert_symbol