From bb261ad231c3683a36d516c4caf9b2a06ce0145f Mon Sep 17 00:00:00 2001 From: Kimplul Date: Sat, 25 Mar 2023 22:35:40 +0200 Subject: slightly refactor ast --- src/gen_parser.c | 2206 +++++++++++++++++++++++++++--------------------------- 1 file changed, 1101 insertions(+), 1105 deletions(-) (limited to 'src/gen_parser.c') diff --git a/src/gen_parser.c b/src/gen_parser.c index ac53567..caf845e 100644 --- a/src/gen_parser.c +++ b/src/gen_parser.c @@ -583,16 +583,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 57 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1987 +#define YYLAST 1993 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 81 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 63 /* YYNRULES -- Number of rules. */ -#define YYNRULES 216 +#define YYNRULES 215 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 434 +#define YYNSTATES 432 /* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 335 @@ -655,22 +655,22 @@ static const yytype_int16 yyrline[] = 189, 192, 195, 196, 197, 198, 199, 200, 203, 204, 205, 206, 207, 210, 211, 212, 215, 216, 219, 221, 222, 223, 224, 228, 229, 232, 236, 237, 238, 239, - 240, 241, 242, 243, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 261, 264, 270, 272, - 273, 274, 275, 276, 278, 279, 280, 281, 282, 283, + 240, 241, 242, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 260, 263, 269, 271, 272, + 273, 274, 275, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 311, 312, 315, 316, 319, 320, 323, 327, - 334, 340, 341, 344, 345, 351, 352, 355, 358, 359, - 360, 361, 364, 365, 369, 370, 373, 374, 375, 378, - 381, 384, 385, 388, 391, 398, 402, 407, 415, 417, - 421, 424, 426, 428, 430, 434, 435, 442, 443, 447, - 450, 454, 458, 462, 467, 471, 472, 475, 476, 480, - 486, 490, 496, 499, 502, 503, 506, 509, 514, 515, - 516, 519, 522, 529, 530, 531, 532, 535, 536, 539, - 540, 543, 548, 551, 557, 558, 561, 562, 563, 566, - 567, 573, 577, 581, 589, 590, 591, 592, 593, 594, + 294, 310, 311, 314, 315, 318, 319, 322, 326, 333, + 339, 340, 343, 344, 350, 351, 354, 357, 358, 359, + 360, 363, 364, 368, 369, 372, 373, 374, 377, 380, + 383, 384, 387, 390, 397, 401, 406, 414, 416, 420, + 423, 425, 427, 429, 433, 434, 441, 442, 446, 449, + 453, 457, 461, 466, 470, 471, 474, 475, 479, 485, + 489, 495, 498, 501, 502, 505, 508, 513, 514, 515, + 518, 521, 528, 529, 530, 531, 534, 535, 538, 539, + 542, 547, 550, 556, 557, 560, 561, 562, 565, 566, + 572, 576, 580, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 622, 623, 626, 627 + 605, 606, 621, 622, 625, 626 }; #endif @@ -719,12 +719,12 @@ yysymbol_name (yysymbol_kind_t yysymbol) } #endif -#define YYPACT_NINF (-255) +#define YYPACT_NINF (-248) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF (-217) +#define YYTABLE_NINF (-216) #define yytable_value_is_error(Yyn) \ 0 @@ -733,50 +733,50 @@ yysymbol_name (yysymbol_kind_t yysymbol) STATE-NUM. */ static const yytype_int16 yypact[] = { - 210, -255, -255, -255, 341, 44, 44, 24, 1, 44, - 44, 44, 411, 46, 54, -255, 64, -255, -255, -255, - 67, -255, -255, 95, -255, 84, 76, 77, -255, -255, - -255, 81, -255, -255, -7, 172, -255, 1110, -255, 27, - 23, 36, 42, 1110, 181, 296, 100, 494, 47, -255, - 59, -255, -255, -255, 976, -255, -255, -255, -255, -255, - -255, 44, 44, 25, -255, -255, -255, -255, 1110, 44, - 1110, 1110, 1110, 1110, 1110, -255, 66, 68, 1110, 44, - 305, 17, -255, -255, -255, -255, -255, -255, 1203, -255, - 100, -255, 305, 44, 15, -255, -255, 57, 976, -255, - 976, -255, -255, 305, 615, 93, 51, -255, 94, 305, - 1267, 305, 746, -255, 1140, 573, 1908, 71, -255, -255, - 305, 98, 80, 527, -255, 144, 82, 44, -255, 332, - 145, -255, 30, 83, 57, -255, 57, 57, 207, 1492, - 57, 1110, 154, 522, 1331, 64, 89, 124, 113, -255, - 44, 898, 1054, 1110, 1110, 1110, 1110, 1110, 1110, 1110, - 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, - 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, - 1110, 1110, 221, 305, 44, -21, 103, 183, 157, 117, - 59, 29, -255, -255, 120, 305, 305, 305, 44, -255, - 161, 305, -255, 305, 159, 129, -255, -255, 44, 1140, - 199, 202, 1110, 1008, 1110, 59, 930, -16, -255, 320, - 204, 205, 1395, -255, -255, 208, 670, 153, -255, -255, - -255, -255, -255, -255, -255, 222, -255, -255, 1084, 1908, - 59, 44, 195, 169, -255, 305, -255, 44, 182, 44, - -255, -1, -255, 255, -255, -255, -255, 1459, 194, -255, - -255, 44, 27, -255, 1110, -255, 539, 220, 203, -255, - -255, 1908, -255, -4, -4, -4, 207, 207, 1236, 1436, - 1492, 1428, 1364, 1300, 836, 836, 836, 836, 760, 760, - 235, 235, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, - 1908, 1908, 197, -255, -255, 44, 1110, 44, -255, -255, - 44, 59, -255, -255, 214, -255, 209, -255, -255, 305, - -255, -255, 59, -255, -255, 1523, 265, 1587, 219, -255, - 277, 1110, 44, -255, -255, -255, -255, -255, -255, -255, - -255, -255, -255, 223, 237, 289, 573, -255, -255, -255, - 44, -255, 44, 44, -255, -255, -255, -255, 59, -255, - 1008, -255, 240, 224, 1908, -255, 227, -255, 305, -255, - -255, 243, 244, 1110, -255, 1110, -255, 1587, 297, -255, - -35, 976, -255, 242, 247, 246, -255, -255, -31, -255, - 59, 249, -20, 1110, 244, 248, 1652, 1716, 257, 1110, - -255, -255, -255, -255, 251, -255, 221, -255, -255, -255, - -255, -255, 1780, -255, -255, 1110, -255, -17, 1844, 59, - 44, 253, 822, 1587, -255, -255, 1110, -255, 254, -255, - -255, -255, -255, -255 + 323, -248, -248, -248, 227, 47, 47, 17, 29, 47, + 47, 47, 330, 57, 62, -248, 80, -248, -248, -248, + 81, -248, -248, 203, -248, 95, 98, 103, -248, -248, + -248, 109, -248, -248, 15, 25, -248, 1116, -248, 61, + 32, 64, 42, 1116, 132, 160, 68, 491, 65, -248, + 72, -248, -248, -248, 982, -248, -248, -248, -248, -248, + -248, 47, 47, 22, -248, -248, -248, -248, 1116, 47, + 1116, 1116, 1116, 1116, 1116, -248, 70, 79, 1116, 47, + 58, 82, -248, -248, -248, -248, -248, -248, 1209, -248, + 68, -248, 58, 47, 23, -248, -248, 74, 982, -248, + 982, -248, -248, 58, 518, 108, 27, -248, 114, 58, + 1273, 58, 752, -248, 1146, 569, 1914, 85, -248, -248, + 58, 117, 96, 333, -248, 161, 100, 47, -248, 151, + 166, -248, 33, 102, 74, -248, 74, 74, 409, 1498, + 74, 1116, 173, 536, 1337, 80, 106, 136, 116, -248, + 904, 1060, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 699, 58, 47, -21, 112, 193, 158, 135, 72, + 51, -248, -248, 138, 58, 58, 58, 47, -248, 208, + 58, -248, 58, 174, 153, -248, -248, 47, 1146, 214, + 220, 1116, 1014, 1116, 72, 936, -16, -248, 408, 221, + 232, 1401, -248, -248, 233, 666, 170, -248, -248, -248, + -248, -248, -248, -248, 237, -248, -248, 1090, 1914, 72, + 47, 206, 183, -248, 58, -248, 47, 185, 47, -248, + 75, -248, 251, -248, -248, -248, 1465, 190, -248, -248, + 47, 61, 1116, -248, 545, 217, 194, -248, -248, 1914, + -248, -2, -2, -2, 409, 409, 1242, 1442, 1498, 1434, + 1370, 1306, 842, 842, 842, 842, 766, 766, 172, 172, + 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, + 191, -248, -248, 47, 1116, 47, -248, -248, 47, 72, + -248, -248, 189, -248, 197, -248, -248, 58, -248, -248, + 72, -248, -248, 1529, 266, 1593, 219, -248, 275, 1116, + 47, -248, -248, -248, -248, -248, -248, -248, -248, -248, + -248, 215, 229, 281, 569, -248, -248, -248, 47, -248, + 47, 47, -248, -248, -248, -248, 72, -248, 1014, -248, + 234, 218, 1914, -248, 222, -248, 58, -248, -248, 236, + 228, 1116, -248, 1116, -248, 1593, 288, -248, -24, 982, + -248, 225, 231, 226, -248, -248, -23, -248, 72, 238, + -20, 1116, 228, 235, 1658, 1722, 244, 1116, -248, -248, + -248, -248, 239, -248, 699, -248, -248, -248, -248, -248, + 1786, -248, -248, 1116, -248, -17, 1850, 72, 47, 240, + 828, 1593, -248, -248, 1116, -248, 241, -248, -248, -248, + -248, -248 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -784,73 +784,73 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 0, 212, 2, 194, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 198, 3, 4, 196, 197, - 0, 202, 195, 0, 215, 0, 0, 0, 206, 205, - 204, 0, 209, 203, 0, 0, 6, 0, 199, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 147, 145, - 0, 156, 210, 200, 0, 201, 214, 1, 211, 207, - 208, 0, 0, 0, 181, 61, 62, 63, 0, 0, - 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, - 0, 56, 74, 65, 68, 69, 66, 67, 0, 75, - 0, 161, 0, 0, 0, 148, 150, 153, 0, 154, - 0, 155, 144, 0, 147, 52, 0, 48, 51, 0, - 0, 0, 0, 160, 0, 0, 118, 120, 157, 119, - 0, 170, 0, 0, 163, 0, 0, 0, 183, 0, - 0, 176, 178, 0, 41, 59, 39, 71, 38, 40, - 42, 0, 0, 56, 0, 0, 0, 107, 0, 73, + 0, 211, 2, 193, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 197, 3, 4, 195, 196, + 0, 201, 194, 0, 214, 0, 0, 0, 205, 204, + 203, 0, 208, 202, 0, 0, 6, 0, 198, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 146, 144, + 0, 155, 209, 199, 0, 200, 213, 1, 210, 206, + 207, 0, 0, 0, 180, 60, 61, 62, 0, 0, + 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, + 0, 56, 73, 64, 67, 68, 65, 66, 0, 74, + 0, 160, 0, 0, 0, 147, 149, 152, 0, 153, + 0, 154, 143, 0, 146, 52, 0, 48, 51, 0, + 0, 0, 0, 159, 0, 0, 117, 119, 156, 118, + 0, 169, 0, 0, 162, 0, 0, 0, 182, 0, + 0, 175, 177, 0, 41, 58, 39, 70, 38, 40, + 42, 0, 0, 56, 0, 0, 0, 106, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 184, 188, 0, - 0, 0, 158, 159, 0, 0, 0, 0, 0, 141, - 0, 0, 151, 0, 180, 0, 101, 100, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 105, 56, - 0, 0, 0, 91, 92, 0, 0, 0, 99, 94, - 86, 89, 93, 90, 95, 0, 97, 98, 0, 122, - 0, 0, 116, 0, 113, 0, 168, 0, 0, 165, - 171, 0, 173, 0, 175, 177, 182, 0, 0, 64, - 70, 0, 0, 58, 0, 54, 56, 47, 0, 45, - 44, 7, 8, 11, 12, 13, 10, 9, 15, 14, - 16, 18, 17, 19, 32, 33, 34, 35, 36, 37, - 20, 21, 22, 23, 24, 25, 26, 29, 27, 28, - 30, 31, 0, 72, 57, 0, 0, 187, 190, 110, - 0, 0, 143, 50, 0, 142, 0, 49, 152, 0, - 149, 78, 0, 82, 83, 0, 0, 0, 0, 81, - 0, 0, 0, 139, 138, 88, 85, 84, 79, 87, - 102, 104, 96, 0, 0, 0, 0, 117, 121, 169, - 0, 164, 0, 0, 174, 55, 5, 106, 0, 43, - 0, 53, 191, 0, 185, 186, 0, 108, 0, 140, - 179, 126, 0, 0, 76, 0, 80, 0, 0, 123, - 0, 0, 115, 0, 0, 0, 162, 46, 0, 189, - 0, 0, 0, 0, 132, 0, 0, 0, 135, 0, - 124, 125, 114, 172, 0, 166, 0, 193, 109, 146, - 127, 128, 0, 131, 133, 0, 77, 0, 112, 0, - 0, 0, 0, 0, 136, 137, 0, 134, 0, 192, - 130, 129, 111, 167 + 0, 0, 0, 0, 0, 0, 183, 187, 0, 0, + 0, 157, 158, 0, 0, 0, 0, 0, 140, 0, + 0, 150, 0, 179, 0, 100, 99, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 104, 56, 0, + 0, 0, 90, 91, 0, 0, 0, 98, 93, 85, + 88, 92, 89, 94, 0, 96, 97, 0, 121, 0, + 0, 115, 0, 112, 0, 167, 0, 0, 164, 170, + 0, 172, 0, 174, 176, 181, 0, 0, 63, 69, + 0, 0, 0, 54, 56, 47, 0, 45, 44, 7, + 8, 11, 12, 13, 10, 9, 15, 14, 16, 18, + 17, 19, 32, 33, 34, 35, 36, 37, 20, 21, + 22, 23, 24, 25, 26, 29, 27, 28, 30, 31, + 0, 71, 57, 0, 0, 186, 189, 109, 0, 0, + 142, 50, 0, 141, 0, 49, 151, 0, 148, 77, + 0, 81, 82, 0, 0, 0, 0, 80, 0, 0, + 0, 138, 137, 87, 84, 83, 78, 86, 101, 103, + 95, 0, 0, 0, 0, 116, 120, 168, 0, 163, + 0, 0, 173, 55, 5, 105, 0, 43, 0, 53, + 190, 0, 184, 185, 0, 107, 0, 139, 178, 125, + 0, 0, 75, 0, 79, 0, 0, 122, 0, 0, + 114, 0, 0, 0, 161, 46, 0, 188, 0, 0, + 0, 0, 131, 0, 0, 0, 134, 0, 123, 124, + 113, 171, 0, 165, 0, 192, 108, 145, 126, 127, + 0, 130, 132, 0, 76, 0, 111, 0, 0, 0, + 0, 0, 135, 136, 0, 133, 0, 191, 129, 128, + 110, 166 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -255, 0, 3, -255, 4, -255, -255, -255, 121, -23, - -255, -62, -255, -255, 293, -255, -255, -255, -255, -223, - -34, -92, 9, -85, -255, -2, 196, -30, 140, -219, - -38, -255, -255, -39, -255, -255, -60, -255, -12, -255, - 440, 20, -63, 355, -255, -255, -216, -255, -255, -222, - 10, -255, 230, 50, 13, 14, -255, -254, 16, -14, - -255, -22, -255 + -248, 0, 3, -248, 4, -248, -248, -248, 94, -51, + -248, -65, -248, -248, 291, -248, -248, -248, -248, -222, + -34, -73, 9, -115, -248, -32, 167, -30, 111, -218, + -70, -248, -248, -71, -248, -248, -90, -248, -12, -248, + 437, 20, -63, 322, -248, -248, -246, -248, -248, -220, + 10, -248, 195, 18, 13, 14, -248, -247, 16, -55, + -248, -22, -248 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - 0, 81, 13, 82, 14, 83, 84, 85, 267, 268, - 105, 106, 86, 87, 116, 223, 224, 225, 226, 227, - 228, 148, 15, 419, 242, 243, 117, 269, 240, 119, - 230, 231, 394, 395, 232, 333, 334, 233, 49, 50, + 0, 81, 13, 82, 14, 83, 84, 85, 265, 266, + 105, 106, 86, 87, 116, 222, 223, 224, 225, 226, + 227, 148, 15, 417, 241, 242, 117, 267, 239, 119, + 229, 230, 392, 393, 231, 331, 332, 232, 49, 50, 51, 16, 17, 18, 89, 125, 126, 131, 121, 122, - 19, 132, 133, 205, 20, 21, 188, 189, 22, 38, + 19, 132, 133, 204, 20, 21, 187, 188, 22, 38, 23, 24, 25 }; @@ -859,408 +859,410 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 12, 56, 191, 340, 12, 34, 35, 26, 27, 39, - 40, 41, 48, 28, 30, 146, 113, 31, 32, 343, - 33, 2, 114, 12, 118, 349, 37, 91, 185, 36, - 95, 2, 150, 351, 92, 48, 2, 209, 310, 112, - 331, 331, 48, 406, 48, 48, 104, 332, 2, 42, - 2, 363, 199, 365, 112, 43, 52, 112, 37, 200, - 198, 120, 123, 129, 53, 61, 108, 62, 192, 135, - 193, 352, 54, 353, 183, 184, 127, 55, 143, 147, - 48, 127, 124, 130, 57, 244, 58, 59, 190, 151, - 104, 60, 48, 187, 147, -213, 1, 93, 145, 90, - 128, 2, 311, 48, 48, 3, 2, 42, 94, 48, - 108, 48, 219, 43, 90, 220, 221, 253, 47, 111, - 48, 229, 234, 48, 199, 235, 236, 251, 237, 48, - 384, 200, 129, 112, 383, 313, 184, 385, 141, 317, - 142, 197, 201, 48, 4, 5, 247, 6, 7, 245, - 263, 266, 130, 248, 249, 254, 309, 250, 256, 258, - 302, 401, 260, 8, 9, 10, 11, 2, 42, 357, - -213, 270, 261, 102, 43, 146, 47, 305, 2, 42, - 103, 328, 12, 48, 304, 43, 330, 2, 42, 98, - 262, 306, 308, 312, 43, 48, 48, 104, 314, 430, - 48, 104, 320, 48, 428, 307, 344, 319, 321, 323, - -216, 1, 324, 266, 336, 337, 2, 108, 339, 48, - 3, 108, 1, 153, 154, 155, 219, 2, 341, 220, - 221, 3, 342, 270, 315, 229, 234, 47, 143, 235, - 236, 345, 237, 346, 347, 48, 63, 120, 47, 123, - 358, 153, 154, 155, 156, 157, 350, 47, 145, 4, - 5, 147, 6, 7, 266, 354, 48, 356, 360, 124, - 4, 5, 362, 6, 7, 373, 361, 367, 8, 9, - 10, 11, 369, 375, 359, 183, 184, 376, 371, 8, - 9, 10, 11, 374, 368, 380, 379, 381, 388, 389, - 390, 392, 2, 42, 100, 187, 393, 187, 399, 43, - 366, 2, 42, 183, 184, 417, 244, 403, 43, 48, - 404, 405, 409, 414, 386, 420, 2, 42, 429, 433, - 88, 335, 378, 43, 326, 150, 97, 387, 2, 42, - 110, 432, 252, 398, 382, 43, 400, 2, 272, 322, - 123, 402, 120, 123, 411, 413, 408, 425, 410, 29, - 266, 134, 255, 136, 137, 138, 139, 140, 48, 370, - 124, 144, 47, 124, 407, 0, 0, 0, 0, 0, - 270, 47, 0, 424, 421, 427, 44, 0, 45, 431, - 0, 5, 151, 6, 7, 0, 47, 0, 195, 0, - 196, 0, 0, 0, 90, 222, 12, 239, 47, 0, - 9, 10, 11, 0, 0, 0, 0, 2, 42, 0, - 123, 0, 219, 0, 43, 220, 221, 0, 0, 0, - 0, 229, 234, 0, 257, 235, 236, 0, 237, 0, - 124, 0, 0, 0, 0, 271, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 64, 0, 44, 0, 45, - 0, 0, 96, 46, 99, 101, 107, 47, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 65, 66, 67, - 2, 68, 239, 69, 0, 325, 70, 327, 71, 0, - 0, 0, 0, 72, 0, 0, 0, 73, 0, 222, - 149, 74, 0, 0, 0, 0, 0, 0, 2, 42, - 107, 144, 186, 2, 42, 43, 0, 150, 0, 0, - 43, 75, 0, 194, 0, 2, 42, 0, 76, 202, - 77, 204, 43, 0, 150, 0, 0, 139, 0, 0, - 246, 0, 0, 0, 0, 0, 78, 0, 0, 0, - 79, 109, 80, 0, 0, 0, 65, 66, 67, 2, - 68, 0, 69, 0, 0, 70, 0, 71, 44, 0, - 45, 0, 72, 195, 151, 196, 73, 0, 47, 364, - 74, 0, 0, 47, 0, 195, 0, 196, 0, 0, - 0, 151, 0, 0, 0, 47, 0, 0, 0, 0, - 75, 2, 42, 303, 377, 0, 0, 76, 43, 77, - 114, 0, 0, 0, 0, 99, 101, 107, 0, 0, - 316, 107, 0, 318, 0, 78, 0, 115, 0, 79, - 0, 80, 241, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 396, 0, 397, 0, - 0, 206, 0, 65, 66, 67, 2, 68, 0, 69, - 207, 195, 70, 196, 71, 348, 412, 111, 0, 72, - 0, 47, 418, 73, 0, 0, 0, 74, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 423, 0, - 0, 0, 0, 0, 0, 222, 0, 75, 0, 418, - 5, 0, 6, 7, 76, 208, 77, 209, 0, 210, - 211, 212, -103, 213, 214, 215, 0, 216, 217, 0, - 10, 11, 78, 0, 112, -103, 79, 206, 80, 65, - 66, 67, 2, 68, 0, 69, 207, 0, 70, 204, - 71, 0, 0, 0, 0, 72, 0, 0, 0, 73, - 0, 0, 0, 74, 0, 0, 153, 154, 155, 156, - 157, 0, 159, 160, 161, 0, 0, 0, 164, 165, - 166, 167, 0, 75, 170, 171, 5, 0, 6, 7, - 76, 208, 77, 209, 0, 210, 211, 212, 391, 213, - 214, 215, 0, 216, 217, 0, 10, 11, 78, 0, - 112, 218, 79, 206, 80, 65, 66, 67, 2, 68, - 0, 69, 207, 0, 70, 0, 71, 0, 183, 184, - 0, 72, 0, 0, 0, 73, 0, 0, 0, 74, - 0, 0, 153, 154, 155, 156, 157, 0, 159, 160, - 161, 0, 0, 0, 0, 0, 0, 0, 0, 75, - 170, 171, 5, 0, 6, 7, 76, 208, 77, 209, - 0, 210, 211, 212, 0, 213, 214, 215, 0, 216, - 217, 0, 10, 11, 78, 0, 112, 0, 79, 0, - 80, 65, 66, 67, 2, 68, 0, 69, 0, 0, - 70, 0, 71, 0, 183, 184, 0, 72, 0, 0, - 0, 264, 0, 0, 0, 74, 0, 0, 0, 0, - 0, 0, 0, 65, 66, 67, 2, 68, 0, 69, - 329, 0, 70, 0, 71, 75, 0, 0, 0, 72, - 0, 0, 76, 73, 77, 114, 0, 74, 0, 0, + 12, 56, 349, 338, 12, 34, 35, 26, 27, 39, + 40, 41, 48, 28, 30, 146, 113, 31, 32, 341, + 33, 190, 36, 12, 118, 184, 347, 91, 2, 2, + 95, 2, 42, 114, 37, 48, 197, 208, 43, 2, + 329, 329, 48, 92, 48, 48, 104, 330, 2, 42, + 112, 404, 198, 2, 112, 43, 361, 112, 363, 199, + 308, 120, 123, 129, 2, 42, 108, 52, 191, 135, + 192, 43, 53, 127, 2, 42, 182, 183, 143, 147, + 48, 43, 124, 130, 127, 243, 37, 61, 54, 62, + 104, 55, 48, 186, 147, 57, 189, 128, 145, 63, + 198, 47, 381, 48, 48, 383, 93, 199, 58, 48, + 108, 48, 218, 59, 90, 219, 220, 252, 47, 60, + 48, 228, 233, 48, 309, 234, 235, 250, 236, 48, + 382, 311, 129, 90, 47, 315, 94, 111, 2, 42, + 98, 102, 141, 48, 47, 43, 112, 350, 103, 351, + 264, 142, 130, 183, 150, 307, 196, 2, 42, 300, + 399, 251, 200, 244, 43, 246, 2, 42, 100, 247, + 268, 248, 426, 43, 146, 249, 253, 255, 257, 259, + 326, 12, 48, 302, 260, 328, 303, 355, 152, 153, + 154, 155, 156, 261, 48, 48, 104, 312, 428, 48, + 104, 304, 48, -212, 1, 342, 305, 319, 47, 2, + 306, 310, 264, 3, 2, 42, 108, 194, 48, 195, + 108, 43, 317, 90, 321, 218, 318, 47, 219, 220, + 322, 334, 268, 2, 228, 233, 47, 143, 234, 235, + 343, 236, 335, 337, 48, 339, 120, 340, 123, 356, + 182, 183, 4, 5, 344, 6, 7, 145, 345, 348, + 147, 352, 264, 354, 48, 358, 360, 359, 124, 366, + 367, 8, 9, 10, 11, 365, 371, 5, -212, 6, + 7, 313, 357, 373, 47, 374, 369, 378, 377, 379, + 391, 372, 386, 387, 390, 388, 9, 10, 11, 397, + 401, 403, 415, 186, 402, 186, 324, 385, 364, 430, + 412, 407, 380, 418, 243, 427, 431, 48, 270, 320, + 409, 411, 384, -215, 1, 423, 29, 254, 88, 2, + 376, 405, 0, 3, 97, 368, 2, 42, 110, 2, + 42, 396, 0, 43, 398, 0, 43, 0, 123, 400, + 120, 123, 0, 0, 406, 0, 408, 0, 264, 134, + 0, 136, 137, 138, 139, 140, 48, 0, 124, 144, + 0, 124, 4, 5, 0, 6, 7, 0, 268, 0, + 0, 422, 419, 425, 0, 0, 0, 429, 0, 0, + 0, 8, 9, 10, 11, 0, 44, 0, 45, 194, + 0, 195, 46, 221, 12, 238, 47, 0, 0, 47, + 0, 0, 0, 0, 2, 42, 0, 0, 123, 333, + 218, 43, 0, 219, 220, 152, 153, 154, 0, 228, + 233, 0, 256, 234, 235, 0, 236, 0, 124, 0, + 0, 0, 269, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 64, 0, 44, 0, 45, 0, 0, 96, + 150, 99, 101, 107, 47, 0, 0, 182, 183, 0, + 0, 0, 0, 0, 65, 66, 67, 2, 68, 238, + 69, 0, 323, 70, 325, 71, 0, 0, 0, 0, + 72, 0, 0, 0, 73, 0, 221, 149, 74, 0, + 0, 0, 0, 0, 2, 42, 0, 107, 144, 185, + 0, 43, 0, 0, 0, 0, 0, 0, 75, 0, + 193, 0, 2, 42, 0, 76, 201, 77, 203, 43, + 0, 2, 42, 139, 0, 0, 0, 245, 43, 0, + 0, 0, 0, 78, 0, 0, 0, 79, 109, 80, + 0, 0, 65, 66, 67, 2, 68, 0, 69, 0, + 0, 70, 0, 71, 194, 0, 195, 0, 72, 0, + 111, 0, 73, 0, 47, 362, 74, 0, 0, 0, + 0, 0, 44, 0, 45, 0, 0, 0, 150, 0, + 0, 194, 47, 195, 0, 0, 75, 150, 0, 301, + 375, 47, 0, 76, 0, 77, 114, 0, 0, 0, + 0, 99, 101, 107, 0, 0, 314, 107, 0, 316, + 0, 78, 0, 115, 0, 79, 0, 80, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 78, 265, 115, 0, 79, 0, 80, 75, 0, 65, - 66, 67, 2, 68, 76, 69, 77, 114, 70, 0, - 71, 0, 0, 0, 0, 72, 0, 0, 0, 73, - 0, 0, 78, 74, 115, 0, 79, 0, 80, 0, - 0, 65, 66, 67, 2, 68, 0, 69, 0, 0, - 70, 0, 71, 75, 0, 0, 0, 72, 0, 0, - 76, 264, 77, 114, 0, 74, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 78, 0, - 115, 0, 79, 0, 80, 75, 0, 65, 66, 67, - 2, 68, 76, 69, 77, 114, 70, 0, 71, 0, - 0, 0, 0, 72, 0, 0, 0, 73, 0, 0, - 78, 74, 115, 0, 79, 0, 80, 65, 66, 67, + 0, 0, 394, 0, 395, 0, 0, 205, 0, 65, + 66, 67, 2, 68, 0, 69, 206, 0, 70, 0, + 71, 346, 410, 0, 0, 72, 0, 0, 416, 73, + 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 421, 2, 0, 0, 0, 3, + 0, 221, 0, 75, 0, 416, 5, 0, 6, 7, + 76, 207, 77, 208, 0, 209, 210, 211, -102, 212, + 213, 214, 0, 215, 216, 0, 10, 11, 78, 0, + 112, -102, 79, 0, 80, 0, 0, 0, 4, 5, + 0, 6, 7, 205, 203, 65, 66, 67, 2, 68, + 0, 69, 206, 0, 70, 0, 71, 8, 9, 10, + 11, 72, 0, 0, 0, 73, 0, 0, 0, 74, + 0, 0, 152, 153, 154, 155, 156, 0, 158, 159, + 160, 0, 0, 0, 163, 164, 165, 166, 0, 75, + 169, 170, 5, 389, 6, 7, 76, 207, 77, 208, + 0, 209, 210, 211, 0, 212, 213, 214, 0, 215, + 216, 0, 10, 11, 78, 0, 112, 217, 79, 205, + 80, 65, 66, 67, 2, 68, 0, 69, 206, 0, + 70, 0, 71, 0, 182, 183, 0, 72, 0, 0, + 0, 73, 0, 0, 0, 74, 0, 0, 152, 153, + 154, 155, 156, 0, 158, 159, 160, 0, 0, 0, + 0, 0, 0, 0, 0, 75, 169, 170, 5, 0, + 6, 7, 76, 207, 77, 208, 0, 209, 210, 211, + 0, 212, 213, 214, 0, 215, 216, 0, 10, 11, + 78, 0, 112, 0, 79, 0, 80, 65, 66, 67, 2, 68, 0, 69, 0, 0, 70, 0, 71, 0, - 0, 75, 0, 72, 0, 0, 0, 73, 76, 0, - 77, 74, 0, 65, 66, 67, 2, 68, 0, 69, - 0, 0, 70, 0, 71, 0, 78, 0, 115, 72, - 79, 75, 80, 73, 0, 0, 0, 74, 76, 0, - 77, 114, 0, 65, 66, 67, 2, 68, 0, 69, - 0, 0, 70, 0, 71, 0, 78, 75, 0, 72, - 79, 0, 80, 73, 76, 0, 77, 74, 0, 0, + 182, 183, 0, 72, 0, 0, 0, 262, 0, 0, + 0, 74, 0, 0, 0, 0, 0, 0, 0, 65, + 66, 67, 2, 68, 0, 69, 327, 0, 70, 0, + 71, 75, 0, 0, 0, 72, 0, 0, 76, 73, + 77, 114, 0, 74, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 78, 263, 115, 0, + 79, 0, 80, 75, 0, 65, 66, 67, 2, 68, + 76, 69, 77, 114, 70, 0, 71, 0, 0, 0, + 0, 72, 0, 0, 0, 73, 0, 0, 78, 74, + 115, 0, 79, 0, 80, 0, 0, 65, 66, 67, + 2, 68, 0, 69, 0, 0, 70, 0, 71, 75, + 0, 0, 0, 72, 0, 0, 76, 262, 77, 114, + 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 78, 0, 115, 0, 79, 0, + 80, 75, 0, 65, 66, 67, 2, 68, 76, 69, + 77, 114, 70, 0, 71, 0, 0, 0, 0, 72, + 0, 0, 0, 73, 0, 0, 78, 74, 115, 0, + 79, 0, 80, 65, 66, 67, 2, 68, 0, 69, + 0, 0, 70, 0, 71, 0, 0, 75, 0, 72, + 0, 0, 0, 73, 76, 0, 77, 74, 0, 65, + 66, 67, 2, 68, 0, 69, 0, 0, 70, 0, + 71, 0, 78, 0, 115, 72, 79, 75, 80, 73, + 0, 0, 0, 74, 76, 0, 77, 114, 0, 65, + 66, 67, 2, 68, 0, 69, 0, 0, 70, 0, + 71, 0, 78, 75, 0, 72, 79, 0, 80, 73, + 76, 0, 77, 74, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 78, 0, + 0, 0, 79, 75, 80, 0, 0, 0, 0, 0, + 76, 0, 77, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 151, 237, 0, + 0, 0, 79, 0, 80, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 0, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 0, 177, 178, 179, 180, 0, 0, 152, 153, + 154, 155, 156, 0, 158, 159, 160, 161, 162, 0, + 163, 164, 165, 166, 167, 168, 169, 170, 0, 0, + 0, 151, 0, 181, 0, 0, 0, 182, 183, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 0, 177, 178, 179, 180, + 182, 183, 152, 153, 154, 155, 156, 0, 158, 159, + 160, 161, 0, 0, 163, 164, 165, 166, 167, 168, + 169, 170, 0, 0, 0, 151, 0, 0, 0, 0, + 202, 182, 183, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 0, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 0, + 177, 178, 179, 180, 182, 183, 152, 153, 154, 155, + 156, 0, 158, 159, 160, 0, 0, 0, 163, 164, + 165, 166, 167, 168, 169, 170, 0, 0, 0, 151, + 258, 336, 0, 0, 0, 182, 183, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 0, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 0, 177, 178, 179, 180, 182, 183, + 152, 153, 154, 155, 156, 0, 158, 159, 152, 153, + 154, 155, 156, 0, 0, 159, 0, 0, 169, 170, + 0, 0, 0, 151, 0, 0, 169, 170, 0, 182, + 183, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 0, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 0, 177, 178, + 179, 180, 182, 183, 152, 153, 154, 155, 156, 0, + 182, 183, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 169, 170, 0, 0, 0, 151, 353, 0, + 0, 0, 0, 182, 183, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 0, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 0, 177, 178, 179, 180, 182, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 78, 0, 0, 0, 79, 75, 80, 0, - 0, 0, 0, 0, 76, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 152, 238, 0, 0, 0, 79, 0, 80, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 0, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, - 0, 0, 153, 154, 155, 156, 157, 0, 159, 160, - 161, 162, 163, 0, 164, 165, 166, 167, 168, 169, - 170, 171, 0, 0, 0, 152, 0, 182, 0, 0, - 0, 183, 184, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 0, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 0, - 178, 179, 180, 181, 183, 184, 153, 154, 155, 156, - 157, 0, 159, 160, 161, 162, 0, 0, 164, 165, - 166, 167, 168, 169, 170, 171, 0, 0, 0, 152, - 0, 0, 0, 0, 203, 183, 184, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 0, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 0, 178, 179, 180, 181, 183, 184, - 153, 154, 155, 156, 157, 0, 159, 160, 161, 0, - 0, 0, 164, 165, 166, 167, 168, 169, 170, 171, - 0, 0, 0, 152, 259, 338, 0, 0, 0, 183, - 184, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 0, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, - 180, 181, 183, 184, 153, 154, 155, 156, 157, 0, - 159, 160, 153, 154, 155, 156, 157, 0, 0, 160, - 0, 0, 170, 171, 0, 0, 0, 152, 0, 0, - 170, 171, 0, 183, 184, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 0, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 0, 178, 179, 180, 181, 183, 184, 153, 154, - 155, 156, 157, 0, 183, 184, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 171, 0, 0, - 0, 152, 355, 0, 0, 0, 0, 183, 184, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 0, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, - 183, 184, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 151, 0, 370, 0, 0, 0, 182, 183, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 0, 177, 178, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 152, 0, 372, 0, 0, - 0, 183, 184, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 0, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 0, - 178, 179, 180, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 151, 112, 413, 0, + 0, 182, 183, 0, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 0, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 0, 177, 178, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 152, 112, 415, 0, 0, 183, 184, 0, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 0, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 0, 178, 179, 180, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 151, 0, 414, 0, 0, 0, 182, 183, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 0, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 0, 177, 178, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 152, 0, 416, 0, 0, 0, - 183, 184, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 0, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 0, 178, - 179, 180, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 152, 0, - 0, 422, 0, 0, 183, 184, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 0, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 0, 178, 179, 180, 181, 0, 0, 0, + 0, 0, 0, 0, 151, 0, 0, 420, 0, 0, + 182, 183, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 0, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 0, 177, + 178, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 151, 0, + 0, 0, 0, 0, 182, 183, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 0, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 0, 177, 178, 179, 180, 0, 424, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 152, 0, 0, 0, 0, 0, 183, 184, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 0, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, - 181, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 152, 0, 0, 0, - 0, 0, 183, 184, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 0, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 0, 178, 179, 180, 181, 0, 0, 0, 0, 0, + 0, 0, 151, 0, 0, 0, 0, 0, 182, 183, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 0, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 0, 177, 178, 179, + 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 183, 184 + 0, 0, 182, 183 }; static const yytype_int16 yycheck[] = { - 0, 23, 94, 226, 4, 5, 6, 4, 4, 9, - 10, 11, 12, 4, 4, 78, 50, 4, 4, 238, - 4, 6, 57, 23, 54, 247, 57, 39, 90, 5, - 42, 6, 15, 249, 11, 35, 6, 57, 9, 74, - 57, 57, 42, 74, 44, 45, 46, 63, 6, 7, - 6, 305, 73, 307, 74, 13, 10, 74, 57, 80, - 9, 61, 62, 63, 10, 72, 46, 74, 98, 69, - 100, 72, 8, 74, 78, 79, 51, 10, 78, 79, - 80, 51, 62, 63, 0, 115, 10, 10, 73, 72, - 90, 10, 92, 93, 94, 0, 1, 74, 78, 72, - 75, 6, 73, 103, 104, 10, 6, 7, 72, 109, - 90, 111, 112, 13, 72, 112, 112, 129, 76, 72, + 0, 23, 248, 225, 4, 5, 6, 4, 4, 9, + 10, 11, 12, 4, 4, 78, 50, 4, 4, 237, + 4, 94, 5, 23, 54, 90, 246, 39, 6, 6, + 42, 6, 7, 57, 57, 35, 9, 57, 13, 6, + 57, 57, 42, 11, 44, 45, 46, 63, 6, 7, + 74, 74, 73, 6, 74, 13, 303, 74, 305, 80, + 9, 61, 62, 63, 6, 7, 46, 10, 98, 69, + 100, 13, 10, 51, 6, 7, 78, 79, 78, 79, + 80, 13, 62, 63, 51, 115, 57, 72, 8, 74, + 90, 10, 92, 93, 94, 0, 73, 75, 78, 74, + 73, 76, 348, 103, 104, 351, 74, 80, 10, 109, + 90, 111, 112, 10, 72, 112, 112, 129, 76, 10, 120, 112, 112, 123, 73, 112, 112, 127, 112, 129, - 352, 80, 132, 74, 350, 197, 79, 353, 72, 201, - 72, 48, 48, 143, 49, 50, 48, 52, 53, 78, - 150, 151, 132, 73, 10, 10, 190, 75, 75, 5, - 182, 380, 73, 68, 69, 70, 71, 6, 7, 261, - 75, 151, 48, 73, 13, 238, 76, 74, 6, 7, - 80, 215, 182, 183, 184, 13, 216, 6, 7, 8, - 77, 8, 75, 73, 13, 195, 196, 197, 198, 422, - 200, 201, 73, 203, 420, 48, 240, 48, 208, 10, - 0, 1, 10, 213, 10, 10, 6, 197, 10, 219, - 10, 201, 1, 16, 17, 18, 226, 6, 75, 226, - 226, 10, 10, 213, 73, 226, 226, 76, 238, 226, - 226, 241, 226, 48, 75, 245, 74, 247, 76, 249, - 262, 16, 17, 18, 19, 20, 74, 76, 238, 49, - 50, 261, 52, 53, 264, 10, 266, 73, 48, 249, - 49, 50, 75, 52, 53, 10, 73, 311, 68, 69, - 70, 71, 73, 64, 264, 78, 79, 10, 322, 68, - 69, 70, 71, 327, 80, 58, 73, 8, 58, 75, - 73, 58, 6, 7, 8, 305, 62, 307, 11, 13, - 310, 6, 7, 78, 79, 58, 346, 75, 13, 319, - 73, 75, 73, 75, 358, 74, 6, 7, 75, 75, - 37, 11, 332, 13, 213, 15, 43, 360, 6, 7, - 47, 426, 10, 377, 346, 13, 380, 6, 152, 209, - 350, 381, 352, 353, 392, 394, 390, 417, 392, 4, - 360, 68, 132, 70, 71, 72, 73, 74, 368, 319, - 350, 78, 76, 353, 388, -1, -1, -1, -1, -1, - 360, 76, -1, 417, 406, 419, 66, -1, 68, 423, - -1, 50, 72, 52, 53, -1, 76, -1, 66, -1, - 68, -1, -1, -1, 72, 112, 406, 114, 76, -1, - 69, 70, 71, -1, -1, -1, -1, 6, 7, -1, - 420, -1, 422, -1, 13, 422, 422, -1, -1, -1, - -1, 422, 422, -1, 141, 422, 422, -1, 422, -1, - 420, -1, -1, -1, -1, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 35, -1, 66, -1, 68, - -1, -1, 42, 72, 44, 45, 46, 76, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, - 6, 7, 209, 9, -1, 212, 12, 214, 14, -1, - -1, -1, -1, 19, -1, -1, -1, 23, -1, 226, - 80, 27, -1, -1, -1, -1, -1, -1, 6, 7, - 90, 238, 92, 6, 7, 13, -1, 15, -1, -1, - 13, 47, -1, 103, -1, 6, 7, -1, 54, 109, - 56, 111, 13, -1, 15, -1, -1, 264, -1, -1, - 120, -1, -1, -1, -1, -1, 72, -1, -1, -1, - 76, 77, 78, -1, -1, -1, 3, 4, 5, 6, - 7, -1, 9, -1, -1, 12, -1, 14, 66, -1, - 68, -1, 19, 66, 72, 68, 23, -1, 76, 306, - 27, -1, -1, 76, -1, 66, -1, 68, -1, -1, - -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, - 47, 6, 7, 183, 331, -1, -1, 54, 13, 56, - 57, -1, -1, -1, -1, 195, 196, 197, -1, -1, - 200, 201, -1, 203, -1, 72, -1, 74, -1, 76, - -1, 78, 79, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 373, -1, 375, -1, - -1, 1, -1, 3, 4, 5, 6, 7, -1, 9, - 10, 66, 12, 68, 14, 245, 393, 72, -1, 19, - -1, 76, 399, 23, -1, -1, -1, 27, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 415, -1, - -1, -1, -1, -1, -1, 422, -1, 47, -1, 426, - 50, -1, 52, 53, 54, 55, 56, 57, -1, 59, - 60, 61, 62, 63, 64, 65, -1, 67, 68, -1, - 70, 71, 72, -1, 74, 75, 76, 1, 78, 3, - 4, 5, 6, 7, -1, 9, 10, -1, 12, 319, - 14, -1, -1, -1, -1, 19, -1, -1, -1, 23, - -1, -1, -1, 27, -1, -1, 16, 17, 18, 19, - 20, -1, 22, 23, 24, -1, -1, -1, 28, 29, - 30, 31, -1, 47, 34, 35, 50, -1, 52, 53, - 54, 55, 56, 57, -1, 59, 60, 61, 368, 63, + 350, 196, 132, 72, 76, 200, 72, 72, 6, 7, + 8, 73, 72, 143, 76, 13, 74, 72, 80, 74, + 150, 72, 132, 79, 72, 189, 48, 6, 7, 181, + 378, 10, 48, 78, 13, 48, 6, 7, 8, 73, + 150, 10, 418, 13, 237, 75, 10, 75, 5, 73, + 214, 181, 182, 183, 48, 215, 74, 260, 16, 17, + 18, 19, 20, 77, 194, 195, 196, 197, 420, 199, + 200, 8, 202, 0, 1, 239, 48, 207, 76, 6, + 75, 73, 212, 10, 6, 7, 196, 66, 218, 68, + 200, 13, 48, 72, 10, 225, 73, 76, 225, 225, + 10, 10, 212, 6, 225, 225, 76, 237, 225, 225, + 240, 225, 10, 10, 244, 75, 246, 10, 248, 261, + 78, 79, 49, 50, 48, 52, 53, 237, 75, 74, + 260, 10, 262, 73, 264, 48, 75, 73, 248, 80, + 73, 68, 69, 70, 71, 309, 10, 50, 75, 52, + 53, 73, 262, 64, 76, 10, 320, 58, 73, 8, + 62, 325, 58, 75, 58, 73, 69, 70, 71, 11, + 75, 75, 58, 303, 73, 305, 212, 358, 308, 424, + 75, 73, 344, 74, 344, 75, 75, 317, 151, 208, + 390, 392, 356, 0, 1, 415, 4, 132, 37, 6, + 330, 386, -1, 10, 43, 317, 6, 7, 47, 6, + 7, 375, -1, 13, 378, -1, 13, -1, 348, 379, + 350, 351, -1, -1, 388, -1, 390, -1, 358, 68, + -1, 70, 71, 72, 73, 74, 366, -1, 348, 78, + -1, 351, 49, 50, -1, 52, 53, -1, 358, -1, + -1, 415, 404, 417, -1, -1, -1, 421, -1, -1, + -1, 68, 69, 70, 71, -1, 66, -1, 68, 66, + -1, 68, 72, 112, 404, 114, 76, -1, -1, 76, + -1, -1, -1, -1, 6, 7, -1, -1, 418, 11, + 420, 13, -1, 420, 420, 16, 17, 18, -1, 420, + 420, -1, 141, 420, 420, -1, 420, -1, 418, -1, + -1, -1, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 35, -1, 66, -1, 68, -1, -1, 42, + 72, 44, 45, 46, 76, -1, -1, 78, 79, -1, + -1, -1, -1, -1, 3, 4, 5, 6, 7, 208, + 9, -1, 211, 12, 213, 14, -1, -1, -1, -1, + 19, -1, -1, -1, 23, -1, 225, 80, 27, -1, + -1, -1, -1, -1, 6, 7, -1, 90, 237, 92, + -1, 13, -1, -1, -1, -1, -1, -1, 47, -1, + 103, -1, 6, 7, -1, 54, 109, 56, 111, 13, + -1, 6, 7, 262, -1, -1, -1, 120, 13, -1, + -1, -1, -1, 72, -1, -1, -1, 76, 77, 78, + -1, -1, 3, 4, 5, 6, 7, -1, 9, -1, + -1, 12, -1, 14, 66, -1, 68, -1, 19, -1, + 72, -1, 23, -1, 76, 304, 27, -1, -1, -1, + -1, -1, 66, -1, 68, -1, -1, -1, 72, -1, + -1, 66, 76, 68, -1, -1, 47, 72, -1, 182, + 329, 76, -1, 54, -1, 56, 57, -1, -1, -1, + -1, 194, 195, 196, -1, -1, 199, 200, -1, 202, + -1, 72, -1, 74, -1, 76, -1, 78, 79, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 371, -1, 373, -1, -1, 1, -1, 3, + 4, 5, 6, 7, -1, 9, 10, -1, 12, -1, + 14, 244, 391, -1, -1, 19, -1, -1, 397, 23, + -1, -1, -1, 27, -1, -1, -1, -1, -1, -1, + 1, -1, -1, -1, 413, 6, -1, -1, -1, 10, + -1, 420, -1, 47, -1, 424, 50, -1, 52, 53, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, 64, 65, -1, 67, 68, -1, 70, 71, 72, -1, - 74, 75, 76, 1, 78, 3, 4, 5, 6, 7, - -1, 9, 10, -1, 12, -1, 14, -1, 78, 79, - -1, 19, -1, -1, -1, 23, -1, -1, -1, 27, + 74, 75, 76, -1, 78, -1, -1, -1, 49, 50, + -1, 52, 53, 1, 317, 3, 4, 5, 6, 7, + -1, 9, 10, -1, 12, -1, 14, 68, 69, 70, + 71, 19, -1, -1, -1, 23, -1, -1, -1, 27, -1, -1, 16, 17, 18, 19, 20, -1, 22, 23, - 24, -1, -1, -1, -1, -1, -1, -1, -1, 47, - 34, 35, 50, -1, 52, 53, 54, 55, 56, 57, + 24, -1, -1, -1, 28, 29, 30, 31, -1, 47, + 34, 35, 50, 366, 52, 53, 54, 55, 56, 57, -1, 59, 60, 61, -1, 63, 64, 65, -1, 67, - 68, -1, 70, 71, 72, -1, 74, -1, 76, -1, - 78, 3, 4, 5, 6, 7, -1, 9, -1, -1, + 68, -1, 70, 71, 72, -1, 74, 75, 76, 1, + 78, 3, 4, 5, 6, 7, -1, 9, 10, -1, 12, -1, 14, -1, 78, 79, -1, 19, -1, -1, - -1, 23, -1, -1, -1, 27, -1, -1, -1, -1, - -1, -1, -1, 3, 4, 5, 6, 7, -1, 9, - 10, -1, 12, -1, 14, 47, -1, -1, -1, 19, - -1, -1, 54, 23, 56, 57, -1, 27, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 72, 73, 74, -1, 76, -1, 78, 47, -1, 3, - 4, 5, 6, 7, 54, 9, 56, 57, 12, -1, - 14, -1, -1, -1, -1, 19, -1, -1, -1, 23, - -1, -1, 72, 27, 74, -1, 76, -1, 78, -1, - -1, 3, 4, 5, 6, 7, -1, 9, -1, -1, - 12, -1, 14, 47, -1, -1, -1, 19, -1, -1, - 54, 23, 56, 57, -1, 27, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 72, -1, - 74, -1, 76, -1, 78, 47, -1, 3, 4, 5, - 6, 7, 54, 9, 56, 57, 12, -1, 14, -1, - -1, -1, -1, 19, -1, -1, -1, 23, -1, -1, - 72, 27, 74, -1, 76, -1, 78, 3, 4, 5, + -1, 23, -1, -1, -1, 27, -1, -1, 16, 17, + 18, 19, 20, -1, 22, 23, 24, -1, -1, -1, + -1, -1, -1, -1, -1, 47, 34, 35, 50, -1, + 52, 53, 54, 55, 56, 57, -1, 59, 60, 61, + -1, 63, 64, 65, -1, 67, 68, -1, 70, 71, + 72, -1, 74, -1, 76, -1, 78, 3, 4, 5, 6, 7, -1, 9, -1, -1, 12, -1, 14, -1, - -1, 47, -1, 19, -1, -1, -1, 23, 54, -1, - 56, 27, -1, 3, 4, 5, 6, 7, -1, 9, - -1, -1, 12, -1, 14, -1, 72, -1, 74, 19, - 76, 47, 78, 23, -1, -1, -1, 27, 54, -1, - 56, 57, -1, 3, 4, 5, 6, 7, -1, 9, - -1, -1, 12, -1, 14, -1, 72, 47, -1, 19, - 76, -1, 78, 23, 54, -1, 56, 27, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 72, -1, -1, -1, 76, 47, 78, -1, - -1, -1, -1, -1, 54, -1, 56, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 8, 72, -1, -1, -1, 76, -1, 78, 16, + 78, 79, -1, 19, -1, -1, -1, 23, -1, -1, + -1, 27, -1, -1, -1, -1, -1, -1, -1, 3, + 4, 5, 6, 7, -1, 9, 10, -1, 12, -1, + 14, 47, -1, -1, -1, 19, -1, -1, 54, 23, + 56, 57, -1, 27, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 72, 73, 74, -1, + 76, -1, 78, 47, -1, 3, 4, 5, 6, 7, + 54, 9, 56, 57, 12, -1, 14, -1, -1, -1, + -1, 19, -1, -1, -1, 23, -1, -1, 72, 27, + 74, -1, 76, -1, 78, -1, -1, 3, 4, 5, + 6, 7, -1, 9, -1, -1, 12, -1, 14, 47, + -1, -1, -1, 19, -1, -1, 54, 23, 56, 57, + -1, 27, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 72, -1, 74, -1, 76, -1, + 78, 47, -1, 3, 4, 5, 6, 7, 54, 9, + 56, 57, 12, -1, 14, -1, -1, -1, -1, 19, + -1, -1, -1, 23, -1, -1, 72, 27, 74, -1, + 76, -1, 78, 3, 4, 5, 6, 7, -1, 9, + -1, -1, 12, -1, 14, -1, -1, 47, -1, 19, + -1, -1, -1, 23, 54, -1, 56, 27, -1, 3, + 4, 5, 6, 7, -1, 9, -1, -1, 12, -1, + 14, -1, 72, -1, 74, 19, 76, 47, 78, 23, + -1, -1, -1, 27, 54, -1, 56, 57, -1, 3, + 4, 5, 6, 7, -1, 9, -1, -1, 12, -1, + 14, -1, 72, 47, -1, 19, 76, -1, 78, 23, + 54, -1, 56, 27, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 72, -1, + -1, -1, 76, 47, 78, -1, -1, -1, -1, -1, + 54, -1, 56, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 8, 72, -1, + -1, -1, 76, -1, 78, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, -1, 43, 44, 45, 46, -1, -1, 16, 17, + 18, 19, 20, -1, 22, 23, 24, 25, 26, -1, + 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, + -1, 8, -1, 74, -1, -1, -1, 78, 79, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, 43, 44, 45, 46, - -1, -1, 16, 17, 18, 19, 20, -1, 22, 23, - 24, 25, 26, -1, 28, 29, 30, 31, 32, 33, - 34, 35, -1, -1, -1, 8, -1, 74, -1, -1, - -1, 78, 79, 16, 17, 18, 19, 20, 21, 22, + 78, 79, 16, 17, 18, 19, 20, -1, 22, 23, + 24, 25, -1, -1, 28, 29, 30, 31, 32, 33, + 34, 35, -1, -1, -1, 8, -1, -1, -1, -1, + 77, 78, 79, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, 43, 44, 45, 46, 78, 79, 16, 17, 18, 19, - 20, -1, 22, 23, 24, 25, -1, -1, 28, 29, + 20, -1, 22, 23, 24, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, 8, - -1, -1, -1, -1, 77, 78, 79, 16, 17, 18, + 73, 10, -1, -1, -1, 78, 79, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, 43, 44, 45, 46, 78, 79, - 16, 17, 18, 19, 20, -1, 22, 23, 24, -1, - -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, - -1, -1, -1, 8, 73, 10, -1, -1, -1, 78, + 16, 17, 18, 19, 20, -1, 22, 23, 16, 17, + 18, 19, 20, -1, -1, 23, -1, -1, 34, 35, + -1, -1, -1, 8, -1, -1, 34, 35, -1, 78, 79, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, 43, 44, 45, 46, 78, 79, 16, 17, 18, 19, 20, -1, - 22, 23, 16, 17, 18, 19, 20, -1, -1, 23, - -1, -1, 34, 35, -1, -1, -1, 8, -1, -1, - 34, 35, -1, 78, 79, 16, 17, 18, 19, 20, + 78, 79, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 34, 35, -1, -1, -1, 8, 73, -1, + -1, -1, -1, 78, 79, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, -1, 43, 44, 45, 46, 78, 79, 16, 17, - 18, 19, 20, -1, 78, 79, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 34, 35, -1, -1, - -1, 8, 73, -1, -1, -1, -1, 78, 79, 16, + 41, -1, 43, 44, 45, 46, 78, 79, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 8, -1, 74, -1, -1, -1, 78, 79, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, 43, 44, 45, 46, - 78, 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 8, -1, 74, -1, -1, - -1, 78, 79, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, -1, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, - 43, 44, 45, 46, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 8, 74, 10, -1, + -1, 78, 79, -1, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, -1, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + -1, 43, 44, 45, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 8, 74, 10, -1, -1, 78, 79, -1, 16, 17, + 8, -1, 10, -1, -1, -1, 78, 79, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, 43, 44, 45, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 8, -1, 10, -1, -1, -1, + -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, 78, 79, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, 43, 44, 45, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, - -1, 11, -1, -1, 78, 79, 16, 17, 18, 19, + -1, -1, -1, -1, 78, 79, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, -1, 43, 44, 45, 46, -1, -1, -1, + 40, 41, -1, 43, 44, 45, 46, -1, 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, 78, 79, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, 43, 44, 45, - 46, -1, 48, -1, -1, -1, -1, -1, -1, -1, + 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 8, -1, -1, -1, - -1, -1, 78, 79, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, -1, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - -1, 43, 44, 45, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 78, 79 + -1, -1, 78, 79 }; /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of @@ -1282,35 +1284,35 @@ static const yytype_uint8 yystos[] = 82, 129, 130, 82, 122, 126, 127, 51, 75, 82, 122, 128, 132, 133, 95, 82, 95, 95, 95, 95, 95, 72, 72, 82, 95, 122, 123, 82, 102, 121, - 15, 72, 8, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 43, 44, - 45, 46, 74, 78, 79, 92, 121, 82, 137, 138, - 73, 102, 108, 108, 121, 66, 68, 48, 9, 73, - 80, 48, 121, 77, 121, 134, 1, 10, 55, 57, - 59, 60, 61, 63, 64, 65, 67, 68, 75, 82, - 83, 85, 95, 96, 97, 98, 99, 100, 101, 103, - 111, 112, 115, 118, 131, 135, 136, 139, 72, 95, - 109, 79, 105, 106, 108, 78, 121, 48, 73, 10, - 75, 82, 10, 119, 10, 133, 75, 95, 5, 73, - 73, 48, 77, 82, 23, 73, 82, 89, 90, 108, - 122, 95, 107, 95, 95, 95, 95, 95, 95, 95, + 72, 8, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, + 46, 74, 78, 79, 92, 121, 82, 137, 138, 73, + 102, 108, 108, 121, 66, 68, 48, 9, 73, 80, + 48, 121, 77, 121, 134, 1, 10, 55, 57, 59, + 60, 61, 63, 64, 65, 67, 68, 75, 82, 83, + 85, 95, 96, 97, 98, 99, 100, 101, 103, 111, + 112, 115, 118, 131, 135, 136, 139, 72, 95, 109, + 79, 105, 106, 108, 78, 121, 48, 73, 10, 75, + 82, 10, 119, 10, 133, 75, 95, 5, 73, 73, + 48, 77, 23, 73, 82, 89, 90, 108, 122, 95, + 107, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, - 95, 95, 142, 121, 82, 74, 8, 48, 75, 101, - 9, 73, 73, 92, 82, 73, 121, 92, 121, 48, - 73, 82, 109, 10, 10, 95, 89, 95, 101, 10, - 108, 57, 63, 116, 117, 11, 10, 10, 10, 10, - 100, 75, 10, 110, 101, 82, 48, 75, 121, 130, - 74, 127, 72, 74, 10, 73, 73, 102, 119, 122, - 48, 73, 75, 138, 95, 138, 82, 101, 80, 73, - 134, 101, 74, 10, 101, 64, 10, 95, 82, 73, - 58, 8, 106, 127, 130, 127, 101, 90, 58, 75, - 73, 121, 58, 62, 113, 114, 95, 95, 101, 11, - 101, 110, 108, 75, 73, 75, 74, 140, 101, 73, - 101, 111, 95, 114, 75, 10, 10, 58, 95, 104, - 74, 142, 11, 95, 101, 117, 48, 101, 127, 75, - 100, 101, 104, 75 + 142, 121, 82, 74, 8, 48, 75, 101, 9, 73, + 73, 92, 82, 73, 121, 92, 121, 48, 73, 82, + 109, 10, 10, 95, 89, 95, 101, 10, 108, 57, + 63, 116, 117, 11, 10, 10, 10, 10, 100, 75, + 10, 110, 101, 82, 48, 75, 121, 130, 74, 127, + 72, 74, 10, 73, 73, 102, 119, 122, 48, 73, + 75, 138, 95, 138, 82, 101, 80, 73, 134, 101, + 74, 10, 101, 64, 10, 95, 82, 73, 58, 8, + 106, 127, 130, 127, 101, 90, 58, 75, 73, 121, + 58, 62, 113, 114, 95, 95, 101, 11, 101, 110, + 108, 75, 73, 75, 74, 140, 101, 73, 101, 111, + 95, 114, 75, 10, 10, 58, 95, 104, 74, 142, + 11, 95, 101, 117, 48, 101, 127, 75, 100, 101, + 104, 75 }; /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ @@ -1323,21 +1325,21 @@ static const yytype_uint8 yyr1[] = 88, 88, 88, 89, 89, 89, 90, 90, 91, 92, 92, 92, 92, 93, 93, 94, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, - 95, 95, 95, 95, 95, 95, 96, 97, 98, 99, + 95, 95, 95, 95, 95, 96, 97, 98, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 100, 100, 101, 101, 102, 102, 103, 103, - 103, 104, 104, 105, 105, 106, 106, 107, 108, 108, - 108, 108, 109, 109, 110, 110, 111, 111, 111, 112, - 113, 114, 114, 115, 116, 117, 117, 117, 118, 118, - 119, 119, 119, 119, 119, 120, 120, 121, 121, 121, - 121, 121, 121, 121, 122, 122, 122, 123, 123, 123, - 124, 124, 125, 126, 127, 127, 128, 128, 129, 130, - 130, 131, 131, 132, 132, 132, 132, 133, 133, 134, - 134, 135, 136, 136, 137, 137, 138, 138, 138, 139, - 139, 140, 140, 140, 141, 141, 141, 141, 141, 141, + 99, 100, 100, 101, 101, 102, 102, 103, 103, 103, + 104, 104, 105, 105, 106, 106, 107, 108, 108, 108, + 108, 109, 109, 110, 110, 111, 111, 111, 112, 113, + 114, 114, 115, 116, 117, 117, 117, 118, 118, 119, + 119, 119, 119, 119, 120, 120, 121, 121, 121, 121, + 121, 121, 121, 122, 122, 122, 123, 123, 123, 124, + 124, 125, 126, 127, 127, 128, 128, 129, 130, 130, + 131, 131, 132, 132, 132, 132, 133, 133, 134, 134, + 135, 136, 136, 137, 137, 138, 138, 138, 139, 139, + 140, 140, 140, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 142, 142, 143, 143 + 141, 141, 142, 142, 143, 143 }; /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ @@ -1348,23 +1350,23 @@ static const yytype_int8 yyr2[] = 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 1, 1, 3, 1, 1, 3, - 3, 1, 1, 4, 3, 4, 1, 3, 3, 2, - 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, - 3, 2, 3, 2, 1, 1, 3, 5, 2, 2, - 3, 2, 2, 2, 2, 2, 1, 2, 2, 1, - 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, - 1, 1, 2, 1, 3, 2, 3, 1, 6, 8, - 5, 3, 1, 1, 4, 3, 1, 3, 1, 1, - 1, 3, 1, 3, 5, 5, 3, 5, 5, 7, - 4, 2, 1, 5, 5, 3, 5, 5, 2, 2, - 5, 3, 4, 4, 2, 1, 7, 1, 2, 4, - 2, 3, 4, 2, 3, 3, 2, 3, 4, 4, - 3, 3, 5, 1, 3, 2, 5, 8, 2, 3, - 1, 5, 8, 2, 3, 2, 1, 2, 1, 3, - 1, 3, 5, 4, 1, 3, 3, 2, 1, 7, - 5, 5, 9, 7, 1, 1, 1, 1, 1, 2, - 2, 2, 1, 2, 2, 2, 2, 3, 3, 2, - 2, 3, 1, 1, 2, 1, 0 + 3, 1, 1, 4, 3, 4, 1, 3, 2, 1, + 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, + 2, 3, 2, 1, 1, 3, 5, 2, 2, 3, + 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, + 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, + 1, 2, 1, 3, 2, 3, 1, 6, 8, 5, + 3, 1, 1, 4, 3, 1, 3, 1, 1, 1, + 3, 1, 3, 5, 5, 3, 5, 5, 7, 4, + 2, 1, 5, 5, 3, 5, 5, 2, 2, 5, + 3, 4, 4, 2, 1, 7, 1, 2, 4, 2, + 3, 4, 2, 3, 3, 2, 3, 4, 4, 3, + 3, 5, 1, 3, 2, 5, 8, 2, 3, 1, + 5, 8, 2, 3, 2, 1, 2, 1, 3, 1, + 3, 5, 4, 1, 3, 3, 2, 1, 7, 5, + 5, 9, 7, 1, 1, 1, 1, 1, 2, 2, + 2, 1, 2, 2, 2, 2, 3, 3, 2, 2, + 3, 1, 1, 2, 1, 0 }; @@ -1930,391 +1932,391 @@ yydestruct (const char *yymsg, case YYSYMBOL_INT: /* INT */ #line 143 "src/parser.y" {} -#line 1934 "src/gen_parser.c" +#line 1936 "src/gen_parser.c" break; case YYSYMBOL_FLOAT: /* FLOAT */ #line 143 "src/parser.y" {} -#line 1940 "src/gen_parser.c" +#line 1942 "src/gen_parser.c" break; case YYSYMBOL_STRING: /* STRING */ #line 143 "src/parser.y" {} -#line 1946 "src/gen_parser.c" +#line 1948 "src/gen_parser.c" break; case YYSYMBOL_ID: /* ID */ #line 143 "src/parser.y" {} -#line 1952 "src/gen_parser.c" +#line 1954 "src/gen_parser.c" break; case YYSYMBOL_id: /* id */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 1958 "src/gen_parser.c" +#line 1960 "src/gen_parser.c" break; case YYSYMBOL_var: /* var */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 1964 "src/gen_parser.c" +#line 1966 "src/gen_parser.c" break; case YYSYMBOL_embed: /* embed */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 1970 "src/gen_parser.c" +#line 1972 "src/gen_parser.c" break; case YYSYMBOL_import: /* import */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 1976 "src/gen_parser.c" +#line 1978 "src/gen_parser.c" break; case YYSYMBOL_assign: /* assign */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 1982 "src/gen_parser.c" +#line 1984 "src/gen_parser.c" break; case YYSYMBOL_binary_op: /* binary_op */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 1988 "src/gen_parser.c" +#line 1990 "src/gen_parser.c" break; case YYSYMBOL_unary_op: /* unary_op */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 1994 "src/gen_parser.c" +#line 1996 "src/gen_parser.c" break; case YYSYMBOL_arg: /* arg */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2000 "src/gen_parser.c" +#line 2002 "src/gen_parser.c" break; case YYSYMBOL_arg_list: /* arg_list */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2006 "src/gen_parser.c" +#line 2008 "src/gen_parser.c" break; case YYSYMBOL_param_decl: /* param_decl */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2012 "src/gen_parser.c" +#line 2014 "src/gen_parser.c" break; case YYSYMBOL_decl_list: /* decl_list */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2018 "src/gen_parser.c" +#line 2020 "src/gen_parser.c" break; case YYSYMBOL_call: /* call */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2024 "src/gen_parser.c" +#line 2026 "src/gen_parser.c" break; case YYSYMBOL_defer: /* defer */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2030 "src/gen_parser.c" +#line 2032 "src/gen_parser.c" break; case YYSYMBOL_expr: /* expr */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2036 "src/gen_parser.c" +#line 2038 "src/gen_parser.c" break; case YYSYMBOL_while: /* while */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2042 "src/gen_parser.c" +#line 2044 "src/gen_parser.c" break; case YYSYMBOL_do_while: /* do_while */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2048 "src/gen_parser.c" +#line 2050 "src/gen_parser.c" break; case YYSYMBOL_goto: /* goto */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2054 "src/gen_parser.c" +#line 2056 "src/gen_parser.c" break; case YYSYMBOL_statement: /* statement */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2060 "src/gen_parser.c" +#line 2062 "src/gen_parser.c" break; case YYSYMBOL_statement_list: /* statement_list */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2066 "src/gen_parser.c" +#line 2068 "src/gen_parser.c" break; case YYSYMBOL_body: /* body */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2072 "src/gen_parser.c" +#line 2074 "src/gen_parser.c" break; case YYSYMBOL_macro_list: /* macro_list */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2078 "src/gen_parser.c" +#line 2080 "src/gen_parser.c" break; case YYSYMBOL_macro: /* macro */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2084 "src/gen_parser.c" +#line 2086 "src/gen_parser.c" break; case YYSYMBOL_expr_list: /* expr_list */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2090 "src/gen_parser.c" +#line 2092 "src/gen_parser.c" break; case YYSYMBOL_struct_init: /* struct_init */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2096 "src/gen_parser.c" +#line 2098 "src/gen_parser.c" break; case YYSYMBOL_struct_inits: /* struct_inits */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2102 "src/gen_parser.c" +#line 2104 "src/gen_parser.c" break; case YYSYMBOL_struct_construct: /* struct_construct */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2108 "src/gen_parser.c" +#line 2110 "src/gen_parser.c" break; case YYSYMBOL_init_expr: /* init_expr */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2114 "src/gen_parser.c" +#line 2116 "src/gen_parser.c" break; case YYSYMBOL_cond: /* cond */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2120 "src/gen_parser.c" +#line 2122 "src/gen_parser.c" break; case YYSYMBOL_expr_if: /* expr_if */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2126 "src/gen_parser.c" +#line 2128 "src/gen_parser.c" break; case YYSYMBOL_if: /* if */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2132 "src/gen_parser.c" +#line 2134 "src/gen_parser.c" break; case YYSYMBOL_for: /* for */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2138 "src/gen_parser.c" +#line 2140 "src/gen_parser.c" break; case YYSYMBOL_case: /* case */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2144 "src/gen_parser.c" +#line 2146 "src/gen_parser.c" break; case YYSYMBOL_case_list: /* case_list */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2150 "src/gen_parser.c" +#line 2152 "src/gen_parser.c" break; case YYSYMBOL_switch: /* switch */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2156 "src/gen_parser.c" +#line 2158 "src/gen_parser.c" break; case YYSYMBOL_const_for: /* const_for */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2162 "src/gen_parser.c" +#line 2164 "src/gen_parser.c" break; case YYSYMBOL_const_if: /* const_if */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2168 "src/gen_parser.c" +#line 2170 "src/gen_parser.c" break; case YYSYMBOL_const: /* const */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2174 "src/gen_parser.c" +#line 2176 "src/gen_parser.c" break; case YYSYMBOL_func_sign: /* func_sign */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2180 "src/gen_parser.c" +#line 2182 "src/gen_parser.c" break; case YYSYMBOL_variadic_sign: /* variadic_sign */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2186 "src/gen_parser.c" +#line 2188 "src/gen_parser.c" break; case YYSYMBOL_type: /* type */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2192 "src/gen_parser.c" +#line 2194 "src/gen_parser.c" break; case YYSYMBOL_var_decl: /* var_decl */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2198 "src/gen_parser.c" +#line 2200 "src/gen_parser.c" break; case YYSYMBOL_var_init: /* var_init */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2204 "src/gen_parser.c" +#line 2206 "src/gen_parser.c" break; case YYSYMBOL_proc: /* proc */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2210 "src/gen_parser.c" +#line 2212 "src/gen_parser.c" break; case YYSYMBOL_lambda: /* lambda */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2216 "src/gen_parser.c" +#line 2218 "src/gen_parser.c" break; case YYSYMBOL_struct_elem: /* struct_elem */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2222 "src/gen_parser.c" +#line 2224 "src/gen_parser.c" break; case YYSYMBOL_struct_list: /* struct_list */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2228 "src/gen_parser.c" +#line 2230 "src/gen_parser.c" break; case YYSYMBOL_union: /* union */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2234 "src/gen_parser.c" +#line 2236 "src/gen_parser.c" break; case YYSYMBOL_generic: /* generic */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2240 "src/gen_parser.c" +#line 2242 "src/gen_parser.c" break; case YYSYMBOL_generic_list: /* generic_list */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2246 "src/gen_parser.c" +#line 2248 "src/gen_parser.c" break; case YYSYMBOL_struct: /* struct */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2252 "src/gen_parser.c" +#line 2254 "src/gen_parser.c" break; case YYSYMBOL_template_elem: /* template_elem */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2258 "src/gen_parser.c" +#line 2260 "src/gen_parser.c" break; case YYSYMBOL_template_list: /* template_list */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2264 "src/gen_parser.c" +#line 2266 "src/gen_parser.c" break; case YYSYMBOL_type_list: /* type_list */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2270 "src/gen_parser.c" +#line 2272 "src/gen_parser.c" break; case YYSYMBOL_type_alias: /* type_alias */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2276 "src/gen_parser.c" +#line 2278 "src/gen_parser.c" break; case YYSYMBOL_type_template: /* type_template */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2282 "src/gen_parser.c" +#line 2284 "src/gen_parser.c" break; case YYSYMBOL_enum_val: /* enum_val */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2288 "src/gen_parser.c" +#line 2290 "src/gen_parser.c" break; case YYSYMBOL_enum_list: /* enum_list */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2294 "src/gen_parser.c" +#line 2296 "src/gen_parser.c" break; case YYSYMBOL_enum: /* enum */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2300 "src/gen_parser.c" +#line 2302 "src/gen_parser.c" break; case YYSYMBOL_top_if: /* top_if */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2306 "src/gen_parser.c" +#line 2308 "src/gen_parser.c" break; case YYSYMBOL_top: /* top */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2312 "src/gen_parser.c" +#line 2314 "src/gen_parser.c" break; case YYSYMBOL_unit: /* unit */ #line 144 "src/parser.y" { destroy_ast_tree(((*yyvaluep).node)); } -#line 2318 "src/gen_parser.c" +#line 2320 "src/gen_parser.c" break; default: @@ -2623,169 +2625,169 @@ yyreduce: (yyval.node) = gen_id(strdup((yyvsp[0].str))); (yyval.node)->loc = to_src_loc(&yylloc); } -#line 2627 "src/gen_parser.c" +#line 2629 "src/gen_parser.c" break; case 3: /* var: var_decl */ #line 154 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 2633 "src/gen_parser.c" +#line 2635 "src/gen_parser.c" break; case 4: /* var: var_init */ #line 155 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 2639 "src/gen_parser.c" +#line 2641 "src/gen_parser.c" break; case 5: /* embed: "embed" "(" STRING ")" */ #line 158 "src/parser.y" { (yyval.node) = gen_embed(clone_string((yyvsp[-1].str))); } -#line 2645 "src/gen_parser.c" +#line 2647 "src/gen_parser.c" break; case 6: /* import: "import" STRING */ #line 161 "src/parser.y" { (yyval.node) = gen_import(clone_string((yyvsp[0].str))); } -#line 2651 "src/gen_parser.c" +#line 2653 "src/gen_parser.c" break; case 7: /* assign: expr "=" expr */ #line 164 "src/parser.y" { (yyval.node) = gen_assign((yyvsp[-2].node), (yyvsp[0].node)); } -#line 2657 "src/gen_parser.c" +#line 2659 "src/gen_parser.c" break; case 8: /* assign: expr "=" struct_construct */ #line 165 "src/parser.y" { (yyval.node) = gen_assign((yyvsp[-2].node), (yyvsp[0].node)); } -#line 2663 "src/gen_parser.c" +#line 2665 "src/gen_parser.c" break; case 9: /* binary_op: expr "+" expr */ #line 168 "src/parser.y" { (yyval.node) = gen_binop(AST_ADD, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2669 "src/gen_parser.c" +#line 2671 "src/gen_parser.c" break; case 10: /* binary_op: expr "-" expr */ #line 169 "src/parser.y" { (yyval.node) = gen_binop(AST_SUB, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2675 "src/gen_parser.c" +#line 2677 "src/gen_parser.c" break; case 11: /* binary_op: expr "*" expr */ #line 170 "src/parser.y" { (yyval.node) = gen_binop(AST_MUL, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2681 "src/gen_parser.c" +#line 2683 "src/gen_parser.c" break; case 12: /* binary_op: expr "/" expr */ #line 171 "src/parser.y" { (yyval.node) = gen_binop(AST_DIV, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2687 "src/gen_parser.c" +#line 2689 "src/gen_parser.c" break; case 13: /* binary_op: expr "%" expr */ #line 172 "src/parser.y" { (yyval.node) = gen_binop(AST_REM, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2693 "src/gen_parser.c" +#line 2695 "src/gen_parser.c" break; case 14: /* binary_op: expr "^" expr */ #line 173 "src/parser.y" { (yyval.node) = gen_binop(AST_XOR, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2699 "src/gen_parser.c" +#line 2701 "src/gen_parser.c" break; case 15: /* binary_op: expr "^^" expr */ #line 174 "src/parser.y" { (yyval.node) = gen_binop(AST_POW, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2705 "src/gen_parser.c" +#line 2707 "src/gen_parser.c" break; case 16: /* binary_op: expr "&" expr */ #line 175 "src/parser.y" { (yyval.node) = gen_binop(AST_AND, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2711 "src/gen_parser.c" +#line 2713 "src/gen_parser.c" break; case 17: /* binary_op: expr "&&" expr */ #line 176 "src/parser.y" { (yyval.node) = gen_binop(AST_LAND, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2717 "src/gen_parser.c" +#line 2719 "src/gen_parser.c" break; case 18: /* binary_op: expr "|" expr */ #line 177 "src/parser.y" { (yyval.node) = gen_binop(AST_OR, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2723 "src/gen_parser.c" +#line 2725 "src/gen_parser.c" break; case 19: /* binary_op: expr "||" expr */ #line 178 "src/parser.y" { (yyval.node) = gen_binop(AST_LOR, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2729 "src/gen_parser.c" +#line 2731 "src/gen_parser.c" break; case 20: /* binary_op: expr "<<" expr */ #line 179 "src/parser.y" { (yyval.node) = gen_binop(AST_LSHIFT, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2735 "src/gen_parser.c" +#line 2737 "src/gen_parser.c" break; case 21: /* binary_op: expr ">>" expr */ #line 180 "src/parser.y" { (yyval.node) = gen_binop(AST_RSHIFT, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2741 "src/gen_parser.c" +#line 2743 "src/gen_parser.c" break; case 22: /* binary_op: expr "+=" expr */ #line 181 "src/parser.y" { (yyval.node) = gen_binop(AST_ASSIGN_ADD, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2747 "src/gen_parser.c" +#line 2749 "src/gen_parser.c" break; case 23: /* binary_op: expr "-=" expr */ #line 182 "src/parser.y" { (yyval.node) = gen_binop(AST_ASSIGN_SUB, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2753 "src/gen_parser.c" +#line 2755 "src/gen_parser.c" break; case 24: /* binary_op: expr "*=" expr */ #line 183 "src/parser.y" { (yyval.node) = gen_binop(AST_ASSIGN_MUL, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2759 "src/gen_parser.c" +#line 2761 "src/gen_parser.c" break; case 25: /* binary_op: expr "/=" expr */ #line 184 "src/parser.y" { (yyval.node) = gen_binop(AST_ASSIGN_DIV, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2765 "src/gen_parser.c" +#line 2767 "src/gen_parser.c" break; case 26: /* binary_op: expr "%=" expr */ #line 185 "src/parser.y" { (yyval.node) = gen_binop(AST_ASSIGN_REM, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2771 "src/gen_parser.c" +#line 2773 "src/gen_parser.c" break; case 27: /* binary_op: expr "&=" expr */ #line 186 "src/parser.y" { (yyval.node) = gen_binop(AST_ASSIGN_AND, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2777 "src/gen_parser.c" +#line 2779 "src/gen_parser.c" break; case 28: /* binary_op: expr "|=" expr */ #line 187 "src/parser.y" { (yyval.node) = gen_binop(AST_ASSIGN_OR, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2783 "src/gen_parser.c" +#line 2785 "src/gen_parser.c" break; case 29: /* binary_op: expr "^=" expr */ #line 188 "src/parser.y" { (yyval.node) = gen_binop(AST_ASSIGN_XOR, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2789 "src/gen_parser.c" +#line 2791 "src/gen_parser.c" break; case 30: /* binary_op: expr "<<=" expr */ @@ -2793,7 +2795,7 @@ yyreduce: { (yyval.node) = gen_binop(AST_ASSIGN_LSHIFT, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2797 "src/gen_parser.c" +#line 2799 "src/gen_parser.c" break; case 31: /* binary_op: expr ">>=" expr */ @@ -2801,432 +2803,426 @@ yyreduce: { (yyval.node) = gen_binop(AST_ASSIGN_RSHIFT, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2805 "src/gen_parser.c" +#line 2807 "src/gen_parser.c" break; case 32: /* binary_op: expr "<" expr */ #line 195 "src/parser.y" { (yyval.node) = gen_binop(AST_LT, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2811 "src/gen_parser.c" +#line 2813 "src/gen_parser.c" break; case 33: /* binary_op: expr ">" expr */ #line 196 "src/parser.y" { (yyval.node) = gen_binop(AST_GT, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2817 "src/gen_parser.c" +#line 2819 "src/gen_parser.c" break; case 34: /* binary_op: expr "<=" expr */ #line 197 "src/parser.y" { (yyval.node) = gen_binop(AST_LE, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2823 "src/gen_parser.c" +#line 2825 "src/gen_parser.c" break; case 35: /* binary_op: expr ">=" expr */ #line 198 "src/parser.y" { (yyval.node) = gen_binop(AST_GE, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2829 "src/gen_parser.c" +#line 2831 "src/gen_parser.c" break; case 36: /* binary_op: expr "!=" expr */ #line 199 "src/parser.y" { (yyval.node) = gen_binop(AST_NE, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2835 "src/gen_parser.c" +#line 2837 "src/gen_parser.c" break; case 37: /* binary_op: expr "==" expr */ #line 200 "src/parser.y" { (yyval.node) = gen_binop(AST_EQ, (yyvsp[-2].node), (yyvsp[0].node)); } -#line 2841 "src/gen_parser.c" +#line 2843 "src/gen_parser.c" break; case 38: /* unary_op: "-" expr */ #line 203 "src/parser.y" { (yyval.node) = gen_unop(AST_NEG, (yyvsp[0].node)); } -#line 2847 "src/gen_parser.c" +#line 2849 "src/gen_parser.c" break; case 39: /* unary_op: "!" expr */ #line 204 "src/parser.y" { (yyval.node) = gen_unop(AST_LNOT, (yyvsp[0].node)); } -#line 2853 "src/gen_parser.c" +#line 2855 "src/gen_parser.c" break; case 40: /* unary_op: "&" expr */ #line 205 "src/parser.y" { (yyval.node) = gen_unop(AST_REF, (yyvsp[0].node)); } -#line 2859 "src/gen_parser.c" +#line 2861 "src/gen_parser.c" break; case 41: /* unary_op: "'" expr */ #line 206 "src/parser.y" { (yyval.node) = gen_unop(AST_DEREF, (yyvsp[0].node)); } -#line 2865 "src/gen_parser.c" +#line 2867 "src/gen_parser.c" break; case 42: /* unary_op: "~" expr */ #line 207 "src/parser.y" { (yyval.node) = gen_unop(AST_NOT, (yyvsp[0].node)); } -#line 2871 "src/gen_parser.c" +#line 2873 "src/gen_parser.c" break; case 43: /* arg: "&" var_decl */ #line 210 "src/parser.y" { (yyval.node) = gen_unop(AST_REF, (yyvsp[0].node)); } -#line 2877 "src/gen_parser.c" +#line 2879 "src/gen_parser.c" break; case 44: /* arg: var_decl */ #line 211 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 2883 "src/gen_parser.c" +#line 2885 "src/gen_parser.c" break; case 45: /* arg: init_expr */ #line 212 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 2889 "src/gen_parser.c" +#line 2891 "src/gen_parser.c" break; case 46: /* arg_list: arg "," arg_list */ #line 215 "src/parser.y" { (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->next = (yyvsp[0].node); } -#line 2895 "src/gen_parser.c" +#line 2897 "src/gen_parser.c" break; case 47: /* arg_list: arg */ #line 216 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 2901 "src/gen_parser.c" +#line 2903 "src/gen_parser.c" break; case 48: /* param_decl: type */ #line 219 "src/parser.y" { (yyval.node) = gen_var(NULL, (yyvsp[0].node), NULL); } -#line 2907 "src/gen_parser.c" +#line 2909 "src/gen_parser.c" break; case 49: /* decl_list: var_decl "," decl_list */ #line 221 "src/parser.y" { (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->next = (yyvsp[0].node); } -#line 2913 "src/gen_parser.c" +#line 2915 "src/gen_parser.c" break; case 50: /* decl_list: param_decl "," decl_list */ #line 222 "src/parser.y" { (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->next = (yyvsp[0].node); } -#line 2919 "src/gen_parser.c" +#line 2921 "src/gen_parser.c" break; case 51: /* decl_list: var_decl */ #line 223 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 2925 "src/gen_parser.c" +#line 2927 "src/gen_parser.c" break; case 52: /* decl_list: param_decl */ #line 224 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 2931 "src/gen_parser.c" +#line 2933 "src/gen_parser.c" break; case 53: /* call: id "(" arg_list ")" */ #line 228 "src/parser.y" { (yyval.node) = gen_call((yyvsp[-3].node), (yyvsp[-1].node)); } -#line 2937 "src/gen_parser.c" +#line 2939 "src/gen_parser.c" break; case 54: /* call: id "(" ")" */ #line 229 "src/parser.y" { (yyval.node) = gen_call((yyvsp[-2].node), NULL); } -#line 2943 "src/gen_parser.c" +#line 2945 "src/gen_parser.c" break; case 55: /* defer: "defer" "(" expr ")" */ #line 232 "src/parser.y" { (yyval.node) = gen_defer((yyvsp[-1].node)); } -#line 2949 "src/gen_parser.c" +#line 2951 "src/gen_parser.c" break; case 56: /* expr: id */ #line 236 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 2955 "src/gen_parser.c" +#line 2957 "src/gen_parser.c" break; case 57: /* expr: expr "." id */ #line 237 "src/parser.y" { (yyval.node) = gen_dot((yyvsp[-2].node), (yyvsp[0].node)); } -#line 2961 "src/gen_parser.c" +#line 2963 "src/gen_parser.c" break; - case 58: /* expr: id "##" id */ + case 58: /* expr: "..." id */ #line 238 "src/parser.y" - { (yyval.node) = gen_paste((yyvsp[-2].node), (yyvsp[0].node)); } -#line 2967 "src/gen_parser.c" - break; - - case 59: /* expr: "..." id */ -#line 239 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 2973 "src/gen_parser.c" +#line 2969 "src/gen_parser.c" break; - case 60: /* expr: "@" */ -#line 240 "src/parser.y" + case 59: /* expr: "@" */ +#line 239 "src/parser.y" { (yyval.node) = gen_last(); } -#line 2979 "src/gen_parser.c" +#line 2975 "src/gen_parser.c" break; - case 61: /* expr: INT */ -#line 241 "src/parser.y" + case 60: /* expr: INT */ +#line 240 "src/parser.y" { (yyval.node) = gen_int((yyvsp[0].integer)); (yyval.node)->loc = to_src_loc(&yylloc); } -#line 2985 "src/gen_parser.c" +#line 2981 "src/gen_parser.c" break; - case 62: /* expr: FLOAT */ -#line 242 "src/parser.y" + case 61: /* expr: FLOAT */ +#line 241 "src/parser.y" { (yyval.node) = gen_float((yyvsp[0].dbl)); (yyval.node)->loc = to_src_loc(&yylloc); } -#line 2991 "src/gen_parser.c" +#line 2987 "src/gen_parser.c" break; - case 63: /* expr: STRING */ -#line 243 "src/parser.y" + case 62: /* expr: STRING */ +#line 242 "src/parser.y" { (yyval.node) = gen_string(clone_string((yyvsp[0].str))); (yyval.node)->loc = to_src_loc(&yylloc); } -#line 3000 "src/gen_parser.c" +#line 2996 "src/gen_parser.c" break; - case 64: /* expr: "(" expr ")" */ -#line 247 "src/parser.y" + case 63: /* expr: "(" expr ")" */ +#line 246 "src/parser.y" { (yyval.node) = (yyvsp[-1].node); } -#line 3006 "src/gen_parser.c" +#line 3002 "src/gen_parser.c" break; - case 65: /* expr: assign */ -#line 248 "src/parser.y" + case 64: /* expr: assign */ +#line 247 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3012 "src/gen_parser.c" +#line 3008 "src/gen_parser.c" break; - case 66: /* expr: call */ -#line 249 "src/parser.y" + case 65: /* expr: call */ +#line 248 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3018 "src/gen_parser.c" +#line 3014 "src/gen_parser.c" break; - case 67: /* expr: defer */ -#line 250 "src/parser.y" + case 66: /* expr: defer */ +#line 249 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3024 "src/gen_parser.c" +#line 3020 "src/gen_parser.c" break; - case 68: /* expr: binary_op */ -#line 251 "src/parser.y" + case 67: /* expr: binary_op */ +#line 250 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3030 "src/gen_parser.c" +#line 3026 "src/gen_parser.c" break; - case 69: /* expr: unary_op */ -#line 252 "src/parser.y" + case 68: /* expr: unary_op */ +#line 251 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3036 "src/gen_parser.c" +#line 3032 "src/gen_parser.c" break; - case 70: /* expr: "(" var_init ")" */ -#line 253 "src/parser.y" + case 69: /* expr: "(" var_init ")" */ +#line 252 "src/parser.y" { (yyval.node) = (yyvsp[-1].node); } -#line 3042 "src/gen_parser.c" +#line 3038 "src/gen_parser.c" break; - case 71: /* expr: "sizeof" expr */ -#line 254 "src/parser.y" + case 70: /* expr: "sizeof" expr */ +#line 253 "src/parser.y" { (yyval.node) = gen_sizeof((yyvsp[0].node)); } -#line 3048 "src/gen_parser.c" +#line 3044 "src/gen_parser.c" break; - case 72: /* expr: expr "as" type */ -#line 255 "src/parser.y" + case 71: /* expr: expr "as" type */ +#line 254 "src/parser.y" { (yyval.node) = gen_cast((yyvsp[-2].node), (yyvsp[0].node)); } -#line 3054 "src/gen_parser.c" +#line 3050 "src/gen_parser.c" break; - case 73: /* expr: "as" type */ -#line 256 "src/parser.y" + case 72: /* expr: "as" type */ +#line 255 "src/parser.y" { (yyval.node) = gen_as((yyvsp[0].node)); } -#line 3060 "src/gen_parser.c" +#line 3056 "src/gen_parser.c" break; - case 74: /* expr: embed */ -#line 257 "src/parser.y" + case 73: /* expr: embed */ +#line 256 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3066 "src/gen_parser.c" +#line 3062 "src/gen_parser.c" break; - case 75: /* expr: lambda */ -#line 258 "src/parser.y" + case 74: /* expr: lambda */ +#line 257 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3072 "src/gen_parser.c" +#line 3068 "src/gen_parser.c" break; - case 76: /* while: "while" expr body */ -#line 261 "src/parser.y" + case 75: /* while: "while" expr body */ +#line 260 "src/parser.y" { (yyval.node) = gen_while((yyvsp[-1].node), (yyvsp[0].node)); } -#line 3078 "src/gen_parser.c" +#line 3074 "src/gen_parser.c" break; - case 77: /* do_while: "do" body "while" expr ";" */ -#line 264 "src/parser.y" + case 76: /* do_while: "do" body "while" expr ";" */ +#line 263 "src/parser.y" { (yyval.node) = gen_while((yyvsp[-3].node), (yyvsp[-1].node)); ast_set_flags((yyval.node), AST_FLAG_DELAYED); } -#line 3087 "src/gen_parser.c" +#line 3083 "src/gen_parser.c" break; - case 78: /* goto: "goto" id */ -#line 270 "src/parser.y" + case 77: /* goto: "goto" id */ +#line 269 "src/parser.y" { (yyval.node) = gen_goto(gen_label((yyvsp[0].node))); } -#line 3093 "src/gen_parser.c" +#line 3089 "src/gen_parser.c" break; - case 79: /* statement: expr ";" */ -#line 272 "src/parser.y" + case 78: /* statement: expr ";" */ +#line 271 "src/parser.y" { (yyval.node) = (yyvsp[-1].node); } -#line 3099 "src/gen_parser.c" +#line 3095 "src/gen_parser.c" break; - case 80: /* statement: "return" init_expr ";" */ -#line 273 "src/parser.y" + case 79: /* statement: "return" init_expr ";" */ +#line 272 "src/parser.y" { (yyval.node) = gen_return((yyvsp[-1].node)); } -#line 3105 "src/gen_parser.c" +#line 3101 "src/gen_parser.c" break; - case 81: /* statement: "return" ";" */ -#line 274 "src/parser.y" + case 80: /* statement: "return" ";" */ +#line 273 "src/parser.y" { (yyval.node) = gen_return(NULL); } -#line 3111 "src/gen_parser.c" +#line 3107 "src/gen_parser.c" break; - case 82: /* statement: "break" ";" */ -#line 275 "src/parser.y" + case 81: /* statement: "break" ";" */ +#line 274 "src/parser.y" { (yyval.node) = gen_ctrl(AST_CTRL_BREAK, to_src_loc(&yylloc)); } -#line 3117 "src/gen_parser.c" +#line 3113 "src/gen_parser.c" break; - case 83: /* statement: "continue" ";" */ -#line 276 "src/parser.y" + case 82: /* statement: "continue" ";" */ +#line 275 "src/parser.y" { (yyval.node) = gen_ctrl(AST_CTRL_CONTINUE, to_src_loc(&yylloc)); } -#line 3124 "src/gen_parser.c" +#line 3120 "src/gen_parser.c" break; - case 84: /* statement: import ";" */ -#line 278 "src/parser.y" + case 83: /* statement: import ";" */ +#line 277 "src/parser.y" { (yyval.node) = (yyvsp[-1].node); } -#line 3130 "src/gen_parser.c" +#line 3126 "src/gen_parser.c" break; - case 85: /* statement: var ";" */ -#line 279 "src/parser.y" + case 84: /* statement: var ";" */ +#line 278 "src/parser.y" { (yyval.node) = (yyvsp[-1].node); } -#line 3136 "src/gen_parser.c" +#line 3132 "src/gen_parser.c" break; - case 86: /* statement: if */ -#line 280 "src/parser.y" + case 85: /* statement: if */ +#line 279 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3142 "src/gen_parser.c" +#line 3138 "src/gen_parser.c" break; - case 87: /* statement: goto ";" */ -#line 281 "src/parser.y" + case 86: /* statement: goto ";" */ +#line 280 "src/parser.y" { (yyval.node) = (yyvsp[-1].node); } -#line 3148 "src/gen_parser.c" +#line 3144 "src/gen_parser.c" break; - case 88: /* statement: id ":" */ -#line 282 "src/parser.y" + case 87: /* statement: id ":" */ +#line 281 "src/parser.y" { (yyval.node) = gen_label((yyvsp[-1].node)); } -#line 3154 "src/gen_parser.c" +#line 3150 "src/gen_parser.c" break; - case 89: /* statement: for */ -#line 283 "src/parser.y" + case 88: /* statement: for */ +#line 282 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3160 "src/gen_parser.c" +#line 3156 "src/gen_parser.c" break; - case 90: /* statement: const */ -#line 284 "src/parser.y" + case 89: /* statement: const */ +#line 283 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3166 "src/gen_parser.c" +#line 3162 "src/gen_parser.c" break; - case 91: /* statement: while */ -#line 285 "src/parser.y" + case 90: /* statement: while */ +#line 284 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3172 "src/gen_parser.c" +#line 3168 "src/gen_parser.c" break; - case 92: /* statement: do_while */ -#line 286 "src/parser.y" + case 91: /* statement: do_while */ +#line 285 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3178 "src/gen_parser.c" +#line 3174 "src/gen_parser.c" break; - case 93: /* statement: switch */ -#line 287 "src/parser.y" + case 92: /* statement: switch */ +#line 286 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3184 "src/gen_parser.c" +#line 3180 "src/gen_parser.c" break; - case 94: /* statement: macro */ -#line 288 "src/parser.y" + case 93: /* statement: macro */ +#line 287 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3190 "src/gen_parser.c" +#line 3186 "src/gen_parser.c" break; - case 95: /* statement: struct */ -#line 289 "src/parser.y" + case 94: /* statement: struct */ +#line 288 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3196 "src/gen_parser.c" +#line 3192 "src/gen_parser.c" break; - case 96: /* statement: type_alias ";" */ -#line 290 "src/parser.y" + case 95: /* statement: type_alias ";" */ +#line 289 "src/parser.y" { (yyval.node) = (yyvsp[-1].node); } -#line 3202 "src/gen_parser.c" +#line 3198 "src/gen_parser.c" break; - case 97: /* statement: type_template */ -#line 291 "src/parser.y" + case 96: /* statement: type_template */ +#line 290 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3208 "src/gen_parser.c" +#line 3204 "src/gen_parser.c" break; - case 98: /* statement: enum */ -#line 292 "src/parser.y" + case 97: /* statement: enum */ +#line 291 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3214 "src/gen_parser.c" +#line 3210 "src/gen_parser.c" break; - case 99: /* statement: body */ -#line 293 "src/parser.y" + case 98: /* statement: body */ +#line 292 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3220 "src/gen_parser.c" +#line 3216 "src/gen_parser.c" break; - case 100: /* statement: ";" */ -#line 294 "src/parser.y" + case 99: /* statement: ";" */ +#line 293 "src/parser.y" { (yyval.node) = gen_empty(); } -#line 3226 "src/gen_parser.c" +#line 3222 "src/gen_parser.c" break; - case 101: /* statement: error */ -#line 295 "src/parser.y" + case 100: /* statement: error */ +#line 294 "src/parser.y" { /* TODO: figure out how to destroy any and all possible ast nodes we * may have generated up until the error */ @@ -3241,56 +3237,56 @@ yyreduce: yyclearin; yyerrok; } -#line 3245 "src/gen_parser.c" +#line 3241 "src/gen_parser.c" break; - case 102: /* statement_list: statement statement_list */ -#line 311 "src/parser.y" + case 101: /* statement_list: statement statement_list */ +#line 310 "src/parser.y" { (yyval.node) = (yyvsp[-1].node); (yyvsp[-1].node)->next = (yyvsp[0].node); } -#line 3251 "src/gen_parser.c" +#line 3247 "src/gen_parser.c" break; - case 103: /* statement_list: statement */ -#line 312 "src/parser.y" + case 102: /* statement_list: statement */ +#line 311 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3257 "src/gen_parser.c" +#line 3253 "src/gen_parser.c" break; - case 104: /* body: "{" statement_list "}" */ -#line 315 "src/parser.y" + case 103: /* body: "{" statement_list "}" */ +#line 314 "src/parser.y" { (yyval.node) = gen_block((yyvsp[-1].node)); } -#line 3263 "src/gen_parser.c" +#line 3259 "src/gen_parser.c" break; - case 105: /* body: "{" "}" */ -#line 316 "src/parser.y" + case 104: /* body: "{" "}" */ +#line 315 "src/parser.y" { (yyval.node) = gen_block(gen_empty()); } -#line 3269 "src/gen_parser.c" +#line 3265 "src/gen_parser.c" break; - case 106: /* macro_list: id "," macro_list */ -#line 319 "src/parser.y" + case 105: /* macro_list: id "," macro_list */ +#line 318 "src/parser.y" { (yyval.node) = (yyvsp[-2].node); (yyval.node)->next = (yyvsp[0].node); } -#line 3275 "src/gen_parser.c" +#line 3271 "src/gen_parser.c" break; - case 107: /* macro_list: id */ -#line 320 "src/parser.y" + case 106: /* macro_list: id */ +#line 319 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3281 "src/gen_parser.c" +#line 3277 "src/gen_parser.c" break; - case 108: /* macro: "define" id "(" macro_list ")" body */ -#line 323 "src/parser.y" + case 107: /* macro: "define" id "(" macro_list ")" body */ +#line 322 "src/parser.y" { (yyval.node) = gen_macro((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); ast_set_flags((yyvsp[0].node), AST_FLAG_UNHYGIENIC); } -#line 3290 "src/gen_parser.c" +#line 3286 "src/gen_parser.c" break; - case 109: /* macro: "define" id "(" macro_list "..." id ")" body */ -#line 327 "src/parser.y" + case 108: /* macro: "define" id "(" macro_list "..." id ")" body */ +#line 326 "src/parser.y" { /* TODO: the location data of the variadic ID is way off */ ast_append((yyvsp[-4].node), (yyvsp[-2].node)); @@ -3298,711 +3294,711 @@ yyreduce: ast_set_flags((yyval.node), AST_FLAG_VARIADIC); ast_set_flags((yyvsp[0].node), AST_FLAG_UNHYGIENIC); } -#line 3302 "src/gen_parser.c" +#line 3298 "src/gen_parser.c" break; - case 110: /* macro: "define" id "(" ")" body */ -#line 334 "src/parser.y" + case 109: /* macro: "define" id "(" ")" body */ +#line 333 "src/parser.y" { (yyval.node) = gen_macro((yyvsp[-3].node), NULL, (yyvsp[0].node)); ast_set_flags((yyvsp[0].node), AST_FLAG_UNHYGIENIC); } -#line 3311 "src/gen_parser.c" +#line 3307 "src/gen_parser.c" break; - case 111: /* expr_list: expr "," expr_list */ -#line 340 "src/parser.y" + case 110: /* expr_list: expr "," expr_list */ +#line 339 "src/parser.y" { (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->next = (yyvsp[0].node); } -#line 3317 "src/gen_parser.c" +#line 3313 "src/gen_parser.c" break; - case 112: /* expr_list: expr */ -#line 341 "src/parser.y" + case 111: /* expr_list: expr */ +#line 340 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3323 "src/gen_parser.c" +#line 3319 "src/gen_parser.c" break; - case 113: /* struct_init: init_expr */ -#line 344 "src/parser.y" + case 112: /* struct_init: init_expr */ +#line 343 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3329 "src/gen_parser.c" +#line 3325 "src/gen_parser.c" break; - case 114: /* struct_init: "." id "=" init_expr */ -#line 345 "src/parser.y" + case 113: /* struct_init: "." id "=" init_expr */ +#line 344 "src/parser.y" { (yyval.node) = gen_var((yyvsp[-2].node), NULL, (yyvsp[0].node)); ast_set_flags((yyval.node), AST_FLAG_MEMBER); } -#line 3338 "src/gen_parser.c" +#line 3334 "src/gen_parser.c" break; - case 115: /* struct_inits: struct_init "," struct_inits */ -#line 351 "src/parser.y" + case 114: /* struct_inits: struct_init "," struct_inits */ +#line 350 "src/parser.y" { (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->next = (yyvsp[0].node); } -#line 3344 "src/gen_parser.c" +#line 3340 "src/gen_parser.c" break; - case 116: /* struct_inits: struct_init */ -#line 352 "src/parser.y" + case 115: /* struct_inits: struct_init */ +#line 351 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3350 "src/gen_parser.c" +#line 3346 "src/gen_parser.c" break; - case 117: /* struct_construct: "{" struct_inits "}" */ -#line 355 "src/parser.y" + case 116: /* struct_construct: "{" struct_inits "}" */ +#line 354 "src/parser.y" { (yyval.node) = gen_init((yyvsp[-1].node)); } -#line 3356 "src/gen_parser.c" +#line 3352 "src/gen_parser.c" break; - case 118: /* init_expr: expr */ -#line 358 "src/parser.y" + case 117: /* init_expr: expr */ +#line 357 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3362 "src/gen_parser.c" +#line 3358 "src/gen_parser.c" break; - case 119: /* init_expr: expr_if */ -#line 359 "src/parser.y" + case 118: /* init_expr: expr_if */ +#line 358 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3368 "src/gen_parser.c" +#line 3364 "src/gen_parser.c" break; - case 120: /* init_expr: struct_construct */ -#line 360 "src/parser.y" + case 119: /* init_expr: struct_construct */ +#line 359 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3374 "src/gen_parser.c" +#line 3370 "src/gen_parser.c" break; - case 121: /* init_expr: struct_construct "as" type */ -#line 361 "src/parser.y" + case 120: /* init_expr: struct_construct "as" type */ +#line 360 "src/parser.y" { (yyval.node) = gen_cast((yyvsp[-2].node), (yyvsp[0].node)); } -#line 3380 "src/gen_parser.c" +#line 3376 "src/gen_parser.c" break; - case 122: /* cond: expr */ -#line 364 "src/parser.y" + case 121: /* cond: expr */ +#line 363 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3386 "src/gen_parser.c" +#line 3382 "src/gen_parser.c" break; - case 123: /* cond: "(" expr_if ")" */ -#line 365 "src/parser.y" + case 122: /* cond: "(" expr_if ")" */ +#line 364 "src/parser.y" { (yyval.node) = (yyvsp[-1].node); } -#line 3392 "src/gen_parser.c" +#line 3388 "src/gen_parser.c" break; - case 124: /* expr_if: "if" cond body "else" body */ -#line 369 "src/parser.y" + case 123: /* expr_if: "if" cond body "else" body */ +#line 368 "src/parser.y" { (yyval.node) = gen_if((yyvsp[-3].node), (yyvsp[-2].node), (yyvsp[0].node)); } -#line 3398 "src/gen_parser.c" +#line 3394 "src/gen_parser.c" break; - case 125: /* expr_if: "if" cond body "else" expr_if */ -#line 370 "src/parser.y" + case 124: /* expr_if: "if" cond body "else" expr_if */ +#line 369 "src/parser.y" { (yyval.node) = gen_if((yyvsp[-3].node), (yyvsp[-2].node), (yyvsp[0].node)); } -#line 3404 "src/gen_parser.c" +#line 3400 "src/gen_parser.c" break; - case 126: /* if: "if" cond body */ -#line 373 "src/parser.y" + case 125: /* if: "if" cond body */ +#line 372 "src/parser.y" { (yyval.node) = gen_if((yyvsp[-1].node), (yyvsp[0].node), NULL); } -#line 3410 "src/gen_parser.c" +#line 3406 "src/gen_parser.c" break; - case 127: /* if: "if" cond body "else" body */ -#line 374 "src/parser.y" + case 126: /* if: "if" cond body "else" body */ +#line 373 "src/parser.y" { (yyval.node) = gen_if((yyvsp[-3].node), (yyvsp[-2].node), (yyvsp[0].node)); } -#line 3416 "src/gen_parser.c" +#line 3412 "src/gen_parser.c" break; - case 128: /* if: "if" cond body "else" if */ -#line 375 "src/parser.y" + case 127: /* if: "if" cond body "else" if */ +#line 374 "src/parser.y" { (yyval.node) = gen_if((yyvsp[-3].node), (yyvsp[-2].node), (yyvsp[0].node)); } -#line 3422 "src/gen_parser.c" +#line 3418 "src/gen_parser.c" break; - case 129: /* for: "for" arg ";" expr ";" expr body */ -#line 378 "src/parser.y" + case 128: /* for: "for" arg ";" expr ";" expr body */ +#line 377 "src/parser.y" { (yyval.node) = gen_for((yyvsp[-5].node), (yyvsp[-3].node), (yyvsp[-1].node), (yyvsp[0].node)); } -#line 3428 "src/gen_parser.c" +#line 3424 "src/gen_parser.c" break; - case 130: /* case: "case" expr ":" statement_list */ -#line 381 "src/parser.y" + case 129: /* case: "case" expr ":" statement_list */ +#line 380 "src/parser.y" { (yyval.node) = gen_case((yyvsp[-2].node), (yyvsp[0].node)); } -#line 3434 "src/gen_parser.c" +#line 3430 "src/gen_parser.c" break; - case 131: /* case_list: case case_list */ -#line 384 "src/parser.y" + case 130: /* case_list: case case_list */ +#line 383 "src/parser.y" { (yyval.node) = (yyvsp[-1].node); (yyvsp[-1].node)->next = (yyvsp[0].node); } -#line 3440 "src/gen_parser.c" +#line 3436 "src/gen_parser.c" break; - case 132: /* case_list: case */ -#line 385 "src/parser.y" + case 131: /* case_list: case */ +#line 384 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3446 "src/gen_parser.c" +#line 3442 "src/gen_parser.c" break; - case 133: /* switch: "switch" expr "{" case_list "}" */ -#line 388 "src/parser.y" + case 132: /* switch: "switch" expr "{" case_list "}" */ +#line 387 "src/parser.y" { (yyval.node) = gen_switch((yyvsp[-3].node), (yyvsp[-1].node)); } -#line 3452 "src/gen_parser.c" +#line 3448 "src/gen_parser.c" break; - case 134: /* const_for: "for" id ":" expr_list body */ -#line 391 "src/parser.y" + case 133: /* const_for: "for" id ":" expr_list body */ +#line 390 "src/parser.y" { /* TODO: should id be a separate rule? */ (yyval.node) = gen_for((yyvsp[-3].node), NULL, (yyvsp[-1].node), (yyvsp[0].node)); ast_set_flags((yyvsp[0].node), AST_FLAG_UNHYGIENIC); } -#line 3462 "src/gen_parser.c" +#line 3458 "src/gen_parser.c" break; - case 135: /* const_if: "if" expr body */ -#line 398 "src/parser.y" + case 134: /* const_if: "if" expr body */ +#line 397 "src/parser.y" { (yyval.node) = gen_if((yyvsp[-1].node), (yyvsp[0].node), NULL); ast_set_flags((yyvsp[0].node), AST_FLAG_UNHYGIENIC); } -#line 3471 "src/gen_parser.c" +#line 3467 "src/gen_parser.c" break; - case 136: /* const_if: "if" expr body "else" body */ -#line 402 "src/parser.y" + case 135: /* const_if: "if" expr body "else" body */ +#line 401 "src/parser.y" { (yyval.node) = gen_if((yyvsp[-3].node), (yyvsp[-2].node), (yyvsp[0].node)); ast_set_flags((yyvsp[-2].node), AST_FLAG_UNHYGIENIC); ast_set_flags((yyvsp[0].node), AST_FLAG_UNHYGIENIC); } -#line 3481 "src/gen_parser.c" +#line 3477 "src/gen_parser.c" break; - case 137: /* const_if: "if" expr body "else" const_if */ -#line 407 "src/parser.y" + case 136: /* const_if: "if" expr body "else" const_if */ +#line 406 "src/parser.y" { (yyval.node) = gen_if((yyvsp[-3].node), (yyvsp[-2].node), (yyvsp[0].node)); ast_set_flags((yyvsp[-2].node), AST_FLAG_UNHYGIENIC); } -#line 3490 "src/gen_parser.c" +#line 3486 "src/gen_parser.c" break; - case 138: /* const: "const" const_if */ -#line 415 "src/parser.y" + case 137: /* const: "const" const_if */ +#line 414 "src/parser.y" { (yyval.node) = (yyvsp[0].node); ast_set_flags((yyval.node), AST_FLAG_CONST); } -#line 3497 "src/gen_parser.c" +#line 3493 "src/gen_parser.c" break; - case 139: /* const: "const" const_for */ -#line 417 "src/parser.y" + case 138: /* const: "const" const_for */ +#line 416 "src/parser.y" { (yyval.node) = (yyvsp[0].node); ast_set_flags((yyval.node), AST_FLAG_CONST); } -#line 3504 "src/gen_parser.c" +#line 3500 "src/gen_parser.c" break; - case 140: /* func_sign: "(" decl_list "=>" type ")" */ -#line 421 "src/parser.y" + case 139: /* func_sign: "(" decl_list "=>" type ")" */ +#line 420 "src/parser.y" { (yyval.node) = gen_type(AST_TYPE_SIGN, NULL, (yyvsp[-3].node), (yyvsp[-1].node)); } -#line 3512 "src/gen_parser.c" +#line 3508 "src/gen_parser.c" break; - case 141: /* func_sign: "(" decl_list ")" */ -#line 424 "src/parser.y" + case 140: /* func_sign: "(" decl_list ")" */ +#line 423 "src/parser.y" { (yyval.node) = gen_type(AST_TYPE_SIGN, NULL, (yyvsp[-1].node), NULL); } -#line 3519 "src/gen_parser.c" +#line 3515 "src/gen_parser.c" break; - case 142: /* func_sign: "(" decl_list "=>" ")" */ -#line 426 "src/parser.y" + case 141: /* func_sign: "(" decl_list "=>" ")" */ +#line 425 "src/parser.y" { (yyval.node) = gen_type(AST_TYPE_SIGN, NULL, (yyvsp[-2].node), NULL); } -#line 3526 "src/gen_parser.c" +#line 3522 "src/gen_parser.c" break; - case 143: /* func_sign: "(" "=>" type ")" */ -#line 428 "src/parser.y" + case 142: /* func_sign: "(" "=>" type ")" */ +#line 427 "src/parser.y" { (yyval.node) = gen_type(AST_TYPE_SIGN, NULL, NULL, (yyvsp[-1].node)); } -#line 3533 "src/gen_parser.c" +#line 3529 "src/gen_parser.c" break; - case 144: /* func_sign: "(" ")" */ -#line 430 "src/parser.y" + case 143: /* func_sign: "(" ")" */ +#line 429 "src/parser.y" { (yyval.node) = gen_type(AST_TYPE_SIGN, NULL, NULL, NULL); } -#line 3540 "src/gen_parser.c" +#line 3536 "src/gen_parser.c" break; - case 145: /* variadic_sign: func_sign */ -#line 434 "src/parser.y" + case 144: /* variadic_sign: func_sign */ +#line 433 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3546 "src/gen_parser.c" +#line 3542 "src/gen_parser.c" break; - case 146: /* variadic_sign: "(" decl_list "..." id "=>" type ")" */ -#line 435 "src/parser.y" + case 145: /* variadic_sign: "(" decl_list "..." id "=>" type ")" */ +#line 434 "src/parser.y" { ast_append((yyvsp[-5].node), (yyvsp[-3].node)); (yyval.node) = gen_type(AST_TYPE_SIGN, NULL, (yyvsp[-5].node), (yyvsp[-1].node)); ast_set_flags((yyval.node), AST_FLAG_VARIADIC); } -#line 3556 "src/gen_parser.c" +#line 3552 "src/gen_parser.c" break; - case 147: /* type: id */ -#line 442 "src/parser.y" + case 146: /* type: id */ +#line 441 "src/parser.y" { (yyval.node) = gen_type(AST_TYPE_ID, (yyvsp[0].node), NULL, NULL); } -#line 3562 "src/gen_parser.c" +#line 3558 "src/gen_parser.c" break; - case 148: /* type: "'" func_sign */ -#line 443 "src/parser.y" + case 147: /* type: "'" func_sign */ +#line 442 "src/parser.y" { (yyval.node) = gen_type(AST_TYPE_POINTER, NULL, NULL, NULL); (yyval.node)->next = (yyvsp[0].node); } -#line 3571 "src/gen_parser.c" +#line 3567 "src/gen_parser.c" break; - case 149: /* type: id "(" type_list ")" */ -#line 447 "src/parser.y" + case 148: /* type: id "(" type_list ")" */ +#line 446 "src/parser.y" { (yyval.node) = gen_type(AST_TYPE_STRUCT, (yyvsp[-3].node), (yyvsp[-1].node), NULL); } -#line 3579 "src/gen_parser.c" +#line 3575 "src/gen_parser.c" break; - case 150: /* type: "'" type */ -#line 450 "src/parser.y" + case 149: /* type: "'" type */ +#line 449 "src/parser.y" { (yyval.node) = gen_type(AST_TYPE_POINTER, NULL, NULL, NULL); (yyval.node)->_type.next = (yyvsp[0].node); } -#line 3588 "src/gen_parser.c" +#line 3584 "src/gen_parser.c" break; - case 151: /* type: "[" "]" type */ -#line 454 "src/parser.y" + case 150: /* type: "[" "]" type */ +#line 453 "src/parser.y" { (yyval.node) = gen_type(AST_TYPE_ARR, NULL, NULL, NULL); (yyval.node)->_type.next = (yyvsp[0].node); } -#line 3597 "src/gen_parser.c" +#line 3593 "src/gen_parser.c" break; - case 152: /* type: "[" expr "]" type */ -#line 458 "src/parser.y" + case 151: /* type: "[" expr "]" type */ +#line 457 "src/parser.y" { (yyval.node) = gen_type(AST_TYPE_ARR, NULL, (yyvsp[-2].node), NULL); (yyval.node)->_type.next = (yyvsp[0].node); } -#line 3606 "src/gen_parser.c" +#line 3602 "src/gen_parser.c" break; - case 153: /* type: "typeof" expr */ -#line 462 "src/parser.y" + case 152: /* type: "typeof" expr */ +#line 461 "src/parser.y" { (yyval.node) = gen_type(AST_TYPE_TYPEOF, NULL, (yyvsp[0].node), NULL); } -#line 3614 "src/gen_parser.c" +#line 3610 "src/gen_parser.c" break; - case 154: /* var_decl: id "mut" type */ -#line 467 "src/parser.y" + case 153: /* var_decl: id "mut" type */ +#line 466 "src/parser.y" { (yyval.node) = gen_var((yyvsp[-2].node), (yyvsp[0].node), NULL); ast_set_flags((yyval.node), AST_FLAG_MUTABLE); } -#line 3623 "src/gen_parser.c" +#line 3619 "src/gen_parser.c" break; - case 155: /* var_decl: id "const" type */ -#line 471 "src/parser.y" + case 154: /* var_decl: id "const" type */ +#line 470 "src/parser.y" { (yyval.node) = gen_var((yyvsp[-2].node), (yyvsp[0].node), NULL); } -#line 3629 "src/gen_parser.c" +#line 3625 "src/gen_parser.c" break; - case 156: /* var_decl: id type */ -#line 472 "src/parser.y" + case 155: /* var_decl: id type */ +#line 471 "src/parser.y" { (yyval.node) = gen_var((yyvsp[-1].node), (yyvsp[0].node), NULL); } -#line 3635 "src/gen_parser.c" +#line 3631 "src/gen_parser.c" break; - case 157: /* var_init: var_decl "=" init_expr */ -#line 475 "src/parser.y" + case 156: /* var_init: var_decl "=" init_expr */ +#line 474 "src/parser.y" { (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->_var.init = (yyvsp[0].node); } -#line 3641 "src/gen_parser.c" +#line 3637 "src/gen_parser.c" break; - case 158: /* var_init: id "mut" "=" init_expr */ -#line 476 "src/parser.y" + case 157: /* var_init: id "mut" "=" init_expr */ +#line 475 "src/parser.y" { (yyval.node) = gen_var((yyvsp[-3].node), NULL, (yyvsp[0].node)); ast_set_flags((yyval.node), AST_FLAG_UNTYPED | AST_FLAG_MUTABLE); } -#line 3650 "src/gen_parser.c" +#line 3646 "src/gen_parser.c" break; - case 159: /* var_init: id "const" "=" init_expr */ -#line 480 "src/parser.y" + case 158: /* var_init: id "const" "=" init_expr */ +#line 479 "src/parser.y" { (yyval.node) = gen_var((yyvsp[-3].node), NULL, (yyvsp[0].node)); ast_set_flags((yyval.node), AST_FLAG_UNTYPED); } -#line 3659 "src/gen_parser.c" +#line 3655 "src/gen_parser.c" break; - case 160: /* proc: id variadic_sign body */ -#line 486 "src/parser.y" + case 159: /* proc: id variadic_sign body */ +#line 485 "src/parser.y" { (yyval.node) = gen_proc((yyvsp[-2].node), (yyvsp[-1].node), (yyvsp[0].node)); ast_set_flags((yyval.node), (yyvsp[-1].node)->flags); } -#line 3668 "src/gen_parser.c" +#line 3664 "src/gen_parser.c" break; - case 161: /* proc: "extern" id func_sign */ -#line 490 "src/parser.y" + case 160: /* proc: "extern" id func_sign */ +#line 489 "src/parser.y" { (yyval.node) = gen_proc((yyvsp[-1].node), (yyvsp[0].node), NULL); ast_set_flags((yyval.node), AST_FLAG_EXTERN); } -#line 3677 "src/gen_parser.c" +#line 3673 "src/gen_parser.c" break; - case 162: /* lambda: "[" macro_list "]" func_sign body */ -#line 496 "src/parser.y" + case 161: /* lambda: "[" macro_list "]" func_sign body */ +#line 495 "src/parser.y" { (yyval.node) = gen_lambda((yyvsp[-3].node), (yyvsp[-1].node), (yyvsp[0].node)); } -#line 3683 "src/gen_parser.c" +#line 3679 "src/gen_parser.c" break; - case 163: /* struct_elem: var_decl */ -#line 499 "src/parser.y" + case 162: /* struct_elem: var_decl */ +#line 498 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3689 "src/gen_parser.c" +#line 3685 "src/gen_parser.c" break; - case 164: /* struct_list: struct_elem ";" struct_list */ -#line 502 "src/parser.y" + case 163: /* struct_list: struct_elem ";" struct_list */ +#line 501 "src/parser.y" { (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->next = (yyvsp[0].node); } -#line 3695 "src/gen_parser.c" +#line 3691 "src/gen_parser.c" break; - case 165: /* struct_list: struct_elem ";" */ -#line 503 "src/parser.y" + case 164: /* struct_list: struct_elem ";" */ +#line 502 "src/parser.y" { (yyval.node) = (yyvsp[-1].node); } -#line 3701 "src/gen_parser.c" +#line 3697 "src/gen_parser.c" break; - case 166: /* union: "union" id "{" struct_list "}" */ -#line 506 "src/parser.y" + case 165: /* union: "union" id "{" struct_list "}" */ +#line 505 "src/parser.y" { (yyval.node) = gen_union((yyvsp[-3].node), NULL, (yyvsp[-1].node)); } -#line 3709 "src/gen_parser.c" +#line 3705 "src/gen_parser.c" break; - case 167: /* union: "union" id "(" generic_list ")" "{" struct_list "}" */ -#line 509 "src/parser.y" + case 166: /* union: "union" id "(" generic_list ")" "{" struct_list "}" */ +#line 508 "src/parser.y" { (yyval.node) = gen_union((yyvsp[-6].node), (yyvsp[-4].node), (yyvsp[-1].node)); } -#line 3717 "src/gen_parser.c" +#line 3713 "src/gen_parser.c" break; - case 168: /* generic: id type */ -#line 514 "src/parser.y" + case 167: /* generic: id type */ +#line 513 "src/parser.y" { (yyval.node) = gen_alias((yyvsp[-1].node), (yyvsp[0].node)); } -#line 3723 "src/gen_parser.c" +#line 3719 "src/gen_parser.c" break; - case 169: /* generic_list: generic "," generic_list */ -#line 515 "src/parser.y" + case 168: /* generic_list: generic "," generic_list */ +#line 514 "src/parser.y" { (yyval.node) = (yyvsp[-2].node); (yyval.node)->next = (yyvsp[0].node); } -#line 3729 "src/gen_parser.c" +#line 3725 "src/gen_parser.c" break; - case 170: /* generic_list: generic */ -#line 516 "src/parser.y" + case 169: /* generic_list: generic */ +#line 515 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3735 "src/gen_parser.c" +#line 3731 "src/gen_parser.c" break; - case 171: /* struct: "struct" id "{" struct_list "}" */ -#line 519 "src/parser.y" + case 170: /* struct: "struct" id "{" struct_list "}" */ +#line 518 "src/parser.y" { (yyval.node) = gen_struct((yyvsp[-3].node), NULL, (yyvsp[-1].node)); } -#line 3743 "src/gen_parser.c" +#line 3739 "src/gen_parser.c" break; - case 172: /* struct: "struct" id "(" generic_list ")" "{" struct_list "}" */ -#line 522 "src/parser.y" + case 171: /* struct: "struct" id "(" generic_list ")" "{" struct_list "}" */ +#line 521 "src/parser.y" { (yyval.node) = gen_struct((yyvsp[-6].node), (yyvsp[-4].node), (yyvsp[-1].node)); } -#line 3751 "src/gen_parser.c" +#line 3747 "src/gen_parser.c" break; - case 173: /* template_elem: id ";" */ -#line 529 "src/parser.y" + case 172: /* template_elem: id ";" */ +#line 528 "src/parser.y" { (yyval.node) = (yyvsp[-1].node); } -#line 3757 "src/gen_parser.c" +#line 3753 "src/gen_parser.c" break; - case 174: /* template_elem: id func_sign ";" */ -#line 530 "src/parser.y" + case 173: /* template_elem: id func_sign ";" */ +#line 529 "src/parser.y" { (yyval.node) = gen_proc((yyvsp[-2].node), (yyvsp[-1].node), NULL); } -#line 3763 "src/gen_parser.c" +#line 3759 "src/gen_parser.c" break; - case 175: /* template_elem: var_decl ";" */ -#line 531 "src/parser.y" + case 174: /* template_elem: var_decl ";" */ +#line 530 "src/parser.y" { (yyval.node) = (yyvsp[-1].node); } -#line 3769 "src/gen_parser.c" +#line 3765 "src/gen_parser.c" break; - case 176: /* template_elem: union */ -#line 532 "src/parser.y" + case 175: /* template_elem: union */ +#line 531 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3775 "src/gen_parser.c" +#line 3771 "src/gen_parser.c" break; - case 177: /* template_list: template_elem template_list */ -#line 535 "src/parser.y" + case 176: /* template_list: template_elem template_list */ +#line 534 "src/parser.y" { (yyval.node) = (yyvsp[-1].node); (yyvsp[-1].node)->next = (yyvsp[0].node); } -#line 3781 "src/gen_parser.c" +#line 3777 "src/gen_parser.c" break; - case 178: /* template_list: template_elem */ -#line 536 "src/parser.y" + case 177: /* template_list: template_elem */ +#line 535 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3787 "src/gen_parser.c" +#line 3783 "src/gen_parser.c" break; - case 179: /* type_list: type "," type_list */ -#line 539 "src/parser.y" + case 178: /* type_list: type "," type_list */ +#line 538 "src/parser.y" { (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->next = (yyvsp[0].node); } -#line 3793 "src/gen_parser.c" +#line 3789 "src/gen_parser.c" break; - case 180: /* type_list: type */ -#line 540 "src/parser.y" + case 179: /* type_list: type */ +#line 539 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3799 "src/gen_parser.c" +#line 3795 "src/gen_parser.c" break; - case 181: /* type_alias: "type" id type */ -#line 543 "src/parser.y" + case 180: /* type_alias: "type" id type */ +#line 542 "src/parser.y" { (yyval.node) = gen_alias((yyvsp[-1].node), (yyvsp[0].node)); } -#line 3805 "src/gen_parser.c" +#line 3801 "src/gen_parser.c" break; - case 182: /* type_template: "type" id "{" template_list "}" */ -#line 548 "src/parser.y" + case 181: /* type_template: "type" id "{" template_list "}" */ +#line 547 "src/parser.y" { (yyval.node) = gen_template((yyvsp[-3].node), (yyvsp[-1].node)); } -#line 3813 "src/gen_parser.c" +#line 3809 "src/gen_parser.c" break; - case 183: /* type_template: "type" id "{" "}" */ -#line 551 "src/parser.y" + case 182: /* type_template: "type" id "{" "}" */ +#line 550 "src/parser.y" { /* should match anything, but doesn't implement anything */ (yyval.node) = gen_template((yyvsp[-2].node), NULL); } -#line 3822 "src/gen_parser.c" +#line 3818 "src/gen_parser.c" break; - case 184: /* enum_val: id */ -#line 557 "src/parser.y" + case 183: /* enum_val: id */ +#line 556 "src/parser.y" { (yyval.node) = gen_val((yyvsp[0].node), gen_int(0)); } -#line 3828 "src/gen_parser.c" +#line 3824 "src/gen_parser.c" break; - case 185: /* enum_val: id "=" expr */ -#line 558 "src/parser.y" + case 184: /* enum_val: id "=" expr */ +#line 557 "src/parser.y" { (yyval.node) = gen_val((yyvsp[-2].node), (yyvsp[0].node)); } -#line 3834 "src/gen_parser.c" +#line 3830 "src/gen_parser.c" break; - case 186: /* enum_list: enum_val "," enum_list */ -#line 561 "src/parser.y" + case 185: /* enum_list: enum_val "," enum_list */ +#line 560 "src/parser.y" { (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->next = (yyvsp[0].node); } -#line 3840 "src/gen_parser.c" +#line 3836 "src/gen_parser.c" break; - case 187: /* enum_list: enum_val "," */ -#line 562 "src/parser.y" + case 186: /* enum_list: enum_val "," */ +#line 561 "src/parser.y" { (yyval.node) = (yyvsp[-1].node); } -#line 3846 "src/gen_parser.c" +#line 3842 "src/gen_parser.c" break; - case 188: /* enum_list: enum_val */ -#line 563 "src/parser.y" + case 187: /* enum_list: enum_val */ +#line 562 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3852 "src/gen_parser.c" +#line 3848 "src/gen_parser.c" break; - case 189: /* enum: "enum" id ":" type "{" enum_list "}" */ -#line 566 "src/parser.y" + case 188: /* enum: "enum" id ":" type "{" enum_list "}" */ +#line 565 "src/parser.y" { (yyval.node) = gen_enum((yyvsp[-5].node), (yyvsp[-3].node), (yyvsp[-1].node)); } -#line 3858 "src/gen_parser.c" +#line 3854 "src/gen_parser.c" break; - case 190: /* enum: "enum" id "{" enum_list "}" */ -#line 567 "src/parser.y" + case 189: /* enum: "enum" id "{" enum_list "}" */ +#line 566 "src/parser.y" { (yyval.node) = gen_enum((yyvsp[-3].node), NULL, (yyvsp[-1].node)); ast_set_flags((yyval.node), AST_FLAG_UNTYPED); } -#line 3867 "src/gen_parser.c" +#line 3863 "src/gen_parser.c" break; - case 191: /* top_if: "if" expr "{" unit "}" */ -#line 573 "src/parser.y" + case 190: /* top_if: "if" expr "{" unit "}" */ +#line 572 "src/parser.y" { (yyval.node) = gen_if((yyvsp[-3].node), (yyvsp[-1].node), NULL); ast_set_flags((yyval.node), AST_FLAG_UNHYGIENIC); } -#line 3876 "src/gen_parser.c" +#line 3872 "src/gen_parser.c" break; - case 192: /* top_if: "if" expr "{" unit "}" "else" "{" unit "}" */ -#line 577 "src/parser.y" + case 191: /* top_if: "if" expr "{" unit "}" "else" "{" unit "}" */ +#line 576 "src/parser.y" { (yyval.node) = gen_if((yyvsp[-7].node), (yyvsp[-5].node), (yyvsp[-1].node)); ast_set_flags((yyval.node), AST_FLAG_UNHYGIENIC); } -#line 3885 "src/gen_parser.c" +#line 3881 "src/gen_parser.c" break; - case 193: /* top_if: "if" expr "{" unit "}" "else" top_if */ -#line 581 "src/parser.y" + case 192: /* top_if: "if" expr "{" unit "}" "else" top_if */ +#line 580 "src/parser.y" { (yyval.node) = gen_if((yyvsp[-5].node), (yyvsp[-3].node), (yyvsp[0].node)); ast_set_flags((yyval.node), AST_FLAG_UNHYGIENIC); } -#line 3894 "src/gen_parser.c" +#line 3890 "src/gen_parser.c" break; - case 194: /* top: ";" */ -#line 589 "src/parser.y" + case 193: /* top: ";" */ +#line 588 "src/parser.y" { (yyval.node) = gen_empty(); } -#line 3900 "src/gen_parser.c" +#line 3896 "src/gen_parser.c" break; - case 195: /* top: enum */ -#line 590 "src/parser.y" + case 194: /* top: enum */ +#line 589 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3906 "src/gen_parser.c" +#line 3902 "src/gen_parser.c" break; - case 196: /* top: proc */ -#line 591 "src/parser.y" + case 195: /* top: proc */ +#line 590 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3912 "src/gen_parser.c" +#line 3908 "src/gen_parser.c" break; - case 197: /* top: struct */ -#line 592 "src/parser.y" + case 196: /* top: struct */ +#line 591 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3918 "src/gen_parser.c" +#line 3914 "src/gen_parser.c" break; - case 198: /* top: macro */ -#line 593 "src/parser.y" + case 197: /* top: macro */ +#line 592 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3924 "src/gen_parser.c" +#line 3920 "src/gen_parser.c" break; - case 199: /* top: "const" top_if */ -#line 594 "src/parser.y" + case 198: /* top: "const" top_if */ +#line 593 "src/parser.y" { (yyval.node) = (yyvsp[0].node); ast_set_flags((yyval.node), AST_FLAG_CONST); } -#line 3930 "src/gen_parser.c" +#line 3926 "src/gen_parser.c" break; - case 200: /* top: import ";" */ -#line 595 "src/parser.y" + case 199: /* top: import ";" */ +#line 594 "src/parser.y" { (yyval.node) = (yyvsp[-1].node); } -#line 3936 "src/gen_parser.c" +#line 3932 "src/gen_parser.c" break; - case 201: /* top: type_alias ";" */ -#line 596 "src/parser.y" + case 200: /* top: type_alias ";" */ +#line 595 "src/parser.y" { (yyval.node) = (yyvsp[-1].node); } -#line 3942 "src/gen_parser.c" +#line 3938 "src/gen_parser.c" break; - case 202: /* top: type_template */ -#line 597 "src/parser.y" + case 201: /* top: type_template */ +#line 596 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 3948 "src/gen_parser.c" +#line 3944 "src/gen_parser.c" break; - case 203: /* top: "pub" enum */ -#line 598 "src/parser.y" + case 202: /* top: "pub" enum */ +#line 597 "src/parser.y" { (yyval.node) = (yyvsp[0].node); ast_set_flags((yyvsp[0].node), AST_FLAG_PUBLIC); } -#line 3954 "src/gen_parser.c" +#line 3950 "src/gen_parser.c" break; - case 204: /* top: "pub" struct */ -#line 599 "src/parser.y" + case 203: /* top: "pub" struct */ +#line 598 "src/parser.y" { (yyval.node) = (yyvsp[0].node); ast_set_flags((yyvsp[0].node), AST_FLAG_PUBLIC); } -#line 3960 "src/gen_parser.c" +#line 3956 "src/gen_parser.c" break; - case 205: /* top: "pub" proc */ -#line 600 "src/parser.y" + case 204: /* top: "pub" proc */ +#line 599 "src/parser.y" { (yyval.node) = (yyvsp[0].node); ast_set_flags((yyvsp[0].node), AST_FLAG_PUBLIC); } -#line 3966 "src/gen_parser.c" +#line 3962 "src/gen_parser.c" break; - case 206: /* top: "pub" macro */ -#line 601 "src/parser.y" + case 205: /* top: "pub" macro */ +#line 600 "src/parser.y" { (yyval.node) = (yyvsp[0].node); ast_set_flags((yyvsp[0].node), AST_FLAG_PUBLIC); } -#line 3972 "src/gen_parser.c" +#line 3968 "src/gen_parser.c" break; - case 207: /* top: "pub" import ";" */ -#line 602 "src/parser.y" + case 206: /* top: "pub" import ";" */ +#line 601 "src/parser.y" { (yyval.node) = (yyvsp[-1].node); ast_set_flags((yyvsp[-1].node), AST_FLAG_PUBLIC); } -#line 3978 "src/gen_parser.c" +#line 3974 "src/gen_parser.c" break; - case 208: /* top: "pub" type_alias ";" */ -#line 603 "src/parser.y" + case 207: /* top: "pub" type_alias ";" */ +#line 602 "src/parser.y" { (yyval.node) = (yyvsp[-1].node); ast_set_flags((yyvsp[-1].node), AST_FLAG_PUBLIC); } -#line 3984 "src/gen_parser.c" +#line 3980 "src/gen_parser.c" break; - case 209: /* top: "pub" type_template */ -#line 604 "src/parser.y" + case 208: /* top: "pub" type_template */ +#line 603 "src/parser.y" { (yyval.node) = (yyvsp[0].node); ast_set_flags((yyvsp[0].node), AST_FLAG_PUBLIC); } -#line 3990 "src/gen_parser.c" +#line 3986 "src/gen_parser.c" break; - case 210: /* top: var ";" */ -#line 605 "src/parser.y" + case 209: /* top: var ";" */ +#line 604 "src/parser.y" { (yyval.node) = (yyvsp[-1].node); } -#line 3996 "src/gen_parser.c" +#line 3992 "src/gen_parser.c" break; - case 211: /* top: "pub" var ";" */ -#line 606 "src/parser.y" + case 210: /* top: "pub" var ";" */ +#line 605 "src/parser.y" { (yyval.node) = (yyvsp[-1].node); ast_set_flags((yyvsp[-1].node), AST_FLAG_PUBLIC); } -#line 4002 "src/gen_parser.c" +#line 3998 "src/gen_parser.c" break; - case 212: /* top: error */ -#line 607 "src/parser.y" + case 211: /* top: error */ +#line 606 "src/parser.y" { (yyval.node) = gen_empty(); parser->failed = true; @@ -4016,29 +4012,29 @@ yyreduce: yyclearin; yyerrok; } -#line 4020 "src/gen_parser.c" +#line 4016 "src/gen_parser.c" break; - case 213: /* unit: top */ -#line 622 "src/parser.y" + case 212: /* unit: top */ +#line 621 "src/parser.y" { (yyval.node) = (yyvsp[0].node); } -#line 4026 "src/gen_parser.c" +#line 4022 "src/gen_parser.c" break; - case 214: /* unit: top unit */ -#line 623 "src/parser.y" + case 213: /* unit: top unit */ +#line 622 "src/parser.y" { (yyval.node) = (yyvsp[-1].node); (yyvsp[-1].node)->next = (yyvsp[0].node); } -#line 4032 "src/gen_parser.c" +#line 4028 "src/gen_parser.c" break; - case 215: /* input: unit */ -#line 626 "src/parser.y" + case 214: /* input: unit */ +#line 625 "src/parser.y" { parser->tree = (yyvsp[0].node); } -#line 4038 "src/gen_parser.c" +#line 4034 "src/gen_parser.c" break; -#line 4042 "src/gen_parser.c" +#line 4038 "src/gen_parser.c" default: break; } @@ -4267,5 +4263,5 @@ yyreturnlab: return yyresult; } -#line 629 "src/parser.y" +#line 628 "src/parser.y" -- cgit v1.3