aboutsummaryrefslogtreecommitdiff
path: root/gen/gen_parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'gen/gen_parser.c')
-rw-r--r--gen/gen_parser.c2364
1 files changed, 1193 insertions, 1171 deletions
diff --git a/gen/gen_parser.c b/gen/gen_parser.c
index df39070..744d3bc 100644
--- a/gen/gen_parser.c
+++ b/gen/gen_parser.c
@@ -161,7 +161,7 @@ enum yysymbol_kind_t
YYSYMBOL_PUB = 49, /* "pub" */
YYSYMBOL_STRUCT = 50, /* "struct" */
YYSYMBOL_UNION = 51, /* "union" */
- YYSYMBOL_TYPEDEF = 52, /* "type" */
+ YYSYMBOL_TYPEDEF = 52, /* "typedef" */
YYSYMBOL_IMPORT = 53, /* "import" */
YYSYMBOL_DEFER = 54, /* "defer" */
YYSYMBOL_GOTO = 55, /* "goto" */
@@ -584,16 +584,16 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 57
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 1987
+#define YYLAST 2050
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 82
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 63
/* YYNRULES -- Number of rules. */
-#define YYNRULES 216
+#define YYNRULES 217
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 434
+#define YYNSTATES 436
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 336
@@ -650,28 +650,28 @@ static const yytype_int8 yytranslate[] =
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_int16 yyrline[] =
{
- 0, 150, 150, 156, 157, 160, 163, 166, 167, 170,
- 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
- 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
- 191, 194, 197, 198, 199, 200, 201, 202, 205, 206,
- 207, 208, 209, 212, 213, 214, 217, 218, 221, 223,
- 224, 225, 226, 230, 231, 234, 238, 239, 240, 241,
- 242, 243, 244, 248, 249, 250, 251, 252, 253, 254,
- 255, 256, 257, 258, 259, 260, 263, 266, 272, 274,
- 275, 276, 277, 278, 280, 281, 282, 283, 284, 285,
- 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
- 296, 297, 313, 314, 317, 318, 321, 322, 325, 329,
- 336, 342, 343, 346, 347, 353, 354, 357, 360, 361,
- 362, 363, 366, 367, 371, 372, 375, 376, 377, 380,
- 383, 386, 387, 390, 393, 400, 404, 409, 417, 419,
- 423, 426, 428, 430, 432, 436, 437, 444, 445, 449,
- 452, 456, 460, 464, 469, 473, 474, 477, 478, 482,
- 488, 492, 498, 501, 504, 505, 508, 511, 516, 517,
- 518, 521, 524, 531, 532, 533, 534, 537, 538, 541,
- 542, 545, 550, 553, 559, 560, 563, 564, 565, 568,
- 569, 575, 579, 583, 591, 592, 593, 594, 595, 596,
- 597, 598, 599, 600, 601, 602, 603, 604, 605, 606,
- 607, 608, 609, 624, 625, 628, 629
+ 0, 151, 151, 157, 158, 161, 164, 167, 168, 171,
+ 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
+ 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 195, 198, 199, 200, 201, 202, 203, 206, 207,
+ 208, 209, 210, 213, 214, 215, 218, 219, 222, 224,
+ 225, 226, 227, 231, 232, 235, 239, 240, 241, 242,
+ 243, 244, 245, 249, 250, 251, 252, 253, 254, 255,
+ 256, 257, 258, 259, 260, 261, 264, 267, 273, 275,
+ 276, 277, 278, 279, 281, 282, 283, 284, 285, 286,
+ 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
+ 297, 298, 314, 315, 318, 319, 322, 323, 326, 330,
+ 337, 343, 344, 347, 348, 354, 355, 358, 361, 362,
+ 363, 364, 367, 368, 372, 373, 376, 377, 378, 381,
+ 384, 387, 388, 391, 394, 401, 405, 410, 418, 420,
+ 424, 427, 429, 431, 433, 437, 438, 445, 446, 450,
+ 453, 457, 461, 465, 468, 473, 477, 478, 481, 482,
+ 486, 492, 496, 502, 505, 508, 509, 512, 515, 520,
+ 521, 522, 525, 528, 535, 536, 537, 538, 541, 542,
+ 545, 546, 549, 554, 557, 563, 564, 567, 568, 569,
+ 572, 573, 579, 583, 587, 595, 596, 597, 598, 599,
+ 600, 601, 602, 603, 604, 605, 606, 607, 608, 609,
+ 610, 611, 612, 613, 628, 629, 632, 633
};
#endif
@@ -694,23 +694,23 @@ static const char *const yytname[] =
"\"~\"", "\"<\"", "\">\"", "\"<=\"", "\">=\"", "\"!=\"", "\"==\"",
"\"<<\"", "\">>\"", "\"+=\"", "\"-=\"", "\"*=\"", "\"/=\"", "\"%=\"",
"\"^=\"", "\"^^=\"", "\"&=\"", "\"|=\"", "\"<<=\"", "\">>=\"", "\"@\"",
- "\",\"", "\"pub\"", "\"struct\"", "\"union\"", "\"type\"", "\"import\"",
- "\"defer\"", "\"goto\"", "\"embed\"", "\"if\"", "\"else\"", "\"break\"",
- "\"continue\"", "\"switch\"", "\"case\"", "\"for\"", "\"while\"",
- "\"do\"", "\"mut\"", "\"return\"", "\"const\"", "\"extern\"", "\"enum\"",
- "\"define\"", "\"(\"", "\")\"", "\"{\"", "\"}\"", "\"[\"", "\"]\"",
- "\"as\"", "\".\"", "\"::\"", "\"=>\"", "$accept", "id", "var", "embed",
- "import", "assign", "binary_op", "unary_op", "arg", "arg_list",
- "param_decl", "decl_list", "call", "defer", "expr", "while", "do_while",
- "goto", "statement", "statement_list", "body", "macro_list", "macro",
- "expr_list", "struct_init", "struct_inits", "struct_construct",
- "init_expr", "cond", "expr_if", "if", "for", "case", "case_list",
- "switch", "const_for", "const_if", "const", "func_sign", "variadic_sign",
- "type", "var_decl", "var_init", "proc", "lambda", "struct_elem",
- "struct_list", "union", "generic", "generic_list", "struct",
- "template_elem", "template_list", "type_list", "type_alias",
- "type_template", "enum_val", "enum_list", "enum", "top_if", "top",
- "unit", "input", YY_NULLPTR
+ "\",\"", "\"pub\"", "\"struct\"", "\"union\"", "\"typedef\"",
+ "\"import\"", "\"defer\"", "\"goto\"", "\"embed\"", "\"if\"", "\"else\"",
+ "\"break\"", "\"continue\"", "\"switch\"", "\"case\"", "\"for\"",
+ "\"while\"", "\"do\"", "\"mut\"", "\"return\"", "\"const\"",
+ "\"extern\"", "\"enum\"", "\"define\"", "\"(\"", "\")\"", "\"{\"",
+ "\"}\"", "\"[\"", "\"]\"", "\"as\"", "\".\"", "\"::\"", "\"=>\"",
+ "$accept", "id", "var", "embed", "import", "assign", "binary_op",
+ "unary_op", "arg", "arg_list", "param_decl", "decl_list", "call",
+ "defer", "expr", "while", "do_while", "goto", "statement",
+ "statement_list", "body", "macro_list", "macro", "expr_list",
+ "struct_init", "struct_inits", "struct_construct", "init_expr", "cond",
+ "expr_if", "if", "for", "case", "case_list", "switch", "const_for",
+ "const_if", "const", "func_sign", "variadic_sign", "type", "var_decl",
+ "var_init", "proc", "lambda", "struct_elem", "struct_list", "union",
+ "generic", "generic_list", "struct", "template_elem", "template_list",
+ "type_list", "type_alias", "type_template", "enum_val", "enum_list",
+ "enum", "top_if", "top", "unit", "input", YY_NULLPTR
};
static const char *
@@ -720,12 +720,12 @@ yysymbol_name (yysymbol_kind_t yysymbol)
}
#endif
-#define YYPACT_NINF (-235)
+#define YYPACT_NINF (-230)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
-#define YYTABLE_NINF (-217)
+#define YYTABLE_NINF (-218)
#define yytable_value_is_error(Yyn) \
0
@@ -734,50 +734,50 @@ yysymbol_name (yysymbol_kind_t yysymbol)
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 563, -235, -235, -235, 322, 51, 51, 17, 15, 51,
- 51, 51, 332, 67, 81, -235, 111, -235, -235, -235,
- 114, -235, -235, 96, -235, 131, 126, 128, -235, -235,
- -235, 143, -235, -235, -16, 25, -235, 1110, -235, 85,
- 39, 87, 42, 1110, 68, 134, 82, 494, 90, -235,
- 80, -235, -235, -235, 976, -235, -235, -235, -235, -235,
- -235, 51, 51, 127, -235, -235, -235, -235, 1110, 51,
- 1110, 1110, 1110, 1110, 1110, -235, 100, 104, 1110, 51,
- 167, -51, -235, -235, -235, -235, -235, -235, 1203, -235,
- 82, -235, 167, 51, 34, -235, -235, 89, 976, -235,
- 976, -235, -235, 167, 411, 129, 27, -235, 137, 167,
- 1267, 167, 746, -235, 1140, 573, 1908, 101, -235, -235,
- 167, 139, 115, 221, -235, 179, 116, 51, -235, 265,
- 180, -235, 33, 117, 89, -235, 89, 89, 331, 591,
- 89, 1110, 188, 218, 1331, 111, 121, 157, 130, -235,
- 898, 167, 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, 1266, 167, 51, -21, 135, 203, 164, 145,
- 80, 32, -235, -235, 141, 167, 167, 167, 51, -235,
- 209, 167, -235, 167, 170, 150, -235, -235, 51, 1140,
- 222, 227, 1110, 1008, 1110, 80, 930, -4, -235, 246,
- 234, 236, 1395, -235, -235, 238, 670, 176, -235, -235,
- -235, -235, -235, -235, -235, 244, -235, -235, 1084, 1908,
- 80, 51, 212, 189, -235, 167, -235, 51, 192, 51,
- -235, -7, -235, 257, -235, -235, -235, 1459, 195, -235,
- -235, 51, 85, 1110, -235, 249, 225, 197, -235, -235,
- -235, 1908, -235, 8, 8, 8, 331, 331, 1364, 519,
- 591, 1556, 1492, 1428, 836, 836, 836, 836, 760, 760,
- 585, 585, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908,
- 1908, 1908, 199, -235, -235, 51, 1110, 51, -235, -235,
- 51, 80, -235, -235, 198, -235, 207, -235, -235, 167,
- -235, -235, 80, -235, -235, 1523, 266, 1587, 217, -235,
- 281, 1110, 51, -235, -235, -235, -235, -235, -235, -235,
- -235, -235, -235, 219, 237, 288, 573, -235, -235, -235,
- 51, -235, 51, 51, -235, -235, -235, -235, 80, -235,
- 1008, -235, 241, 226, 1908, -235, 229, -235, 167, -235,
- -235, 242, 247, 1110, -235, 1110, -235, 1587, 292, -235,
- -31, 976, -235, 231, 235, 245, -235, -235, -23, -235,
- 80, 240, -20, 1110, 247, 248, 1652, 1716, 253, 1110,
- -235, -235, -235, -235, 230, -235, 1266, -235, -235, -235,
- -235, -235, 1780, -235, -235, 1110, -235, -10, 1844, 80,
- 51, 252, 822, 1587, -235, -235, 1110, -235, 259, -235,
- -235, -235, -235, -235
+ 278, -230, -230, -230, 507, 42, 42, 47, -38, 42,
+ 42, 42, 608, 50, 54, -230, 59, -230, -230, -230,
+ 63, -230, -230, 206, -230, 95, 110, 124, -230, -230,
+ -230, 129, -230, -230, -19, 69, -230, 1157, -230, 70,
+ 22, 78, 43, 1157, 64, 141, 25, 1047, -33, -230,
+ 67, -230, -230, -230, 969, -230, -230, -230, -230, -230,
+ -230, 42, 42, 30, -230, -230, -230, -230, 1157, 42,
+ 1157, 1157, 1157, 1157, 1157, -230, 81, 83, 1157, 42,
+ 153, -21, -230, -230, -230, -230, -230, -230, 1266, -230,
+ 25, -230, 153, 42, 15, -230, -230, 82, 969, -230,
+ 969, -230, -230, 153, 101, 98, 16, -230, 114, 153,
+ 1330, 153, 153, 739, -230, 1203, 582, 1971, 86, -230,
+ -230, 153, 120, 97, 295, -230, 164, 100, 42, -230,
+ 556, 166, -230, 23, 103, 82, -230, 82, 82, 431,
+ 1491, 82, 1157, 174, 412, 1394, 59, 107, 134, 112,
+ -230, 891, 153, 1079, 1157, 1157, 1157, 1157, 1157, 1157,
+ 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157,
+ 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157,
+ 1157, 1157, 1157, 502, 153, 42, 18, 113, 182, 152,
+ 128, 67, 56, -230, -230, 135, 153, 153, 153, 42,
+ -230, 150, 153, -230, 153, 161, 140, -230, -230, -230,
+ 42, 1203, 204, 208, 1157, 1001, 1157, 67, 923, 74,
+ -230, 403, 209, 210, 1458, -230, -230, 212, 663, 149,
+ -230, -230, -230, -230, -230, -230, -230, 217, -230, -230,
+ 1125, 1971, 67, 42, 185, 155, -230, 153, -230, 42,
+ 160, 42, -230, 11, -230, 226, -230, -230, -230, 1522,
+ 162, -230, -230, 42, 70, 1157, -230, 449, 191, 171,
+ -230, -230, -230, 1971, -230, 8, 8, 8, 431, 431,
+ 1299, 1235, 1491, 677, 1427, 1363, 829, 829, 829, 829,
+ 753, 753, 175, 175, 1971, 1971, 1971, 1971, 1971, 1971,
+ 1971, 1971, 1971, 1971, 170, -230, -230, 42, 1157, 42,
+ -230, -230, 42, 67, -230, -230, 165, -230, 177, -230,
+ -230, 153, -230, -230, 67, -230, -230, 1586, 238, 1650,
+ 193, -230, 250, 1157, 42, -230, -230, -230, -230, -230,
+ -230, -230, -230, -230, -230, 188, 211, 256, 582, -230,
+ -230, -230, 42, -230, 42, 42, -230, -230, -230, -230,
+ 67, -230, 1001, -230, 213, 195, 1971, -230, 200, -230,
+ 153, -230, -230, 222, 220, 1157, -230, 1157, -230, 1650,
+ 255, -230, -31, 969, -230, 214, 218, 215, -230, -230,
+ -20, -230, 67, 219, -17, 1157, 220, 229, 1715, 1779,
+ 227, 1157, -230, -230, -230, -230, 231, -230, 502, -230,
+ -230, -230, -230, -230, 1843, -230, -230, 1157, -230, -16,
+ 1907, 67, 42, 235, 815, 1650, -230, -230, 1157, -230,
+ 236, -230, -230, -230, -230, -230
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -785,73 +785,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, 213, 2, 195, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 199, 3, 4, 197, 198,
+ 0, 203, 196, 0, 216, 0, 0, 0, 207, 206,
+ 205, 0, 210, 204, 0, 0, 6, 0, 200, 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, 60, 61, 62, 0, 0,
+ 0, 157, 211, 201, 0, 202, 215, 1, 212, 208,
+ 209, 0, 0, 0, 182, 60, 61, 62, 0, 0,
0, 0, 0, 0, 0, 59, 0, 0, 0, 0,
0, 56, 74, 64, 67, 68, 65, 66, 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, 58, 39, 70, 38, 40,
- 42, 0, 0, 56, 0, 0, 0, 107, 0, 73,
+ 0, 162, 0, 0, 0, 148, 150, 153, 0, 155,
+ 0, 156, 144, 0, 147, 52, 0, 48, 51, 0,
+ 0, 0, 0, 0, 161, 0, 0, 118, 120, 158,
+ 119, 0, 171, 0, 0, 164, 0, 0, 0, 184,
+ 0, 0, 177, 179, 0, 41, 58, 39, 70, 38,
+ 40, 42, 0, 0, 56, 0, 0, 0, 107, 0,
+ 73, 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, 185, 189,
+ 0, 0, 0, 159, 160, 0, 0, 0, 0, 0,
+ 141, 0, 0, 151, 0, 181, 0, 154, 101, 100,
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, 63,
- 69, 0, 0, 0, 54, 56, 47, 0, 45, 44,
- 72, 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, 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
+ 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, 169, 0,
+ 0, 166, 172, 0, 174, 0, 176, 178, 183, 0,
+ 0, 63, 69, 0, 0, 0, 54, 56, 47, 0,
+ 45, 44, 72, 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, 188,
+ 191, 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, 170, 0, 165, 0, 0, 175, 55, 5, 106,
+ 0, 43, 0, 53, 192, 0, 186, 187, 0, 108,
+ 0, 140, 180, 126, 0, 0, 76, 0, 80, 0,
+ 0, 123, 0, 0, 115, 0, 0, 0, 163, 46,
+ 0, 190, 0, 0, 0, 0, 132, 0, 0, 0,
+ 135, 0, 124, 125, 114, 173, 0, 167, 0, 194,
+ 109, 146, 127, 128, 0, 131, 133, 0, 77, 0,
+ 112, 0, 0, 0, 0, 0, 136, 137, 0, 134,
+ 0, 193, 130, 129, 111, 168
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -235, 0, 3, -235, 4, -235, -235, -235, 122, -18,
- -235, -62, -235, -235, 293, -235, -235, -235, -235, -223,
- -34, -92, 9, -82, -235, 11, 202, -30, 146, -219,
- -33, -235, -235, -32, -235, -235, -48, -235, -12, -235,
- 440, 20, -63, 372, -235, -235, -216, -235, -235, -222,
- 10, -235, 250, 58, 13, 14, -235, -234, 16, -9,
- -235, -22, -235
+ -230, 0, -3, -230, 3, -230, -230, -230, 68, -76,
+ -230, -66, -230, -230, 225, -230, -230, -230, -230, -213,
+ 122, -92, 4, -141, -230, -54, 147, -32, 104, -224,
+ -88, -230, -230, -82, -230, -230, -102, -230, -12, -230,
+ 415, 279, -75, 314, -230, -230, -217, -230, -230, -229,
+ 9, -230, 186, -1, 10, 13, -230, -207, 14, -68,
+ -230, 5, -230
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- 0, 81, 13, 82, 14, 83, 84, 85, 266, 267,
- 105, 106, 86, 87, 116, 223, 224, 225, 226, 227,
- 228, 148, 15, 419, 242, 243, 117, 268, 240, 119,
- 230, 231, 394, 395, 232, 333, 334, 233, 49, 50,
- 51, 16, 17, 18, 89, 125, 126, 131, 121, 122,
- 19, 132, 133, 205, 20, 21, 188, 189, 22, 38,
+ 0, 81, 13, 82, 14, 83, 84, 85, 268, 269,
+ 105, 106, 86, 87, 117, 225, 226, 227, 228, 229,
+ 230, 149, 15, 421, 244, 245, 118, 270, 242, 120,
+ 232, 233, 396, 397, 234, 335, 336, 235, 49, 50,
+ 51, 16, 17, 18, 89, 126, 127, 132, 122, 123,
+ 19, 133, 134, 206, 20, 21, 189, 190, 22, 38,
23, 24, 25
};
@@ -860,408 +860,422 @@ 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, 150, 36, 12, 118, 349, 114, 91, 185, 151,
- 95, 2, 42, 351, 37, 48, 198, 209, 43, 2,
- 2, 310, 48, 112, 48, 48, 104, 331, 2, 42,
- 92, 406, 199, 331, 112, 43, 61, 2, 62, 332,
- 200, 120, 123, 129, 112, 352, 108, 353, 192, 135,
- 193, 363, 37, 365, 2, 42, 98, 52, 143, 147,
- 48, 43, 124, 130, 127, 244, 183, 184, 2, 42,
- 104, 53, 48, 187, 147, 43, -213, 1, 145, 63,
- 199, 47, 2, 48, 48, 311, 3, 190, 200, 48,
- 108, 48, 219, 93, 90, 220, 221, 253, 47, 54,
- 48, 229, 234, 48, 55, 235, 236, 251, 237, 48,
- 384, 57, 129, 2, 383, 313, 58, 385, 59, 317,
- 2, 42, 100, 48, 47, 4, 5, 43, 6, 7,
- 265, 48, 130, 60, 112, 102, 309, 90, 47, 94,
- 302, 401, 111, 103, 8, 9, 10, 11, 184, 357,
- 269, -213, 141, 2, 42, 146, 142, 197, 127, 245,
- 43, 328, 12, 48, 304, 201, 330, 247, 248, 249,
- 254, 250, 256, 258, 260, 48, 48, 104, 314, 430,
- 48, 104, 128, 48, 428, 261, 344, 262, 321, 305,
- 47, 306, 307, 265, 312, 2, 42, 108, 319, 48,
- 308, 108, 43, 320, 2, 42, 219, 2, 42, 220,
- 221, 43, 323, 269, 43, 229, 234, 324, 143, 235,
- 236, 345, 237, 47, 336, 48, 337, 120, 339, 123,
- 358, 341, 2, 42, 342, 2, 42, 335, 145, 43,
- 346, 147, 43, 265, 347, 48, 350, 354, 356, 124,
- 361, 2, 42, 360, 362, 252, 373, 367, 43, 368,
- 369, 375, 315, 359, 44, 47, 45, 195, 371, 196,
- 150, 376, 379, 374, 47, 380, 381, 47, 151, 388,
- 392, 389, 390, 399, 420, 187, 403, 187, 404, 393,
- 366, 417, 44, 409, 45, 195, 244, 196, 150, 48,
- 405, 150, 47, 414, 386, 47, 151, 429, 2, 151,
- 88, 195, 378, 196, 433, 326, 97, 90, 2, 42,
- 110, 47, 387, 398, 432, 43, 400, 153, 154, 155,
- 123, 402, 120, 123, 272, 322, 408, 382, 410, 411,
- 265, 134, 413, 136, 137, 138, 139, 140, 48, 425,
- 124, 144, 5, 124, 6, 7, 29, 370, 0, 407,
- 269, 0, 255, 424, 421, 427, 0, 0, 0, 431,
- 0, 9, 10, 11, 0, 0, 0, 0, 44, 0,
- 45, 0, 0, 0, 46, 222, 12, 239, 47, 183,
- 184, 0, 0, 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, 195, 0, 196,
- 0, 0, 96, 111, 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, 0, 0,
- 107, 144, 186, 0, 0, 153, 154, 155, 156, 157,
- 0, 75, 160, 194, 0, 0, 0, 0, 76, 202,
- 77, 204, 0, 170, 171, 0, 139, 0, 0, 0,
- 246, 0, 0, -216, 1, 0, 78, 0, 0, 2,
- 79, 109, 80, 3, 0, 0, 65, 66, 67, 2,
- 68, 0, 69, 0, 0, 70, 0, 71, 0, 0,
- 0, 270, 72, 0, 0, 0, 73, 183, 184, 364,
- 74, 153, 154, 155, 156, 157, 0, 153, 154, 155,
- 156, 157, 4, 5, 0, 6, 7, 0, 0, 0,
- 75, 0, 0, 303, 377, 170, 171, 76, 0, 77,
- 114, 8, 9, 10, 11, 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, 183, 184, 0, 396, 0, 397, 183,
- 184, 206, 0, 65, 66, 67, 2, 68, 0, 69,
- 207, 0, 70, 0, 71, 348, 412, 0, 0, 72,
- 0, 0, 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, 263, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 78, 264, 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, 263, 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,
+ 12, 26, 192, 147, 12, 34, 35, 27, 28, 39,
+ 40, 41, 48, 30, 31, 342, 345, 32, 33, 37,
+ 351, 2, 119, 12, 186, 199, 115, 91, 56, 2,
+ 95, 2, 42, 92, 353, 48, 2, 37, 43, 111,
+ 211, 333, 48, 113, 48, 48, 104, 112, 2, 2,
+ 42, 151, 36, 61, 408, 62, 43, 113, 113, 152,
+ 52, 121, 124, 130, 53, 312, 193, 54, 194, 136,
+ 2, 42, 98, 55, 128, 2, 42, 43, 144, 148,
+ 48, 128, 43, 354, 246, 355, 184, 185, 191, 200,
+ 104, 200, 48, 188, 148, 57, 93, 201, 102, 201,
+ 365, 47, 367, 48, 48, 129, 103, 2, 42, 48,
+ 222, 48, 48, 221, 43, 90, 223, 231, 255, 47,
+ 58, 48, 236, 237, 48, 386, 238, 239, 253, 313,
+ 48, 333, 315, 130, 59, 385, 319, 334, 387, 60,
+ 47, 113, 90, 63, 48, 47, 198, 2, 42, 100,
+ 94, 267, 48, 142, 43, 143, 2, 42, 403, 2,
+ 42, 185, 202, 43, 247, 147, 43, 196, 249, 197,
+ 250, 359, 114, 111, 251, 252, 256, 47, 258, 260,
+ 262, 112, 263, 12, 48, 306, 332, 307, 304, 264,
+ 308, 154, 155, 156, 157, 158, 48, 48, 104, 316,
+ 309, 48, 104, 310, 48, 430, -214, 1, 314, 321,
+ 323, 432, 2, 322, 325, 267, 3, 47, 326, 338,
+ 339, 48, 341, 317, 343, 222, 47, 344, 221, 47,
+ 349, 223, 231, 348, 352, 358, 356, 236, 237, 362,
+ 144, 238, 239, 347, 363, 364, 370, 48, 375, 121,
+ 371, 124, 360, 184, 185, 4, 5, 377, 6, 7,
+ 378, 381, 88, 148, 383, 267, 401, 48, 97, 382,
+ 391, 390, 110, 392, 8, 9, 10, 11, -217, 1,
+ 394, -214, 395, 328, 2, 419, 389, 434, 3, 405,
+ 407, 406, 411, 135, 384, 137, 138, 139, 140, 141,
+ 274, 2, 42, 145, 416, 422, 413, 188, 43, 188,
+ 431, 435, 368, 311, 415, 324, 246, 427, 29, 257,
+ 372, 48, 409, 0, 0, 108, 0, 4, 5, 0,
+ 6, 7, 0, 0, 380, 0, 0, 0, 224, 330,
+ 241, 125, 131, 0, 0, 0, 8, 9, 10, 11,
+ 0, 404, 124, 0, 121, 124, 0, 146, 0, 0,
+ 0, 196, 267, 197, 346, 0, 0, 259, 0, 108,
+ 48, 47, 0, 0, 0, 0, 0, 0, 273, 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, 302, 303, 12, 2,
+ 42, 0, 131, 423, 337, 0, 43, 0, 2, 42,
+ 0, 222, 124, 0, 221, 43, 0, 223, 231, 0,
+ 271, 0, 0, 236, 237, 369, 241, 238, 239, 327,
+ 0, 329, 0, 0, 0, 0, 373, 154, 155, 156,
+ 64, 376, 0, 224, 0, 2, 42, 96, 0, 99,
+ 101, 107, 43, 0, 0, 145, 0, 0, 0, 44,
+ 0, 45, 0, 0, 0, 151, 0, 108, 44, 47,
+ 45, 108, 388, 152, 151, 0, 0, 0, 47, 0,
+ 140, 0, 152, 0, 271, 150, 0, 0, 0, 0,
+ 0, 400, 0, 1, 402, 107, 0, 187, 2, 184,
+ 185, 0, 3, 2, 410, 196, 412, 197, 195, 146,
+ 0, 151, 0, 0, 203, 47, 205, 207, 0, 152,
+ 125, 0, 0, 366, 0, 0, 248, 0, 0, 0,
+ 0, 426, 0, 429, 361, 0, 0, 433, 0, 0,
+ 0, 4, 5, 0, 6, 7, 0, 5, 379, 6,
+ 7, 0, 2, 42, 0, 0, 254, 272, 0, 43,
+ 8, 9, 10, 11, 0, 0, 9, 10, 11, 0,
+ 0, 0, 0, 0, 0, 65, 66, 67, 2, 68,
+ 0, 69, 0, 0, 70, 0, 71, 0, 0, 305,
+ 398, 72, 399, 0, 0, 73, 0, 0, 0, 74,
+ 0, 99, 101, 107, 2, 42, 318, 107, 0, 320,
+ 414, 43, 196, 0, 197, 0, 420, 0, 90, 75,
+ 0, 125, 47, 0, 125, 0, 76, 0, 77, 115,
+ 0, 271, 425, 0, 0, 0, 0, 0, 0, 224,
+ 0, 0, 0, 420, 78, 0, 116, 0, 79, 0,
+ 80, 243, 350, 0, 208, 0, 65, 66, 67, 2,
+ 68, 0, 69, 209, 44, 70, 45, 71, 0, 0,
+ 46, 0, 72, 0, 47, 0, 73, 0, 0, 0,
+ 74, 0, 0, 154, 155, 156, 157, 158, 0, 160,
+ 161, 125, 0, 0, 0, 0, 0, 0, 0, 0,
+ 75, 171, 172, 5, 0, 6, 7, 76, 210, 77,
+ 211, 0, 212, 213, 214, -103, 215, 216, 217, 0,
+ 218, 219, 0, 10, 11, 78, 205, 113, -103, 79,
+ 208, 80, 65, 66, 67, 2, 68, 0, 69, 209,
+ 0, 70, 0, 71, 0, 184, 185, 0, 72, 0,
+ 0, 0, 73, 0, 0, 0, 74, 0, 0, 154,
+ 155, 156, 157, 158, 0, 160, 161, 162, 0, 0,
+ 0, 165, 166, 167, 168, 393, 75, 171, 172, 5,
+ 0, 6, 7, 76, 210, 77, 211, 0, 212, 213,
+ 214, 0, 215, 216, 217, 0, 218, 219, 0, 10,
+ 11, 78, 0, 113, 220, 79, 208, 80, 65, 66,
+ 67, 2, 68, 0, 69, 209, 0, 70, 0, 71,
+ 0, 184, 185, 0, 72, 0, 0, 0, 73, 0,
+ 0, 0, 74, 0, 0, 154, 155, 156, 157, 158,
+ 0, 160, 161, 162, 0, 0, 0, 0, 0, 0,
+ 0, 0, 75, 171, 172, 5, 0, 6, 7, 76,
+ 210, 77, 211, 0, 212, 213, 214, 0, 215, 216,
+ 217, 0, 218, 219, 0, 10, 11, 78, 0, 113,
+ 0, 79, 0, 80, 65, 66, 67, 2, 68, 0,
+ 69, 0, 0, 70, 0, 71, 0, 184, 185, 0,
+ 72, 0, 0, 0, 265, 0, 0, 0, 74, 0,
+ 0, 0, 0, 0, 0, 0, 65, 66, 67, 2,
+ 68, 0, 69, 331, 0, 70, 0, 71, 75, 0,
+ 0, 0, 72, 0, 0, 76, 73, 77, 115, 0,
+ 74, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 78, 266, 116, 0, 79, 0, 80,
+ 75, 0, 65, 66, 67, 2, 68, 76, 69, 77,
+ 115, 70, 0, 71, 0, 0, 0, 0, 72, 0,
+ 0, 0, 73, 0, 0, 78, 74, 116, 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, 265, 77, 115, 0, 74, 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, 78, 0, 116, 0, 79, 0, 80, 75, 0,
+ 65, 66, 67, 2, 68, 76, 69, 77, 115, 70,
+ 0, 71, 0, 0, 0, 0, 72, 0, 0, 0,
+ 73, 0, 0, 78, 74, 116, 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, 73, 77, 0, 0, 74, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,
+ 0, 0, 0, 79, 109, 80, 75, 0, 65, 66,
+ 67, 2, 68, 76, 69, 77, 0, 70, 0, 71,
+ 0, 0, 0, 0, 72, 0, 0, 0, 73, 0,
+ 0, 78, 74, 116, 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,
+ 73, 77, 115, 0, 74, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 78, 0, 0,
+ 0, 79, 0, 80, 75, 0, 65, 66, 67, 2,
+ 68, 76, 69, 77, 0, 70, 0, 71, 0, 0,
+ 0, 0, 72, 0, 0, 0, 73, 0, 0, 78,
+ 74, 0, 0, 79, 0, 80, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 152, 238, 0, 0, 0, 79, 0, 80, 153,
+ 75, 154, 155, 156, 157, 158, 0, 76, 161, 77,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 171,
+ 172, 0, 0, 0, 153, 240, 0, 0, 0, 79,
+ 0, 80, 154, 155, 156, 157, 158, 159, 160, 161,
+ 162, 163, 164, 0, 165, 166, 167, 168, 169, 170,
+ 171, 172, 173, 174, 175, 176, 177, 178, 0, 179,
+ 180, 181, 182, 184, 185, 154, 155, 156, 157, 158,
+ 0, 160, 161, 162, 163, 164, 0, 165, 166, 167,
+ 168, 169, 170, 171, 172, 0, 0, 0, 153, 0,
+ 183, 0, 0, 0, 184, 185, 154, 155, 156, 157,
+ 158, 159, 160, 161, 162, 163, 164, 0, 165, 166,
+ 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
+ 177, 178, 0, 179, 180, 181, 182, 184, 185, 154,
+ 155, 156, 157, 158, 0, 160, 161, 162, 163, 0,
+ 0, 165, 166, 167, 168, 169, 170, 171, 172, 0,
+ 0, 0, 153, 0, 0, 0, 0, 204, 184, 185,
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,
+ 164, 0, 165, 166, 167, 168, 169, 170, 171, 172,
+ 173, 174, 175, 176, 177, 178, 0, 179, 180, 181,
+ 182, 184, 185, 154, 155, 156, 157, 158, 0, 160,
+ 161, 162, 0, 0, 0, 165, 166, 167, 168, 169,
+ 170, 171, 172, 0, 0, 0, 153, 261, 340, 0,
+ 0, 0, 184, 185, 154, 155, 156, 157, 158, 159,
+ 160, 161, 162, 163, 164, 0, 165, 166, 167, 168,
+ 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
+ 0, 179, 180, 181, 182, 184, 185, 154, 155, 156,
+ 157, 158, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 171, 172, 0, 0, 0,
+ 153, 0, 0, 0, 0, 0, 184, 185, 154, 155,
+ 156, 157, 158, 159, 160, 161, 162, 163, 164, 0,
+ 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
+ 175, 176, 177, 178, 0, 179, 180, 181, 182, 184,
+ 185, 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, 1, 0, 0,
- 0, 0, 2, 0, 0, 152, 3, 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, 0, 4, 5, 0, 6, 7,
+ 0, 0, 0, 0, 153, 357, 0, 0, 0, 0,
+ 184, 185, 154, 155, 156, 157, 158, 159, 160, 161,
+ 162, 163, 164, 0, 165, 166, 167, 168, 169, 170,
+ 171, 172, 173, 174, 175, 176, 177, 178, 0, 179,
+ 180, 181, 182, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 8, 9, 10, 11, 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, 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, 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, 161, 162, 0, 0, 164, 165, 166, 167,
- 168, 169, 170, 171, 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,
+ 0, 0, 0, 0, 0, 0, 0, 0, 153, 0,
+ 374, 0, 0, 0, 184, 185, 154, 155, 156, 157,
+ 158, 159, 160, 161, 162, 163, 164, 0, 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, 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, 153, 154, 155, 156, 157, 0, 159, 160,
+ 177, 178, 0, 179, 180, 181, 182, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 170, 171, 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, 183, 184, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 153, 113, 417, 0, 0, 184, 185,
+ 0, 154, 155, 156, 157, 158, 159, 160, 161, 162,
+ 163, 164, 0, 165, 166, 167, 168, 169, 170, 171,
+ 172, 173, 174, 175, 176, 177, 178, 0, 179, 180,
+ 181, 182, 0, 0, 0, 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, 153, 0, 418,
+ 0, 0, 0, 184, 185, 154, 155, 156, 157, 158,
+ 159, 160, 161, 162, 163, 164, 0, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 0, 179, 180, 181, 182, 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, 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, 153, 0, 0, 424, 0, 0, 184, 185, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+ 0, 165, 166, 167, 168, 169, 170, 171, 172, 173,
+ 174, 175, 176, 177, 178, 0, 179, 180, 181, 182,
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, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 153, 0, 0, 0, 0,
+ 0, 184, 185, 154, 155, 156, 157, 158, 159, 160,
+ 161, 162, 163, 164, 0, 165, 166, 167, 168, 169,
+ 170, 171, 172, 173, 174, 175, 176, 177, 178, 0,
+ 179, 180, 181, 182, 0, 428, 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, 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, 0, 0, 0, 0, 0, 0, 0, 153,
+ 0, 0, 0, 0, 0, 184, 185, 154, 155, 156,
+ 157, 158, 159, 160, 161, 162, 163, 164, 0, 165,
+ 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 0, 179, 180, 181, 182, 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, 0, 0, 0, 0, 0, 0, 0, 184,
+ 185
};
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, 72, 5, 23, 54, 247, 57, 39, 90, 80,
- 42, 6, 7, 249, 57, 35, 9, 57, 13, 6,
- 6, 9, 42, 74, 44, 45, 46, 57, 6, 7,
- 11, 74, 73, 57, 74, 13, 72, 6, 74, 63,
- 81, 61, 62, 63, 74, 72, 46, 74, 98, 69,
- 100, 305, 57, 307, 6, 7, 8, 10, 78, 79,
- 80, 13, 62, 63, 51, 115, 78, 79, 6, 7,
- 90, 10, 92, 93, 94, 13, 0, 1, 78, 74,
- 73, 76, 6, 103, 104, 73, 10, 73, 81, 109,
- 90, 111, 112, 74, 72, 112, 112, 129, 76, 8,
- 120, 112, 112, 123, 10, 112, 112, 127, 112, 129,
- 352, 0, 132, 6, 350, 197, 10, 353, 10, 201,
- 6, 7, 8, 143, 76, 49, 50, 13, 52, 53,
- 150, 151, 132, 10, 74, 73, 190, 72, 76, 72,
- 182, 380, 72, 81, 68, 69, 70, 71, 79, 261,
- 150, 75, 72, 6, 7, 238, 72, 48, 51, 78,
- 13, 215, 182, 183, 184, 48, 216, 48, 73, 10,
- 10, 75, 75, 5, 73, 195, 196, 197, 198, 422,
- 200, 201, 75, 203, 420, 48, 240, 77, 208, 74,
- 76, 8, 48, 213, 73, 6, 7, 197, 48, 219,
- 75, 201, 13, 73, 6, 7, 226, 6, 7, 226,
- 226, 13, 10, 213, 13, 226, 226, 10, 238, 226,
- 226, 241, 226, 76, 10, 245, 10, 247, 10, 249,
- 262, 75, 6, 7, 10, 6, 7, 11, 238, 13,
- 48, 261, 13, 263, 75, 265, 74, 10, 73, 249,
- 73, 6, 7, 48, 75, 10, 10, 311, 13, 81,
- 73, 64, 73, 263, 66, 76, 68, 66, 322, 68,
- 72, 10, 73, 327, 76, 58, 8, 76, 80, 58,
- 58, 75, 73, 11, 74, 305, 75, 307, 73, 62,
- 310, 58, 66, 73, 68, 66, 346, 68, 72, 319,
- 75, 72, 76, 75, 358, 76, 80, 75, 6, 80,
- 37, 66, 332, 68, 75, 213, 43, 72, 6, 7,
- 47, 76, 360, 377, 426, 13, 380, 16, 17, 18,
- 350, 381, 352, 353, 152, 209, 390, 346, 392, 392,
- 360, 68, 394, 70, 71, 72, 73, 74, 368, 417,
- 350, 78, 50, 353, 52, 53, 4, 319, -1, 388,
- 360, -1, 132, 417, 406, 419, -1, -1, -1, 423,
- -1, 69, 70, 71, -1, -1, -1, -1, 66, -1,
- 68, -1, -1, -1, 72, 112, 406, 114, 76, 78,
- 79, -1, -1, -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, -1, -1,
- 90, 238, 92, -1, -1, 16, 17, 18, 19, 20,
- -1, 47, 23, 103, -1, -1, -1, -1, 54, 109,
- 56, 111, -1, 34, 35, -1, 263, -1, -1, -1,
- 120, -1, -1, 0, 1, -1, 72, -1, -1, 6,
- 76, 77, 78, 10, -1, -1, 3, 4, 5, 6,
- 7, -1, 9, -1, -1, 12, -1, 14, -1, -1,
- -1, 151, 19, -1, -1, -1, 23, 78, 79, 306,
- 27, 16, 17, 18, 19, 20, -1, 16, 17, 18,
- 19, 20, 49, 50, -1, 52, 53, -1, -1, -1,
- 47, -1, -1, 183, 331, 34, 35, 54, -1, 56,
- 57, 68, 69, 70, 71, 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, 78, 79, -1, 373, -1, 375, 78,
- 79, 1, -1, 3, 4, 5, 6, 7, -1, 9,
- 10, -1, 12, -1, 14, 245, 393, -1, -1, 19,
- -1, -1, 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,
- 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,
- -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, 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,
+ 0, 4, 94, 78, 4, 5, 6, 4, 4, 9,
+ 10, 11, 12, 4, 4, 228, 240, 4, 4, 57,
+ 249, 6, 54, 23, 90, 9, 57, 39, 23, 6,
+ 42, 6, 7, 11, 251, 35, 6, 57, 13, 72,
+ 57, 57, 42, 74, 44, 45, 46, 80, 6, 6,
+ 7, 72, 5, 72, 74, 74, 13, 74, 74, 80,
+ 10, 61, 62, 63, 10, 9, 98, 8, 100, 69,
+ 6, 7, 8, 10, 51, 6, 7, 13, 78, 79,
+ 80, 51, 13, 72, 116, 74, 78, 79, 73, 73,
+ 90, 73, 92, 93, 94, 0, 74, 81, 73, 81,
+ 307, 76, 309, 103, 104, 75, 81, 6, 7, 109,
+ 113, 111, 112, 113, 13, 72, 113, 113, 130, 76,
+ 10, 121, 113, 113, 124, 354, 113, 113, 128, 73,
+ 130, 57, 198, 133, 10, 352, 202, 63, 355, 10,
+ 76, 74, 72, 74, 144, 76, 48, 6, 7, 8,
+ 72, 151, 152, 72, 13, 72, 6, 7, 382, 6,
+ 7, 79, 48, 13, 78, 240, 13, 66, 48, 68,
+ 73, 263, 50, 72, 10, 75, 10, 76, 75, 5,
+ 73, 80, 48, 183, 184, 185, 218, 74, 183, 77,
+ 8, 16, 17, 18, 19, 20, 196, 197, 198, 199,
+ 48, 201, 202, 75, 204, 422, 0, 1, 73, 48,
+ 210, 424, 6, 73, 10, 215, 10, 76, 10, 10,
+ 10, 221, 10, 73, 75, 228, 76, 10, 228, 76,
+ 75, 228, 228, 48, 74, 73, 10, 228, 228, 48,
+ 240, 228, 228, 243, 73, 75, 81, 247, 10, 249,
+ 73, 251, 264, 78, 79, 49, 50, 64, 52, 53,
+ 10, 73, 37, 263, 8, 265, 11, 267, 43, 58,
+ 75, 58, 47, 73, 68, 69, 70, 71, 0, 1,
+ 58, 75, 62, 215, 6, 58, 362, 428, 10, 75,
+ 75, 73, 73, 68, 348, 70, 71, 72, 73, 74,
+ 153, 6, 7, 78, 75, 74, 394, 307, 13, 309,
+ 75, 75, 312, 191, 396, 211, 348, 419, 4, 133,
+ 321, 321, 390, -1, -1, 46, -1, 49, 50, -1,
+ 52, 53, -1, -1, 334, -1, -1, -1, 113, 217,
+ 115, 62, 63, -1, -1, -1, 68, 69, 70, 71,
+ -1, 383, 352, -1, 354, 355, -1, 78, -1, -1,
+ -1, 66, 362, 68, 242, -1, -1, 142, -1, 90,
+ 370, 76, -1, -1, -1, -1, -1, -1, 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, 182, 408, 6,
+ 7, -1, 133, 408, 11, -1, 13, -1, 6, 7,
+ -1, 424, 422, -1, 424, 13, -1, 424, 424, -1,
+ 151, -1, -1, 424, 424, 313, 211, 424, 424, 214,
+ -1, 216, -1, -1, -1, -1, 324, 16, 17, 18,
+ 35, 329, -1, 228, -1, 6, 7, 42, -1, 44,
+ 45, 46, 13, -1, -1, 240, -1, -1, -1, 66,
+ -1, 68, -1, -1, -1, 72, -1, 198, 66, 76,
+ 68, 202, 360, 80, 72, -1, -1, -1, 76, -1,
+ 265, -1, 80, -1, 215, 80, -1, -1, -1, -1,
+ -1, 379, -1, 1, 382, 90, -1, 92, 6, 78,
+ 79, -1, 10, 6, 392, 66, 394, 68, 103, 240,
+ -1, 72, -1, -1, 109, 76, 111, 112, -1, 80,
+ 251, -1, -1, 308, -1, -1, 121, -1, -1, -1,
+ -1, 419, -1, 421, 265, -1, -1, 425, -1, -1,
+ -1, 49, 50, -1, 52, 53, -1, 50, 333, 52,
+ 53, -1, 6, 7, -1, -1, 10, 152, -1, 13,
+ 68, 69, 70, 71, -1, -1, 69, 70, 71, -1,
+ -1, -1, -1, -1, -1, 3, 4, 5, 6, 7,
+ -1, 9, -1, -1, 12, -1, 14, -1, -1, 184,
+ 375, 19, 377, -1, -1, 23, -1, -1, -1, 27,
+ -1, 196, 197, 198, 6, 7, 201, 202, -1, 204,
+ 395, 13, 66, -1, 68, -1, 401, -1, 72, 47,
+ -1, 352, 76, -1, 355, -1, 54, -1, 56, 57,
+ -1, 362, 417, -1, -1, -1, -1, -1, -1, 424,
+ -1, -1, -1, 428, 72, -1, 74, -1, 76, -1,
+ 78, 79, 247, -1, 1, -1, 3, 4, 5, 6,
+ 7, -1, 9, 10, 66, 12, 68, 14, -1, -1,
+ 72, -1, 19, -1, 76, -1, 23, -1, -1, -1,
+ 27, -1, -1, 16, 17, 18, 19, 20, -1, 22,
+ 23, 422, -1, -1, -1, -1, -1, -1, -1, -1,
+ 47, 34, 35, 50, -1, 52, 53, 54, 55, 56,
+ 57, -1, 59, 60, 61, 62, 63, 64, 65, -1,
+ 67, 68, -1, 70, 71, 72, 321, 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, 16,
+ 17, 18, 19, 20, -1, 22, 23, 24, -1, -1,
+ -1, 28, 29, 30, 31, 370, 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, 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, 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, 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, -1, -1, -1, -1, -1, -1, 1, -1, -1,
- -1, -1, 6, -1, -1, 8, 10, 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, 49, 50, -1, 52, 53,
+ -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,
+ -1, -1, 3, 4, 5, 6, 7, -1, 9, -1,
+ -1, 12, -1, 14, 47, -1, -1, -1, 19, -1,
+ -1, 54, 23, 56, -1, -1, 27, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 72,
+ -1, -1, -1, 76, 77, 78, 47, -1, 3, 4,
+ 5, 6, 7, 54, 9, 56, -1, 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, -1,
+ -1, 76, -1, 78, 47, -1, 3, 4, 5, 6,
+ 7, 54, 9, 56, -1, 12, -1, 14, -1, -1,
+ -1, -1, 19, -1, -1, -1, 23, -1, -1, 72,
+ 27, -1, -1, 76, -1, 78, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 68, 69, 70, 71, -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, -1, -1,
- 16, 17, 18, 19, 20, -1, 22, 23, 24, 25,
+ 47, 16, 17, 18, 19, 20, -1, 54, 23, 56,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 34,
+ 35, -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, 78, 79, 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, 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,
- -1, -1, -1, 8, 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, 25, -1, -1, 28, 29, 30, 31,
- 32, 33, 34, 35, -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, 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, -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, 22, 23,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 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, 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, -1,
- 8, 74, 10, -1, -1, 78, 79, -1, 16, 17,
+ 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, 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, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 34, 35, -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,
+ 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, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 8, -1, 10, -1, -1, -1,
+ -1, -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, -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,
+ 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, -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,
+ -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, 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, 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, -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, -1, 78, 79
+ -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, -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
};
/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
@@ -1279,39 +1293,39 @@ static const yytype_uint8 yystos[] =
78, 83, 85, 87, 88, 89, 94, 95, 96, 126,
72, 120, 11, 74, 72, 120, 122, 96, 8, 122,
8, 122, 73, 81, 83, 92, 93, 122, 123, 77,
- 96, 72, 74, 102, 57, 74, 96, 108, 109, 111,
- 83, 130, 131, 83, 123, 127, 128, 51, 75, 83,
- 123, 129, 133, 134, 96, 83, 96, 96, 96, 96,
- 96, 72, 72, 83, 96, 123, 124, 83, 103, 122,
- 72, 80, 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, 93, 122, 83, 138, 139,
- 73, 103, 109, 109, 122, 66, 68, 48, 9, 73,
- 81, 48, 122, 77, 122, 135, 1, 10, 55, 57,
- 59, 60, 61, 63, 64, 65, 67, 68, 75, 83,
- 84, 86, 96, 97, 98, 99, 100, 101, 102, 104,
- 112, 113, 116, 119, 132, 136, 137, 140, 72, 96,
- 110, 79, 106, 107, 109, 78, 122, 48, 73, 10,
- 75, 83, 10, 120, 10, 134, 75, 96, 5, 73,
- 73, 48, 77, 23, 73, 83, 90, 91, 109, 123,
- 122, 96, 108, 96, 96, 96, 96, 96, 96, 96,
+ 96, 72, 80, 74, 102, 57, 74, 96, 108, 109,
+ 111, 83, 130, 131, 83, 123, 127, 128, 51, 75,
+ 83, 123, 129, 133, 134, 96, 83, 96, 96, 96,
+ 96, 96, 72, 72, 83, 96, 123, 124, 83, 103,
+ 122, 72, 80, 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, 93, 122, 83, 138,
+ 139, 73, 103, 109, 109, 122, 66, 68, 48, 9,
+ 73, 81, 48, 122, 77, 122, 135, 122, 1, 10,
+ 55, 57, 59, 60, 61, 63, 64, 65, 67, 68,
+ 75, 83, 84, 86, 96, 97, 98, 99, 100, 101,
+ 102, 104, 112, 113, 116, 119, 132, 136, 137, 140,
+ 72, 96, 110, 79, 106, 107, 109, 78, 122, 48,
+ 73, 10, 75, 83, 10, 120, 10, 134, 75, 96,
+ 5, 73, 73, 48, 77, 23, 73, 83, 90, 91,
+ 109, 123, 122, 96, 108, 96, 96, 96, 96, 96,
96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
- 96, 96, 143, 122, 83, 74, 8, 48, 75, 102,
- 9, 73, 73, 93, 83, 73, 122, 93, 122, 48,
- 73, 83, 110, 10, 10, 96, 90, 96, 102, 10,
- 109, 57, 63, 117, 118, 11, 10, 10, 10, 10,
- 101, 75, 10, 111, 102, 83, 48, 75, 122, 131,
- 74, 128, 72, 74, 10, 73, 73, 103, 120, 123,
- 48, 73, 75, 139, 96, 139, 83, 102, 81, 73,
- 135, 102, 74, 10, 102, 64, 10, 96, 83, 73,
- 58, 8, 107, 128, 131, 128, 102, 91, 58, 75,
- 73, 122, 58, 62, 114, 115, 96, 96, 102, 11,
- 102, 111, 109, 75, 73, 75, 74, 141, 102, 73,
- 102, 112, 96, 115, 75, 10, 10, 58, 96, 105,
- 74, 143, 11, 96, 102, 118, 48, 102, 128, 75,
- 101, 102, 105, 75
+ 96, 96, 96, 96, 143, 122, 83, 74, 8, 48,
+ 75, 102, 9, 73, 73, 93, 83, 73, 122, 93,
+ 122, 48, 73, 83, 110, 10, 10, 96, 90, 96,
+ 102, 10, 109, 57, 63, 117, 118, 11, 10, 10,
+ 10, 10, 101, 75, 10, 111, 102, 83, 48, 75,
+ 122, 131, 74, 128, 72, 74, 10, 73, 73, 103,
+ 120, 123, 48, 73, 75, 139, 96, 139, 83, 102,
+ 81, 73, 135, 102, 74, 10, 102, 64, 10, 96,
+ 83, 73, 58, 8, 107, 128, 131, 128, 102, 91,
+ 58, 75, 73, 122, 58, 62, 114, 115, 96, 96,
+ 102, 11, 102, 111, 109, 75, 73, 75, 74, 141,
+ 102, 73, 102, 112, 96, 115, 75, 10, 10, 58,
+ 96, 105, 74, 143, 11, 96, 102, 118, 48, 102,
+ 128, 75, 101, 102, 105, 75
};
/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
@@ -1332,13 +1346,13 @@ static const yytype_uint8 yyr1[] =
109, 109, 110, 110, 111, 111, 112, 112, 112, 113,
114, 115, 115, 116, 117, 118, 118, 118, 119, 119,
120, 120, 120, 120, 120, 121, 121, 122, 122, 122,
- 122, 122, 122, 122, 123, 123, 123, 124, 124, 124,
- 125, 125, 126, 127, 128, 128, 129, 129, 130, 131,
- 131, 132, 132, 133, 133, 133, 133, 134, 134, 135,
- 135, 136, 137, 137, 138, 138, 139, 139, 139, 140,
- 140, 141, 141, 141, 142, 142, 142, 142, 142, 142,
+ 122, 122, 122, 122, 122, 123, 123, 123, 124, 124,
+ 124, 125, 125, 126, 127, 128, 128, 129, 129, 130,
+ 131, 131, 132, 132, 133, 133, 133, 133, 134, 134,
+ 135, 135, 136, 137, 137, 138, 138, 139, 139, 139,
+ 140, 140, 141, 141, 141, 142, 142, 142, 142, 142,
142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
- 142, 142, 142, 143, 143, 144, 144
+ 142, 142, 142, 142, 143, 143, 144, 144
};
/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
@@ -1359,13 +1373,13 @@ static const yytype_int8 yyr2[] =
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
+ 2, 3, 4, 2, 3, 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
};
@@ -1929,393 +1943,393 @@ yydestruct (const char *yymsg,
switch (yykind)
{
case YYSYMBOL_INT: /* INT */
-#line 145 "src/parser.y"
+#line 146 "src/parser.y"
{}
-#line 1935 "gen/gen_parser.c"
+#line 1949 "gen/gen_parser.c"
break;
case YYSYMBOL_FLOAT: /* FLOAT */
-#line 145 "src/parser.y"
+#line 146 "src/parser.y"
{}
-#line 1941 "gen/gen_parser.c"
+#line 1955 "gen/gen_parser.c"
break;
case YYSYMBOL_STRING: /* STRING */
-#line 145 "src/parser.y"
+#line 146 "src/parser.y"
{}
-#line 1947 "gen/gen_parser.c"
+#line 1961 "gen/gen_parser.c"
break;
case YYSYMBOL_ID: /* ID */
-#line 145 "src/parser.y"
+#line 146 "src/parser.y"
{}
-#line 1953 "gen/gen_parser.c"
+#line 1967 "gen/gen_parser.c"
break;
case YYSYMBOL_id: /* id */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 1959 "gen/gen_parser.c"
+#line 1973 "gen/gen_parser.c"
break;
case YYSYMBOL_var: /* var */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 1965 "gen/gen_parser.c"
+#line 1979 "gen/gen_parser.c"
break;
case YYSYMBOL_embed: /* embed */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 1971 "gen/gen_parser.c"
+#line 1985 "gen/gen_parser.c"
break;
case YYSYMBOL_import: /* import */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 1977 "gen/gen_parser.c"
+#line 1991 "gen/gen_parser.c"
break;
case YYSYMBOL_assign: /* assign */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 1983 "gen/gen_parser.c"
+#line 1997 "gen/gen_parser.c"
break;
case YYSYMBOL_binary_op: /* binary_op */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 1989 "gen/gen_parser.c"
+#line 2003 "gen/gen_parser.c"
break;
case YYSYMBOL_unary_op: /* unary_op */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 1995 "gen/gen_parser.c"
+#line 2009 "gen/gen_parser.c"
break;
case YYSYMBOL_arg: /* arg */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2001 "gen/gen_parser.c"
+#line 2015 "gen/gen_parser.c"
break;
case YYSYMBOL_arg_list: /* arg_list */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2007 "gen/gen_parser.c"
+#line 2021 "gen/gen_parser.c"
break;
case YYSYMBOL_param_decl: /* param_decl */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2013 "gen/gen_parser.c"
+#line 2027 "gen/gen_parser.c"
break;
case YYSYMBOL_decl_list: /* decl_list */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2019 "gen/gen_parser.c"
+#line 2033 "gen/gen_parser.c"
break;
case YYSYMBOL_call: /* call */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2025 "gen/gen_parser.c"
+#line 2039 "gen/gen_parser.c"
break;
case YYSYMBOL_defer: /* defer */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2031 "gen/gen_parser.c"
+#line 2045 "gen/gen_parser.c"
break;
case YYSYMBOL_expr: /* expr */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2037 "gen/gen_parser.c"
+#line 2051 "gen/gen_parser.c"
break;
case YYSYMBOL_while: /* while */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2043 "gen/gen_parser.c"
+#line 2057 "gen/gen_parser.c"
break;
case YYSYMBOL_do_while: /* do_while */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2049 "gen/gen_parser.c"
+#line 2063 "gen/gen_parser.c"
break;
case YYSYMBOL_goto: /* goto */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2055 "gen/gen_parser.c"
+#line 2069 "gen/gen_parser.c"
break;
case YYSYMBOL_statement: /* statement */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2061 "gen/gen_parser.c"
+#line 2075 "gen/gen_parser.c"
break;
case YYSYMBOL_statement_list: /* statement_list */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2067 "gen/gen_parser.c"
+#line 2081 "gen/gen_parser.c"
break;
case YYSYMBOL_body: /* body */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2073 "gen/gen_parser.c"
+#line 2087 "gen/gen_parser.c"
break;
case YYSYMBOL_macro_list: /* macro_list */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2079 "gen/gen_parser.c"
+#line 2093 "gen/gen_parser.c"
break;
case YYSYMBOL_macro: /* macro */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2085 "gen/gen_parser.c"
+#line 2099 "gen/gen_parser.c"
break;
case YYSYMBOL_expr_list: /* expr_list */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2091 "gen/gen_parser.c"
+#line 2105 "gen/gen_parser.c"
break;
case YYSYMBOL_struct_init: /* struct_init */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2097 "gen/gen_parser.c"
+#line 2111 "gen/gen_parser.c"
break;
case YYSYMBOL_struct_inits: /* struct_inits */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2103 "gen/gen_parser.c"
+#line 2117 "gen/gen_parser.c"
break;
case YYSYMBOL_struct_construct: /* struct_construct */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2109 "gen/gen_parser.c"
+#line 2123 "gen/gen_parser.c"
break;
case YYSYMBOL_init_expr: /* init_expr */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2115 "gen/gen_parser.c"
+#line 2129 "gen/gen_parser.c"
break;
case YYSYMBOL_cond: /* cond */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2121 "gen/gen_parser.c"
+#line 2135 "gen/gen_parser.c"
break;
case YYSYMBOL_expr_if: /* expr_if */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2127 "gen/gen_parser.c"
+#line 2141 "gen/gen_parser.c"
break;
case YYSYMBOL_if: /* if */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2133 "gen/gen_parser.c"
+#line 2147 "gen/gen_parser.c"
break;
case YYSYMBOL_for: /* for */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2139 "gen/gen_parser.c"
+#line 2153 "gen/gen_parser.c"
break;
case YYSYMBOL_case: /* case */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2145 "gen/gen_parser.c"
+#line 2159 "gen/gen_parser.c"
break;
case YYSYMBOL_case_list: /* case_list */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2151 "gen/gen_parser.c"
+#line 2165 "gen/gen_parser.c"
break;
case YYSYMBOL_switch: /* switch */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2157 "gen/gen_parser.c"
+#line 2171 "gen/gen_parser.c"
break;
case YYSYMBOL_const_for: /* const_for */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2163 "gen/gen_parser.c"
+#line 2177 "gen/gen_parser.c"
break;
case YYSYMBOL_const_if: /* const_if */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2169 "gen/gen_parser.c"
+#line 2183 "gen/gen_parser.c"
break;
case YYSYMBOL_const: /* const */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2175 "gen/gen_parser.c"
+#line 2189 "gen/gen_parser.c"
break;
case YYSYMBOL_func_sign: /* func_sign */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2181 "gen/gen_parser.c"
+#line 2195 "gen/gen_parser.c"
break;
case YYSYMBOL_variadic_sign: /* variadic_sign */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2187 "gen/gen_parser.c"
+#line 2201 "gen/gen_parser.c"
break;
case YYSYMBOL_type: /* type */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2193 "gen/gen_parser.c"
+#line 2207 "gen/gen_parser.c"
break;
case YYSYMBOL_var_decl: /* var_decl */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2199 "gen/gen_parser.c"
+#line 2213 "gen/gen_parser.c"
break;
case YYSYMBOL_var_init: /* var_init */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2205 "gen/gen_parser.c"
+#line 2219 "gen/gen_parser.c"
break;
case YYSYMBOL_proc: /* proc */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2211 "gen/gen_parser.c"
+#line 2225 "gen/gen_parser.c"
break;
case YYSYMBOL_lambda: /* lambda */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2217 "gen/gen_parser.c"
+#line 2231 "gen/gen_parser.c"
break;
case YYSYMBOL_struct_elem: /* struct_elem */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2223 "gen/gen_parser.c"
+#line 2237 "gen/gen_parser.c"
break;
case YYSYMBOL_struct_list: /* struct_list */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2229 "gen/gen_parser.c"
+#line 2243 "gen/gen_parser.c"
break;
case YYSYMBOL_union: /* union */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2235 "gen/gen_parser.c"
+#line 2249 "gen/gen_parser.c"
break;
case YYSYMBOL_generic: /* generic */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2241 "gen/gen_parser.c"
+#line 2255 "gen/gen_parser.c"
break;
case YYSYMBOL_generic_list: /* generic_list */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2247 "gen/gen_parser.c"
+#line 2261 "gen/gen_parser.c"
break;
case YYSYMBOL_struct: /* struct */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2253 "gen/gen_parser.c"
+#line 2267 "gen/gen_parser.c"
break;
case YYSYMBOL_template_elem: /* template_elem */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2259 "gen/gen_parser.c"
+#line 2273 "gen/gen_parser.c"
break;
case YYSYMBOL_template_list: /* template_list */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2265 "gen/gen_parser.c"
+#line 2279 "gen/gen_parser.c"
break;
case YYSYMBOL_type_list: /* type_list */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2271 "gen/gen_parser.c"
+#line 2285 "gen/gen_parser.c"
break;
case YYSYMBOL_type_alias: /* type_alias */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2277 "gen/gen_parser.c"
+#line 2291 "gen/gen_parser.c"
break;
case YYSYMBOL_type_template: /* type_template */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2283 "gen/gen_parser.c"
+#line 2297 "gen/gen_parser.c"
break;
case YYSYMBOL_enum_val: /* enum_val */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2289 "gen/gen_parser.c"
+#line 2303 "gen/gen_parser.c"
break;
case YYSYMBOL_enum_list: /* enum_list */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2295 "gen/gen_parser.c"
+#line 2309 "gen/gen_parser.c"
break;
case YYSYMBOL_enum: /* enum */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2301 "gen/gen_parser.c"
+#line 2315 "gen/gen_parser.c"
break;
case YYSYMBOL_top_if: /* top_if */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2307 "gen/gen_parser.c"
+#line 2321 "gen/gen_parser.c"
break;
case YYSYMBOL_top: /* top */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2313 "gen/gen_parser.c"
+#line 2327 "gen/gen_parser.c"
break;
case YYSYMBOL_unit: /* unit */
-#line 146 "src/parser.y"
+#line 147 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2319 "gen/gen_parser.c"
+#line 2333 "gen/gen_parser.c"
break;
default:
@@ -2619,615 +2633,615 @@ yyreduce:
switch (yyn)
{
case 2: /* id: ID */
-#line 150 "src/parser.y"
+#line 151 "src/parser.y"
{
(yyval.node) = gen_id(strdup((yyvsp[0].str)));
(yyval.node)->loc = to_src_loc(&yylloc);
}
-#line 2628 "gen/gen_parser.c"
+#line 2642 "gen/gen_parser.c"
break;
case 3: /* var: var_decl */
-#line 156 "src/parser.y"
+#line 157 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2634 "gen/gen_parser.c"
+#line 2648 "gen/gen_parser.c"
break;
case 4: /* var: var_init */
-#line 157 "src/parser.y"
+#line 158 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2640 "gen/gen_parser.c"
+#line 2654 "gen/gen_parser.c"
break;
case 5: /* embed: "embed" "(" STRING ")" */
-#line 160 "src/parser.y"
+#line 161 "src/parser.y"
{ (yyval.node) = gen_embed(clone_string((yyvsp[-1].str))); }
-#line 2646 "gen/gen_parser.c"
+#line 2660 "gen/gen_parser.c"
break;
case 6: /* import: "import" STRING */
-#line 163 "src/parser.y"
+#line 164 "src/parser.y"
{ (yyval.node) = gen_import(clone_string((yyvsp[0].str))); }
-#line 2652 "gen/gen_parser.c"
+#line 2666 "gen/gen_parser.c"
break;
case 7: /* assign: expr "=" expr */
-#line 166 "src/parser.y"
+#line 167 "src/parser.y"
{ (yyval.node) = gen_assign((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2658 "gen/gen_parser.c"
+#line 2672 "gen/gen_parser.c"
break;
case 8: /* assign: expr "=" struct_construct */
-#line 167 "src/parser.y"
+#line 168 "src/parser.y"
{ (yyval.node) = gen_assign((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2664 "gen/gen_parser.c"
+#line 2678 "gen/gen_parser.c"
break;
case 9: /* binary_op: expr "+" expr */
-#line 170 "src/parser.y"
+#line 171 "src/parser.y"
{ (yyval.node) = gen_binop(AST_ADD, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2670 "gen/gen_parser.c"
+#line 2684 "gen/gen_parser.c"
break;
case 10: /* binary_op: expr "-" expr */
-#line 171 "src/parser.y"
+#line 172 "src/parser.y"
{ (yyval.node) = gen_binop(AST_SUB, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2676 "gen/gen_parser.c"
+#line 2690 "gen/gen_parser.c"
break;
case 11: /* binary_op: expr "*" expr */
-#line 172 "src/parser.y"
+#line 173 "src/parser.y"
{ (yyval.node) = gen_binop(AST_MUL, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2682 "gen/gen_parser.c"
+#line 2696 "gen/gen_parser.c"
break;
case 12: /* binary_op: expr "/" expr */
-#line 173 "src/parser.y"
+#line 174 "src/parser.y"
{ (yyval.node) = gen_binop(AST_DIV, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2688 "gen/gen_parser.c"
+#line 2702 "gen/gen_parser.c"
break;
case 13: /* binary_op: expr "%" expr */
-#line 174 "src/parser.y"
+#line 175 "src/parser.y"
{ (yyval.node) = gen_binop(AST_REM, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2694 "gen/gen_parser.c"
+#line 2708 "gen/gen_parser.c"
break;
case 14: /* binary_op: expr "^" expr */
-#line 175 "src/parser.y"
+#line 176 "src/parser.y"
{ (yyval.node) = gen_binop(AST_XOR, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2700 "gen/gen_parser.c"
+#line 2714 "gen/gen_parser.c"
break;
case 15: /* binary_op: expr "^^" expr */
-#line 176 "src/parser.y"
+#line 177 "src/parser.y"
{ (yyval.node) = gen_binop(AST_POW, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2706 "gen/gen_parser.c"
+#line 2720 "gen/gen_parser.c"
break;
case 16: /* binary_op: expr "&" expr */
-#line 177 "src/parser.y"
+#line 178 "src/parser.y"
{ (yyval.node) = gen_binop(AST_AND, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2712 "gen/gen_parser.c"
+#line 2726 "gen/gen_parser.c"
break;
case 17: /* binary_op: expr "&&" expr */
-#line 178 "src/parser.y"
+#line 179 "src/parser.y"
{ (yyval.node) = gen_binop(AST_LAND, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2718 "gen/gen_parser.c"
+#line 2732 "gen/gen_parser.c"
break;
case 18: /* binary_op: expr "|" expr */
-#line 179 "src/parser.y"
+#line 180 "src/parser.y"
{ (yyval.node) = gen_binop(AST_OR, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2724 "gen/gen_parser.c"
+#line 2738 "gen/gen_parser.c"
break;
case 19: /* binary_op: expr "||" expr */
-#line 180 "src/parser.y"
+#line 181 "src/parser.y"
{ (yyval.node) = gen_binop(AST_LOR, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2730 "gen/gen_parser.c"
+#line 2744 "gen/gen_parser.c"
break;
case 20: /* binary_op: expr "<<" expr */
-#line 181 "src/parser.y"
+#line 182 "src/parser.y"
{ (yyval.node) = gen_binop(AST_LSHIFT, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2736 "gen/gen_parser.c"
+#line 2750 "gen/gen_parser.c"
break;
case 21: /* binary_op: expr ">>" expr */
-#line 182 "src/parser.y"
+#line 183 "src/parser.y"
{ (yyval.node) = gen_binop(AST_RSHIFT, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2742 "gen/gen_parser.c"
+#line 2756 "gen/gen_parser.c"
break;
case 22: /* binary_op: expr "+=" expr */
-#line 183 "src/parser.y"
+#line 184 "src/parser.y"
{ (yyval.node) = gen_binop(AST_ASSIGN_ADD, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2748 "gen/gen_parser.c"
+#line 2762 "gen/gen_parser.c"
break;
case 23: /* binary_op: expr "-=" expr */
-#line 184 "src/parser.y"
+#line 185 "src/parser.y"
{ (yyval.node) = gen_binop(AST_ASSIGN_SUB, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2754 "gen/gen_parser.c"
+#line 2768 "gen/gen_parser.c"
break;
case 24: /* binary_op: expr "*=" expr */
-#line 185 "src/parser.y"
+#line 186 "src/parser.y"
{ (yyval.node) = gen_binop(AST_ASSIGN_MUL, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2760 "gen/gen_parser.c"
+#line 2774 "gen/gen_parser.c"
break;
case 25: /* binary_op: expr "/=" expr */
-#line 186 "src/parser.y"
+#line 187 "src/parser.y"
{ (yyval.node) = gen_binop(AST_ASSIGN_DIV, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2766 "gen/gen_parser.c"
+#line 2780 "gen/gen_parser.c"
break;
case 26: /* binary_op: expr "%=" expr */
-#line 187 "src/parser.y"
+#line 188 "src/parser.y"
{ (yyval.node) = gen_binop(AST_ASSIGN_REM, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2772 "gen/gen_parser.c"
+#line 2786 "gen/gen_parser.c"
break;
case 27: /* binary_op: expr "&=" expr */
-#line 188 "src/parser.y"
+#line 189 "src/parser.y"
{ (yyval.node) = gen_binop(AST_ASSIGN_AND, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2778 "gen/gen_parser.c"
+#line 2792 "gen/gen_parser.c"
break;
case 28: /* binary_op: expr "|=" expr */
-#line 189 "src/parser.y"
+#line 190 "src/parser.y"
{ (yyval.node) = gen_binop(AST_ASSIGN_OR, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2784 "gen/gen_parser.c"
+#line 2798 "gen/gen_parser.c"
break;
case 29: /* binary_op: expr "^=" expr */
-#line 190 "src/parser.y"
+#line 191 "src/parser.y"
{ (yyval.node) = gen_binop(AST_ASSIGN_XOR, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2790 "gen/gen_parser.c"
+#line 2804 "gen/gen_parser.c"
break;
case 30: /* binary_op: expr "<<=" expr */
-#line 191 "src/parser.y"
+#line 192 "src/parser.y"
{
(yyval.node) = gen_binop(AST_ASSIGN_LSHIFT, (yyvsp[-2].node), (yyvsp[0].node));
}
-#line 2798 "gen/gen_parser.c"
+#line 2812 "gen/gen_parser.c"
break;
case 31: /* binary_op: expr ">>=" expr */
-#line 194 "src/parser.y"
+#line 195 "src/parser.y"
{
(yyval.node) = gen_binop(AST_ASSIGN_RSHIFT, (yyvsp[-2].node), (yyvsp[0].node));
}
-#line 2806 "gen/gen_parser.c"
+#line 2820 "gen/gen_parser.c"
break;
case 32: /* binary_op: expr "<" expr */
-#line 197 "src/parser.y"
+#line 198 "src/parser.y"
{ (yyval.node) = gen_binop(AST_LT, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2812 "gen/gen_parser.c"
+#line 2826 "gen/gen_parser.c"
break;
case 33: /* binary_op: expr ">" expr */
-#line 198 "src/parser.y"
+#line 199 "src/parser.y"
{ (yyval.node) = gen_binop(AST_GT, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2818 "gen/gen_parser.c"
+#line 2832 "gen/gen_parser.c"
break;
case 34: /* binary_op: expr "<=" expr */
-#line 199 "src/parser.y"
+#line 200 "src/parser.y"
{ (yyval.node) = gen_binop(AST_LE, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2824 "gen/gen_parser.c"
+#line 2838 "gen/gen_parser.c"
break;
case 35: /* binary_op: expr ">=" expr */
-#line 200 "src/parser.y"
+#line 201 "src/parser.y"
{ (yyval.node) = gen_binop(AST_GE, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2830 "gen/gen_parser.c"
+#line 2844 "gen/gen_parser.c"
break;
case 36: /* binary_op: expr "!=" expr */
-#line 201 "src/parser.y"
+#line 202 "src/parser.y"
{ (yyval.node) = gen_binop(AST_NE, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2836 "gen/gen_parser.c"
+#line 2850 "gen/gen_parser.c"
break;
case 37: /* binary_op: expr "==" expr */
-#line 202 "src/parser.y"
+#line 203 "src/parser.y"
{ (yyval.node) = gen_binop(AST_EQ, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2842 "gen/gen_parser.c"
+#line 2856 "gen/gen_parser.c"
break;
case 38: /* unary_op: "-" expr */
-#line 205 "src/parser.y"
+#line 206 "src/parser.y"
{ (yyval.node) = gen_unop(AST_NEG, (yyvsp[0].node)); }
-#line 2848 "gen/gen_parser.c"
+#line 2862 "gen/gen_parser.c"
break;
case 39: /* unary_op: "!" expr */
-#line 206 "src/parser.y"
+#line 207 "src/parser.y"
{ (yyval.node) = gen_unop(AST_LNOT, (yyvsp[0].node)); }
-#line 2854 "gen/gen_parser.c"
+#line 2868 "gen/gen_parser.c"
break;
case 40: /* unary_op: "&" expr */
-#line 207 "src/parser.y"
+#line 208 "src/parser.y"
{ (yyval.node) = gen_unop(AST_REF, (yyvsp[0].node)); }
-#line 2860 "gen/gen_parser.c"
+#line 2874 "gen/gen_parser.c"
break;
case 41: /* unary_op: "'" expr */
-#line 208 "src/parser.y"
+#line 209 "src/parser.y"
{ (yyval.node) = gen_unop(AST_DEREF, (yyvsp[0].node)); }
-#line 2866 "gen/gen_parser.c"
+#line 2880 "gen/gen_parser.c"
break;
case 42: /* unary_op: "~" expr */
-#line 209 "src/parser.y"
+#line 210 "src/parser.y"
{ (yyval.node) = gen_unop(AST_NOT, (yyvsp[0].node)); }
-#line 2872 "gen/gen_parser.c"
+#line 2886 "gen/gen_parser.c"
break;
case 43: /* arg: "&" var_decl */
-#line 212 "src/parser.y"
+#line 213 "src/parser.y"
{ (yyval.node) = gen_unop(AST_REF, (yyvsp[0].node)); }
-#line 2878 "gen/gen_parser.c"
+#line 2892 "gen/gen_parser.c"
break;
case 44: /* arg: var_decl */
-#line 213 "src/parser.y"
+#line 214 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2884 "gen/gen_parser.c"
+#line 2898 "gen/gen_parser.c"
break;
case 45: /* arg: init_expr */
-#line 214 "src/parser.y"
+#line 215 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2890 "gen/gen_parser.c"
+#line 2904 "gen/gen_parser.c"
break;
case 46: /* arg_list: arg "," arg_list */
-#line 217 "src/parser.y"
+#line 218 "src/parser.y"
{ (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->next = (yyvsp[0].node); }
-#line 2896 "gen/gen_parser.c"
+#line 2910 "gen/gen_parser.c"
break;
case 47: /* arg_list: arg */
-#line 218 "src/parser.y"
+#line 219 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2902 "gen/gen_parser.c"
+#line 2916 "gen/gen_parser.c"
break;
case 48: /* param_decl: type */
-#line 221 "src/parser.y"
+#line 222 "src/parser.y"
{ (yyval.node) = gen_var(NULL, (yyvsp[0].node), NULL); }
-#line 2908 "gen/gen_parser.c"
+#line 2922 "gen/gen_parser.c"
break;
case 49: /* decl_list: var_decl "," decl_list */
-#line 223 "src/parser.y"
+#line 224 "src/parser.y"
{ (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->next = (yyvsp[0].node); }
-#line 2914 "gen/gen_parser.c"
+#line 2928 "gen/gen_parser.c"
break;
case 50: /* decl_list: param_decl "," decl_list */
-#line 224 "src/parser.y"
+#line 225 "src/parser.y"
{ (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->next = (yyvsp[0].node); }
-#line 2920 "gen/gen_parser.c"
+#line 2934 "gen/gen_parser.c"
break;
case 51: /* decl_list: var_decl */
-#line 225 "src/parser.y"
+#line 226 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2926 "gen/gen_parser.c"
+#line 2940 "gen/gen_parser.c"
break;
case 52: /* decl_list: param_decl */
-#line 226 "src/parser.y"
+#line 227 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2932 "gen/gen_parser.c"
+#line 2946 "gen/gen_parser.c"
break;
case 53: /* call: id "(" arg_list ")" */
-#line 230 "src/parser.y"
+#line 231 "src/parser.y"
{ (yyval.node) = gen_call((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 2938 "gen/gen_parser.c"
+#line 2952 "gen/gen_parser.c"
break;
case 54: /* call: id "(" ")" */
-#line 231 "src/parser.y"
+#line 232 "src/parser.y"
{ (yyval.node) = gen_call((yyvsp[-2].node), NULL); }
-#line 2944 "gen/gen_parser.c"
+#line 2958 "gen/gen_parser.c"
break;
case 55: /* defer: "defer" "(" expr ")" */
-#line 234 "src/parser.y"
+#line 235 "src/parser.y"
{ (yyval.node) = gen_defer((yyvsp[-1].node)); }
-#line 2950 "gen/gen_parser.c"
+#line 2964 "gen/gen_parser.c"
break;
case 56: /* expr: id */
-#line 238 "src/parser.y"
+#line 239 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2956 "gen/gen_parser.c"
+#line 2970 "gen/gen_parser.c"
break;
case 57: /* expr: expr "." id */
-#line 239 "src/parser.y"
+#line 240 "src/parser.y"
{ (yyval.node) = gen_dot((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2962 "gen/gen_parser.c"
+#line 2976 "gen/gen_parser.c"
break;
case 58: /* expr: "..." id */
-#line 240 "src/parser.y"
+#line 241 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2968 "gen/gen_parser.c"
+#line 2982 "gen/gen_parser.c"
break;
case 59: /* expr: "@" */
-#line 241 "src/parser.y"
+#line 242 "src/parser.y"
{ (yyval.node) = gen_last(); }
-#line 2974 "gen/gen_parser.c"
+#line 2988 "gen/gen_parser.c"
break;
case 60: /* expr: INT */
-#line 242 "src/parser.y"
+#line 243 "src/parser.y"
{ (yyval.node) = gen_int((yyvsp[0].integer)); (yyval.node)->loc = to_src_loc(&yylloc); }
-#line 2980 "gen/gen_parser.c"
+#line 2994 "gen/gen_parser.c"
break;
case 61: /* expr: FLOAT */
-#line 243 "src/parser.y"
+#line 244 "src/parser.y"
{ (yyval.node) = gen_float((yyvsp[0].dbl)); (yyval.node)->loc = to_src_loc(&yylloc); }
-#line 2986 "gen/gen_parser.c"
+#line 3000 "gen/gen_parser.c"
break;
case 62: /* expr: STRING */
-#line 244 "src/parser.y"
+#line 245 "src/parser.y"
{
(yyval.node) = gen_string(clone_string((yyvsp[0].str)));
(yyval.node)->loc = to_src_loc(&yylloc);
}
-#line 2995 "gen/gen_parser.c"
+#line 3009 "gen/gen_parser.c"
break;
case 63: /* expr: "(" expr ")" */
-#line 248 "src/parser.y"
+#line 249 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3001 "gen/gen_parser.c"
+#line 3015 "gen/gen_parser.c"
break;
case 64: /* expr: assign */
-#line 249 "src/parser.y"
+#line 250 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3007 "gen/gen_parser.c"
+#line 3021 "gen/gen_parser.c"
break;
case 65: /* expr: call */
-#line 250 "src/parser.y"
+#line 251 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3013 "gen/gen_parser.c"
+#line 3027 "gen/gen_parser.c"
break;
case 66: /* expr: defer */
-#line 251 "src/parser.y"
+#line 252 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3019 "gen/gen_parser.c"
+#line 3033 "gen/gen_parser.c"
break;
case 67: /* expr: binary_op */
-#line 252 "src/parser.y"
+#line 253 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3025 "gen/gen_parser.c"
+#line 3039 "gen/gen_parser.c"
break;
case 68: /* expr: unary_op */
-#line 253 "src/parser.y"
+#line 254 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3031 "gen/gen_parser.c"
+#line 3045 "gen/gen_parser.c"
break;
case 69: /* expr: "(" var_init ")" */
-#line 254 "src/parser.y"
+#line 255 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3037 "gen/gen_parser.c"
+#line 3051 "gen/gen_parser.c"
break;
case 70: /* expr: "sizeof" expr */
-#line 255 "src/parser.y"
+#line 256 "src/parser.y"
{ (yyval.node) = gen_sizeof((yyvsp[0].node)); }
-#line 3043 "gen/gen_parser.c"
+#line 3057 "gen/gen_parser.c"
break;
case 71: /* expr: expr "as" type */
-#line 256 "src/parser.y"
+#line 257 "src/parser.y"
{ (yyval.node) = gen_cast((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3049 "gen/gen_parser.c"
+#line 3063 "gen/gen_parser.c"
break;
case 72: /* expr: id "::" type */
-#line 257 "src/parser.y"
+#line 258 "src/parser.y"
{ (yyval.node) = gen_fetch((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3055 "gen/gen_parser.c"
+#line 3069 "gen/gen_parser.c"
break;
case 73: /* expr: "as" type */
-#line 258 "src/parser.y"
+#line 259 "src/parser.y"
{ (yyval.node) = gen_as((yyvsp[0].node)); }
-#line 3061 "gen/gen_parser.c"
+#line 3075 "gen/gen_parser.c"
break;
case 74: /* expr: embed */
-#line 259 "src/parser.y"
+#line 260 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3067 "gen/gen_parser.c"
+#line 3081 "gen/gen_parser.c"
break;
case 75: /* expr: lambda */
-#line 260 "src/parser.y"
+#line 261 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3073 "gen/gen_parser.c"
+#line 3087 "gen/gen_parser.c"
break;
case 76: /* while: "while" expr body */
-#line 263 "src/parser.y"
+#line 264 "src/parser.y"
{ (yyval.node) = gen_while((yyvsp[-1].node), (yyvsp[0].node)); }
-#line 3079 "gen/gen_parser.c"
+#line 3093 "gen/gen_parser.c"
break;
case 77: /* do_while: "do" body "while" expr ";" */
-#line 266 "src/parser.y"
+#line 267 "src/parser.y"
{
(yyval.node) = gen_while((yyvsp[-3].node), (yyvsp[-1].node));
ast_set_flags((yyval.node), AST_FLAG_DELAYED);
}
-#line 3088 "gen/gen_parser.c"
+#line 3102 "gen/gen_parser.c"
break;
case 78: /* goto: "goto" id */
-#line 272 "src/parser.y"
+#line 273 "src/parser.y"
{ (yyval.node) = gen_goto(gen_label((yyvsp[0].node))); }
-#line 3094 "gen/gen_parser.c"
+#line 3108 "gen/gen_parser.c"
break;
case 79: /* statement: expr ";" */
-#line 274 "src/parser.y"
+#line 275 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3100 "gen/gen_parser.c"
+#line 3114 "gen/gen_parser.c"
break;
case 80: /* statement: "return" init_expr ";" */
-#line 275 "src/parser.y"
+#line 276 "src/parser.y"
{ (yyval.node) = gen_return((yyvsp[-1].node)); }
-#line 3106 "gen/gen_parser.c"
+#line 3120 "gen/gen_parser.c"
break;
case 81: /* statement: "return" ";" */
-#line 276 "src/parser.y"
+#line 277 "src/parser.y"
{ (yyval.node) = gen_return(NULL); }
-#line 3112 "gen/gen_parser.c"
+#line 3126 "gen/gen_parser.c"
break;
case 82: /* statement: "break" ";" */
-#line 277 "src/parser.y"
+#line 278 "src/parser.y"
{ (yyval.node) = gen_ctrl(AST_CTRL_BREAK, to_src_loc(&yylloc)); }
-#line 3118 "gen/gen_parser.c"
+#line 3132 "gen/gen_parser.c"
break;
case 83: /* statement: "continue" ";" */
-#line 278 "src/parser.y"
+#line 279 "src/parser.y"
{ (yyval.node) = gen_ctrl(AST_CTRL_CONTINUE,
to_src_loc(&yylloc)); }
-#line 3125 "gen/gen_parser.c"
+#line 3139 "gen/gen_parser.c"
break;
case 84: /* statement: import ";" */
-#line 280 "src/parser.y"
+#line 281 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3131 "gen/gen_parser.c"
+#line 3145 "gen/gen_parser.c"
break;
case 85: /* statement: var ";" */
-#line 281 "src/parser.y"
+#line 282 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3137 "gen/gen_parser.c"
+#line 3151 "gen/gen_parser.c"
break;
case 86: /* statement: if */
-#line 282 "src/parser.y"
+#line 283 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3143 "gen/gen_parser.c"
+#line 3157 "gen/gen_parser.c"
break;
case 87: /* statement: goto ";" */
-#line 283 "src/parser.y"
+#line 284 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3149 "gen/gen_parser.c"
+#line 3163 "gen/gen_parser.c"
break;
case 88: /* statement: id ":" */
-#line 284 "src/parser.y"
+#line 285 "src/parser.y"
{ (yyval.node) = gen_label((yyvsp[-1].node)); }
-#line 3155 "gen/gen_parser.c"
+#line 3169 "gen/gen_parser.c"
break;
case 89: /* statement: for */
-#line 285 "src/parser.y"
+#line 286 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3161 "gen/gen_parser.c"
+#line 3175 "gen/gen_parser.c"
break;
case 90: /* statement: const */
-#line 286 "src/parser.y"
+#line 287 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3167 "gen/gen_parser.c"
+#line 3181 "gen/gen_parser.c"
break;
case 91: /* statement: while */
-#line 287 "src/parser.y"
+#line 288 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3173 "gen/gen_parser.c"
+#line 3187 "gen/gen_parser.c"
break;
case 92: /* statement: do_while */
-#line 288 "src/parser.y"
+#line 289 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3179 "gen/gen_parser.c"
+#line 3193 "gen/gen_parser.c"
break;
case 93: /* statement: switch */
-#line 289 "src/parser.y"
+#line 290 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3185 "gen/gen_parser.c"
+#line 3199 "gen/gen_parser.c"
break;
case 94: /* statement: macro */
-#line 290 "src/parser.y"
+#line 291 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3191 "gen/gen_parser.c"
+#line 3205 "gen/gen_parser.c"
break;
case 95: /* statement: struct */
-#line 291 "src/parser.y"
+#line 292 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3197 "gen/gen_parser.c"
+#line 3211 "gen/gen_parser.c"
break;
case 96: /* statement: type_alias ";" */
-#line 292 "src/parser.y"
+#line 293 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3203 "gen/gen_parser.c"
+#line 3217 "gen/gen_parser.c"
break;
case 97: /* statement: type_template */
-#line 293 "src/parser.y"
+#line 294 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3209 "gen/gen_parser.c"
+#line 3223 "gen/gen_parser.c"
break;
case 98: /* statement: enum */
-#line 294 "src/parser.y"
+#line 295 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3215 "gen/gen_parser.c"
+#line 3229 "gen/gen_parser.c"
break;
case 99: /* statement: body */
-#line 295 "src/parser.y"
+#line 296 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3221 "gen/gen_parser.c"
+#line 3235 "gen/gen_parser.c"
break;
case 100: /* statement: ";" */
-#line 296 "src/parser.y"
+#line 297 "src/parser.y"
{ (yyval.node) = gen_empty(); }
-#line 3227 "gen/gen_parser.c"
+#line 3241 "gen/gen_parser.c"
break;
case 101: /* statement: error */
-#line 297 "src/parser.y"
+#line 298 "src/parser.y"
{
/* TODO: figure out how to destroy any and all possible ast nodes we
* may have generated up until the error */
@@ -3242,56 +3256,56 @@ yyreduce:
yyclearin;
yyerrok;
}
-#line 3246 "gen/gen_parser.c"
+#line 3260 "gen/gen_parser.c"
break;
case 102: /* statement_list: statement statement_list */
-#line 313 "src/parser.y"
+#line 314 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); (yyvsp[-1].node)->next = (yyvsp[0].node); }
-#line 3252 "gen/gen_parser.c"
+#line 3266 "gen/gen_parser.c"
break;
case 103: /* statement_list: statement */
-#line 314 "src/parser.y"
+#line 315 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3258 "gen/gen_parser.c"
+#line 3272 "gen/gen_parser.c"
break;
case 104: /* body: "{" statement_list "}" */
-#line 317 "src/parser.y"
+#line 318 "src/parser.y"
{ (yyval.node) = gen_block((yyvsp[-1].node)); }
-#line 3264 "gen/gen_parser.c"
+#line 3278 "gen/gen_parser.c"
break;
case 105: /* body: "{" "}" */
-#line 318 "src/parser.y"
+#line 319 "src/parser.y"
{ (yyval.node) = gen_block(gen_empty()); }
-#line 3270 "gen/gen_parser.c"
+#line 3284 "gen/gen_parser.c"
break;
case 106: /* macro_list: id "," macro_list */
-#line 321 "src/parser.y"
+#line 322 "src/parser.y"
{ (yyval.node) = (yyvsp[-2].node); (yyval.node)->next = (yyvsp[0].node); }
-#line 3276 "gen/gen_parser.c"
+#line 3290 "gen/gen_parser.c"
break;
case 107: /* macro_list: id */
-#line 322 "src/parser.y"
+#line 323 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3282 "gen/gen_parser.c"
+#line 3296 "gen/gen_parser.c"
break;
case 108: /* macro: "define" id "(" macro_list ")" body */
-#line 325 "src/parser.y"
+#line 326 "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 3291 "gen/gen_parser.c"
+#line 3305 "gen/gen_parser.c"
break;
case 109: /* macro: "define" id "(" macro_list "..." id ")" body */
-#line 329 "src/parser.y"
+#line 330 "src/parser.y"
{
/* TODO: the location data of the variadic ID is way off */
ast_append((yyvsp[-4].node), (yyvsp[-2].node));
@@ -3299,711 +3313,719 @@ yyreduce:
ast_set_flags((yyval.node), AST_FLAG_VARIADIC);
ast_set_flags((yyvsp[0].node), AST_FLAG_UNHYGIENIC);
}
-#line 3303 "gen/gen_parser.c"
+#line 3317 "gen/gen_parser.c"
break;
case 110: /* macro: "define" id "(" ")" body */
-#line 336 "src/parser.y"
+#line 337 "src/parser.y"
{
(yyval.node) = gen_macro((yyvsp[-3].node), NULL, (yyvsp[0].node));
ast_set_flags((yyvsp[0].node), AST_FLAG_UNHYGIENIC);
}
-#line 3312 "gen/gen_parser.c"
+#line 3326 "gen/gen_parser.c"
break;
case 111: /* expr_list: expr "," expr_list */
-#line 342 "src/parser.y"
+#line 343 "src/parser.y"
{ (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->next = (yyvsp[0].node); }
-#line 3318 "gen/gen_parser.c"
+#line 3332 "gen/gen_parser.c"
break;
case 112: /* expr_list: expr */
-#line 343 "src/parser.y"
+#line 344 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3324 "gen/gen_parser.c"
+#line 3338 "gen/gen_parser.c"
break;
case 113: /* struct_init: init_expr */
-#line 346 "src/parser.y"
+#line 347 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3330 "gen/gen_parser.c"
+#line 3344 "gen/gen_parser.c"
break;
case 114: /* struct_init: "." id "=" init_expr */
-#line 347 "src/parser.y"
+#line 348 "src/parser.y"
{
(yyval.node) = gen_var((yyvsp[-2].node), NULL, (yyvsp[0].node));
ast_set_flags((yyval.node), AST_FLAG_MEMBER);
}
-#line 3339 "gen/gen_parser.c"
+#line 3353 "gen/gen_parser.c"
break;
case 115: /* struct_inits: struct_init "," struct_inits */
-#line 353 "src/parser.y"
+#line 354 "src/parser.y"
{ (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->next = (yyvsp[0].node); }
-#line 3345 "gen/gen_parser.c"
+#line 3359 "gen/gen_parser.c"
break;
case 116: /* struct_inits: struct_init */
-#line 354 "src/parser.y"
+#line 355 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3351 "gen/gen_parser.c"
+#line 3365 "gen/gen_parser.c"
break;
case 117: /* struct_construct: "{" struct_inits "}" */
-#line 357 "src/parser.y"
+#line 358 "src/parser.y"
{ (yyval.node) = gen_init((yyvsp[-1].node)); }
-#line 3357 "gen/gen_parser.c"
+#line 3371 "gen/gen_parser.c"
break;
case 118: /* init_expr: expr */
-#line 360 "src/parser.y"
+#line 361 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3363 "gen/gen_parser.c"
+#line 3377 "gen/gen_parser.c"
break;
case 119: /* init_expr: expr_if */
-#line 361 "src/parser.y"
+#line 362 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3369 "gen/gen_parser.c"
+#line 3383 "gen/gen_parser.c"
break;
case 120: /* init_expr: struct_construct */
-#line 362 "src/parser.y"
+#line 363 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3375 "gen/gen_parser.c"
+#line 3389 "gen/gen_parser.c"
break;
case 121: /* init_expr: struct_construct "as" type */
-#line 363 "src/parser.y"
+#line 364 "src/parser.y"
{ (yyval.node) = gen_cast((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3381 "gen/gen_parser.c"
+#line 3395 "gen/gen_parser.c"
break;
case 122: /* cond: expr */
-#line 366 "src/parser.y"
+#line 367 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3387 "gen/gen_parser.c"
+#line 3401 "gen/gen_parser.c"
break;
case 123: /* cond: "(" expr_if ")" */
-#line 367 "src/parser.y"
+#line 368 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3393 "gen/gen_parser.c"
+#line 3407 "gen/gen_parser.c"
break;
case 124: /* expr_if: "if" cond body "else" body */
-#line 371 "src/parser.y"
+#line 372 "src/parser.y"
{ (yyval.node) = gen_if((yyvsp[-3].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3399 "gen/gen_parser.c"
+#line 3413 "gen/gen_parser.c"
break;
case 125: /* expr_if: "if" cond body "else" expr_if */
-#line 372 "src/parser.y"
+#line 373 "src/parser.y"
{ (yyval.node) = gen_if((yyvsp[-3].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3405 "gen/gen_parser.c"
+#line 3419 "gen/gen_parser.c"
break;
case 126: /* if: "if" cond body */
-#line 375 "src/parser.y"
+#line 376 "src/parser.y"
{ (yyval.node) = gen_if((yyvsp[-1].node), (yyvsp[0].node), NULL); }
-#line 3411 "gen/gen_parser.c"
+#line 3425 "gen/gen_parser.c"
break;
case 127: /* if: "if" cond body "else" body */
-#line 376 "src/parser.y"
+#line 377 "src/parser.y"
{ (yyval.node) = gen_if((yyvsp[-3].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3417 "gen/gen_parser.c"
+#line 3431 "gen/gen_parser.c"
break;
case 128: /* if: "if" cond body "else" if */
-#line 377 "src/parser.y"
+#line 378 "src/parser.y"
{ (yyval.node) = gen_if((yyvsp[-3].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3423 "gen/gen_parser.c"
+#line 3437 "gen/gen_parser.c"
break;
case 129: /* for: "for" arg ";" expr ";" expr body */
-#line 380 "src/parser.y"
+#line 381 "src/parser.y"
{ (yyval.node) = gen_for((yyvsp[-5].node), (yyvsp[-3].node), (yyvsp[-1].node), (yyvsp[0].node)); }
-#line 3429 "gen/gen_parser.c"
+#line 3443 "gen/gen_parser.c"
break;
case 130: /* case: "case" expr ":" statement_list */
-#line 383 "src/parser.y"
+#line 384 "src/parser.y"
{ (yyval.node) = gen_case((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3435 "gen/gen_parser.c"
+#line 3449 "gen/gen_parser.c"
break;
case 131: /* case_list: case case_list */
-#line 386 "src/parser.y"
+#line 387 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); (yyvsp[-1].node)->next = (yyvsp[0].node); }
-#line 3441 "gen/gen_parser.c"
+#line 3455 "gen/gen_parser.c"
break;
case 132: /* case_list: case */
-#line 387 "src/parser.y"
+#line 388 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3447 "gen/gen_parser.c"
+#line 3461 "gen/gen_parser.c"
break;
case 133: /* switch: "switch" expr "{" case_list "}" */
-#line 390 "src/parser.y"
+#line 391 "src/parser.y"
{ (yyval.node) = gen_switch((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3453 "gen/gen_parser.c"
+#line 3467 "gen/gen_parser.c"
break;
case 134: /* const_for: "for" id ":" expr_list body */
-#line 393 "src/parser.y"
+#line 394 "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 3463 "gen/gen_parser.c"
+#line 3477 "gen/gen_parser.c"
break;
case 135: /* const_if: "if" expr body */
-#line 400 "src/parser.y"
+#line 401 "src/parser.y"
{
(yyval.node) = gen_if((yyvsp[-1].node), (yyvsp[0].node), NULL);
ast_set_flags((yyvsp[0].node), AST_FLAG_UNHYGIENIC);
}
-#line 3472 "gen/gen_parser.c"
+#line 3486 "gen/gen_parser.c"
break;
case 136: /* const_if: "if" expr body "else" body */
-#line 404 "src/parser.y"
+#line 405 "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 3482 "gen/gen_parser.c"
+#line 3496 "gen/gen_parser.c"
break;
case 137: /* const_if: "if" expr body "else" const_if */
-#line 409 "src/parser.y"
+#line 410 "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 3491 "gen/gen_parser.c"
+#line 3505 "gen/gen_parser.c"
break;
case 138: /* const: "const" const_if */
-#line 417 "src/parser.y"
+#line 418 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); ast_set_flags((yyval.node), AST_FLAG_CONST);
}
-#line 3498 "gen/gen_parser.c"
+#line 3512 "gen/gen_parser.c"
break;
case 139: /* const: "const" const_for */
-#line 419 "src/parser.y"
+#line 420 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); ast_set_flags((yyval.node), AST_FLAG_CONST);
}
-#line 3505 "gen/gen_parser.c"
+#line 3519 "gen/gen_parser.c"
break;
case 140: /* func_sign: "(" decl_list "=>" type ")" */
-#line 423 "src/parser.y"
+#line 424 "src/parser.y"
{
(yyval.node) = gen_type(AST_TYPE_SIGN, NULL, (yyvsp[-3].node), (yyvsp[-1].node));
}
-#line 3513 "gen/gen_parser.c"
+#line 3527 "gen/gen_parser.c"
break;
case 141: /* func_sign: "(" decl_list ")" */
-#line 426 "src/parser.y"
+#line 427 "src/parser.y"
{ (yyval.node) = gen_type(AST_TYPE_SIGN, NULL, (yyvsp[-1].node), NULL);
}
-#line 3520 "gen/gen_parser.c"
+#line 3534 "gen/gen_parser.c"
break;
case 142: /* func_sign: "(" decl_list "=>" ")" */
-#line 428 "src/parser.y"
+#line 429 "src/parser.y"
{ (yyval.node) = gen_type(AST_TYPE_SIGN, NULL, (yyvsp[-2].node), NULL);
}
-#line 3527 "gen/gen_parser.c"
+#line 3541 "gen/gen_parser.c"
break;
case 143: /* func_sign: "(" "=>" type ")" */
-#line 430 "src/parser.y"
+#line 431 "src/parser.y"
{ (yyval.node) = gen_type(AST_TYPE_SIGN, NULL, NULL, (yyvsp[-1].node));
}
-#line 3534 "gen/gen_parser.c"
+#line 3548 "gen/gen_parser.c"
break;
case 144: /* func_sign: "(" ")" */
-#line 432 "src/parser.y"
+#line 433 "src/parser.y"
{ (yyval.node) = gen_type(AST_TYPE_SIGN, NULL, NULL, NULL);
}
-#line 3541 "gen/gen_parser.c"
+#line 3555 "gen/gen_parser.c"
break;
case 145: /* variadic_sign: func_sign */
-#line 436 "src/parser.y"
+#line 437 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3547 "gen/gen_parser.c"
+#line 3561 "gen/gen_parser.c"
break;
case 146: /* variadic_sign: "(" decl_list "..." id "=>" type ")" */
-#line 437 "src/parser.y"
+#line 438 "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 3557 "gen/gen_parser.c"
+#line 3571 "gen/gen_parser.c"
break;
case 147: /* type: id */
-#line 444 "src/parser.y"
+#line 445 "src/parser.y"
{ (yyval.node) = gen_type(AST_TYPE_ID, (yyvsp[0].node), NULL, NULL); }
-#line 3563 "gen/gen_parser.c"
+#line 3577 "gen/gen_parser.c"
break;
case 148: /* type: "'" func_sign */
-#line 445 "src/parser.y"
+#line 446 "src/parser.y"
{
(yyval.node) = gen_type(AST_TYPE_POINTER, NULL, NULL, NULL);
(yyval.node)->_type.next = (yyvsp[0].node);
}
-#line 3572 "gen/gen_parser.c"
+#line 3586 "gen/gen_parser.c"
break;
case 149: /* type: id "(" type_list ")" */
-#line 449 "src/parser.y"
+#line 450 "src/parser.y"
{
(yyval.node) = gen_type(AST_TYPE_STRUCT, (yyvsp[-3].node), (yyvsp[-1].node), NULL);
}
-#line 3580 "gen/gen_parser.c"
+#line 3594 "gen/gen_parser.c"
break;
case 150: /* type: "'" type */
-#line 452 "src/parser.y"
+#line 453 "src/parser.y"
{
(yyval.node) = gen_type(AST_TYPE_POINTER, NULL, NULL, NULL);
(yyval.node)->_type.next = (yyvsp[0].node);
}
-#line 3589 "gen/gen_parser.c"
+#line 3603 "gen/gen_parser.c"
break;
case 151: /* type: "[" "]" type */
-#line 456 "src/parser.y"
+#line 457 "src/parser.y"
{
(yyval.node) = gen_type(AST_TYPE_ARR, NULL, NULL, NULL);
(yyval.node)->_type.next = (yyvsp[0].node);
}
-#line 3598 "gen/gen_parser.c"
+#line 3612 "gen/gen_parser.c"
break;
case 152: /* type: "[" expr "]" type */
-#line 460 "src/parser.y"
+#line 461 "src/parser.y"
{
(yyval.node) = gen_type(AST_TYPE_ARR, NULL, (yyvsp[-2].node), NULL);
(yyval.node)->_type.next = (yyvsp[0].node);
}
-#line 3607 "gen/gen_parser.c"
+#line 3621 "gen/gen_parser.c"
break;
case 153: /* type: "typeof" expr */
-#line 464 "src/parser.y"
+#line 465 "src/parser.y"
{
(yyval.node) = gen_type(AST_TYPE_TYPEOF, NULL, (yyvsp[0].node), NULL);
}
-#line 3615 "gen/gen_parser.c"
+#line 3629 "gen/gen_parser.c"
break;
- case 154: /* var_decl: id "mut" type */
-#line 469 "src/parser.y"
+ case 154: /* type: id "::" type */
+#line 468 "src/parser.y"
+ {
+ (yyval.node) = gen_type(AST_TYPE_MEMBER, (yyvsp[-2].node), (yyvsp[0].node), NULL);
+ }
+#line 3637 "gen/gen_parser.c"
+ break;
+
+ case 155: /* var_decl: id "mut" type */
+#line 473 "src/parser.y"
{
(yyval.node) = gen_var((yyvsp[-2].node), (yyvsp[0].node), NULL);
ast_set_flags((yyval.node), AST_FLAG_MUTABLE);
}
-#line 3624 "gen/gen_parser.c"
+#line 3646 "gen/gen_parser.c"
break;
- case 155: /* var_decl: id "const" type */
-#line 473 "src/parser.y"
+ case 156: /* var_decl: id "const" type */
+#line 477 "src/parser.y"
{ (yyval.node) = gen_var((yyvsp[-2].node), (yyvsp[0].node), NULL); }
-#line 3630 "gen/gen_parser.c"
+#line 3652 "gen/gen_parser.c"
break;
- case 156: /* var_decl: id type */
-#line 474 "src/parser.y"
+ case 157: /* var_decl: id type */
+#line 478 "src/parser.y"
{ (yyval.node) = gen_var((yyvsp[-1].node), (yyvsp[0].node), NULL); }
-#line 3636 "gen/gen_parser.c"
+#line 3658 "gen/gen_parser.c"
break;
- case 157: /* var_init: var_decl "=" init_expr */
-#line 477 "src/parser.y"
+ case 158: /* var_init: var_decl "=" init_expr */
+#line 481 "src/parser.y"
{ (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->_var.init = (yyvsp[0].node); }
-#line 3642 "gen/gen_parser.c"
+#line 3664 "gen/gen_parser.c"
break;
- case 158: /* var_init: id "mut" "=" init_expr */
-#line 478 "src/parser.y"
+ case 159: /* var_init: id "mut" "=" init_expr */
+#line 482 "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 3651 "gen/gen_parser.c"
+#line 3673 "gen/gen_parser.c"
break;
- case 159: /* var_init: id "const" "=" init_expr */
-#line 482 "src/parser.y"
+ case 160: /* var_init: id "const" "=" init_expr */
+#line 486 "src/parser.y"
{
(yyval.node) = gen_var((yyvsp[-3].node), NULL, (yyvsp[0].node));
ast_set_flags((yyval.node), AST_FLAG_UNTYPED);
}
-#line 3660 "gen/gen_parser.c"
+#line 3682 "gen/gen_parser.c"
break;
- case 160: /* proc: id variadic_sign body */
-#line 488 "src/parser.y"
+ case 161: /* proc: id variadic_sign body */
+#line 492 "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 3669 "gen/gen_parser.c"
+#line 3691 "gen/gen_parser.c"
break;
- case 161: /* proc: "extern" id func_sign */
-#line 492 "src/parser.y"
+ case 162: /* proc: "extern" id func_sign */
+#line 496 "src/parser.y"
{
(yyval.node) = gen_proc((yyvsp[-1].node), (yyvsp[0].node), NULL);
ast_set_flags((yyval.node), AST_FLAG_EXTERN);
}
-#line 3678 "gen/gen_parser.c"
+#line 3700 "gen/gen_parser.c"
break;
- case 162: /* lambda: "[" macro_list "]" func_sign body */
-#line 498 "src/parser.y"
+ case 163: /* lambda: "[" macro_list "]" func_sign body */
+#line 502 "src/parser.y"
{ (yyval.node) = gen_lambda((yyvsp[-3].node), (yyvsp[-1].node), (yyvsp[0].node)); }
-#line 3684 "gen/gen_parser.c"
+#line 3706 "gen/gen_parser.c"
break;
- case 163: /* struct_elem: var_decl */
-#line 501 "src/parser.y"
+ case 164: /* struct_elem: var_decl */
+#line 505 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3690 "gen/gen_parser.c"
+#line 3712 "gen/gen_parser.c"
break;
- case 164: /* struct_list: struct_elem ";" struct_list */
-#line 504 "src/parser.y"
+ case 165: /* struct_list: struct_elem ";" struct_list */
+#line 508 "src/parser.y"
{ (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->next = (yyvsp[0].node); }
-#line 3696 "gen/gen_parser.c"
+#line 3718 "gen/gen_parser.c"
break;
- case 165: /* struct_list: struct_elem ";" */
-#line 505 "src/parser.y"
+ case 166: /* struct_list: struct_elem ";" */
+#line 509 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3702 "gen/gen_parser.c"
+#line 3724 "gen/gen_parser.c"
break;
- case 166: /* union: "union" id "{" struct_list "}" */
-#line 508 "src/parser.y"
+ case 167: /* union: "union" id "{" struct_list "}" */
+#line 512 "src/parser.y"
{
(yyval.node) = gen_union((yyvsp[-3].node), NULL, (yyvsp[-1].node));
}
-#line 3710 "gen/gen_parser.c"
+#line 3732 "gen/gen_parser.c"
break;
- case 167: /* union: "union" id "(" generic_list ")" "{" struct_list "}" */
-#line 511 "src/parser.y"
+ case 168: /* union: "union" id "(" generic_list ")" "{" struct_list "}" */
+#line 515 "src/parser.y"
{
(yyval.node) = gen_union((yyvsp[-6].node), (yyvsp[-4].node), (yyvsp[-1].node));
}
-#line 3718 "gen/gen_parser.c"
+#line 3740 "gen/gen_parser.c"
break;
- case 168: /* generic: id type */
-#line 516 "src/parser.y"
+ case 169: /* generic: id type */
+#line 520 "src/parser.y"
{ (yyval.node) = gen_alias((yyvsp[-1].node), (yyvsp[0].node)); }
-#line 3724 "gen/gen_parser.c"
+#line 3746 "gen/gen_parser.c"
break;
- case 169: /* generic_list: generic "," generic_list */
-#line 517 "src/parser.y"
+ case 170: /* generic_list: generic "," generic_list */
+#line 521 "src/parser.y"
{ (yyval.node) = (yyvsp[-2].node); (yyval.node)->next = (yyvsp[0].node); }
-#line 3730 "gen/gen_parser.c"
+#line 3752 "gen/gen_parser.c"
break;
- case 170: /* generic_list: generic */
-#line 518 "src/parser.y"
+ case 171: /* generic_list: generic */
+#line 522 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3736 "gen/gen_parser.c"
+#line 3758 "gen/gen_parser.c"
break;
- case 171: /* struct: "struct" id "{" struct_list "}" */
-#line 521 "src/parser.y"
+ case 172: /* struct: "struct" id "{" struct_list "}" */
+#line 525 "src/parser.y"
{
(yyval.node) = gen_struct((yyvsp[-3].node), NULL, (yyvsp[-1].node));
}
-#line 3744 "gen/gen_parser.c"
+#line 3766 "gen/gen_parser.c"
break;
- case 172: /* struct: "struct" id "(" generic_list ")" "{" struct_list "}" */
-#line 524 "src/parser.y"
+ case 173: /* struct: "struct" id "(" generic_list ")" "{" struct_list "}" */
+#line 528 "src/parser.y"
{
(yyval.node) = gen_struct((yyvsp[-6].node), (yyvsp[-4].node), (yyvsp[-1].node));
}
-#line 3752 "gen/gen_parser.c"
+#line 3774 "gen/gen_parser.c"
break;
- case 173: /* template_elem: id ";" */
-#line 531 "src/parser.y"
+ case 174: /* template_elem: id ";" */
+#line 535 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3758 "gen/gen_parser.c"
+#line 3780 "gen/gen_parser.c"
break;
- case 174: /* template_elem: id func_sign ";" */
-#line 532 "src/parser.y"
+ case 175: /* template_elem: id func_sign ";" */
+#line 536 "src/parser.y"
{ (yyval.node) = gen_proc((yyvsp[-2].node), (yyvsp[-1].node), NULL); }
-#line 3764 "gen/gen_parser.c"
+#line 3786 "gen/gen_parser.c"
break;
- case 175: /* template_elem: var_decl ";" */
-#line 533 "src/parser.y"
+ case 176: /* template_elem: var_decl ";" */
+#line 537 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3770 "gen/gen_parser.c"
+#line 3792 "gen/gen_parser.c"
break;
- case 176: /* template_elem: union */
-#line 534 "src/parser.y"
+ case 177: /* template_elem: union */
+#line 538 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3776 "gen/gen_parser.c"
+#line 3798 "gen/gen_parser.c"
break;
- case 177: /* template_list: template_elem template_list */
-#line 537 "src/parser.y"
+ case 178: /* template_list: template_elem template_list */
+#line 541 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); (yyvsp[-1].node)->next = (yyvsp[0].node); }
-#line 3782 "gen/gen_parser.c"
+#line 3804 "gen/gen_parser.c"
break;
- case 178: /* template_list: template_elem */
-#line 538 "src/parser.y"
+ case 179: /* template_list: template_elem */
+#line 542 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3788 "gen/gen_parser.c"
+#line 3810 "gen/gen_parser.c"
break;
- case 179: /* type_list: type "," type_list */
-#line 541 "src/parser.y"
+ case 180: /* type_list: type "," type_list */
+#line 545 "src/parser.y"
{ (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->next = (yyvsp[0].node); }
-#line 3794 "gen/gen_parser.c"
+#line 3816 "gen/gen_parser.c"
break;
- case 180: /* type_list: type */
-#line 542 "src/parser.y"
+ case 181: /* type_list: type */
+#line 546 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3800 "gen/gen_parser.c"
+#line 3822 "gen/gen_parser.c"
break;
- case 181: /* type_alias: "type" id type */
-#line 545 "src/parser.y"
- { (yyval.node) = gen_alias((yyvsp[-1].node), (yyvsp[0].node)); }
-#line 3806 "gen/gen_parser.c"
+ case 182: /* type_alias: "typedef" id type */
+#line 549 "src/parser.y"
+ { (yyval.node) = gen_alias((yyvsp[-1].node), (yyvsp[0].node)); }
+#line 3828 "gen/gen_parser.c"
break;
- case 182: /* type_template: "type" id "{" template_list "}" */
-#line 550 "src/parser.y"
- {
+ case 183: /* type_template: "typedef" id "{" template_list "}" */
+#line 554 "src/parser.y"
+ {
(yyval.node) = gen_template((yyvsp[-3].node), (yyvsp[-1].node));
}
-#line 3814 "gen/gen_parser.c"
+#line 3836 "gen/gen_parser.c"
break;
- case 183: /* type_template: "type" id "{" "}" */
-#line 553 "src/parser.y"
- {
+ case 184: /* type_template: "typedef" id "{" "}" */
+#line 557 "src/parser.y"
+ {
/* should match anything, but doesn't implement anything */
(yyval.node) = gen_template((yyvsp[-2].node), NULL);
}
-#line 3823 "gen/gen_parser.c"
+#line 3845 "gen/gen_parser.c"
break;
- case 184: /* enum_val: id */
-#line 559 "src/parser.y"
+ case 185: /* enum_val: id */
+#line 563 "src/parser.y"
{ (yyval.node) = gen_val((yyvsp[0].node), NULL); }
-#line 3829 "gen/gen_parser.c"
+#line 3851 "gen/gen_parser.c"
break;
- case 185: /* enum_val: id "=" expr */
-#line 560 "src/parser.y"
+ case 186: /* enum_val: id "=" expr */
+#line 564 "src/parser.y"
{ (yyval.node) = gen_val((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3835 "gen/gen_parser.c"
+#line 3857 "gen/gen_parser.c"
break;
- case 186: /* enum_list: enum_val "," enum_list */
-#line 563 "src/parser.y"
+ case 187: /* enum_list: enum_val "," enum_list */
+#line 567 "src/parser.y"
{ (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->next = (yyvsp[0].node); }
-#line 3841 "gen/gen_parser.c"
+#line 3863 "gen/gen_parser.c"
break;
- case 187: /* enum_list: enum_val "," */
-#line 564 "src/parser.y"
+ case 188: /* enum_list: enum_val "," */
+#line 568 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3847 "gen/gen_parser.c"
+#line 3869 "gen/gen_parser.c"
break;
- case 188: /* enum_list: enum_val */
-#line 565 "src/parser.y"
+ case 189: /* enum_list: enum_val */
+#line 569 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3853 "gen/gen_parser.c"
+#line 3875 "gen/gen_parser.c"
break;
- case 189: /* enum: "enum" id ":" type "{" enum_list "}" */
-#line 568 "src/parser.y"
+ case 190: /* enum: "enum" id ":" type "{" enum_list "}" */
+#line 572 "src/parser.y"
{ (yyval.node) = gen_enum((yyvsp[-5].node), (yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3859 "gen/gen_parser.c"
+#line 3881 "gen/gen_parser.c"
break;
- case 190: /* enum: "enum" id "{" enum_list "}" */
-#line 569 "src/parser.y"
+ case 191: /* enum: "enum" id "{" enum_list "}" */
+#line 573 "src/parser.y"
{
(yyval.node) = gen_enum((yyvsp[-3].node), NULL, (yyvsp[-1].node));
ast_set_flags((yyval.node), AST_FLAG_UNTYPED);
}
-#line 3868 "gen/gen_parser.c"
+#line 3890 "gen/gen_parser.c"
break;
- case 191: /* top_if: "if" expr "{" unit "}" */
-#line 575 "src/parser.y"
+ case 192: /* top_if: "if" expr "{" unit "}" */
+#line 579 "src/parser.y"
{
(yyval.node) = gen_if((yyvsp[-3].node), (yyvsp[-1].node), NULL);
ast_set_flags((yyval.node), AST_FLAG_UNHYGIENIC);
}
-#line 3877 "gen/gen_parser.c"
+#line 3899 "gen/gen_parser.c"
break;
- case 192: /* top_if: "if" expr "{" unit "}" "else" "{" unit "}" */
-#line 579 "src/parser.y"
+ case 193: /* top_if: "if" expr "{" unit "}" "else" "{" unit "}" */
+#line 583 "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 3886 "gen/gen_parser.c"
+#line 3908 "gen/gen_parser.c"
break;
- case 193: /* top_if: "if" expr "{" unit "}" "else" top_if */
-#line 583 "src/parser.y"
+ case 194: /* top_if: "if" expr "{" unit "}" "else" top_if */
+#line 587 "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 3895 "gen/gen_parser.c"
+#line 3917 "gen/gen_parser.c"
break;
- case 194: /* top: ";" */
-#line 591 "src/parser.y"
+ case 195: /* top: ";" */
+#line 595 "src/parser.y"
{ (yyval.node) = gen_empty(); }
-#line 3901 "gen/gen_parser.c"
+#line 3923 "gen/gen_parser.c"
break;
- case 195: /* top: enum */
-#line 592 "src/parser.y"
+ case 196: /* top: enum */
+#line 596 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3907 "gen/gen_parser.c"
+#line 3929 "gen/gen_parser.c"
break;
- case 196: /* top: proc */
-#line 593 "src/parser.y"
+ case 197: /* top: proc */
+#line 597 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3913 "gen/gen_parser.c"
+#line 3935 "gen/gen_parser.c"
break;
- case 197: /* top: struct */
-#line 594 "src/parser.y"
+ case 198: /* top: struct */
+#line 598 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3919 "gen/gen_parser.c"
+#line 3941 "gen/gen_parser.c"
break;
- case 198: /* top: macro */
-#line 595 "src/parser.y"
+ case 199: /* top: macro */
+#line 599 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3925 "gen/gen_parser.c"
+#line 3947 "gen/gen_parser.c"
break;
- case 199: /* top: "const" top_if */
-#line 596 "src/parser.y"
+ case 200: /* top: "const" top_if */
+#line 600 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); ast_set_flags((yyval.node), AST_FLAG_CONST); }
-#line 3931 "gen/gen_parser.c"
+#line 3953 "gen/gen_parser.c"
break;
- case 200: /* top: import ";" */
-#line 597 "src/parser.y"
+ case 201: /* top: import ";" */
+#line 601 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3937 "gen/gen_parser.c"
+#line 3959 "gen/gen_parser.c"
break;
- case 201: /* top: type_alias ";" */
-#line 598 "src/parser.y"
+ case 202: /* top: type_alias ";" */
+#line 602 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3943 "gen/gen_parser.c"
+#line 3965 "gen/gen_parser.c"
break;
- case 202: /* top: type_template */
-#line 599 "src/parser.y"
+ case 203: /* top: type_template */
+#line 603 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3949 "gen/gen_parser.c"
+#line 3971 "gen/gen_parser.c"
break;
- case 203: /* top: "pub" enum */
-#line 600 "src/parser.y"
+ case 204: /* top: "pub" enum */
+#line 604 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); ast_set_flags((yyvsp[0].node), AST_FLAG_PUBLIC); }
-#line 3955 "gen/gen_parser.c"
+#line 3977 "gen/gen_parser.c"
break;
- case 204: /* top: "pub" struct */
-#line 601 "src/parser.y"
+ case 205: /* top: "pub" struct */
+#line 605 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); ast_set_flags((yyvsp[0].node), AST_FLAG_PUBLIC); }
-#line 3961 "gen/gen_parser.c"
+#line 3983 "gen/gen_parser.c"
break;
- case 205: /* top: "pub" proc */
-#line 602 "src/parser.y"
+ case 206: /* top: "pub" proc */
+#line 606 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); ast_set_flags((yyvsp[0].node), AST_FLAG_PUBLIC); }
-#line 3967 "gen/gen_parser.c"
+#line 3989 "gen/gen_parser.c"
break;
- case 206: /* top: "pub" macro */
-#line 603 "src/parser.y"
+ case 207: /* top: "pub" macro */
+#line 607 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); ast_set_flags((yyvsp[0].node), AST_FLAG_PUBLIC); }
-#line 3973 "gen/gen_parser.c"
+#line 3995 "gen/gen_parser.c"
break;
- case 207: /* top: "pub" import ";" */
-#line 604 "src/parser.y"
+ case 208: /* top: "pub" import ";" */
+#line 608 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); ast_set_flags((yyvsp[-1].node), AST_FLAG_PUBLIC); }
-#line 3979 "gen/gen_parser.c"
+#line 4001 "gen/gen_parser.c"
break;
- case 208: /* top: "pub" type_alias ";" */
-#line 605 "src/parser.y"
+ case 209: /* top: "pub" type_alias ";" */
+#line 609 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); ast_set_flags((yyvsp[-1].node), AST_FLAG_PUBLIC); }
-#line 3985 "gen/gen_parser.c"
+#line 4007 "gen/gen_parser.c"
break;
- case 209: /* top: "pub" type_template */
-#line 606 "src/parser.y"
+ case 210: /* top: "pub" type_template */
+#line 610 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); ast_set_flags((yyvsp[0].node), AST_FLAG_PUBLIC); }
-#line 3991 "gen/gen_parser.c"
+#line 4013 "gen/gen_parser.c"
break;
- case 210: /* top: var ";" */
-#line 607 "src/parser.y"
+ case 211: /* top: var ";" */
+#line 611 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3997 "gen/gen_parser.c"
+#line 4019 "gen/gen_parser.c"
break;
- case 211: /* top: "pub" var ";" */
-#line 608 "src/parser.y"
+ case 212: /* top: "pub" var ";" */
+#line 612 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); ast_set_flags((yyvsp[-1].node), AST_FLAG_PUBLIC); }
-#line 4003 "gen/gen_parser.c"
+#line 4025 "gen/gen_parser.c"
break;
- case 212: /* top: error */
-#line 609 "src/parser.y"
+ case 213: /* top: error */
+#line 613 "src/parser.y"
{
(yyval.node) = gen_empty();
parser->failed = true;
@@ -4017,29 +4039,29 @@ yyreduce:
yyclearin;
yyerrok;
}
-#line 4021 "gen/gen_parser.c"
+#line 4043 "gen/gen_parser.c"
break;
- case 213: /* unit: top */
-#line 624 "src/parser.y"
+ case 214: /* unit: top */
+#line 628 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 4027 "gen/gen_parser.c"
+#line 4049 "gen/gen_parser.c"
break;
- case 214: /* unit: top unit */
-#line 625 "src/parser.y"
+ case 215: /* unit: top unit */
+#line 629 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); (yyvsp[-1].node)->next = (yyvsp[0].node); }
-#line 4033 "gen/gen_parser.c"
+#line 4055 "gen/gen_parser.c"
break;
- case 215: /* input: unit */
-#line 628 "src/parser.y"
+ case 216: /* input: unit */
+#line 632 "src/parser.y"
{ parser->tree = (yyvsp[0].node); }
-#line 4039 "gen/gen_parser.c"
+#line 4061 "gen/gen_parser.c"
break;
-#line 4043 "gen/gen_parser.c"
+#line 4065 "gen/gen_parser.c"
default: break;
}
@@ -4268,5 +4290,5 @@ yyreturnlab:
return yyresult;
}
-#line 631 "src/parser.y"
+#line 635 "src/parser.y"