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.c2752
1 files changed, 1375 insertions, 1377 deletions
diff --git a/gen/gen_parser.c b/gen/gen_parser.c
index d923fb3..6feccd3 100644
--- a/gen/gen_parser.c
+++ b/gen/gen_parser.c
@@ -233,12 +233,12 @@ enum yysymbol_kind_t
YYSYMBOL_const_for = 121, /* const_for */
YYSYMBOL_const_if = 122, /* const_if */
YYSYMBOL_const = 123, /* const */
- YYSYMBOL_simple_sign = 124, /* simple_sign */
- YYSYMBOL_func_sign = 125, /* func_sign */
- YYSYMBOL_type = 126, /* type */
- YYSYMBOL_var_decl = 127, /* var_decl */
- YYSYMBOL_var_init = 128, /* var_init */
- YYSYMBOL_proc = 129, /* proc */
+ YYSYMBOL_func_sign = 124, /* func_sign */
+ YYSYMBOL_type = 125, /* type */
+ YYSYMBOL_var_decl = 126, /* var_decl */
+ YYSYMBOL_var_init = 127, /* var_init */
+ YYSYMBOL_proc = 128, /* proc */
+ YYSYMBOL_captures = 129, /* captures */
YYSYMBOL_lambda = 130, /* lambda */
YYSYMBOL_struct_elem = 131, /* struct_elem */
YYSYMBOL_members = 132, /* members */
@@ -589,18 +589,18 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 69
+#define YYFINAL 68
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 2267
+#define YYLAST 2223
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 85
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 67
/* YYNRULES -- Number of rules. */
-#define YYNRULES 253
+#define YYNRULES 255
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 501
+#define YYNSTATES 500
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 339
@@ -662,27 +662,27 @@ static const yytype_int16 yyrline[] =
201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
211, 214, 217, 218, 219, 220, 221, 222, 225, 226,
227, 228, 229, 232, 233, 234, 237, 238, 241, 244,
- 245, 246, 247, 250, 253, 254, 255, 256, 257, 258,
+ 245, 246, 247, 248, 251, 254, 255, 256, 257, 258,
259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
- 269, 270, 271, 274, 275, 276, 279, 280, 281, 282,
- 283, 284, 288, 289, 290, 291, 292, 293, 297, 298,
+ 269, 270, 271, 272, 275, 276, 277, 280, 281, 282,
+ 283, 284, 285, 289, 290, 291, 292, 293, 294, 298,
299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
- 309, 310, 311, 312, 313, 314, 315, 316, 319, 322,
- 328, 331, 332, 333, 334, 335, 336, 337, 338, 339,
+ 309, 310, 311, 312, 313, 314, 315, 316, 317, 320,
+ 323, 329, 332, 333, 334, 335, 336, 337, 338, 339,
340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
- 350, 351, 352, 368, 371, 372, 373, 376, 377, 380,
- 381, 385, 389, 396, 402, 403, 406, 407, 413, 414,
- 417, 420, 421, 422, 426, 429, 431, 436, 437, 440,
- 444, 451, 455, 460, 468, 469, 472, 475, 476, 477,
- 478, 481, 482, 489, 490, 494, 497, 501, 505, 508,
- 513, 517, 518, 521, 522, 526, 532, 536, 542, 543,
- 546, 549, 550, 553, 556, 561, 564, 565, 568, 571,
- 578, 579, 580, 581, 584, 585, 588, 589, 592, 597,
- 600, 606, 607, 610, 611, 612, 615, 616, 622, 626,
- 630, 636, 640, 641, 644, 645, 646, 649, 650, 655,
- 656, 657, 658, 659, 660, 661, 662, 663, 664, 665,
- 666, 667, 668, 669, 670, 671, 672, 673, 677, 678,
- 693, 694, 697, 698
+ 350, 351, 352, 353, 369, 372, 373, 374, 377, 378,
+ 381, 382, 383, 387, 391, 398, 404, 405, 408, 409,
+ 415, 416, 419, 422, 423, 424, 428, 431, 433, 438,
+ 439, 442, 446, 453, 457, 462, 470, 471, 474, 477,
+ 478, 479, 480, 483, 484, 488, 491, 495, 499, 502,
+ 507, 511, 512, 515, 516, 520, 526, 530, 537, 538,
+ 541, 542, 545, 548, 549, 552, 555, 560, 563, 564,
+ 567, 570, 577, 578, 579, 580, 583, 584, 587, 588,
+ 591, 596, 599, 605, 606, 609, 610, 611, 614, 615,
+ 621, 625, 629, 635, 639, 640, 643, 644, 645, 648,
+ 649, 654, 655, 656, 657, 658, 659, 660, 661, 662,
+ 663, 664, 665, 666, 667, 668, 669, 670, 671, 672,
+ 676, 677, 692, 693, 696, 697
};
#endif
@@ -716,12 +716,12 @@ static const char *const yytname[] =
"const_unop", "const_expr", "expr", "while", "do_while", "goto",
"statelet", "statement", "statements", "body", "references", "macro",
"exprs", "construct_arg", "construct_args", "construct", "if", "for",
- "case", "cases", "switch", "const_for", "const_if", "const",
- "simple_sign", "func_sign", "type", "var_decl", "var_init", "proc",
- "lambda", "struct_elem", "members", "union", "generic", "generics",
- "struct", "template_elem", "template_elems", "types", "alias",
- "template", "enum_val", "enums", "enum", "top_if", "top_var_decl",
- "top_var_init", "top_var", "top", "unit", "input", YY_NULLPTR
+ "case", "cases", "switch", "const_for", "const_if", "const", "func_sign",
+ "type", "var_decl", "var_init", "proc", "captures", "lambda",
+ "struct_elem", "members", "union", "generic", "generics", "struct",
+ "template_elem", "template_elems", "types", "alias", "template",
+ "enum_val", "enums", "enum", "top_if", "top_var_decl", "top_var_init",
+ "top_var", "top", "unit", "input", YY_NULLPTR
};
static const char *
@@ -731,12 +731,12 @@ yysymbol_name (yysymbol_kind_t yysymbol)
}
#endif
-#define YYPACT_NINF (-284)
+#define YYPACT_NINF (-283)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
-#define YYTABLE_NINF (-254)
+#define YYTABLE_NINF (-256)
#define yytable_value_is_error(Yyn) \
0
@@ -745,57 +745,56 @@ yysymbol_name (yysymbol_kind_t yysymbol)
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 614, -284, -284, -284, 137, 27, 27, 27, 19, 533,
- 27, 27, 27, 775, -284, -284, -284, -284, -284, -284,
- -284, -284, -284, 29, -284, -284, 523, -284, 53, -284,
- -284, -284, -284, -284, -284, -284, -284, -284, 33, 54,
- 350, -284, -284, -284, 533, 533, 533, 533, -284, -284,
- -284, 2068, -48, 42, -21, -284, 28, 1352, -48, 400,
- 574, 121, -17, -10, -284, 1, -284, 533, -284, -284,
- 27, 27, 27, 27, 56, -284, -284, 45, -284, 1940,
- 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
- 533, 533, 533, 533, 533, 533, 533, 533, 533, 815,
- 121, -284, 326, 27, 36, 533, -284, -284, -284, -284,
- 1352, 27, 1157, 1352, 1352, 1352, 1352, 39, 1352, 1352,
- 1184, 27, 693, -4, 57, -284, -284, -284, -284, 2003,
- -284, -284, -284, -284, -284, 533, -284, 533, -284, -284,
- 326, 331, 89, 41, -284, 95, 771, 326, 999, -284,
- 2150, 326, 99, 62, 822, -284, 138, 78, 84, 85,
- -284, 665, 156, -284, 23, 96, -284, -284, -284, -284,
- 45, 45, 2170, 1293, 1399, 330, 2210, 2190, 1204, 1204,
- 1204, 1204, 2230, 2230, 180, 180, 97, -46, 100, 168,
- 129, 106, 1, 143, 37, 1011, -7, -284, 801, -7,
- -7, 232, 615, -7, 182, 1443, 1509, 372, 1575, 118,
- 194, 130, 132, -284, 693, 1246, 1352, 1352, 1352, 1352,
- 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352,
- 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352,
- 1352, 1352, 1352, 1352, 1352, 1352, 1273, 1352, 693, 27,
- 2150, 2150, 160, 326, 326, -284, 326, 27, -284, 503,
- 326, -284, 163, 157, -284, -284, 1352, 27, -284, -284,
- 1379, 1352, 1, 1352, 67, -284, 259, -284, -284, -284,
- 1906, -284, -284, -284, 226, 914, 161, -284, -284, -284,
- -284, 194, -284, -284, -284, -284, -284, -284, 27, 165,
- 27, -284, 166, -284, -284, 228, -284, -284, -284, 187,
- 27, 1352, 27, -284, -284, 27, 27, 1, 771, 27,
- 1906, 205, 183, 188, 198, 79, 612, 649, -284, -284,
- 1352, -284, 80, -284, 1352, -284, 389, 213, 193, 1906,
- -284, 1972, -24, -24, -24, 232, 232, 1478, 2037, 615,
- 1875, 1611, 1544, 1743, 1743, 1743, 1743, 1677, 1677, 878,
- 878, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972,
- 1972, -284, 199, 1642, -284, -284, -284, -284, -284, -284,
- 195, -284, 201, -284, 326, -284, 1906, -284, 272, 1443,
- 219, 1906, 533, 27, -284, -284, -284, -284, -284, -284,
- -284, 27, -284, 27, -284, -36, 209, 1906, -284, -284,
- 212, -284, -284, 280, 801, -284, -284, -28, 278, 533,
- 79, 214, 1352, 1352, 1906, -284, 1, -284, 1379, -284,
- -284, -284, 326, -284, -284, 1352, -284, 1352, 2102, 282,
- 223, 227, 815, -284, -284, 1, 1352, -284, -284, -284,
- 1078, 2128, -284, -284, 1906, 1906, -284, -284, 221, 1708,
- 1774, 244, 1352, -284, -284, 231, -284, 1906, -284, 1078,
- -284, 1352, -284, -27, 1840, 1, -284, -284, 1443, -284,
- -284, 1352, -284, -284, -284, 109, 1352, 234, 416, 1352,
- 237, 326, 533, 1906, 533, -7, 693, 1090, 1809, 326,
- 693
+ 1275, -283, -283, -283, 220, 47, 47, 47, 24, 213,
+ 47, 47, 47, 872, -283, -283, -283, -283, -283, -283,
+ -283, -283, -283, 42, -283, -283, 124, -283, 58, -283,
+ -283, -283, -283, -283, -283, -283, -283, -283, 66, 77,
+ 368, -283, -283, -283, 213, 213, 213, 213, -283, -283,
+ -283, 2036, -11, 29, -7, -283, 28, 1230, -11, 214,
+ 622, 272, -5, 20, 54, -283, 213, -283, -283, 47,
+ 47, 47, 47, 70, -283, -283, -1, -283, 1845, 213,
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+ 213, 213, 213, 213, 213, 213, 213, 213, 1291, -283,
+ 16, 47, 51, 213, -283, -283, -283, -283, 1230, 47,
+ 1035, 1230, 1230, 1230, 1230, 53, 1230, 1230, 1062, 47,
+ 419, 55, 59, -283, -283, -283, -283, 1908, -283, -283,
+ -283, -283, -283, 213, -283, 213, -283, 47, -283, 16,
+ 556, 92, -9, -283, 99, 929, 16, 956, -283, 2106,
+ 16, 107, -2, 924, -283, 149, 84, 91, 94, -283,
+ 789, 177, -283, 10, 116, -283, -283, -283, -283, -1,
+ -1, 2126, 855, 482, 1082, 2166, 2146, 640, 640, 640,
+ 640, 2186, 2186, 321, 321, 122, 126, 191, 154, 127,
+ 47, 54, 172, 40, 1714, 35, -283, 357, 35, 35,
+ 162, 1175, 35, 204, 1348, 1414, 585, 1480, 152, 215,
+ 155, 182, 153, -283, 419, 1124, 1230, 1230, 1230, 1230,
+ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230,
+ 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230,
+ 1230, 1230, 1230, 1230, 1230, 1230, 1151, 1230, 419, 47,
+ 2106, 2106, -283, 160, 16, 16, -283, 703, -283, 382,
+ 703, -283, 185, 167, -283, -283, 1230, 47, -283, -283,
+ 1257, 1230, 54, 1230, 63, -283, 574, -283, -283, -283,
+ 1811, -283, -283, -283, 227, 755, 174, -283, -283, -283,
+ -283, 215, -283, -283, -283, -283, -283, -283, 47, 163,
+ 47, -283, 173, -283, -283, 241, -283, -283, -283, 196,
+ 47, 1230, 47, -283, -283, -283, 22, 47, 54, 929,
+ 47, 1811, 208, 184, 192, 209, 93, 782, 1075, -283,
+ -283, 1230, -283, 47, 96, -283, 1230, -283, 604, 230,
+ 201, 1811, -283, 1877, -27, -27, -27, 162, 162, 1383,
+ 1942, 1175, 1780, 1516, 1449, 1648, 1648, 1648, 1648, 1582,
+ 1582, 980, 980, 1877, 1877, 1877, 1877, 1877, 1877, 1877,
+ 1877, 1877, 1877, -283, 219, 1547, -283, -283, -283, -283,
+ -283, -283, -283, 226, -283, 16, -283, 1811, -283, 291,
+ 1348, 217, 1811, 213, 47, -283, -283, -283, -283, -283,
+ -283, -283, 47, -283, 47, -283, -39, 229, 1811, -283,
+ -283, 233, -283, -283, 303, 357, -283, -283, -38, 301,
+ 213, 93, 237, 1230, 1230, 1811, -283, -283, 54, -283,
+ 1257, -283, -283, -283, -283, -283, 1230, -283, 1230, 2058,
+ 305, 245, 246, 1291, -283, -283, 54, 1230, -283, -283,
+ -283, 841, 2084, -283, -283, 1811, 1811, -283, -283, 1613,
+ 1679, 266, 1230, -283, -283, 251, -283, 1811, -283, 841,
+ 1230, -283, 49, 1745, 54, -283, -283, 1348, -283, -283,
+ 1230, -283, -283, -283, 106, 1230, 252, 159, 1230, 254,
+ 16, 213, 1811, 213, 35, 419, 1973, 2007, 16, 419
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -803,80 +802,79 @@ static const yytype_int16 yypact[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 0, 249, 2, 248, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 236, 233, 230, 232, 231, 237,
- 238, 229, 234, 227, 228, 235, 0, 252, 0, 244,
- 243, 242, 241, 240, 245, 246, 239, 247, 0, 0,
- 0, 7, 78, 79, 0, 0, 0, 0, 77, 80,
- 81, 0, 0, 0, 0, 3, 0, 0, 0, 0,
- 0, 0, 173, 0, 171, 0, 223, 0, 251, 1,
- 0, 0, 0, 0, 0, 208, 74, 73, 75, 0,
+ 0, 251, 2, 250, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 238, 235, 232, 234, 233, 239,
+ 240, 231, 236, 229, 230, 237, 0, 254, 0, 246,
+ 245, 244, 243, 242, 247, 248, 241, 249, 0, 0,
+ 0, 7, 79, 80, 0, 0, 0, 0, 78, 81,
+ 82, 0, 0, 0, 0, 3, 0, 0, 0, 0,
+ 0, 0, 173, 0, 0, 225, 0, 253, 1, 0,
+ 0, 0, 0, 0, 210, 75, 74, 76, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 187,
+ 0, 0, 0, 0, 176, 86, 87, 88, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 187, 0, 0, 0, 0, 176, 85, 86, 87,
+ 0, 83, 0, 103, 90, 96, 97, 178, 107, 105,
+ 106, 104, 174, 0, 223, 0, 224, 0, 172, 0,
+ 173, 52, 0, 48, 51, 0, 0, 0, 186, 226,
+ 0, 199, 0, 0, 192, 0, 0, 0, 0, 212,
+ 0, 0, 205, 207, 0, 77, 57, 58, 59, 56,
+ 55, 61, 60, 62, 64, 63, 65, 68, 69, 70,
+ 71, 72, 73, 66, 67, 0, 0, 213, 217, 0,
+ 0, 0, 141, 0, 0, 41, 85, 0, 39, 99,
+ 38, 40, 42, 0, 0, 0, 83, 0, 0, 0,
+ 0, 189, 0, 102, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 82, 0, 102, 89, 95, 96, 178,
- 106, 104, 105, 103, 174, 0, 221, 0, 222, 170,
- 0, 173, 52, 0, 48, 51, 0, 0, 0, 186,
- 224, 0, 197, 0, 0, 190, 0, 0, 0, 0,
- 210, 0, 0, 203, 205, 0, 76, 56, 57, 58,
- 55, 54, 60, 59, 61, 63, 62, 64, 67, 68,
- 69, 70, 71, 72, 65, 66, 0, 0, 0, 211,
- 215, 0, 0, 140, 0, 0, 41, 84, 0, 39,
- 98, 38, 40, 42, 0, 0, 0, 82, 0, 0,
- 0, 0, 0, 101, 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,
- 225, 226, 0, 0, 0, 182, 0, 0, 167, 0,
- 0, 179, 207, 0, 132, 131, 0, 0, 114, 115,
- 0, 0, 0, 113, 0, 138, 82, 117, 116, 128,
- 111, 122, 123, 118, 136, 0, 0, 130, 124, 120,
- 121, 4, 5, 125, 126, 127, 129, 195, 0, 0,
- 192, 198, 0, 193, 200, 0, 202, 204, 209, 218,
- 0, 0, 214, 217, 143, 0, 0, 0, 0, 0,
- 146, 149, 0, 0, 151, 0, 0, 0, 88, 107,
- 0, 97, 0, 100, 0, 94, 82, 47, 0, 45,
- 44, 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, 91, 0, 0, 99, 83, 169, 180, 181, 50,
- 0, 168, 0, 49, 0, 175, 53, 110, 0, 0,
- 0, 112, 0, 0, 165, 164, 119, 133, 134, 137,
- 196, 0, 191, 0, 201, 0, 0, 212, 213, 139,
- 0, 141, 177, 0, 0, 150, 6, 0, 0, 0,
- 158, 0, 0, 0, 183, 189, 0, 43, 0, 93,
- 90, 92, 0, 166, 206, 0, 108, 0, 0, 0,
- 0, 0, 0, 220, 216, 0, 0, 148, 152, 153,
- 0, 0, 157, 159, 184, 185, 188, 46, 0, 0,
- 0, 161, 0, 199, 194, 0, 142, 147, 156, 0,
- 172, 0, 109, 0, 145, 0, 219, 155, 0, 162,
- 163, 0, 160, 154, 144, 0, 0, 173, 0, 0,
- 173, 0, 0, 178, 0, 178, 0, 0, 0, 0,
- 0
+ 227, 228, 53, 0, 0, 0, 182, 0, 169, 0,
+ 0, 179, 209, 0, 133, 132, 0, 0, 115, 116,
+ 0, 0, 0, 114, 0, 139, 83, 118, 117, 129,
+ 112, 123, 124, 119, 137, 0, 0, 131, 125, 121,
+ 122, 4, 5, 126, 127, 128, 130, 197, 0, 0,
+ 194, 200, 0, 195, 202, 0, 204, 206, 211, 220,
+ 0, 0, 216, 219, 142, 145, 0, 0, 0, 0,
+ 0, 148, 151, 0, 0, 153, 0, 0, 0, 89,
+ 108, 0, 98, 0, 0, 101, 0, 95, 83, 47,
+ 0, 45, 44, 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, 92, 0, 0, 100, 84, 171, 180,
+ 181, 50, 170, 0, 49, 0, 175, 54, 111, 0,
+ 0, 0, 113, 0, 0, 167, 166, 120, 134, 135,
+ 138, 198, 0, 193, 0, 203, 0, 0, 214, 215,
+ 140, 0, 143, 177, 0, 0, 152, 6, 0, 0,
+ 0, 160, 0, 0, 0, 183, 188, 191, 0, 43,
+ 0, 94, 91, 93, 168, 208, 0, 109, 0, 0,
+ 0, 0, 0, 0, 222, 218, 0, 0, 150, 154,
+ 155, 0, 0, 159, 161, 184, 185, 190, 46, 0,
+ 0, 163, 0, 201, 196, 0, 144, 149, 158, 0,
+ 0, 110, 0, 147, 0, 221, 157, 0, 164, 165,
+ 0, 162, 156, 146, 0, 0, 173, 0, 0, 173,
+ 0, 0, 178, 0, 178, 0, 0, 0, 0, 0
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -284, 0, 222, -284, -284, 4, -284, -284, -284, 51,
- -243, -284, -84, -284, -284, -284, 136, 528, -284, -284,
- -284, -284, -284, -283, 88, -120, 11, -170, -284, -91,
- -284, -92, -284, -284, -89, -284, -284, -144, -284, -38,
- -284, 357, 445, 233, 335, -284, -284, -56, 32, -284,
- -53, 14, -284, 179, -26, 17, 18, -284, -139, 21,
- -44, -284, -284, 360, -284, 2, -284
+ -283, 0, 151, -283, -283, -3, -283, -283, -283, 75,
+ -231, -283, -146, -283, -283, -283, 463, 504, -283, -283,
+ -283, -283, -283, -282, 95, 30, 4, -133, -283, -66,
+ -283, -65, -283, -283, -69, -283, -283, -118, -283, -28,
+ 205, 421, 240, 355, 36, -283, -283, -70, 32, -283,
+ -57, 23, -283, 207, -13, 37, 45, -283, -124, 46,
+ -30, -283, -283, 375, -283, 6, -283
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- 0, 123, 124, 277, 125, 14, 126, 127, 128, 337,
- 338, 142, 143, 279, 49, 50, 51, 280, 281, 282,
- 283, 284, 285, 286, 287, 194, 15, 475, 321, 322,
- 130, 131, 289, 420, 421, 132, 394, 395, 290, 64,
- 65, 255, 155, 292, 16, 133, 156, 157, 17, 152,
- 153, 18, 164, 165, 263, 19, 20, 190, 191, 21,
+ 0, 121, 122, 277, 123, 14, 124, 125, 126, 339,
+ 340, 141, 142, 279, 49, 50, 51, 280, 281, 282,
+ 283, 284, 285, 286, 287, 193, 15, 474, 322, 323,
+ 128, 129, 289, 421, 422, 130, 395, 396, 290, 64,
+ 256, 154, 292, 16, 212, 131, 155, 156, 17, 151,
+ 152, 18, 163, 164, 263, 19, 20, 188, 189, 21,
22, 23, 24, 25, 26, 27, 28
};
@@ -885,464 +883,456 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 13, 212, 398, 372, 13, 38, 39, 40, 29, 48,
- 52, 53, 54, 62, 101, 30, 187, 159, 33, 158,
- 134, 34, 35, 9, 41, 36, 13, 100, 68, 2,
- 258, 118, 392, 2, 2, 55, 32, 56, 259, 67,
- 487, 442, 2, 57, 48, 48, 48, 48, 316, 148,
- 148, 246, 257, 69, 104, 102, 62, 248, 249, 62,
- 62, 141, 2, 80, 81, 82, 146, 48, 246, 147,
- 151, 154, 151, 154, 161, 249, 6, 58, 148, 214,
+ 13, 29, 158, 399, 13, 38, 39, 40, 30, 48,
+ 52, 53, 54, 62, 157, 374, 2, 79, 80, 81,
+ 9, 116, 2, 55, 99, 484, 13, 33, 2, 41,
+ 132, 485, 67, 190, 2, 55, 32, 56, 443, 147,
+ 486, 34, 100, 57, 48, 48, 48, 48, 246, 35,
+ 36, 317, 66, 2, 248, 249, 62, 2, 68, 62,
+ 62, 140, 190, 6, 61, 58, 48, 258, 102, 150,
+ 153, 150, 153, 160, 299, 259, 2, 58, 145, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 13,
- 141, 186, 487, 189, 193, 48, 163, 105, 70, 6,
- 71, 197, 192, 317, 204, 2, 55, 258, 485, 103,
- 207, 193, 490, 305, 486, 259, 392, 2, 55, 72,
- 485, 73, 215, 393, 160, 48, 486, 48, 299, 256,
- 487, 487, 418, 2, 419, 260, 62, 487, 276, 298,
- 300, 487, 278, 149, 487, 100, 301, 148, 58, 288,
- 302, 487, 293, 303, 161, 294, 295, 468, 306, 296,
- 58, 406, 379, 408, 308, 309, 383, 310, 311, 312,
- 76, 77, 78, 79, 313, 457, 477, 323, 492, 5,
- 6, 7, 8, 315, 329, 409, 163, 139, 80, 81,
- 82, 83, 84, 150, 330, 140, 331, 62, 209, 10,
- 11, 12, 332, 384, 490, 336, 167, 168, 169, 170,
- 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
- 181, 182, 183, 184, 185, 63, 376, 385, 397, 399,
- 404, 195, 401, 403, 402, 400, 336, 405, 490, 375,
- 217, 218, 219, 487, 487, 414, 141, 380, 417, 487,
- 141, 415, 63, 428, 416, 2, 55, 387, 56, 429,
- 336, 250, 396, 251, 57, 430, 62, 433, 63, 432,
- 314, 63, 63, 63, 435, 276, 437, 444, 445, 278,
- 446, 450, 453, 324, 426, 462, 288, 470, 151, 293,
- 154, 463, 294, 295, 473, 464, 296, 246, 58, 476,
- 189, 484, 189, 248, 249, 193, 410, 491, 62, 413,
- 496, 388, 63, 447, 63, 449, 62, 62, 326, 480,
- 327, 452, 2, 55, 336, 485, 487, 2, 55, 31,
- 485, 486, 214, 307, 63, 440, 486, 441, 80, 81,
- 82, 83, 84, 211, 86, 87, 2, 55, 434, 485,
- 390, 443, 63, 63, 37, 486, 97, 98, 63, 63,
- 66, 0, 0, 63, 0, 58, 63, 0, 2, 55,
- 58, 56, 0, 63, 487, 0, 0, 57, 0, 0,
- 0, 0, 48, 439, 0, 2, 55, 75, 485, 58,
- 253, 154, 254, 154, 486, 411, 2, 55, 0, 56,
- 135, 0, 0, 106, 491, 57, 136, 138, 144, 48,
- 425, 58, 2, 55, 0, 488, 0, 74, 336, 63,
- 0, 489, 487, 0, 0, 0, 63, 0, 58, 0,
- 0, 326, 13, 327, 465, 0, 0, 0, 0, 58,
- 276, 0, 0, 0, 278, 214, 0, 144, 253, 188,
- 254, 288, 0, 0, 293, 58, 0, 294, 295, 276,
- 63, 296, 214, 278, 0, 63, 63, 436, 63, 213,
- 288, 63, 63, 293, 0, 487, 294, 295, 490, 0,
- 296, 487, 48, 0, 48, 494, 490, 252, 63, 487,
- 490, 0, 0, 261, 262, 448, 145, 0, 297, 2,
- 55, 0, 485, 0, 456, 0, 0, 0, 486, 162,
- 0, 0, 0, -250, 1, 0, 461, 0, 438, 2,
- 0, 0, 0, 466, 0, 3, 42, 43, 0, 2,
- 63, 0, 0, 0, 0, 145, 0, 44, 63, 63,
- 0, 0, 58, 0, 45, 451, 0, 0, 63, 0,
- 0, 479, 46, 482, 0, 210, 483, 0, 0, 0,
- 0, 333, 0, 0, 4, 5, 6, 7, 8, 381,
- 2, 55, 9, 56, 137, 129, 0, 0, 0, 57,
- 0, 0, 0, 291, 0, 10, 11, 12, 0, 0,
- 0, -250, 0, 0, 0, 374, 63, 0, 47, 162,
- 377, 378, 0, 144, -253, 1, 382, 144, 2, 55,
- 2, 56, 422, 58, 0, 0, 3, 57, 497, 0,
- 498, 0, 0, 217, 218, 219, 220, 221, 196, 0,
- 199, 200, 201, 202, 203, 0, 205, 206, 208, 0,
- 0, 234, 235, 0, 63, 2, 55, 0, 56, 423,
- 340, 58, 0, 0, 57, 4, 5, 6, 7, 8,
- 0, 2, 55, 9, 485, 412, 0, 304, 0, 0,
- 486, 0, 0, 377, 378, 0, 10, 11, 12, 0,
- 246, 340, 0, 0, 0, 0, 248, 249, 58, 2,
- 55, 145, 488, 0, 0, 145, 0, 63, 489, 0,
- 63, 0, 0, 63, 58, 340, 0, 0, 63, 0,
- 0, 63, 63, 0, 0, 0, 320, 0, 0, 0,
- 291, 0, 0, 0, 253, 0, 254, 0, 0, 0,
- 100, 262, 58, 339, 341, 342, 343, 344, 345, 346,
- 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
- 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
- 367, 368, 369, 370, 339, 373, 0, 2, 55, 427,
- 56, 2, 55, 0, 56, 0, 57, 0, 0, 458,
- 57, 0, 0, 0, 386, 0, 0, 0, 339, 389,
- 0, 391, 0, 0, 107, 108, 109, 2, 55, 0,
- 110, 0, 111, 0, 0, 112, 1, 113, 0, 0,
- 58, 2, 114, 0, 58, 0, 115, 3, 2, 55,
- 116, 485, 0, 0, 0, 0, 0, 486, 0, 407,
- 0, 0, 106, 0, 59, 106, 60, 0, 261, 0,
- 61, 0, 0, 261, 0, 0, 412, 412, 424, 117,
- 118, 0, 202, 0, 0, 119, 4, 5, 6, 7,
- 8, 58, 0, 340, 9, 0, 120, 0, 0, 0,
- 121, 0, 122, 319, 0, 0, 0, 10, 11, 12,
- 0, 253, 0, 254, 0, 291, 217, 218, 219, 220,
- 221, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 291, 264, 0, 107, 108, 109,
- 2, 55, 0, 110, 0, 111, 265, 0, 112, 0,
- 113, 0, 0, 0, 0, 114, 0, 0, 0, 115,
- 0, 0, 320, 116, 0, 0, 0, 0, 0, 0,
- 454, 455, 0, 246, 0, 0, 339, 0, 0, 248,
- 249, 0, 0, 459, 0, 460, 5, 0, 7, 8,
- 266, 267, 117, 118, 467, 268, 269, -135, 119, -135,
- 270, 271, 272, 0, 273, 274, 0, 11, 12, 120,
- 474, 148, -135, 121, 0, 122, 0, 0, 0, 478,
- 264, 0, 107, 108, 109, 2, 55, 0, 110, 474,
- 111, 265, 0, 112, 493, 113, 0, 495, 0, 0,
- 114, 0, 0, 0, 115, 0, 0, 0, 116, 80,
- 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
- 0, 91, 92, 93, 94, 95, 96, 97, 98, 0,
- 0, 5, 0, 7, 8, 266, 267, 117, 118, 0,
- 268, 269, 0, 119, 0, 270, 271, 272, 0, 273,
- 274, 0, 11, 12, 120, 0, 148, 275, 121, 264,
- 122, 107, 108, 109, 2, 55, 0, 110, 0, 111,
- 265, 318, 112, 0, 113, 0, 0, 0, 0, 114,
- 0, 0, 0, 115, 0, 0, 0, 116, 80, 81,
- 82, 83, 84, 85, 86, 87, 88, 89, 90, 0,
- 91, 92, 93, 94, 95, 96, 97, 98, 0, 0,
- 5, 0, 7, 8, 266, 267, 117, 118, 0, 268,
- 269, 0, 119, 0, 270, 271, 272, 0, 273, 274,
- 0, 11, 12, 120, 0, 148, 0, 121, 0, 122,
- 107, 108, 109, 2, 55, 0, 110, 0, 111, 0,
- 499, 112, 0, 113, 0, 0, 0, 0, 114, 0,
- 0, 0, 115, 0, 0, 0, 116, 107, 108, 109,
- 2, 55, 0, 110, 0, 111, 0, 0, 112, 0,
- 113, 0, 0, 0, 0, 114, 0, 0, 0, 115,
- 0, 0, 0, 116, 0, 117, 118, 0, 0, 0,
- 0, 119, 80, 81, 82, 83, 84, 0, 86, 87,
- 88, 0, 120, 0, 198, 0, 121, 0, 122, 0,
- 97, 98, 117, 118, 0, 0, 0, 0, 119, 107,
- 108, 109, 2, 55, 0, 110, 0, 111, 0, 120,
- 112, 148, 113, 121, 0, 122, 0, 114, 0, 0,
- 0, 334, 0, 0, 0, 116, 107, 108, 109, 2,
- 55, 0, 110, 0, 111, 0, 0, 112, 0, 113,
- 0, 0, 0, 0, 114, 0, 0, 0, 334, 0,
- 0, 0, 116, 0, 117, 118, 0, 0, 0, 0,
- 119, 80, 81, 82, 83, 84, 0, 0, 87, 0,
- 0, 120, 335, 0, 0, 121, 0, 122, 0, 97,
- 98, 117, 118, 0, 0, 0, 0, 119, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 120, 371,
- 0, 0, 121, 0, 122, 107, 108, 109, 2, 55,
- 0, 110, 0, 111, 0, 0, 112, 0, 113, 0,
- 0, 0, 0, 114, 0, 0, 0, 115, 0, 0,
- 0, 116, 107, 108, 109, 2, 55, 0, 110, 0,
- 111, 0, 0, 112, 0, 113, 0, 0, 0, 0,
- 114, 0, 0, 0, 334, 0, 0, 0, 116, 0,
- 117, 118, 0, 0, 0, 0, 119, 80, 81, 82,
- 83, 84, 0, 0, 0, 0, 0, 120, 0, 0,
- 0, 121, 0, 122, 0, 97, 98, 117, 118, 0,
- 0, 0, 0, 119, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 216, 120, 0, 0, 0, 121, 0,
- 122, 217, 218, 219, 220, 221, 222, 223, 224, 225,
- 226, 227, 0, 228, 229, 230, 231, 232, 233, 234,
- 235, 236, 237, 238, 239, 240, 241, 0, 242, 243,
- 244, 245, 0, 0, 0, 0, 217, 218, 219, 220,
- 221, 0, 223, 224, 225, 226, 227, 0, 228, 229,
- 230, 231, 232, 233, 234, 235, 0, 0, 246, 216,
- 148, 0, 247, 0, 248, 249, 0, 217, 218, 219,
- 220, 221, 222, 223, 224, 225, 226, 227, 0, 228,
- 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
- 239, 240, 241, 246, 242, 243, 244, 245, 0, 248,
- 249, 0, 217, 218, 219, 220, 221, 0, 223, 224,
- 225, 226, 0, 0, 228, 229, 230, 231, 232, 233,
- 234, 235, 0, 0, 246, 216, 325, 0, 247, 0,
- 248, 249, 0, 217, 218, 219, 220, 221, 222, 223,
- 224, 225, 226, 227, 0, 228, 229, 230, 231, 232,
- 233, 234, 235, 236, 237, 238, 239, 240, 241, 246,
- 242, 243, 244, 245, 0, 248, 249, 0, 0, 217,
- 218, 219, 220, 221, 0, 223, 224, 225, 0, 0,
- 0, 228, 229, 230, 231, 232, 233, 234, 235, 0,
- 246, 328, 216, 0, 247, 0, 248, 249, 0, 0,
- 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
- 227, 0, 228, 229, 230, 231, 232, 233, 234, 235,
- 236, 237, 238, 239, 240, 241, 246, 242, 243, 244,
- 245, 0, 248, 249, 0, 217, 218, 219, 220, 221,
- 0, 223, 224, 225, 0, 0, 0, 228, 229, 230,
- 231, 0, 0, 234, 235, 0, 0, 246, 216, 0,
- 471, 247, 431, 248, 249, 0, 217, 218, 219, 220,
+ 48, 48, 48, 48, 48, 48, 48, 48, 13, 146,
+ 486, 187, 192, 48, 185, 162, 101, 103, 393, 196,
+ 246, 381, 2, 55, 384, 484, 318, 249, 206, 211,
+ 489, 485, 393, 6, -252, 1, 147, 191, 203, 394,
+ 2, 147, 305, 48, 215, 48, 3, 252, 214, 486,
+ 486, 69, 257, 70, 278, 62, 486, 276, 159, 260,
+ 486, 288, 71, 486, 72, 58, 419, 298, 420, 148,
+ 486, 300, 301, 160, 63, 2, 55, 302, 487, 468,
+ 293, 61, 303, 147, 488, 4, 5, 6, 7, 8,
+ 217, 218, 219, 9, 294, 491, 407, 476, 409, 306,
+ 314, 63, 295, 296, 308, 162, 10, 11, 12, 458,
+ 309, 311, -252, 310, 312, 313, 62, 63, 58, 324,
+ 63, 63, 63, 208, 489, 338, 42, 43, 65, 2,
+ 2, 55, 316, 56, 133, 331, 2, 44, 330, 57,
+ 403, 332, 333, 334, 45, 385, 378, 246, 493, 398,
+ 402, 401, 46, 248, 249, 74, 338, 386, 489, 377,
+ 404, 63, 400, 405, 486, 486, 406, 140, 415, 486,
+ 140, 104, 416, 58, 134, 136, 143, 388, 417, 418,
+ 338, 63, 5, 6, 7, 8, 62, 431, 2, 55,
+ 430, 484, 278, 137, 438, 276, 315, 485, 47, 288,
+ 63, 63, 10, 11, 12, 432, 63, 63, 150, 325,
+ 153, 63, 434, 436, 63, 186, 428, 445, 293, 446,
+ 187, 63, 187, 447, 451, 454, 192, 411, 462, 62,
+ 414, 58, 294, 463, 464, 213, 472, 62, 62, 475,
+ 295, 296, 441, 211, 442, 490, 338, 495, 486, 79,
+ 80, 81, 82, 83, 253, 389, 410, 483, 138, 448,
+ 261, 262, 453, 450, 479, 297, 139, 63, 210, 31,
+ 105, 106, 107, 2, 55, 63, 108, 391, 109, 426,
+ 307, 110, 435, 111, 2, 55, 444, 484, 112, 37,
+ 0, 0, 113, 485, 0, 486, 114, 0, 2, 55,
+ 0, 484, 0, 48, 440, 0, 0, 485, 0, 63,
+ 0, 0, 153, 0, 153, 63, 63, 0, 63, 0,
+ 63, 63, 0, 412, 0, 115, 116, 58, 0, 335,
+ 48, 117, 0, 0, 0, 2, 55, 63, 487, 427,
+ 338, 58, 118, 0, 488, 0, 119, 0, 120, 320,
+ 0, 0, 0, 13, 0, 73, 0, 0, 278, 465,
+ 0, 276, 0, 376, 0, 288, 0, 0, 382, 379,
+ 380, 0, 143, 0, 383, 143, 278, 0, 58, 276,
+ 63, 0, 0, 288, 293, 0, 0, 0, 63, 63,
+ 0, 0, 144, 0, 486, 437, 0, 489, 294, 63,
+ 486, 48, 293, 48, 161, 489, 295, 296, 486, 489,
+ 79, 80, 81, 82, 83, 0, 294, 75, 76, 77,
+ 78, 0, 0, 449, 295, 296, 0, 0, 96, 97,
+ 0, 0, 0, 457, 413, 0, 0, 0, 0, 149,
+ 0, 0, 379, 380, 461, 0, 63, 0, 0, 209,
+ 0, 466, 166, 167, 168, 169, 170, 171, 172, 173,
+ 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
+ 184, 127, 2, 55, 0, 484, 194, 478, 291, 481,
+ 0, 485, 482, 0, 0, 0, 0, 0, 0, 0,
+ 2, 55, 0, 56, 161, 0, 0, 397, 0, 57,
+ 262, 2, 55, 0, 56, 0, 250, 0, 251, 0,
+ 57, 0, 0, 0, 0, 58, 0, 0, 0, 0,
+ 2, 55, 195, 484, 198, 199, 200, 201, 202, 485,
+ 204, 205, 207, 58, 0, 254, 0, 255, 2, 55,
+ 0, 56, 135, 0, 58, 63, 342, 57, 63, 490,
+ 0, 63, 0, 327, 0, 328, 63, 0, 0, 63,
+ 63, 0, 0, 58, 327, 0, 328, 214, 79, 80,
+ 81, 82, 83, 0, 85, 86, 87, 342, 214, 0,
+ 0, 58, 0, 254, 0, 255, 96, 97, 144, 0,
+ 0, 144, 0, 0, 0, 0, 0, 214, 0, 104,
+ 0, 342, 104, 0, 0, 261, 0, 0, 0, 0,
+ 261, 321, 0, 413, 413, 0, 291, 0, 0, 2,
+ 55, 0, 484, 0, 137, 0, 0, 0, 485, 341,
+ 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
+ 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
+ 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
+ 341, 375, 58, 0, 0, 0, 264, 429, 105, 106,
+ 107, 2, 55, 0, 108, 0, 109, 265, 0, 110,
+ 387, 111, 0, 0, 341, 390, 112, 392, 0, 0,
+ 113, 0, 0, 0, 114, 0, 0, 0, 2, 55,
+ 0, 56, 423, 0, 0, 2, 55, 57, 484, 0,
+ 0, 304, 0, 0, 485, 0, 0, 5, 0, 7,
+ 8, 266, 267, 115, 116, 408, 268, 269, -136, 117,
+ -136, 270, 271, 272, 0, 273, 274, 0, 11, 12,
+ 118, 58, 147, -136, 119, 425, 120, 0, 58, 0,
+ 201, 0, 264, 0, 105, 106, 107, 2, 55, 0,
+ 108, 342, 109, 265, 0, 110, 439, 111, 254, 0,
+ 255, 0, 112, 0, 61, 0, 113, 0, 0, 0,
+ 114, 0, 291, 79, 80, 81, 82, 83, 2, 55,
+ 86, 56, 0, 452, 0, 0, 0, 57, 0, 0,
+ 291, 96, 97, 5, 0, 7, 8, 266, 267, 115,
+ 116, 0, 268, 269, 0, 117, 0, 270, 271, 272,
+ 0, 273, 274, 0, 11, 12, 118, 0, 147, 321,
+ 119, 58, 120, 0, 0, 0, 0, 455, 456, 0,
+ 2, 55, 0, 484, 341, 2, 55, 0, 56, 485,
+ 459, 59, 460, 60, 57, 0, 0, 61, 0, 0,
+ 0, 467, 0, 0, 496, 0, 497, 264, 0, 105,
+ 106, 107, 2, 55, 0, 108, 473, 109, 265, 0,
+ 110, 0, 111, 58, 477, 0, 0, 112, 58, 0,
+ 0, 113, 0, 0, 473, 114, 0, 0, 0, 492,
+ 0, 0, 494, 254, 0, 255, 0, 0, 217, 218,
+ 219, 220, 221, 0, 0, 0, 0, 0, 5, 0,
+ 7, 8, 266, 267, 115, 116, 0, 268, 269, 0,
+ 117, 0, 270, 271, 272, 0, 273, 274, 0, 11,
+ 12, 118, 0, 147, 275, 119, 0, 120, 105, 106,
+ 107, 2, 55, 0, 108, 0, 109, 0, 0, 110,
+ 0, 111, 0, 0, 0, 246, 112, 0, 0, 0,
+ 113, 248, 249, 0, 114, 105, 106, 107, 2, 55,
+ 0, 108, 0, 109, 0, 0, 110, 0, 111, 0,
+ 0, 2, 55, 112, 56, 424, 0, 113, 0, 0,
+ 57, 114, 0, 115, 116, 0, 0, 0, 0, 117,
+ 79, 80, 81, 82, 83, 0, 85, 86, 0, 0,
+ 118, 0, 197, 0, 119, 0, 120, 0, 96, 97,
+ 115, 116, 0, 0, 58, 0, 117, 105, 106, 107,
+ 2, 55, 0, 108, 0, 109, 0, 118, 110, 147,
+ 111, 119, 0, 120, 0, 112, 0, 0, 0, 336,
+ 0, 0, 0, 114, 105, 106, 107, 2, 55, 0,
+ 108, 0, 109, 0, 0, 110, 0, 111, 0, 0,
+ 0, 0, 112, 0, 0, 0, 336, 0, 0, 0,
+ 114, 0, 115, 116, 0, 0, 0, 0, 117, 0,
+ 0, 0, 0, 217, 218, 219, 220, 221, 0, 118,
+ 337, 0, 0, 119, 0, 120, 0, 0, 0, 115,
+ 116, 234, 235, 0, 0, 117, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 118, 373, 0, 0,
+ 119, 0, 120, 105, 106, 107, 2, 55, 0, 108,
+ 0, 109, 0, 0, 110, 0, 111, 0, 0, 0,
+ 246, 112, 0, 0, 0, 113, 248, 249, 0, 114,
+ 105, 106, 107, 2, 55, 0, 108, 0, 109, 0,
+ 0, 110, 0, 111, 0, -255, 1, 0, 112, 0,
+ 0, 2, 336, 0, 0, 0, 114, 3, 115, 116,
+ 0, 0, 1, 0, 117, 0, 0, 2, 0, 0,
+ 0, 0, 0, 3, 0, 118, 0, 0, 0, 119,
+ 0, 120, 0, 0, 0, 115, 116, 0, 0, 0,
+ 0, 117, 0, 0, 0, 0, 4, 5, 6, 7,
+ 8, 0, 118, 0, 9, 0, 119, 0, 120, 0,
+ 0, 0, 4, 5, 6, 7, 8, 10, 11, 12,
+ 9, 0, 0, 0, 0, 0, 0, 0, 216, 0,
+ 0, 0, 0, 10, 11, 12, 217, 218, 219, 220,
221, 222, 223, 224, 225, 226, 227, 0, 228, 229,
230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
- 240, 241, 246, 242, 243, 244, 245, 0, 248, 249,
+ 240, 241, 0, 242, 243, 244, 245, 0, 0, 0,
0, 217, 218, 219, 220, 221, 0, 223, 224, 225,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 234,
- 235, 0, 0, 246, 216, 0, 472, 247, 0, 248,
+ 226, 227, 0, 228, 229, 230, 231, 232, 233, 234,
+ 235, 0, 0, 246, 216, 147, 0, 247, 0, 248,
249, 0, 217, 218, 219, 220, 221, 222, 223, 224,
225, 226, 227, 0, 228, 229, 230, 231, 232, 233,
234, 235, 236, 237, 238, 239, 240, 241, 246, 242,
- 243, 244, 245, 0, 248, 249, 0, 80, 81, 82,
- 83, 84, 85, 86, 87, 88, 89, 90, 0, 91,
- 92, 93, 94, 95, 96, 97, 98, 0, 0, 246,
- 216, 0, 0, 247, 0, 248, 249, 0, 217, 218,
+ 243, 244, 245, 0, 248, 249, 0, 217, 218, 219,
+ 220, 221, 0, 223, 224, 225, 226, 0, 0, 228,
+ 229, 230, 231, 232, 233, 234, 235, 0, 0, 246,
+ 216, 326, 0, 247, 0, 248, 249, 0, 217, 218,
219, 220, 221, 222, 223, 224, 225, 226, 227, 0,
228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
- 238, 239, 240, 241, 0, 242, 243, 244, 245, 500,
- 481, 0, 0, 217, 218, 219, 220, 221, 0, 223,
- 224, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 234, 235, 0, 0, 246, 216, 0, 0, 247,
- 0, 248, 249, 0, 217, 218, 219, 220, 221, 222,
- 223, 224, 225, 226, 227, 0, 228, 229, 230, 231,
- 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
- 246, 242, 243, 244, 245, 0, 248, 249, 80, 81,
- 82, 83, 84, 85, 86, 87, 88, 89, 90, 0,
- 91, 92, 93, 94, 95, 96, 97, 98, 0, 0,
- 0, 246, 216, 0, 0, 247, 0, 248, 249, 0,
- 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
- 227, 0, 228, 229, 230, 231, 232, 233, 234, 235,
- 236, 237, 238, 239, 240, 241, 166, 242, 243, 244,
- 245, 217, 218, 219, 220, 221, 222, 223, 224, 225,
+ 238, 239, 240, 241, 246, 242, 243, 244, 245, 0,
+ 248, 249, 0, 0, 217, 218, 219, 220, 221, 0,
+ 223, 224, 225, 0, 0, 0, 228, 229, 230, 231,
+ 232, 233, 234, 235, 0, 246, 329, 216, 0, 247,
+ 0, 248, 249, 0, 0, 217, 218, 219, 220, 221,
+ 222, 223, 224, 225, 226, 227, 0, 228, 229, 230,
+ 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
+ 241, 246, 242, 243, 244, 245, 0, 248, 249, 0,
+ 217, 218, 219, 220, 221, 0, 223, 224, 225, 0,
+ 0, 0, 228, 229, 230, 231, 0, 0, 234, 235,
+ 0, 0, 246, 216, 0, 470, 247, 433, 248, 249,
+ 0, 217, 218, 219, 220, 221, 222, 223, 224, 225,
226, 227, 0, 228, 229, 230, 231, 232, 233, 234,
235, 236, 237, 238, 239, 240, 241, 246, 242, 243,
- 244, 245, 0, 248, 249, 217, 218, 219, 220, 221,
- 0, 0, 224, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 234, 235, 0, 0, 0, 246, 0,
- 0, 0, 247, 0, 248, 249, 80, 81, 82, 83,
- 84, 85, 86, 87, 88, 89, 90, 0, 91, 92,
- 93, 94, 95, 96, 97, 98, 0, 0, 0, 0,
- 0, 0, 246, 0, 0, 0, 0, 0, 248, 249,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
- 90, 0, 91, 92, 93, 94, 95, 96, 97, 98,
- 0, 469, 0, 0, 0, 99, 80, 81, 82, 83,
- 84, 85, 86, 87, 88, 89, 90, 0, 91, 92,
- 93, 94, 95, 96, 97, 98, 0, 0, 80, 81,
- 82, 83, 84, 85, 86, 87, 88, 89, 90, 148,
- 91, 92, 93, 94, 95, 96, 97, 98, 80, 81,
- 82, 83, 84, 0, 86, 87, 88, 89, 90, 0,
- 91, 92, 93, 94, 95, 96, 97, 98, 80, 81,
- 82, 83, 84, 0, 86, 87, 88, 89, 0, 0,
- 91, 92, 93, 94, 95, 96, 97, 98, 80, 81,
- 82, 83, 84, 0, 86, 87, 88, 0, 0, 0,
- 91, 92, 93, 94, 95, 96, 97, 98, 80, 81,
- 82, 83, 84, 0, 86, 87, 88, 0, 0, 0,
- 91, 92, 93, 94, 0, 0, 97, 98
+ 244, 245, 0, 248, 249, 0, 217, 218, 219, 220,
+ 221, 0, 223, 224, 225, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 234, 235, 0, 0, 246, 216,
+ 0, 471, 247, 0, 248, 249, 0, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 0, 228,
+ 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
+ 239, 240, 241, 246, 242, 243, 244, 245, 0, 248,
+ 249, 0, 79, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, 0, 90, 91, 92, 93, 94, 95,
+ 96, 97, 0, 0, 246, 216, 0, 0, 247, 0,
+ 248, 249, 0, 217, 218, 219, 220, 221, 222, 223,
+ 224, 225, 226, 227, 0, 228, 229, 230, 231, 232,
+ 233, 234, 235, 236, 237, 238, 239, 240, 241, 0,
+ 242, 243, 244, 245, 319, 480, 0, 0, 217, 218,
+ 219, 220, 221, 0, 223, 224, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 234, 235, 0, 0,
+ 246, 216, 0, 0, 247, 0, 248, 249, 0, 217,
+ 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
+ 0, 228, 229, 230, 231, 232, 233, 234, 235, 236,
+ 237, 238, 239, 240, 241, 246, 242, 243, 244, 245,
+ 0, 248, 249, 79, 80, 81, 82, 83, 84, 85,
+ 86, 87, 88, 89, 0, 90, 91, 92, 93, 94,
+ 95, 96, 97, 0, 0, 0, 246, 216, 0, 0,
+ 247, 0, 248, 249, 0, 217, 218, 219, 220, 221,
+ 222, 223, 224, 225, 226, 227, 0, 228, 229, 230,
+ 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
+ 241, 165, 242, 243, 244, 245, 217, 218, 219, 220,
+ 221, 222, 223, 224, 225, 226, 227, 0, 228, 229,
+ 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+ 240, 241, 246, 242, 243, 244, 245, 0, 248, 249,
+ 217, 218, 219, 220, 221, 0, 0, 224, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 234, 235,
+ 0, 0, 0, 246, 0, 0, 0, 247, 0, 248,
+ 249, 79, 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, 0, 90, 91, 92, 93, 94, 95, 96,
+ 97, 0, 0, 0, 0, 0, 0, 246, 0, 0,
+ 0, 0, 0, 248, 249, 79, 80, 81, 82, 83,
+ 84, 85, 86, 87, 88, 89, 0, 90, 91, 92,
+ 93, 94, 95, 96, 97, 0, 0, 0, 0, 0,
+ 0, 0, 0, 498, 79, 80, 81, 82, 83, 84,
+ 85, 86, 87, 88, 89, 0, 90, 91, 92, 93,
+ 94, 95, 96, 97, 0, 0, 79, 80, 81, 82,
+ 83, 84, 85, 86, 87, 88, 89, 499, 90, 91,
+ 92, 93, 94, 95, 96, 97, 0, 469, 0, 0,
+ 0, 0, 79, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, 98, 90, 91, 92, 93, 94, 95,
+ 96, 97, 0, 0, 79, 80, 81, 82, 83, 84,
+ 85, 86, 87, 88, 89, 147, 90, 91, 92, 93,
+ 94, 95, 96, 97, 79, 80, 81, 82, 83, 0,
+ 85, 86, 87, 88, 89, 0, 90, 91, 92, 93,
+ 94, 95, 96, 97, 79, 80, 81, 82, 83, 0,
+ 85, 86, 87, 88, 0, 0, 90, 91, 92, 93,
+ 94, 95, 96, 97, 79, 80, 81, 82, 83, 0,
+ 85, 86, 87, 0, 0, 0, 90, 91, 92, 93,
+ 94, 95, 96, 97, 79, 80, 81, 82, 83, 0,
+ 85, 86, 87, 0, 0, 0, 90, 91, 92, 93,
+ 0, 0, 96, 97
};
static const yytype_int16 yycheck[] =
{
- 0, 121, 285, 246, 4, 5, 6, 7, 4, 9,
- 10, 11, 12, 13, 52, 4, 100, 73, 4, 72,
- 58, 4, 4, 59, 5, 4, 26, 75, 26, 6,
- 76, 59, 59, 6, 6, 7, 4, 9, 84, 10,
- 40, 77, 6, 15, 44, 45, 46, 47, 11, 77,
- 77, 75, 11, 0, 75, 13, 56, 81, 82, 59,
- 60, 61, 6, 18, 19, 20, 83, 67, 75, 79,
- 70, 71, 72, 73, 74, 82, 53, 49, 77, 83,
+ 0, 4, 72, 285, 4, 5, 6, 7, 4, 9,
+ 10, 11, 12, 13, 71, 246, 6, 18, 19, 20,
+ 59, 59, 6, 7, 52, 9, 26, 4, 6, 5,
+ 58, 15, 26, 11, 6, 7, 4, 9, 77, 77,
+ 40, 4, 13, 15, 44, 45, 46, 47, 75, 4,
+ 4, 11, 10, 6, 81, 82, 56, 6, 0, 59,
+ 60, 61, 11, 53, 75, 49, 66, 76, 75, 69,
+ 70, 71, 72, 73, 76, 84, 6, 49, 83, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
- 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
- 100, 99, 102, 103, 104, 105, 74, 79, 75, 53,
- 77, 111, 76, 76, 75, 6, 7, 76, 9, 77,
- 120, 121, 122, 161, 15, 84, 59, 6, 7, 75,
- 9, 77, 75, 66, 78, 135, 15, 137, 76, 50,
- 140, 141, 63, 6, 65, 50, 146, 147, 148, 50,
- 12, 151, 148, 65, 154, 75, 78, 77, 49, 148,
- 76, 161, 148, 78, 164, 148, 148, 450, 12, 148,
- 49, 310, 256, 312, 78, 78, 260, 77, 10, 50,
- 44, 45, 46, 47, 78, 428, 469, 5, 79, 52,
- 53, 54, 55, 50, 76, 315, 164, 76, 18, 19,
- 20, 21, 22, 67, 10, 84, 76, 207, 120, 72,
- 73, 74, 80, 50, 214, 215, 80, 81, 82, 83,
- 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
- 94, 95, 96, 97, 98, 13, 76, 80, 12, 78,
- 12, 105, 77, 77, 300, 298, 246, 60, 248, 249,
- 18, 19, 20, 253, 254, 50, 256, 257, 60, 259,
- 260, 78, 40, 50, 76, 6, 7, 267, 9, 76,
- 270, 135, 13, 137, 15, 76, 276, 76, 56, 84,
- 192, 59, 60, 61, 12, 285, 67, 78, 76, 285,
- 10, 13, 78, 205, 332, 13, 285, 76, 298, 285,
- 300, 78, 285, 285, 60, 78, 285, 75, 49, 78,
- 310, 481, 312, 81, 82, 315, 316, 83, 318, 319,
- 83, 270, 100, 414, 102, 417, 326, 327, 69, 473,
- 71, 420, 6, 7, 334, 9, 336, 6, 7, 4,
- 9, 15, 83, 164, 122, 401, 15, 403, 18, 19,
- 20, 21, 22, 120, 24, 25, 6, 7, 384, 9,
- 272, 405, 140, 141, 4, 15, 36, 37, 146, 147,
- 13, -1, -1, 151, -1, 49, 154, -1, 6, 7,
- 49, 9, -1, 161, 384, -1, -1, 15, -1, -1,
- -1, -1, 392, 393, -1, 6, 7, 40, 9, 49,
- 69, 401, 71, 403, 15, 317, 6, 7, -1, 9,
- 10, -1, -1, 56, 83, 15, 59, 60, 61, 419,
- 332, 49, 6, 7, -1, 9, -1, 77, 428, 207,
- -1, 15, 432, -1, -1, -1, 214, -1, 49, -1,
- -1, 69, 442, 71, 442, -1, -1, -1, -1, 49,
- 450, -1, -1, -1, 450, 83, -1, 100, 69, 102,
- 71, 450, -1, -1, 450, 49, -1, 450, 450, 469,
- 248, 450, 83, 469, -1, 253, 254, 389, 256, 122,
- 469, 259, 260, 469, -1, 485, 469, 469, 488, -1,
- 469, 491, 492, -1, 494, 79, 496, 140, 276, 499,
- 500, -1, -1, 146, 147, 417, 61, -1, 151, 6,
- 7, -1, 9, -1, 426, -1, -1, -1, 15, 74,
- -1, -1, -1, 0, 1, -1, 438, -1, 392, 6,
- -1, -1, -1, 445, -1, 12, 3, 4, -1, 6,
- 318, -1, -1, -1, -1, 100, -1, 14, 326, 327,
- -1, -1, 49, -1, 21, 419, -1, -1, 336, -1,
- -1, 473, 29, 475, -1, 120, 478, -1, -1, -1,
- -1, 214, -1, -1, 51, 52, 53, 54, 55, 76,
- 6, 7, 59, 9, 10, 57, -1, -1, -1, 15,
- -1, -1, -1, 148, -1, 72, 73, 74, -1, -1,
- -1, 78, -1, -1, -1, 248, 384, -1, 75, 164,
- 253, 254, -1, 256, 0, 1, 259, 260, 6, 7,
- 6, 9, 10, 49, -1, -1, 12, 15, 492, -1,
- 494, -1, -1, 18, 19, 20, 21, 22, 110, -1,
- 112, 113, 114, 115, 116, -1, 118, 119, 120, -1,
- -1, 36, 37, -1, 432, 6, 7, -1, 9, 10,
- 215, 49, -1, -1, 15, 51, 52, 53, 54, 55,
- -1, 6, 7, 59, 9, 318, -1, 12, -1, -1,
- 15, -1, -1, 326, 327, -1, 72, 73, 74, -1,
- 75, 246, -1, -1, -1, -1, 81, 82, 49, 6,
- 7, 256, 9, -1, -1, 260, -1, 485, 15, -1,
- 488, -1, -1, 491, 49, 270, -1, -1, 496, -1,
- -1, 499, 500, -1, -1, -1, 198, -1, -1, -1,
- 285, -1, -1, -1, 69, -1, 71, -1, -1, -1,
- 75, 384, 49, 215, 216, 217, 218, 219, 220, 221,
- 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
- 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
- 242, 243, 244, 245, 246, 247, -1, 6, 7, 334,
- 9, 6, 7, -1, 9, -1, 15, -1, -1, 432,
- 15, -1, -1, -1, 266, -1, -1, -1, 270, 271,
- -1, 273, -1, -1, 3, 4, 5, 6, 7, -1,
- 9, -1, 11, -1, -1, 14, 1, 16, -1, -1,
- 49, 6, 21, -1, 49, -1, 25, 12, 6, 7,
- 29, 9, -1, -1, -1, -1, -1, 15, -1, 311,
- -1, -1, 485, -1, 69, 488, 71, -1, 491, -1,
- 75, -1, -1, 496, -1, -1, 499, 500, 330, 58,
- 59, -1, 334, -1, -1, 64, 51, 52, 53, 54,
- 55, 49, -1, 428, 59, -1, 75, -1, -1, -1,
- 79, -1, 81, 82, -1, -1, -1, 72, 73, 74,
- -1, 69, -1, 71, -1, 450, 18, 19, 20, 21,
- 22, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 469, 1, -1, 3, 4, 5,
- 6, 7, -1, 9, -1, 11, 12, -1, 14, -1,
- 16, -1, -1, -1, -1, 21, -1, -1, -1, 25,
- -1, -1, 414, 29, -1, -1, -1, -1, -1, -1,
- 422, 423, -1, 75, -1, -1, 428, -1, -1, 81,
- 82, -1, -1, 435, -1, 437, 52, -1, 54, 55,
- 56, 57, 58, 59, 446, 61, 62, 63, 64, 65,
- 66, 67, 68, -1, 70, 71, -1, 73, 74, 75,
- 462, 77, 78, 79, -1, 81, -1, -1, -1, 471,
- 1, -1, 3, 4, 5, 6, 7, -1, 9, 481,
- 11, 12, -1, 14, 486, 16, -1, 489, -1, -1,
- 21, -1, -1, -1, 25, -1, -1, -1, 29, 18,
- 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
- -1, 30, 31, 32, 33, 34, 35, 36, 37, -1,
- -1, 52, -1, 54, 55, 56, 57, 58, 59, -1,
- 61, 62, -1, 64, -1, 66, 67, 68, -1, 70,
- 71, -1, 73, 74, 75, -1, 77, 78, 79, 1,
- 81, 3, 4, 5, 6, 7, -1, 9, -1, 11,
- 12, 80, 14, -1, 16, -1, -1, -1, -1, 21,
- -1, -1, -1, 25, -1, -1, -1, 29, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
- 30, 31, 32, 33, 34, 35, 36, 37, -1, -1,
- 52, -1, 54, 55, 56, 57, 58, 59, -1, 61,
- 62, -1, 64, -1, 66, 67, 68, -1, 70, 71,
- -1, 73, 74, 75, -1, 77, -1, 79, -1, 81,
- 3, 4, 5, 6, 7, -1, 9, -1, 11, -1,
- 80, 14, -1, 16, -1, -1, -1, -1, 21, -1,
- -1, -1, 25, -1, -1, -1, 29, 3, 4, 5,
- 6, 7, -1, 9, -1, 11, -1, -1, 14, -1,
- 16, -1, -1, -1, -1, 21, -1, -1, -1, 25,
- -1, -1, -1, 29, -1, 58, 59, -1, -1, -1,
- -1, 64, 18, 19, 20, 21, 22, -1, 24, 25,
- 26, -1, 75, -1, 77, -1, 79, -1, 81, -1,
- 36, 37, 58, 59, -1, -1, -1, -1, 64, 3,
- 4, 5, 6, 7, -1, 9, -1, 11, -1, 75,
- 14, 77, 16, 79, -1, 81, -1, 21, -1, -1,
- -1, 25, -1, -1, -1, 29, 3, 4, 5, 6,
- 7, -1, 9, -1, 11, -1, -1, 14, -1, 16,
- -1, -1, -1, -1, 21, -1, -1, -1, 25, -1,
- -1, -1, 29, -1, 58, 59, -1, -1, -1, -1,
- 64, 18, 19, 20, 21, 22, -1, -1, 25, -1,
- -1, 75, 76, -1, -1, 79, -1, 81, -1, 36,
- 37, 58, 59, -1, -1, -1, -1, 64, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 75, 76,
- -1, -1, 79, -1, 81, 3, 4, 5, 6, 7,
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 79,
+ 100, 101, 102, 103, 98, 73, 77, 79, 59, 109,
+ 75, 257, 6, 7, 260, 9, 76, 82, 118, 119,
+ 120, 15, 59, 53, 0, 1, 77, 76, 75, 66,
+ 6, 77, 160, 133, 75, 135, 12, 137, 83, 139,
+ 140, 75, 50, 77, 147, 145, 146, 147, 78, 50,
+ 150, 147, 75, 153, 77, 49, 63, 50, 65, 64,
+ 160, 12, 78, 163, 13, 6, 7, 76, 9, 451,
+ 147, 75, 78, 77, 15, 51, 52, 53, 54, 55,
+ 18, 19, 20, 59, 147, 79, 310, 469, 312, 12,
+ 190, 40, 147, 147, 78, 163, 72, 73, 74, 430,
+ 78, 10, 78, 77, 50, 78, 206, 56, 49, 5,
+ 59, 60, 61, 118, 214, 215, 3, 4, 13, 6,
+ 6, 7, 50, 9, 10, 10, 6, 14, 76, 15,
+ 300, 76, 50, 80, 21, 50, 76, 75, 79, 12,
+ 77, 298, 29, 81, 82, 40, 246, 80, 248, 249,
+ 77, 100, 78, 12, 254, 255, 60, 257, 50, 259,
+ 260, 56, 78, 49, 59, 60, 61, 267, 76, 60,
+ 270, 120, 52, 53, 54, 55, 276, 76, 6, 7,
+ 50, 9, 285, 11, 67, 285, 191, 15, 75, 285,
+ 139, 140, 72, 73, 74, 76, 145, 146, 298, 204,
+ 300, 150, 76, 12, 153, 100, 334, 78, 285, 76,
+ 310, 160, 312, 10, 13, 78, 316, 317, 13, 319,
+ 320, 49, 285, 78, 78, 120, 60, 327, 328, 78,
+ 285, 285, 402, 333, 404, 83, 336, 83, 338, 18,
+ 19, 20, 21, 22, 139, 270, 316, 480, 76, 415,
+ 145, 146, 421, 418, 472, 150, 84, 206, 118, 4,
+ 3, 4, 5, 6, 7, 214, 9, 272, 11, 333,
+ 163, 14, 385, 16, 6, 7, 406, 9, 21, 4,
+ -1, -1, 25, 15, -1, 385, 29, -1, 6, 7,
+ -1, 9, -1, 393, 394, -1, -1, 15, -1, 248,
+ -1, -1, 402, -1, 404, 254, 255, -1, 257, -1,
+ 259, 260, -1, 318, -1, 58, 59, 49, -1, 214,
+ 420, 64, -1, -1, -1, 6, 7, 276, 9, 334,
+ 430, 49, 75, -1, 15, -1, 79, -1, 81, 82,
+ -1, -1, -1, 443, -1, 77, -1, -1, 451, 443,
+ -1, 451, -1, 248, -1, 451, -1, -1, 76, 254,
+ 255, -1, 257, -1, 259, 260, 469, -1, 49, 469,
+ 319, -1, -1, 469, 451, -1, -1, -1, 327, 328,
+ -1, -1, 61, -1, 484, 390, -1, 487, 451, 338,
+ 490, 491, 469, 493, 73, 495, 451, 451, 498, 499,
+ 18, 19, 20, 21, 22, -1, 469, 44, 45, 46,
+ 47, -1, -1, 418, 469, 469, -1, -1, 36, 37,
+ -1, -1, -1, 428, 319, -1, -1, -1, -1, 66,
+ -1, -1, 327, 328, 439, -1, 385, -1, -1, 118,
+ -1, 446, 79, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
+ 97, 57, 6, 7, -1, 9, 103, 472, 147, 474,
+ -1, 15, 477, -1, -1, -1, -1, -1, -1, -1,
+ 6, 7, -1, 9, 163, -1, -1, 13, -1, 15,
+ 385, 6, 7, -1, 9, -1, 133, -1, 135, -1,
+ 15, -1, -1, -1, -1, 49, -1, -1, -1, -1,
+ 6, 7, 108, 9, 110, 111, 112, 113, 114, 15,
+ 116, 117, 118, 49, -1, 69, -1, 71, 6, 7,
+ -1, 9, 10, -1, 49, 484, 215, 15, 487, 83,
+ -1, 490, -1, 69, -1, 71, 495, -1, -1, 498,
+ 499, -1, -1, 49, 69, -1, 71, 83, 18, 19,
+ 20, 21, 22, -1, 24, 25, 26, 246, 83, -1,
+ -1, 49, -1, 69, -1, 71, 36, 37, 257, -1,
+ -1, 260, -1, -1, -1, -1, -1, 83, -1, 484,
+ -1, 270, 487, -1, -1, 490, -1, -1, -1, -1,
+ 495, 197, -1, 498, 499, -1, 285, -1, -1, 6,
+ 7, -1, 9, -1, 11, -1, -1, -1, 15, 215,
+ 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
+ 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
+ 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
+ 246, 247, 49, -1, -1, -1, 1, 336, 3, 4,
+ 5, 6, 7, -1, 9, -1, 11, 12, -1, 14,
+ 266, 16, -1, -1, 270, 271, 21, 273, -1, -1,
+ 25, -1, -1, -1, 29, -1, -1, -1, 6, 7,
+ -1, 9, 10, -1, -1, 6, 7, 15, 9, -1,
+ -1, 12, -1, -1, 15, -1, -1, 52, -1, 54,
+ 55, 56, 57, 58, 59, 311, 61, 62, 63, 64,
+ 65, 66, 67, 68, -1, 70, 71, -1, 73, 74,
+ 75, 49, 77, 78, 79, 331, 81, -1, 49, -1,
+ 336, -1, 1, -1, 3, 4, 5, 6, 7, -1,
+ 9, 430, 11, 12, -1, 14, 393, 16, 69, -1,
+ 71, -1, 21, -1, 75, -1, 25, -1, -1, -1,
+ 29, -1, 451, 18, 19, 20, 21, 22, 6, 7,
+ 25, 9, -1, 420, -1, -1, -1, 15, -1, -1,
+ 469, 36, 37, 52, -1, 54, 55, 56, 57, 58,
+ 59, -1, 61, 62, -1, 64, -1, 66, 67, 68,
+ -1, 70, 71, -1, 73, 74, 75, -1, 77, 415,
+ 79, 49, 81, -1, -1, -1, -1, 423, 424, -1,
+ 6, 7, -1, 9, 430, 6, 7, -1, 9, 15,
+ 436, 69, 438, 71, 15, -1, -1, 75, -1, -1,
+ -1, 447, -1, -1, 491, -1, 493, 1, -1, 3,
+ 4, 5, 6, 7, -1, 9, 462, 11, 12, -1,
+ 14, -1, 16, 49, 470, -1, -1, 21, 49, -1,
+ -1, 25, -1, -1, 480, 29, -1, -1, -1, 485,
+ -1, -1, 488, 69, -1, 71, -1, -1, 18, 19,
+ 20, 21, 22, -1, -1, -1, -1, -1, 52, -1,
+ 54, 55, 56, 57, 58, 59, -1, 61, 62, -1,
+ 64, -1, 66, 67, 68, -1, 70, 71, -1, 73,
+ 74, 75, -1, 77, 78, 79, -1, 81, 3, 4,
+ 5, 6, 7, -1, 9, -1, 11, -1, -1, 14,
+ -1, 16, -1, -1, -1, 75, 21, -1, -1, -1,
+ 25, 81, 82, -1, 29, 3, 4, 5, 6, 7,
-1, 9, -1, 11, -1, -1, 14, -1, 16, -1,
- -1, -1, -1, 21, -1, -1, -1, 25, -1, -1,
- -1, 29, 3, 4, 5, 6, 7, -1, 9, -1,
- 11, -1, -1, 14, -1, 16, -1, -1, -1, -1,
- 21, -1, -1, -1, 25, -1, -1, -1, 29, -1,
- 58, 59, -1, -1, -1, -1, 64, 18, 19, 20,
- 21, 22, -1, -1, -1, -1, -1, 75, -1, -1,
- -1, 79, -1, 81, -1, 36, 37, 58, 59, -1,
- -1, -1, -1, 64, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 10, 75, -1, -1, -1, 79, -1,
- 81, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, -1, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, -1, 45, 46,
- 47, 48, -1, -1, -1, -1, 18, 19, 20, 21,
- 22, -1, 24, 25, 26, 27, 28, -1, 30, 31,
- 32, 33, 34, 35, 36, 37, -1, -1, 75, 10,
- 77, -1, 79, -1, 81, 82, -1, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
- 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 75, 45, 46, 47, 48, -1, 81,
- 82, -1, 18, 19, 20, 21, 22, -1, 24, 25,
- 26, 27, -1, -1, 30, 31, 32, 33, 34, 35,
- 36, 37, -1, -1, 75, 10, 77, -1, 79, -1,
- 81, 82, -1, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, -1, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 75,
- 45, 46, 47, 48, -1, 81, 82, -1, -1, 18,
- 19, 20, 21, 22, -1, 24, 25, 26, -1, -1,
- -1, 30, 31, 32, 33, 34, 35, 36, 37, -1,
- 75, 76, 10, -1, 79, -1, 81, 82, -1, -1,
- 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
- 28, -1, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 75, 45, 46, 47,
- 48, -1, 81, 82, -1, 18, 19, 20, 21, 22,
- -1, 24, 25, 26, -1, -1, -1, 30, 31, 32,
- 33, -1, -1, 36, 37, -1, -1, 75, 10, -1,
- 12, 79, 80, 81, 82, -1, 18, 19, 20, 21,
+ -1, 6, 7, 21, 9, 10, -1, 25, -1, -1,
+ 15, 29, -1, 58, 59, -1, -1, -1, -1, 64,
+ 18, 19, 20, 21, 22, -1, 24, 25, -1, -1,
+ 75, -1, 77, -1, 79, -1, 81, -1, 36, 37,
+ 58, 59, -1, -1, 49, -1, 64, 3, 4, 5,
+ 6, 7, -1, 9, -1, 11, -1, 75, 14, 77,
+ 16, 79, -1, 81, -1, 21, -1, -1, -1, 25,
+ -1, -1, -1, 29, 3, 4, 5, 6, 7, -1,
+ 9, -1, 11, -1, -1, 14, -1, 16, -1, -1,
+ -1, -1, 21, -1, -1, -1, 25, -1, -1, -1,
+ 29, -1, 58, 59, -1, -1, -1, -1, 64, -1,
+ -1, -1, -1, 18, 19, 20, 21, 22, -1, 75,
+ 76, -1, -1, 79, -1, 81, -1, -1, -1, 58,
+ 59, 36, 37, -1, -1, 64, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 75, 76, -1, -1,
+ 79, -1, 81, 3, 4, 5, 6, 7, -1, 9,
+ -1, 11, -1, -1, 14, -1, 16, -1, -1, -1,
+ 75, 21, -1, -1, -1, 25, 81, 82, -1, 29,
+ 3, 4, 5, 6, 7, -1, 9, -1, 11, -1,
+ -1, 14, -1, 16, -1, 0, 1, -1, 21, -1,
+ -1, 6, 25, -1, -1, -1, 29, 12, 58, 59,
+ -1, -1, 1, -1, 64, -1, -1, 6, -1, -1,
+ -1, -1, -1, 12, -1, 75, -1, -1, -1, 79,
+ -1, 81, -1, -1, -1, 58, 59, -1, -1, -1,
+ -1, 64, -1, -1, -1, -1, 51, 52, 53, 54,
+ 55, -1, 75, -1, 59, -1, 79, -1, 81, -1,
+ -1, -1, 51, 52, 53, 54, 55, 72, 73, 74,
+ 59, -1, -1, -1, -1, -1, -1, -1, 10, -1,
+ -1, -1, -1, 72, 73, 74, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 75, 45, 46, 47, 48, -1, 81, 82,
+ 42, 43, -1, 45, 46, 47, 48, -1, -1, -1,
-1, 18, 19, 20, 21, 22, -1, 24, 25, 26,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 36,
- 37, -1, -1, 75, 10, -1, 12, 79, -1, 81,
+ 27, 28, -1, 30, 31, 32, 33, 34, 35, 36,
+ 37, -1, -1, 75, 10, 77, -1, 79, -1, 81,
82, -1, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, -1, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, 42, 43, 75, 45,
46, 47, 48, -1, 81, 82, -1, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
+ 21, 22, -1, 24, 25, 26, 27, -1, -1, 30,
31, 32, 33, 34, 35, 36, 37, -1, -1, 75,
- 10, -1, -1, 79, -1, 81, 82, -1, 18, 19,
+ 10, 77, -1, 79, -1, 81, 82, -1, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, -1, 45, 46, 47, 48, 80,
- 50, -1, -1, 18, 19, 20, 21, 22, -1, 24,
- 25, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 36, 37, -1, -1, 75, 10, -1, -1, 79,
- -1, 81, 82, -1, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, -1, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 75, 45, 46, 47, 48, -1, 81, 82, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
- 30, 31, 32, 33, 34, 35, 36, 37, -1, -1,
- -1, 75, 10, -1, -1, 79, -1, 81, 82, -1,
- 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
- 28, -1, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 76, 45, 46, 47,
- 48, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+ 40, 41, 42, 43, 75, 45, 46, 47, 48, -1,
+ 81, 82, -1, -1, 18, 19, 20, 21, 22, -1,
+ 24, 25, 26, -1, -1, -1, 30, 31, 32, 33,
+ 34, 35, 36, 37, -1, 75, 76, 10, -1, 79,
+ -1, 81, 82, -1, -1, 18, 19, 20, 21, 22,
+ 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 75, 45, 46, 47, 48, -1, 81, 82, -1,
+ 18, 19, 20, 21, 22, -1, 24, 25, 26, -1,
+ -1, -1, 30, 31, 32, 33, -1, -1, 36, 37,
+ -1, -1, 75, 10, -1, 12, 79, 80, 81, 82,
+ -1, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, -1, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 75, 45, 46,
- 47, 48, -1, 81, 82, 18, 19, 20, 21, 22,
- -1, -1, 25, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 36, 37, -1, -1, -1, 75, -1,
- -1, -1, 79, -1, 81, 82, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
- 32, 33, 34, 35, 36, 37, -1, -1, -1, -1,
- -1, -1, 75, -1, -1, -1, -1, -1, 81, 82,
- 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
- 28, -1, 30, 31, 32, 33, 34, 35, 36, 37,
- -1, 13, -1, -1, -1, 77, 18, 19, 20, 21,
+ 47, 48, -1, 81, 82, -1, 18, 19, 20, 21,
+ 22, -1, 24, 25, 26, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 36, 37, -1, -1, 75, 10,
+ -1, 12, 79, -1, 81, 82, -1, 18, 19, 20,
+ 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+ 41, 42, 43, 75, 45, 46, 47, 48, -1, 81,
+ 82, -1, 18, 19, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, -1, 30, 31, 32, 33, 34, 35,
+ 36, 37, -1, -1, 75, 10, -1, -1, 79, -1,
+ 81, 82, -1, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, -1, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, -1,
+ 45, 46, 47, 48, 80, 50, -1, -1, 18, 19,
+ 20, 21, 22, -1, 24, 25, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 36, 37, -1, -1,
+ 75, 10, -1, -1, 79, -1, 81, 82, -1, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+ -1, 30, 31, 32, 33, 34, 35, 36, 37, 38,
+ 39, 40, 41, 42, 43, 75, 45, 46, 47, 48,
+ -1, 81, 82, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, -1, 30, 31, 32, 33, 34,
+ 35, 36, 37, -1, -1, -1, 75, 10, -1, -1,
+ 79, -1, 81, 82, -1, 18, 19, 20, 21, 22,
+ 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 76, 45, 46, 47, 48, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
- 32, 33, 34, 35, 36, 37, -1, -1, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 77,
- 30, 31, 32, 33, 34, 35, 36, 37, 18, 19,
- 20, 21, 22, -1, 24, 25, 26, 27, 28, -1,
- 30, 31, 32, 33, 34, 35, 36, 37, 18, 19,
- 20, 21, 22, -1, 24, 25, 26, 27, -1, -1,
- 30, 31, 32, 33, 34, 35, 36, 37, 18, 19,
- 20, 21, 22, -1, 24, 25, 26, -1, -1, -1,
- 30, 31, 32, 33, 34, 35, 36, 37, 18, 19,
- 20, 21, 22, -1, 24, 25, 26, -1, -1, -1,
- 30, 31, 32, 33, -1, -1, 36, 37
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
+ 42, 43, 75, 45, 46, 47, 48, -1, 81, 82,
+ 18, 19, 20, 21, 22, -1, -1, 25, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 36, 37,
+ -1, -1, -1, 75, -1, -1, -1, 79, -1, 81,
+ 82, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+ 27, 28, -1, 30, 31, 32, 33, 34, 35, 36,
+ 37, -1, -1, -1, -1, -1, -1, 75, -1, -1,
+ -1, -1, -1, 81, 82, 18, 19, 20, 21, 22,
+ 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
+ 33, 34, 35, 36, 37, -1, -1, -1, -1, -1,
+ -1, -1, -1, 80, 18, 19, 20, 21, 22, 23,
+ 24, 25, 26, 27, 28, -1, 30, 31, 32, 33,
+ 34, 35, 36, 37, -1, -1, 18, 19, 20, 21,
+ 22, 23, 24, 25, 26, 27, 28, 80, 30, 31,
+ 32, 33, 34, 35, 36, 37, -1, 13, -1, -1,
+ -1, -1, 18, 19, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, 77, 30, 31, 32, 33, 34, 35,
+ 36, 37, -1, -1, 18, 19, 20, 21, 22, 23,
+ 24, 25, 26, 27, 28, 77, 30, 31, 32, 33,
+ 34, 35, 36, 37, 18, 19, 20, 21, 22, -1,
+ 24, 25, 26, 27, 28, -1, 30, 31, 32, 33,
+ 34, 35, 36, 37, 18, 19, 20, 21, 22, -1,
+ 24, 25, 26, 27, -1, -1, 30, 31, 32, 33,
+ 34, 35, 36, 37, 18, 19, 20, 21, 22, -1,
+ 24, 25, 26, -1, -1, -1, 30, 31, 32, 33,
+ 34, 35, 36, 37, 18, 19, 20, 21, 22, -1,
+ 24, 25, 26, -1, -1, -1, 30, 31, 32, 33,
+ -1, -1, 36, 37
};
/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
@@ -1350,56 +1340,55 @@ static const yytype_int16 yycheck[] =
static const yytype_uint8 yystos[] =
{
0, 1, 6, 12, 51, 52, 53, 54, 55, 59,
- 72, 73, 74, 86, 90, 111, 129, 133, 136, 140,
+ 72, 73, 74, 86, 90, 111, 128, 133, 136, 140,
141, 144, 145, 146, 147, 148, 149, 150, 151, 90,
- 111, 129, 133, 136, 140, 141, 144, 148, 86, 86,
+ 111, 128, 133, 136, 140, 141, 144, 148, 86, 86,
86, 5, 3, 4, 14, 21, 29, 75, 86, 99,
100, 101, 86, 86, 86, 7, 9, 15, 49, 69,
- 71, 75, 86, 87, 124, 125, 126, 10, 150, 0,
- 75, 77, 75, 77, 77, 126, 101, 101, 101, 101,
- 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
- 28, 30, 31, 32, 33, 34, 35, 36, 37, 77,
- 75, 124, 13, 77, 75, 79, 126, 3, 4, 5,
- 9, 11, 14, 16, 21, 25, 29, 58, 59, 64,
- 75, 79, 81, 86, 87, 89, 91, 92, 93, 102,
- 115, 116, 120, 130, 124, 10, 126, 10, 126, 76,
- 84, 86, 96, 97, 126, 127, 83, 79, 77, 109,
- 101, 86, 134, 135, 86, 127, 131, 132, 135, 132,
- 78, 86, 127, 133, 137, 138, 76, 101, 101, 101,
+ 71, 75, 86, 87, 124, 125, 10, 150, 0, 75,
+ 77, 75, 77, 77, 125, 101, 101, 101, 101, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+ 30, 31, 32, 33, 34, 35, 36, 37, 77, 124,
+ 13, 77, 75, 79, 125, 3, 4, 5, 9, 11,
+ 14, 16, 21, 25, 29, 58, 59, 64, 75, 79,
+ 81, 86, 87, 89, 91, 92, 93, 102, 115, 116,
+ 120, 130, 124, 10, 125, 10, 125, 11, 76, 84,
+ 86, 96, 97, 125, 126, 83, 79, 77, 109, 101,
+ 86, 134, 135, 86, 126, 131, 132, 135, 132, 78,
+ 86, 126, 133, 137, 138, 76, 101, 101, 101, 101,
101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
- 101, 101, 101, 101, 101, 101, 150, 97, 126, 86,
- 142, 143, 76, 86, 110, 101, 102, 86, 77, 102,
- 102, 102, 102, 102, 75, 102, 102, 86, 102, 109,
- 127, 128, 110, 126, 83, 75, 10, 18, 19, 20,
+ 101, 101, 101, 101, 101, 150, 125, 86, 142, 143,
+ 11, 76, 86, 110, 101, 102, 86, 77, 102, 102,
+ 102, 102, 102, 75, 102, 102, 86, 102, 109, 126,
+ 127, 86, 129, 125, 83, 75, 10, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
42, 43, 45, 46, 47, 48, 75, 79, 81, 82,
- 101, 101, 126, 69, 71, 126, 50, 11, 76, 84,
- 50, 126, 126, 139, 1, 12, 56, 57, 61, 62,
+ 101, 101, 86, 125, 69, 71, 125, 50, 76, 84,
+ 50, 125, 125, 139, 1, 12, 56, 57, 61, 62,
66, 67, 68, 70, 71, 78, 86, 88, 90, 98,
102, 103, 104, 105, 106, 107, 108, 109, 111, 117,
- 123, 127, 128, 136, 140, 141, 144, 126, 50, 76,
+ 123, 126, 127, 136, 140, 141, 144, 125, 50, 76,
12, 78, 76, 78, 12, 124, 12, 138, 78, 78,
- 77, 10, 50, 78, 109, 50, 11, 76, 80, 82,
- 102, 113, 114, 5, 109, 77, 69, 71, 76, 76,
- 10, 76, 80, 126, 25, 76, 86, 94, 95, 102,
- 127, 102, 102, 102, 102, 102, 102, 102, 102, 102,
+ 77, 10, 50, 78, 86, 109, 50, 11, 76, 80,
+ 82, 102, 113, 114, 5, 109, 77, 69, 71, 76,
+ 76, 10, 76, 50, 80, 125, 25, 76, 86, 94,
+ 95, 102, 126, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
- 102, 76, 95, 102, 126, 86, 76, 126, 126, 97,
- 86, 76, 126, 97, 50, 80, 102, 86, 94, 102,
- 109, 102, 59, 66, 121, 122, 13, 12, 108, 78,
- 135, 77, 132, 77, 12, 60, 143, 102, 143, 110,
- 86, 109, 126, 86, 50, 78, 76, 60, 63, 65,
- 118, 119, 10, 10, 102, 109, 124, 127, 50, 76,
- 76, 80, 84, 76, 139, 12, 109, 67, 101, 86,
- 132, 132, 77, 145, 78, 76, 10, 114, 109, 116,
- 13, 101, 119, 78, 102, 102, 109, 95, 126, 102,
+ 102, 102, 102, 76, 95, 102, 125, 86, 76, 125,
+ 125, 97, 76, 125, 97, 50, 80, 102, 86, 94,
+ 102, 109, 102, 59, 66, 121, 122, 13, 12, 108,
+ 78, 135, 77, 132, 77, 12, 60, 143, 102, 143,
+ 110, 86, 109, 125, 86, 50, 78, 76, 60, 63,
+ 65, 118, 119, 10, 10, 102, 129, 109, 124, 126,
+ 50, 76, 76, 80, 76, 139, 12, 109, 67, 101,
+ 86, 132, 132, 77, 145, 78, 76, 10, 114, 109,
+ 116, 13, 101, 119, 78, 102, 102, 109, 95, 102,
102, 109, 13, 78, 78, 150, 109, 102, 108, 13,
- 76, 12, 12, 60, 102, 112, 78, 108, 102, 109,
- 122, 50, 109, 109, 112, 9, 15, 86, 9, 15,
- 86, 83, 79, 102, 79, 102, 83, 101, 101, 80,
- 80
+ 12, 12, 60, 102, 112, 78, 108, 102, 109, 122,
+ 50, 109, 109, 112, 9, 15, 86, 9, 15, 86,
+ 83, 79, 102, 79, 102, 83, 101, 101, 80, 80
};
/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
@@ -1410,27 +1399,27 @@ static const yytype_uint8 yyr1[] =
92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
92, 92, 92, 92, 92, 92, 92, 92, 93, 93,
93, 93, 93, 94, 94, 94, 95, 95, 96, 97,
- 97, 97, 97, 98, 99, 99, 99, 99, 99, 99,
+ 97, 97, 97, 97, 98, 99, 99, 99, 99, 99,
99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
- 99, 99, 99, 100, 100, 100, 101, 101, 101, 101,
- 101, 101, 102, 102, 102, 102, 102, 102, 102, 102,
+ 99, 99, 99, 99, 100, 100, 100, 101, 101, 101,
+ 101, 101, 101, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
- 102, 102, 102, 102, 102, 102, 102, 102, 103, 104,
- 105, 106, 106, 106, 106, 106, 106, 106, 106, 106,
+ 102, 102, 102, 102, 102, 102, 102, 102, 102, 103,
+ 104, 105, 106, 106, 106, 106, 106, 106, 106, 106,
106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 107, 108, 108, 108, 109, 109, 110,
- 110, 111, 111, 111, 112, 112, 113, 113, 114, 114,
- 115, 116, 116, 116, 117, 118, 118, 119, 119, 120,
- 121, 122, 122, 122, 123, 123, 124, 124, 124, 124,
- 124, 125, 125, 126, 126, 126, 126, 126, 126, 126,
- 127, 127, 127, 128, 128, 128, 129, 129, 130, 130,
- 131, 132, 132, 133, 133, 134, 135, 135, 136, 136,
- 137, 137, 137, 137, 138, 138, 139, 139, 140, 141,
- 141, 142, 142, 143, 143, 143, 144, 144, 145, 145,
- 145, 146, 146, 146, 147, 147, 147, 148, 148, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
+ 106, 106, 106, 106, 107, 108, 108, 108, 109, 109,
+ 110, 110, 110, 111, 111, 111, 112, 112, 113, 113,
+ 114, 114, 115, 116, 116, 116, 117, 118, 118, 119,
+ 119, 120, 121, 122, 122, 122, 123, 123, 124, 124,
+ 124, 124, 124, 125, 125, 125, 125, 125, 125, 125,
+ 126, 126, 126, 127, 127, 127, 128, 128, 129, 129,
+ 130, 130, 131, 132, 132, 133, 133, 134, 135, 135,
+ 136, 136, 137, 137, 137, 137, 138, 138, 139, 139,
+ 140, 141, 141, 142, 142, 143, 143, 143, 144, 144,
+ 145, 145, 145, 146, 146, 146, 147, 147, 147, 148,
+ 148, 149, 149, 149, 149, 149, 149, 149, 149, 149,
149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 150, 150, 151, 151
+ 149, 149, 150, 150, 151, 151
};
/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
@@ -1441,27 +1430,27 @@ static const yytype_int8 yyr2[] =
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 2, 2,
2, 2, 2, 2, 1, 1, 3, 1, 1, 3,
- 3, 1, 1, 2, 3, 3, 3, 3, 3, 3,
+ 3, 1, 1, 2, 2, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 2, 2, 2, 3, 1, 1, 1,
- 1, 1, 1, 3, 2, 1, 1, 1, 3, 1,
- 4, 3, 4, 4, 3, 1, 1, 3, 2, 3,
- 3, 2, 1, 1, 1, 1, 1, 3, 3, 5,
- 2, 1, 2, 1, 1, 1, 1, 1, 1, 2,
+ 3, 3, 3, 3, 2, 2, 2, 3, 1, 1,
+ 1, 1, 1, 1, 3, 2, 1, 1, 1, 3,
+ 1, 4, 3, 4, 4, 3, 1, 1, 3, 2,
+ 3, 3, 2, 1, 1, 1, 1, 1, 3, 3,
+ 5, 2, 1, 2, 1, 1, 1, 1, 1, 1,
+ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 2, 2, 1, 1, 3, 2,
+ 3, 1, 2, 6, 8, 5, 3, 1, 1, 4,
+ 3, 1, 4, 3, 5, 5, 7, 4, 3, 2,
+ 1, 5, 5, 3, 5, 5, 2, 2, 5, 3,
+ 4, 4, 2, 1, 2, 4, 2, 5, 2, 3,
+ 3, 3, 2, 3, 4, 4, 3, 3, 3, 1,
+ 5, 4, 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, 3, 3, 2, 3, 4, 4, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 2, 2, 1, 1, 3, 2, 3,
- 1, 6, 8, 5, 3, 1, 1, 4, 3, 1,
- 4, 3, 5, 5, 7, 4, 3, 2, 1, 5,
- 5, 3, 5, 5, 2, 2, 5, 3, 4, 4,
- 2, 1, 7, 1, 2, 4, 2, 5, 2, 3,
- 3, 3, 2, 3, 4, 4, 3, 3, 5, 4,
- 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, 3, 3, 2, 3, 4, 4, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
- 1, 2, 1, 0
+ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 1, 1, 1, 2, 1, 0
};
@@ -2027,421 +2016,421 @@ yydestruct (const char *yymsg,
case YYSYMBOL_INT: /* INT */
#line 159 "src/parser.y"
{}
-#line 2031 "gen/gen_parser.c"
+#line 2020 "gen/gen_parser.c"
break;
case YYSYMBOL_FLOAT: /* FLOAT */
#line 159 "src/parser.y"
{}
-#line 2037 "gen/gen_parser.c"
+#line 2026 "gen/gen_parser.c"
break;
case YYSYMBOL_STRING: /* STRING */
#line 159 "src/parser.y"
{}
-#line 2043 "gen/gen_parser.c"
+#line 2032 "gen/gen_parser.c"
break;
case YYSYMBOL_ID: /* ID */
#line 159 "src/parser.y"
{}
-#line 2049 "gen/gen_parser.c"
+#line 2038 "gen/gen_parser.c"
break;
case YYSYMBOL_APPLY: /* APPLY */
#line 159 "src/parser.y"
{}
-#line 2055 "gen/gen_parser.c"
+#line 2044 "gen/gen_parser.c"
break;
case YYSYMBOL_id: /* id */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2061 "gen/gen_parser.c"
+#line 2050 "gen/gen_parser.c"
break;
case YYSYMBOL_apply: /* apply */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2067 "gen/gen_parser.c"
+#line 2056 "gen/gen_parser.c"
break;
case YYSYMBOL_var: /* var */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2073 "gen/gen_parser.c"
+#line 2062 "gen/gen_parser.c"
break;
case YYSYMBOL_embed: /* embed */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2079 "gen/gen_parser.c"
+#line 2068 "gen/gen_parser.c"
break;
case YYSYMBOL_import: /* import */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2085 "gen/gen_parser.c"
+#line 2074 "gen/gen_parser.c"
break;
case YYSYMBOL_assign: /* assign */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2091 "gen/gen_parser.c"
+#line 2080 "gen/gen_parser.c"
break;
case YYSYMBOL_binop: /* binop */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2097 "gen/gen_parser.c"
+#line 2086 "gen/gen_parser.c"
break;
case YYSYMBOL_unop: /* unop */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2103 "gen/gen_parser.c"
+#line 2092 "gen/gen_parser.c"
break;
case YYSYMBOL_arg: /* arg */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2109 "gen/gen_parser.c"
+#line 2098 "gen/gen_parser.c"
break;
case YYSYMBOL_args: /* args */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2115 "gen/gen_parser.c"
+#line 2104 "gen/gen_parser.c"
break;
case YYSYMBOL_param_decl: /* param_decl */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2121 "gen/gen_parser.c"
+#line 2110 "gen/gen_parser.c"
break;
case YYSYMBOL_decls: /* decls */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2127 "gen/gen_parser.c"
+#line 2116 "gen/gen_parser.c"
break;
case YYSYMBOL_defer: /* defer */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2133 "gen/gen_parser.c"
+#line 2122 "gen/gen_parser.c"
break;
case YYSYMBOL_const_binop: /* const_binop */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2139 "gen/gen_parser.c"
+#line 2128 "gen/gen_parser.c"
break;
case YYSYMBOL_const_unop: /* const_unop */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2145 "gen/gen_parser.c"
+#line 2134 "gen/gen_parser.c"
break;
case YYSYMBOL_const_expr: /* const_expr */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2151 "gen/gen_parser.c"
+#line 2140 "gen/gen_parser.c"
break;
case YYSYMBOL_expr: /* expr */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2157 "gen/gen_parser.c"
+#line 2146 "gen/gen_parser.c"
break;
case YYSYMBOL_while: /* while */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2163 "gen/gen_parser.c"
+#line 2152 "gen/gen_parser.c"
break;
case YYSYMBOL_do_while: /* do_while */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2169 "gen/gen_parser.c"
+#line 2158 "gen/gen_parser.c"
break;
case YYSYMBOL_goto: /* goto */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2175 "gen/gen_parser.c"
+#line 2164 "gen/gen_parser.c"
break;
case YYSYMBOL_statelet: /* statelet */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2181 "gen/gen_parser.c"
+#line 2170 "gen/gen_parser.c"
break;
case YYSYMBOL_statement: /* statement */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2187 "gen/gen_parser.c"
+#line 2176 "gen/gen_parser.c"
break;
case YYSYMBOL_statements: /* statements */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2193 "gen/gen_parser.c"
+#line 2182 "gen/gen_parser.c"
break;
case YYSYMBOL_body: /* body */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2199 "gen/gen_parser.c"
+#line 2188 "gen/gen_parser.c"
break;
case YYSYMBOL_references: /* references */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2205 "gen/gen_parser.c"
+#line 2194 "gen/gen_parser.c"
break;
case YYSYMBOL_macro: /* macro */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2211 "gen/gen_parser.c"
+#line 2200 "gen/gen_parser.c"
break;
case YYSYMBOL_exprs: /* exprs */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2217 "gen/gen_parser.c"
+#line 2206 "gen/gen_parser.c"
break;
case YYSYMBOL_construct_arg: /* construct_arg */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2223 "gen/gen_parser.c"
+#line 2212 "gen/gen_parser.c"
break;
case YYSYMBOL_construct_args: /* construct_args */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2229 "gen/gen_parser.c"
+#line 2218 "gen/gen_parser.c"
break;
case YYSYMBOL_construct: /* construct */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2235 "gen/gen_parser.c"
+#line 2224 "gen/gen_parser.c"
break;
case YYSYMBOL_if: /* if */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2241 "gen/gen_parser.c"
+#line 2230 "gen/gen_parser.c"
break;
case YYSYMBOL_for: /* for */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2247 "gen/gen_parser.c"
+#line 2236 "gen/gen_parser.c"
break;
case YYSYMBOL_case: /* case */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2253 "gen/gen_parser.c"
+#line 2242 "gen/gen_parser.c"
break;
case YYSYMBOL_cases: /* cases */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2259 "gen/gen_parser.c"
+#line 2248 "gen/gen_parser.c"
break;
case YYSYMBOL_switch: /* switch */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2265 "gen/gen_parser.c"
+#line 2254 "gen/gen_parser.c"
break;
case YYSYMBOL_const_for: /* const_for */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2271 "gen/gen_parser.c"
+#line 2260 "gen/gen_parser.c"
break;
case YYSYMBOL_const_if: /* const_if */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2277 "gen/gen_parser.c"
+#line 2266 "gen/gen_parser.c"
break;
case YYSYMBOL_const: /* const */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2283 "gen/gen_parser.c"
- break;
-
- case YYSYMBOL_simple_sign: /* simple_sign */
-#line 160 "src/parser.y"
- { destroy_ast_tree(((*yyvaluep).node)); }
-#line 2289 "gen/gen_parser.c"
+#line 2272 "gen/gen_parser.c"
break;
case YYSYMBOL_func_sign: /* func_sign */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2295 "gen/gen_parser.c"
+#line 2278 "gen/gen_parser.c"
break;
case YYSYMBOL_type: /* type */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2301 "gen/gen_parser.c"
+#line 2284 "gen/gen_parser.c"
break;
case YYSYMBOL_var_decl: /* var_decl */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2307 "gen/gen_parser.c"
+#line 2290 "gen/gen_parser.c"
break;
case YYSYMBOL_var_init: /* var_init */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2313 "gen/gen_parser.c"
+#line 2296 "gen/gen_parser.c"
break;
case YYSYMBOL_proc: /* proc */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2319 "gen/gen_parser.c"
+#line 2302 "gen/gen_parser.c"
+ break;
+
+ case YYSYMBOL_captures: /* captures */
+#line 160 "src/parser.y"
+ { destroy_ast_tree(((*yyvaluep).node)); }
+#line 2308 "gen/gen_parser.c"
break;
case YYSYMBOL_lambda: /* lambda */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2325 "gen/gen_parser.c"
+#line 2314 "gen/gen_parser.c"
break;
case YYSYMBOL_struct_elem: /* struct_elem */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2331 "gen/gen_parser.c"
+#line 2320 "gen/gen_parser.c"
break;
case YYSYMBOL_members: /* members */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2337 "gen/gen_parser.c"
+#line 2326 "gen/gen_parser.c"
break;
case YYSYMBOL_union: /* union */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2343 "gen/gen_parser.c"
+#line 2332 "gen/gen_parser.c"
break;
case YYSYMBOL_generic: /* generic */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2349 "gen/gen_parser.c"
+#line 2338 "gen/gen_parser.c"
break;
case YYSYMBOL_generics: /* generics */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2355 "gen/gen_parser.c"
+#line 2344 "gen/gen_parser.c"
break;
case YYSYMBOL_struct: /* struct */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2361 "gen/gen_parser.c"
+#line 2350 "gen/gen_parser.c"
break;
case YYSYMBOL_template_elem: /* template_elem */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2367 "gen/gen_parser.c"
+#line 2356 "gen/gen_parser.c"
break;
case YYSYMBOL_template_elems: /* template_elems */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2373 "gen/gen_parser.c"
+#line 2362 "gen/gen_parser.c"
break;
case YYSYMBOL_types: /* types */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2379 "gen/gen_parser.c"
+#line 2368 "gen/gen_parser.c"
break;
case YYSYMBOL_alias: /* alias */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2385 "gen/gen_parser.c"
+#line 2374 "gen/gen_parser.c"
break;
case YYSYMBOL_template: /* template */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2391 "gen/gen_parser.c"
+#line 2380 "gen/gen_parser.c"
break;
case YYSYMBOL_enum_val: /* enum_val */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2397 "gen/gen_parser.c"
+#line 2386 "gen/gen_parser.c"
break;
case YYSYMBOL_enums: /* enums */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2403 "gen/gen_parser.c"
+#line 2392 "gen/gen_parser.c"
break;
case YYSYMBOL_enum: /* enum */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2409 "gen/gen_parser.c"
+#line 2398 "gen/gen_parser.c"
break;
case YYSYMBOL_top_if: /* top_if */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2415 "gen/gen_parser.c"
+#line 2404 "gen/gen_parser.c"
break;
case YYSYMBOL_top_var_decl: /* top_var_decl */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2421 "gen/gen_parser.c"
+#line 2410 "gen/gen_parser.c"
break;
case YYSYMBOL_top_var_init: /* top_var_init */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2427 "gen/gen_parser.c"
+#line 2416 "gen/gen_parser.c"
break;
case YYSYMBOL_top_var: /* top_var */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2433 "gen/gen_parser.c"
+#line 2422 "gen/gen_parser.c"
break;
case YYSYMBOL_top: /* top */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2439 "gen/gen_parser.c"
+#line 2428 "gen/gen_parser.c"
break;
case YYSYMBOL_unit: /* unit */
#line 160 "src/parser.y"
{ destroy_ast_tree(((*yyvaluep).node)); }
-#line 2445 "gen/gen_parser.c"
+#line 2434 "gen/gen_parser.c"
break;
default:
@@ -2750,7 +2739,7 @@ yyreduce:
(yyval.node) = gen_id(strdup((yyvsp[0].str)));
(yyval.node)->loc = to_src_loc(&yylloc);
}
-#line 2754 "gen/gen_parser.c"
+#line 2743 "gen/gen_parser.c"
break;
case 3: /* apply: APPLY */
@@ -2759,163 +2748,163 @@ yyreduce:
(yyval.node) = gen_id(strdup((yyvsp[0].str)));
(yyval.node)->loc = to_src_loc(&yylloc);
}
-#line 2763 "gen/gen_parser.c"
+#line 2752 "gen/gen_parser.c"
break;
case 4: /* var: var_decl */
#line 177 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2769 "gen/gen_parser.c"
+#line 2758 "gen/gen_parser.c"
break;
case 5: /* var: var_init */
#line 178 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 2775 "gen/gen_parser.c"
+#line 2764 "gen/gen_parser.c"
break;
case 6: /* embed: "embed" "(" STRING ")" */
#line 181 "src/parser.y"
{ (yyval.node) = gen_embed(clone_string((yyvsp[-1].str))); }
-#line 2781 "gen/gen_parser.c"
+#line 2770 "gen/gen_parser.c"
break;
case 7: /* import: "import" STRING */
#line 184 "src/parser.y"
{ (yyval.node) = gen_import(clone_string((yyvsp[0].str))); }
-#line 2787 "gen/gen_parser.c"
+#line 2776 "gen/gen_parser.c"
break;
case 8: /* assign: expr "=" expr */
#line 187 "src/parser.y"
{ (yyval.node) = gen_assign((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2793 "gen/gen_parser.c"
+#line 2782 "gen/gen_parser.c"
break;
case 9: /* binop: expr "+" expr */
#line 190 "src/parser.y"
{ (yyval.node) = gen_binop(AST_ADD, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2799 "gen/gen_parser.c"
+#line 2788 "gen/gen_parser.c"
break;
case 10: /* binop: expr "-" expr */
#line 191 "src/parser.y"
{ (yyval.node) = gen_binop(AST_SUB, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2805 "gen/gen_parser.c"
+#line 2794 "gen/gen_parser.c"
break;
case 11: /* binop: expr "*" expr */
#line 192 "src/parser.y"
{ (yyval.node) = gen_binop(AST_MUL, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2811 "gen/gen_parser.c"
+#line 2800 "gen/gen_parser.c"
break;
case 12: /* binop: expr "/" expr */
#line 193 "src/parser.y"
{ (yyval.node) = gen_binop(AST_DIV, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2817 "gen/gen_parser.c"
+#line 2806 "gen/gen_parser.c"
break;
case 13: /* binop: expr "%" expr */
#line 194 "src/parser.y"
{ (yyval.node) = gen_binop(AST_REM, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2823 "gen/gen_parser.c"
+#line 2812 "gen/gen_parser.c"
break;
case 14: /* binop: expr "^" expr */
#line 195 "src/parser.y"
{ (yyval.node) = gen_binop(AST_XOR, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2829 "gen/gen_parser.c"
+#line 2818 "gen/gen_parser.c"
break;
case 15: /* binop: expr "^^" expr */
#line 196 "src/parser.y"
{ (yyval.node) = gen_binop(AST_POW, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2835 "gen/gen_parser.c"
+#line 2824 "gen/gen_parser.c"
break;
case 16: /* binop: expr "&" expr */
#line 197 "src/parser.y"
{ (yyval.node) = gen_binop(AST_AND, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2841 "gen/gen_parser.c"
+#line 2830 "gen/gen_parser.c"
break;
case 17: /* binop: expr "&&" expr */
#line 198 "src/parser.y"
{ (yyval.node) = gen_binop(AST_LAND, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2847 "gen/gen_parser.c"
+#line 2836 "gen/gen_parser.c"
break;
case 18: /* binop: expr "|" expr */
#line 199 "src/parser.y"
{ (yyval.node) = gen_binop(AST_OR, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2853 "gen/gen_parser.c"
+#line 2842 "gen/gen_parser.c"
break;
case 19: /* binop: expr "||" expr */
#line 200 "src/parser.y"
{ (yyval.node) = gen_binop(AST_LOR, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2859 "gen/gen_parser.c"
+#line 2848 "gen/gen_parser.c"
break;
case 20: /* binop: expr "<<" expr */
#line 201 "src/parser.y"
{ (yyval.node) = gen_binop(AST_LSHIFT, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2865 "gen/gen_parser.c"
+#line 2854 "gen/gen_parser.c"
break;
case 21: /* binop: expr ">>" expr */
#line 202 "src/parser.y"
{ (yyval.node) = gen_binop(AST_RSHIFT, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2871 "gen/gen_parser.c"
+#line 2860 "gen/gen_parser.c"
break;
case 22: /* binop: expr "+=" expr */
#line 203 "src/parser.y"
{ (yyval.node) = gen_binop(AST_ASSIGN_ADD, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2877 "gen/gen_parser.c"
+#line 2866 "gen/gen_parser.c"
break;
case 23: /* binop: expr "-=" expr */
#line 204 "src/parser.y"
{ (yyval.node) = gen_binop(AST_ASSIGN_SUB, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2883 "gen/gen_parser.c"
+#line 2872 "gen/gen_parser.c"
break;
case 24: /* binop: expr "*=" expr */
#line 205 "src/parser.y"
{ (yyval.node) = gen_binop(AST_ASSIGN_MUL, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2889 "gen/gen_parser.c"
+#line 2878 "gen/gen_parser.c"
break;
case 25: /* binop: expr "/=" expr */
#line 206 "src/parser.y"
{ (yyval.node) = gen_binop(AST_ASSIGN_DIV, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2895 "gen/gen_parser.c"
+#line 2884 "gen/gen_parser.c"
break;
case 26: /* binop: expr "%=" expr */
#line 207 "src/parser.y"
{ (yyval.node) = gen_binop(AST_ASSIGN_REM, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2901 "gen/gen_parser.c"
+#line 2890 "gen/gen_parser.c"
break;
case 27: /* binop: expr "&=" expr */
#line 208 "src/parser.y"
{ (yyval.node) = gen_binop(AST_ASSIGN_AND, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2907 "gen/gen_parser.c"
+#line 2896 "gen/gen_parser.c"
break;
case 28: /* binop: expr "|=" expr */
#line 209 "src/parser.y"
{ (yyval.node) = gen_binop(AST_ASSIGN_OR, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2913 "gen/gen_parser.c"
+#line 2902 "gen/gen_parser.c"
break;
case 29: /* binop: expr "^=" expr */
#line 210 "src/parser.y"
{ (yyval.node) = gen_binop(AST_ASSIGN_XOR, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2919 "gen/gen_parser.c"
+#line 2908 "gen/gen_parser.c"
break;
case 30: /* binop: expr "<<=" expr */
@@ -2923,7 +2912,7 @@ yyreduce:
{
(yyval.node) = gen_binop(AST_ASSIGN_LSHIFT, (yyvsp[-2].node), (yyvsp[0].node));
}
-#line 2927 "gen/gen_parser.c"
+#line 2916 "gen/gen_parser.c"
break;
case 31: /* binop: expr ">>=" expr */
@@ -2931,617 +2920,623 @@ yyreduce:
{
(yyval.node) = gen_binop(AST_ASSIGN_RSHIFT, (yyvsp[-2].node), (yyvsp[0].node));
}
-#line 2935 "gen/gen_parser.c"
+#line 2924 "gen/gen_parser.c"
break;
case 32: /* binop: expr "<" expr */
#line 217 "src/parser.y"
{ (yyval.node) = gen_binop(AST_LT, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2941 "gen/gen_parser.c"
+#line 2930 "gen/gen_parser.c"
break;
case 33: /* binop: expr ">" expr */
#line 218 "src/parser.y"
{ (yyval.node) = gen_binop(AST_GT, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2947 "gen/gen_parser.c"
+#line 2936 "gen/gen_parser.c"
break;
case 34: /* binop: expr "<=" expr */
#line 219 "src/parser.y"
{ (yyval.node) = gen_binop(AST_LE, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2953 "gen/gen_parser.c"
+#line 2942 "gen/gen_parser.c"
break;
case 35: /* binop: expr ">=" expr */
#line 220 "src/parser.y"
{ (yyval.node) = gen_binop(AST_GE, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2959 "gen/gen_parser.c"
+#line 2948 "gen/gen_parser.c"
break;
case 36: /* binop: expr "!=" expr */
#line 221 "src/parser.y"
{ (yyval.node) = gen_binop(AST_NE, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2965 "gen/gen_parser.c"
+#line 2954 "gen/gen_parser.c"
break;
case 37: /* binop: expr "==" expr */
#line 222 "src/parser.y"
{ (yyval.node) = gen_binop(AST_EQ, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 2971 "gen/gen_parser.c"
+#line 2960 "gen/gen_parser.c"
break;
case 38: /* unop: "-" expr */
#line 225 "src/parser.y"
{ (yyval.node) = gen_unop(AST_NEG, (yyvsp[0].node)); }
-#line 2977 "gen/gen_parser.c"
+#line 2966 "gen/gen_parser.c"
break;
case 39: /* unop: "!" expr */
#line 226 "src/parser.y"
{ (yyval.node) = gen_unop(AST_LNOT, (yyvsp[0].node)); }
-#line 2983 "gen/gen_parser.c"
+#line 2972 "gen/gen_parser.c"
break;
case 40: /* unop: "&" expr */
#line 227 "src/parser.y"
{ (yyval.node) = gen_unop(AST_REF, (yyvsp[0].node)); }
-#line 2989 "gen/gen_parser.c"
+#line 2978 "gen/gen_parser.c"
break;
case 41: /* unop: "'" expr */
#line 228 "src/parser.y"
{ (yyval.node) = gen_unop(AST_DEREF, (yyvsp[0].node)); }
-#line 2995 "gen/gen_parser.c"
+#line 2984 "gen/gen_parser.c"
break;
case 42: /* unop: "~" expr */
#line 229 "src/parser.y"
{ (yyval.node) = gen_unop(AST_NOT, (yyvsp[0].node)); }
-#line 3001 "gen/gen_parser.c"
+#line 2990 "gen/gen_parser.c"
break;
case 43: /* arg: "&" var_decl */
#line 232 "src/parser.y"
{ (yyval.node) = gen_unop(AST_REF, (yyvsp[0].node)); }
-#line 3007 "gen/gen_parser.c"
+#line 2996 "gen/gen_parser.c"
break;
case 44: /* arg: var_decl */
#line 233 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3013 "gen/gen_parser.c"
+#line 3002 "gen/gen_parser.c"
break;
case 45: /* arg: expr */
#line 234 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3019 "gen/gen_parser.c"
+#line 3008 "gen/gen_parser.c"
break;
case 46: /* args: arg "," args */
#line 237 "src/parser.y"
{ (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->next = (yyvsp[0].node); }
-#line 3025 "gen/gen_parser.c"
+#line 3014 "gen/gen_parser.c"
break;
case 47: /* args: arg */
#line 238 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3031 "gen/gen_parser.c"
+#line 3020 "gen/gen_parser.c"
break;
case 48: /* param_decl: type */
#line 241 "src/parser.y"
{ (yyval.node) = gen_var(NULL, (yyvsp[0].node), NULL); }
-#line 3037 "gen/gen_parser.c"
+#line 3026 "gen/gen_parser.c"
break;
case 49: /* decls: var_decl "," decls */
#line 244 "src/parser.y"
{ (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->next = (yyvsp[0].node); }
-#line 3043 "gen/gen_parser.c"
+#line 3032 "gen/gen_parser.c"
break;
case 50: /* decls: param_decl "," decls */
#line 245 "src/parser.y"
{ (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->next = (yyvsp[0].node); }
-#line 3049 "gen/gen_parser.c"
+#line 3038 "gen/gen_parser.c"
break;
case 51: /* decls: var_decl */
#line 246 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3055 "gen/gen_parser.c"
+#line 3044 "gen/gen_parser.c"
break;
case 52: /* decls: param_decl */
#line 247 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3061 "gen/gen_parser.c"
+#line 3050 "gen/gen_parser.c"
+ break;
+
+ case 53: /* decls: "..." id */
+#line 248 "src/parser.y"
+ { (yyval.node) = (yyvsp[0].node); ast_set_flags((yyval.node), AST_FLAG_VARIADIC); }
+#line 3056 "gen/gen_parser.c"
break;
- case 53: /* defer: "defer" expr */
-#line 250 "src/parser.y"
+ case 54: /* defer: "defer" expr */
+#line 251 "src/parser.y"
{ (yyval.node) = gen_defer((yyvsp[0].node)); }
-#line 3067 "gen/gen_parser.c"
+#line 3062 "gen/gen_parser.c"
break;
- case 54: /* const_binop: const_expr "+" const_expr */
-#line 253 "src/parser.y"
+ case 55: /* const_binop: const_expr "+" const_expr */
+#line 254 "src/parser.y"
{ (yyval.node) = gen_binop(AST_ADD, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3073 "gen/gen_parser.c"
+#line 3068 "gen/gen_parser.c"
break;
- case 55: /* const_binop: const_expr "-" const_expr */
-#line 254 "src/parser.y"
+ case 56: /* const_binop: const_expr "-" const_expr */
+#line 255 "src/parser.y"
{ (yyval.node) = gen_binop(AST_SUB, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3079 "gen/gen_parser.c"
+#line 3074 "gen/gen_parser.c"
break;
- case 56: /* const_binop: const_expr "*" const_expr */
-#line 255 "src/parser.y"
+ case 57: /* const_binop: const_expr "*" const_expr */
+#line 256 "src/parser.y"
{ (yyval.node) = gen_binop(AST_MUL, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3085 "gen/gen_parser.c"
+#line 3080 "gen/gen_parser.c"
break;
- case 57: /* const_binop: const_expr "/" const_expr */
-#line 256 "src/parser.y"
+ case 58: /* const_binop: const_expr "/" const_expr */
+#line 257 "src/parser.y"
{ (yyval.node) = gen_binop(AST_DIV, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3091 "gen/gen_parser.c"
+#line 3086 "gen/gen_parser.c"
break;
- case 58: /* const_binop: const_expr "%" const_expr */
-#line 257 "src/parser.y"
+ case 59: /* const_binop: const_expr "%" const_expr */
+#line 258 "src/parser.y"
{ (yyval.node) = gen_binop(AST_REM, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3097 "gen/gen_parser.c"
+#line 3092 "gen/gen_parser.c"
break;
- case 59: /* const_binop: const_expr "^" const_expr */
-#line 258 "src/parser.y"
+ case 60: /* const_binop: const_expr "^" const_expr */
+#line 259 "src/parser.y"
{ (yyval.node) = gen_binop(AST_XOR, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3103 "gen/gen_parser.c"
+#line 3098 "gen/gen_parser.c"
break;
- case 60: /* const_binop: const_expr "^^" const_expr */
-#line 259 "src/parser.y"
+ case 61: /* const_binop: const_expr "^^" const_expr */
+#line 260 "src/parser.y"
{ (yyval.node) = gen_binop(AST_POW, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3109 "gen/gen_parser.c"
+#line 3104 "gen/gen_parser.c"
break;
- case 61: /* const_binop: const_expr "&" const_expr */
-#line 260 "src/parser.y"
+ case 62: /* const_binop: const_expr "&" const_expr */
+#line 261 "src/parser.y"
{ (yyval.node) = gen_binop(AST_AND, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3115 "gen/gen_parser.c"
+#line 3110 "gen/gen_parser.c"
break;
- case 62: /* const_binop: const_expr "&&" const_expr */
-#line 261 "src/parser.y"
+ case 63: /* const_binop: const_expr "&&" const_expr */
+#line 262 "src/parser.y"
{ (yyval.node) = gen_binop(AST_LAND, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3121 "gen/gen_parser.c"
+#line 3116 "gen/gen_parser.c"
break;
- case 63: /* const_binop: const_expr "|" const_expr */
-#line 262 "src/parser.y"
+ case 64: /* const_binop: const_expr "|" const_expr */
+#line 263 "src/parser.y"
{ (yyval.node) = gen_binop(AST_OR, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3127 "gen/gen_parser.c"
+#line 3122 "gen/gen_parser.c"
break;
- case 64: /* const_binop: const_expr "||" const_expr */
-#line 263 "src/parser.y"
+ case 65: /* const_binop: const_expr "||" const_expr */
+#line 264 "src/parser.y"
{ (yyval.node) = gen_binop(AST_LOR, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3133 "gen/gen_parser.c"
+#line 3128 "gen/gen_parser.c"
break;
- case 65: /* const_binop: const_expr "<<" const_expr */
-#line 264 "src/parser.y"
+ case 66: /* const_binop: const_expr "<<" const_expr */
+#line 265 "src/parser.y"
{ (yyval.node) = gen_binop(AST_LSHIFT, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3139 "gen/gen_parser.c"
+#line 3134 "gen/gen_parser.c"
break;
- case 66: /* const_binop: const_expr ">>" const_expr */
-#line 265 "src/parser.y"
+ case 67: /* const_binop: const_expr ">>" const_expr */
+#line 266 "src/parser.y"
{ (yyval.node) = gen_binop(AST_RSHIFT, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3145 "gen/gen_parser.c"
+#line 3140 "gen/gen_parser.c"
break;
- case 67: /* const_binop: const_expr "<" const_expr */
-#line 266 "src/parser.y"
+ case 68: /* const_binop: const_expr "<" const_expr */
+#line 267 "src/parser.y"
{ (yyval.node) = gen_binop(AST_LT, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3151 "gen/gen_parser.c"
+#line 3146 "gen/gen_parser.c"
break;
- case 68: /* const_binop: const_expr ">" const_expr */
-#line 267 "src/parser.y"
+ case 69: /* const_binop: const_expr ">" const_expr */
+#line 268 "src/parser.y"
{ (yyval.node) = gen_binop(AST_GT, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3157 "gen/gen_parser.c"
+#line 3152 "gen/gen_parser.c"
break;
- case 69: /* const_binop: const_expr "<=" const_expr */
-#line 268 "src/parser.y"
+ case 70: /* const_binop: const_expr "<=" const_expr */
+#line 269 "src/parser.y"
{ (yyval.node) = gen_binop(AST_LE, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3163 "gen/gen_parser.c"
+#line 3158 "gen/gen_parser.c"
break;
- case 70: /* const_binop: const_expr ">=" const_expr */
-#line 269 "src/parser.y"
+ case 71: /* const_binop: const_expr ">=" const_expr */
+#line 270 "src/parser.y"
{ (yyval.node) = gen_binop(AST_GE, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3169 "gen/gen_parser.c"
+#line 3164 "gen/gen_parser.c"
break;
- case 71: /* const_binop: const_expr "!=" const_expr */
-#line 270 "src/parser.y"
+ case 72: /* const_binop: const_expr "!=" const_expr */
+#line 271 "src/parser.y"
{ (yyval.node) = gen_binop(AST_NE, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3175 "gen/gen_parser.c"
+#line 3170 "gen/gen_parser.c"
break;
- case 72: /* const_binop: const_expr "==" const_expr */
-#line 271 "src/parser.y"
+ case 73: /* const_binop: const_expr "==" const_expr */
+#line 272 "src/parser.y"
{ (yyval.node) = gen_binop(AST_EQ, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3181 "gen/gen_parser.c"
+#line 3176 "gen/gen_parser.c"
break;
- case 73: /* const_unop: "-" const_expr */
-#line 274 "src/parser.y"
+ case 74: /* const_unop: "-" const_expr */
+#line 275 "src/parser.y"
{ (yyval.node) = gen_unop(AST_NEG, (yyvsp[0].node)); }
-#line 3187 "gen/gen_parser.c"
+#line 3182 "gen/gen_parser.c"
break;
- case 74: /* const_unop: "!" const_expr */
-#line 275 "src/parser.y"
+ case 75: /* const_unop: "!" const_expr */
+#line 276 "src/parser.y"
{ (yyval.node) = gen_unop(AST_LNOT, (yyvsp[0].node)); }
-#line 3193 "gen/gen_parser.c"
+#line 3188 "gen/gen_parser.c"
break;
- case 75: /* const_unop: "~" const_expr */
-#line 276 "src/parser.y"
+ case 76: /* const_unop: "~" const_expr */
+#line 277 "src/parser.y"
{ (yyval.node) = gen_unop(AST_NOT, (yyvsp[0].node)); }
-#line 3199 "gen/gen_parser.c"
+#line 3194 "gen/gen_parser.c"
break;
- case 76: /* const_expr: "(" const_expr ")" */
-#line 279 "src/parser.y"
+ case 77: /* const_expr: "(" const_expr ")" */
+#line 280 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3205 "gen/gen_parser.c"
+#line 3200 "gen/gen_parser.c"
break;
- case 77: /* const_expr: id */
-#line 280 "src/parser.y"
+ case 78: /* const_expr: id */
+#line 281 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3211 "gen/gen_parser.c"
+#line 3206 "gen/gen_parser.c"
break;
- case 78: /* const_expr: INT */
-#line 281 "src/parser.y"
+ case 79: /* const_expr: INT */
+#line 282 "src/parser.y"
{ (yyval.node) = gen_int((yyvsp[0].integer)); }
-#line 3217 "gen/gen_parser.c"
+#line 3212 "gen/gen_parser.c"
break;
- case 79: /* const_expr: FLOAT */
-#line 282 "src/parser.y"
+ case 80: /* const_expr: FLOAT */
+#line 283 "src/parser.y"
{ (yyval.node) = gen_float((yyvsp[0].dbl)); }
-#line 3223 "gen/gen_parser.c"
+#line 3218 "gen/gen_parser.c"
break;
- case 80: /* const_expr: const_binop */
-#line 283 "src/parser.y"
+ case 81: /* const_expr: const_binop */
+#line 284 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3229 "gen/gen_parser.c"
+#line 3224 "gen/gen_parser.c"
break;
- case 81: /* const_expr: const_unop */
-#line 284 "src/parser.y"
+ case 82: /* const_expr: const_unop */
+#line 285 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3235 "gen/gen_parser.c"
+#line 3230 "gen/gen_parser.c"
break;
- case 82: /* expr: id */
-#line 288 "src/parser.y"
+ case 83: /* expr: id */
+#line 289 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3241 "gen/gen_parser.c"
+#line 3236 "gen/gen_parser.c"
break;
- case 83: /* expr: expr "." id */
-#line 289 "src/parser.y"
+ case 84: /* expr: expr "." id */
+#line 290 "src/parser.y"
{ (yyval.node) = gen_dot((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3247 "gen/gen_parser.c"
+#line 3242 "gen/gen_parser.c"
break;
- case 84: /* expr: "..." id */
-#line 290 "src/parser.y"
+ case 85: /* expr: "..." id */
+#line 291 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3253 "gen/gen_parser.c"
+#line 3248 "gen/gen_parser.c"
break;
- case 85: /* expr: INT */
-#line 291 "src/parser.y"
+ case 86: /* expr: INT */
+#line 292 "src/parser.y"
{ (yyval.node) = gen_int((yyvsp[0].integer)); (yyval.node)->loc = to_src_loc(&yylloc); }
-#line 3259 "gen/gen_parser.c"
+#line 3254 "gen/gen_parser.c"
break;
- case 86: /* expr: FLOAT */
-#line 292 "src/parser.y"
+ case 87: /* expr: FLOAT */
+#line 293 "src/parser.y"
{ (yyval.node) = gen_float((yyvsp[0].dbl)); (yyval.node)->loc = to_src_loc(&yylloc); }
-#line 3265 "gen/gen_parser.c"
+#line 3260 "gen/gen_parser.c"
break;
- case 87: /* expr: STRING */
-#line 293 "src/parser.y"
+ case 88: /* expr: STRING */
+#line 294 "src/parser.y"
{
(yyval.node) = gen_string(clone_string((yyvsp[0].str)));
(yyval.node)->loc = to_src_loc(&yylloc);
}
-#line 3274 "gen/gen_parser.c"
+#line 3269 "gen/gen_parser.c"
break;
- case 88: /* expr: "(" expr ")" */
-#line 297 "src/parser.y"
+ case 89: /* expr: "(" expr ")" */
+#line 298 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3280 "gen/gen_parser.c"
+#line 3275 "gen/gen_parser.c"
break;
- case 89: /* expr: assign */
-#line 298 "src/parser.y"
+ case 90: /* expr: assign */
+#line 299 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3286 "gen/gen_parser.c"
+#line 3281 "gen/gen_parser.c"
break;
- case 90: /* expr: expr "(" args ")" */
-#line 299 "src/parser.y"
+ case 91: /* expr: expr "(" args ")" */
+#line 300 "src/parser.y"
{ (yyval.node) = gen_call((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3292 "gen/gen_parser.c"
+#line 3287 "gen/gen_parser.c"
break;
- case 91: /* expr: expr "(" ")" */
-#line 300 "src/parser.y"
+ case 92: /* expr: expr "(" ")" */
+#line 301 "src/parser.y"
{ (yyval.node) = gen_call((yyvsp[-2].node), NULL); }
-#line 3298 "gen/gen_parser.c"
+#line 3293 "gen/gen_parser.c"
break;
- case 92: /* expr: expr "[" expr "]" */
-#line 301 "src/parser.y"
+ case 93: /* expr: expr "[" expr "]" */
+#line 302 "src/parser.y"
{ (yyval.node) = gen_call((yyvsp[-3].node), (yyvsp[-1].node)); /** @todo add arr access */}
-#line 3304 "gen/gen_parser.c"
+#line 3299 "gen/gen_parser.c"
break;
- case 93: /* expr: apply "(" args ")" */
-#line 302 "src/parser.y"
+ case 94: /* expr: apply "(" args ")" */
+#line 303 "src/parser.y"
{ (yyval.node) = gen_call((yyvsp[-3].node), (yyvsp[-1].node)); /* macro call */}
-#line 3310 "gen/gen_parser.c"
+#line 3305 "gen/gen_parser.c"
break;
- case 94: /* expr: apply "(" ")" */
-#line 303 "src/parser.y"
+ case 95: /* expr: apply "(" ")" */
+#line 304 "src/parser.y"
{ (yyval.node) = gen_call((yyvsp[-2].node), NULL); /* macro call */}
-#line 3316 "gen/gen_parser.c"
+#line 3311 "gen/gen_parser.c"
break;
- case 95: /* expr: binop */
-#line 304 "src/parser.y"
+ case 96: /* expr: binop */
+#line 305 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3322 "gen/gen_parser.c"
+#line 3317 "gen/gen_parser.c"
break;
- case 96: /* expr: unop */
-#line 305 "src/parser.y"
+ case 97: /* expr: unop */
+#line 306 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3328 "gen/gen_parser.c"
+#line 3323 "gen/gen_parser.c"
break;
- case 97: /* expr: "(" var_init ")" */
-#line 306 "src/parser.y"
+ case 98: /* expr: "(" var_init ")" */
+#line 307 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3334 "gen/gen_parser.c"
+#line 3329 "gen/gen_parser.c"
break;
- case 98: /* expr: "sizeof" expr */
-#line 307 "src/parser.y"
+ case 99: /* expr: "sizeof" expr */
+#line 308 "src/parser.y"
{ (yyval.node) = gen_sizeof((yyvsp[0].node)); }
-#line 3340 "gen/gen_parser.c"
+#line 3335 "gen/gen_parser.c"
break;
- case 99: /* expr: expr "as" type */
-#line 308 "src/parser.y"
+ case 100: /* expr: expr "as" type */
+#line 309 "src/parser.y"
{ (yyval.node) = gen_cast((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3346 "gen/gen_parser.c"
+#line 3341 "gen/gen_parser.c"
break;
- case 100: /* expr: id "::" type */
-#line 309 "src/parser.y"
+ case 101: /* expr: id "::" type */
+#line 310 "src/parser.y"
{ (yyval.node) = gen_fetch((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3352 "gen/gen_parser.c"
+#line 3347 "gen/gen_parser.c"
break;
- case 101: /* expr: "as" type */
-#line 310 "src/parser.y"
+ case 102: /* expr: "as" type */
+#line 311 "src/parser.y"
{ (yyval.node) = gen_as((yyvsp[0].node)); }
-#line 3358 "gen/gen_parser.c"
+#line 3353 "gen/gen_parser.c"
break;
- case 102: /* expr: embed */
-#line 311 "src/parser.y"
+ case 103: /* expr: embed */
+#line 312 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3364 "gen/gen_parser.c"
+#line 3359 "gen/gen_parser.c"
break;
- case 103: /* expr: lambda */
-#line 312 "src/parser.y"
+ case 104: /* expr: lambda */
+#line 313 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3370 "gen/gen_parser.c"
+#line 3365 "gen/gen_parser.c"
break;
- case 104: /* expr: if */
-#line 313 "src/parser.y"
+ case 105: /* expr: if */
+#line 314 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3376 "gen/gen_parser.c"
+#line 3371 "gen/gen_parser.c"
break;
- case 105: /* expr: switch */
-#line 314 "src/parser.y"
+ case 106: /* expr: switch */
+#line 315 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3382 "gen/gen_parser.c"
+#line 3377 "gen/gen_parser.c"
break;
- case 106: /* expr: construct */
-#line 315 "src/parser.y"
+ case 107: /* expr: construct */
+#line 316 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3388 "gen/gen_parser.c"
+#line 3383 "gen/gen_parser.c"
break;
- case 107: /* expr: "(" body ")" */
-#line 316 "src/parser.y"
+ case 108: /* expr: "(" body ")" */
+#line 317 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3394 "gen/gen_parser.c"
+#line 3389 "gen/gen_parser.c"
break;
- case 108: /* while: "while" expr body */
-#line 319 "src/parser.y"
+ case 109: /* while: "while" expr body */
+#line 320 "src/parser.y"
{ (yyval.node) = gen_while((yyvsp[-1].node), (yyvsp[0].node)); }
-#line 3400 "gen/gen_parser.c"
+#line 3395 "gen/gen_parser.c"
break;
- case 109: /* do_while: "do" body "while" expr ";" */
-#line 322 "src/parser.y"
+ case 110: /* do_while: "do" body "while" expr ";" */
+#line 323 "src/parser.y"
{
(yyval.node) = gen_while((yyvsp[-3].node), (yyvsp[-1].node));
ast_set_flags((yyval.node), AST_FLAG_DELAYED);
}
-#line 3409 "gen/gen_parser.c"
+#line 3404 "gen/gen_parser.c"
break;
- case 110: /* goto: "goto" id */
-#line 328 "src/parser.y"
+ case 111: /* goto: "goto" id */
+#line 329 "src/parser.y"
{ (yyval.node) = gen_goto(gen_label((yyvsp[0].node))); }
-#line 3415 "gen/gen_parser.c"
+#line 3410 "gen/gen_parser.c"
break;
- case 111: /* statelet: expr */
-#line 331 "src/parser.y"
- { (yyval.node) = (yyvsp[0].node); }
-#line 3421 "gen/gen_parser.c"
- break;
-
- case 112: /* statelet: "return" expr */
+ case 112: /* statelet: expr */
#line 332 "src/parser.y"
- { (yyval.node) = gen_return((yyvsp[0].node)); }
-#line 3427 "gen/gen_parser.c"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 3416 "gen/gen_parser.c"
break;
- case 113: /* statelet: "return" */
+ case 113: /* statelet: "return" expr */
#line 333 "src/parser.y"
- { (yyval.node) = gen_return(NULL); }
-#line 3433 "gen/gen_parser.c"
+ { (yyval.node) = gen_return((yyvsp[0].node)); }
+#line 3422 "gen/gen_parser.c"
break;
- case 114: /* statelet: "break" */
+ case 114: /* statelet: "return" */
#line 334 "src/parser.y"
- { (yyval.node) = gen_ctrl(AST_CTRL_BREAK, to_src_loc(&yylloc)); }
-#line 3439 "gen/gen_parser.c"
+ { (yyval.node) = gen_return(NULL); }
+#line 3428 "gen/gen_parser.c"
break;
- case 115: /* statelet: "continue" */
+ case 115: /* statelet: "break" */
#line 335 "src/parser.y"
- { (yyval.node) = gen_ctrl(AST_CTRL_CONTINUE, to_src_loc(&yylloc)); }
-#line 3445 "gen/gen_parser.c"
+ { (yyval.node) = gen_ctrl(AST_CTRL_BREAK, to_src_loc(&yylloc)); }
+#line 3434 "gen/gen_parser.c"
break;
- case 116: /* statelet: import */
+ case 116: /* statelet: "continue" */
#line 336 "src/parser.y"
- { (yyval.node) = (yyvsp[0].node); }
-#line 3451 "gen/gen_parser.c"
+ { (yyval.node) = gen_ctrl(AST_CTRL_CONTINUE, to_src_loc(&yylloc)); }
+#line 3440 "gen/gen_parser.c"
break;
- case 117: /* statelet: var */
+ case 117: /* statelet: import */
#line 337 "src/parser.y"
- { (yyval.node) = (yyvsp[0].node); }
-#line 3457 "gen/gen_parser.c"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 3446 "gen/gen_parser.c"
break;
- case 118: /* statelet: goto */
+ case 118: /* statelet: var */
#line 338 "src/parser.y"
- { (yyval.node) = (yyvsp[0].node); }
-#line 3463 "gen/gen_parser.c"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 3452 "gen/gen_parser.c"
break;
- case 119: /* statelet: id ":" */
+ case 119: /* statelet: goto */
#line 339 "src/parser.y"
- { (yyval.node) = gen_label((yyvsp[-1].node)); }
-#line 3469 "gen/gen_parser.c"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 3458 "gen/gen_parser.c"
break;
- case 120: /* statelet: for */
+ case 120: /* statelet: id ":" */
#line 340 "src/parser.y"
- { (yyval.node) = (yyvsp[0].node); }
-#line 3475 "gen/gen_parser.c"
+ { (yyval.node) = gen_label((yyvsp[-1].node)); }
+#line 3464 "gen/gen_parser.c"
break;
- case 121: /* statelet: const */
+ case 121: /* statelet: for */
#line 341 "src/parser.y"
- { (yyval.node) = (yyvsp[0].node); }
-#line 3481 "gen/gen_parser.c"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 3470 "gen/gen_parser.c"
break;
- case 122: /* statelet: while */
+ case 122: /* statelet: const */
#line 342 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3487 "gen/gen_parser.c"
+#line 3476 "gen/gen_parser.c"
break;
- case 123: /* statelet: do_while */
+ case 123: /* statelet: while */
#line 343 "src/parser.y"
- { (yyval.node) = (yyvsp[0].node); }
-#line 3493 "gen/gen_parser.c"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 3482 "gen/gen_parser.c"
break;
- case 124: /* statelet: macro */
+ case 124: /* statelet: do_while */
#line 344 "src/parser.y"
- { (yyval.node) = (yyvsp[0].node); }
-#line 3499 "gen/gen_parser.c"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 3488 "gen/gen_parser.c"
break;
- case 125: /* statelet: struct */
+ case 125: /* statelet: macro */
#line 345 "src/parser.y"
- { (yyval.node) = (yyvsp[0].node); }
-#line 3505 "gen/gen_parser.c"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 3494 "gen/gen_parser.c"
break;
- case 126: /* statelet: alias */
+ case 126: /* statelet: struct */
#line 346 "src/parser.y"
- { (yyval.node) = (yyvsp[0].node); }
-#line 3511 "gen/gen_parser.c"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 3500 "gen/gen_parser.c"
break;
- case 127: /* statelet: template */
+ case 127: /* statelet: alias */
#line 347 "src/parser.y"
- { (yyval.node) = (yyvsp[0].node); }
-#line 3517 "gen/gen_parser.c"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 3506 "gen/gen_parser.c"
break;
- case 128: /* statelet: defer */
+ case 128: /* statelet: template */
#line 348 "src/parser.y"
- { (yyval.node) = (yyvsp[0].node); }
-#line 3523 "gen/gen_parser.c"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 3512 "gen/gen_parser.c"
break;
- case 129: /* statelet: enum */
+ case 129: /* statelet: defer */
#line 349 "src/parser.y"
- { (yyval.node) = (yyvsp[0].node); }
-#line 3529 "gen/gen_parser.c"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 3518 "gen/gen_parser.c"
break;
- case 130: /* statelet: body */
+ case 130: /* statelet: enum */
#line 350 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3535 "gen/gen_parser.c"
+#line 3524 "gen/gen_parser.c"
break;
- case 131: /* statelet: ";" */
+ case 131: /* statelet: body */
#line 351 "src/parser.y"
- { (yyval.node) = gen_empty(); }
-#line 3541 "gen/gen_parser.c"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 3530 "gen/gen_parser.c"
break;
- case 132: /* statelet: error */
+ case 132: /* statelet: ";" */
#line 352 "src/parser.y"
+ { (yyval.node) = gen_empty(); }
+#line 3536 "gen/gen_parser.c"
+ break;
+
+ case 133: /* statelet: error */
+#line 353 "src/parser.y"
{
/* TODO: figure out how to destroy any and all possible ast nodes we
* may have generated up until the error */
@@ -3556,68 +3551,74 @@ yyreduce:
yyclearin;
yyerrok;
}
-#line 3560 "gen/gen_parser.c"
+#line 3555 "gen/gen_parser.c"
break;
- case 133: /* statement: statelet ";" */
-#line 368 "src/parser.y"
+ case 134: /* statement: statelet ";" */
+#line 369 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3566 "gen/gen_parser.c"
+#line 3561 "gen/gen_parser.c"
break;
- case 134: /* statements: statement statements */
-#line 371 "src/parser.y"
+ case 135: /* statements: statement statements */
+#line 372 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); (yyvsp[-1].node)->next = (yyvsp[0].node); }
-#line 3572 "gen/gen_parser.c"
+#line 3567 "gen/gen_parser.c"
break;
- case 135: /* statements: statement */
-#line 372 "src/parser.y"
+ case 136: /* statements: statement */
+#line 373 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3578 "gen/gen_parser.c"
+#line 3573 "gen/gen_parser.c"
break;
- case 136: /* statements: statelet */
-#line 373 "src/parser.y"
+ case 137: /* statements: statelet */
+#line 374 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3584 "gen/gen_parser.c"
+#line 3579 "gen/gen_parser.c"
break;
- case 137: /* body: "{" statements "}" */
-#line 376 "src/parser.y"
+ case 138: /* body: "{" statements "}" */
+#line 377 "src/parser.y"
{ (yyval.node) = gen_block((yyvsp[-1].node)); }
-#line 3590 "gen/gen_parser.c"
+#line 3585 "gen/gen_parser.c"
break;
- case 138: /* body: "{" "}" */
-#line 377 "src/parser.y"
+ case 139: /* body: "{" "}" */
+#line 378 "src/parser.y"
{ (yyval.node) = gen_block(gen_empty()); }
-#line 3596 "gen/gen_parser.c"
+#line 3591 "gen/gen_parser.c"
break;
- case 139: /* references: id "," references */
-#line 380 "src/parser.y"
+ case 140: /* references: id "," references */
+#line 381 "src/parser.y"
{ (yyval.node) = (yyvsp[-2].node); (yyval.node)->next = (yyvsp[0].node); }
-#line 3602 "gen/gen_parser.c"
+#line 3597 "gen/gen_parser.c"
break;
- case 140: /* references: id */
-#line 381 "src/parser.y"
+ case 141: /* references: id */
+#line 382 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3608 "gen/gen_parser.c"
+#line 3603 "gen/gen_parser.c"
+ break;
+
+ case 142: /* references: "..." id */
+#line 383 "src/parser.y"
+ { (yyval.node) = (yyvsp[0].node); ast_set_flags((yyval.node), AST_FLAG_VARIADIC); }
+#line 3609 "gen/gen_parser.c"
break;
- case 141: /* macro: "define" id "(" references ")" body */
-#line 385 "src/parser.y"
+ case 143: /* macro: "define" id "(" references ")" body */
+#line 387 "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 3617 "gen/gen_parser.c"
+#line 3618 "gen/gen_parser.c"
break;
- case 142: /* macro: "define" id "(" references "..." id ")" body */
-#line 389 "src/parser.y"
+ case 144: /* macro: "define" id "(" references "..." id ")" body */
+#line 391 "src/parser.y"
{
/* TODO: the location data of the variadic ID is way off */
ast_append((yyvsp[-4].node), (yyvsp[-2].node));
@@ -3625,737 +3626,734 @@ yyreduce:
ast_set_flags((yyval.node), AST_FLAG_VARIADIC);
ast_set_flags((yyvsp[0].node), AST_FLAG_UNHYGIENIC);
}
-#line 3629 "gen/gen_parser.c"
+#line 3630 "gen/gen_parser.c"
break;
- case 143: /* macro: "define" id "(" ")" body */
-#line 396 "src/parser.y"
+ case 145: /* macro: "define" id "(" ")" body */
+#line 398 "src/parser.y"
{
(yyval.node) = gen_macro((yyvsp[-3].node), NULL, (yyvsp[0].node));
ast_set_flags((yyvsp[0].node), AST_FLAG_UNHYGIENIC);
}
-#line 3638 "gen/gen_parser.c"
+#line 3639 "gen/gen_parser.c"
break;
- case 144: /* exprs: expr "," exprs */
-#line 402 "src/parser.y"
+ case 146: /* exprs: expr "," exprs */
+#line 404 "src/parser.y"
{ (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->next = (yyvsp[0].node); }
-#line 3644 "gen/gen_parser.c"
+#line 3645 "gen/gen_parser.c"
break;
- case 145: /* exprs: expr */
-#line 403 "src/parser.y"
+ case 147: /* exprs: expr */
+#line 405 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3650 "gen/gen_parser.c"
+#line 3651 "gen/gen_parser.c"
break;
- case 146: /* construct_arg: expr */
-#line 406 "src/parser.y"
+ case 148: /* construct_arg: expr */
+#line 408 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3656 "gen/gen_parser.c"
+#line 3657 "gen/gen_parser.c"
break;
- case 147: /* construct_arg: "." id "=" expr */
-#line 407 "src/parser.y"
+ case 149: /* construct_arg: "." id "=" expr */
+#line 409 "src/parser.y"
{
(yyval.node) = gen_var((yyvsp[-2].node), NULL, (yyvsp[0].node));
ast_set_flags((yyval.node), AST_FLAG_MEMBER);
}
-#line 3665 "gen/gen_parser.c"
+#line 3666 "gen/gen_parser.c"
break;
- case 148: /* construct_args: construct_arg "," construct_args */
-#line 413 "src/parser.y"
+ case 150: /* construct_args: construct_arg "," construct_args */
+#line 415 "src/parser.y"
{ (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->next = (yyvsp[0].node); }
-#line 3671 "gen/gen_parser.c"
+#line 3672 "gen/gen_parser.c"
break;
- case 149: /* construct_args: construct_arg */
-#line 414 "src/parser.y"
+ case 151: /* construct_args: construct_arg */
+#line 416 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3677 "gen/gen_parser.c"
+#line 3678 "gen/gen_parser.c"
break;
- case 150: /* construct: "!" "{" construct_args "}" */
-#line 417 "src/parser.y"
+ case 152: /* construct: "!" "{" construct_args "}" */
+#line 419 "src/parser.y"
{ (yyval.node) = gen_init((yyvsp[-1].node)); }
-#line 3683 "gen/gen_parser.c"
+#line 3684 "gen/gen_parser.c"
break;
- case 151: /* if: "if" expr body */
-#line 420 "src/parser.y"
+ case 153: /* if: "if" expr body */
+#line 422 "src/parser.y"
{ (yyval.node) = gen_if((yyvsp[-1].node), (yyvsp[0].node), NULL); }
-#line 3689 "gen/gen_parser.c"
+#line 3690 "gen/gen_parser.c"
break;
- case 152: /* if: "if" expr body "else" body */
-#line 421 "src/parser.y"
+ case 154: /* if: "if" expr body "else" body */
+#line 423 "src/parser.y"
{ (yyval.node) = gen_if((yyvsp[-3].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3695 "gen/gen_parser.c"
+#line 3696 "gen/gen_parser.c"
break;
- case 153: /* if: "if" expr body "else" if */
-#line 422 "src/parser.y"
+ case 155: /* if: "if" expr body "else" if */
+#line 424 "src/parser.y"
{ (yyval.node) = gen_if((yyvsp[-3].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3701 "gen/gen_parser.c"
+#line 3702 "gen/gen_parser.c"
break;
- case 154: /* for: "for" arg ";" expr ";" expr body */
-#line 426 "src/parser.y"
+ case 156: /* for: "for" arg ";" expr ";" expr body */
+#line 428 "src/parser.y"
{ (yyval.node) = gen_for((yyvsp[-5].node), (yyvsp[-3].node), (yyvsp[-1].node), (yyvsp[0].node)); }
-#line 3707 "gen/gen_parser.c"
+#line 3708 "gen/gen_parser.c"
break;
- case 155: /* case: "case" const_expr ":" statements */
-#line 429 "src/parser.y"
+ case 157: /* case: "case" const_expr ":" statements */
+#line 431 "src/parser.y"
{
(yyval.node) = gen_case((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3714 "gen/gen_parser.c"
+#line 3715 "gen/gen_parser.c"
break;
- case 156: /* case: "default" ":" statements */
-#line 431 "src/parser.y"
+ case 158: /* case: "default" ":" statements */
+#line 433 "src/parser.y"
{
(yyval.node) = gen_case(NULL, (yyvsp[0].node));
}
-#line 3722 "gen/gen_parser.c"
+#line 3723 "gen/gen_parser.c"
break;
- case 157: /* cases: case cases */
-#line 436 "src/parser.y"
+ case 159: /* cases: case cases */
+#line 438 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); (yyvsp[-1].node)->next = (yyvsp[0].node); }
-#line 3728 "gen/gen_parser.c"
+#line 3729 "gen/gen_parser.c"
break;
- case 158: /* cases: case */
-#line 437 "src/parser.y"
+ case 160: /* cases: case */
+#line 439 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3734 "gen/gen_parser.c"
+#line 3735 "gen/gen_parser.c"
break;
- case 159: /* switch: "switch" expr "{" cases "}" */
-#line 440 "src/parser.y"
+ case 161: /* switch: "switch" expr "{" cases "}" */
+#line 442 "src/parser.y"
{ (yyval.node) = gen_switch((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3740 "gen/gen_parser.c"
+#line 3741 "gen/gen_parser.c"
break;
- case 160: /* const_for: "for" id ":" exprs body */
-#line 444 "src/parser.y"
+ case 162: /* const_for: "for" id ":" exprs body */
+#line 446 "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 3750 "gen/gen_parser.c"
+#line 3751 "gen/gen_parser.c"
break;
- case 161: /* const_if: "if" const_expr body */
-#line 451 "src/parser.y"
+ case 163: /* const_if: "if" const_expr body */
+#line 453 "src/parser.y"
{
(yyval.node) = gen_if((yyvsp[-1].node), (yyvsp[0].node), NULL);
ast_set_flags((yyvsp[0].node), AST_FLAG_UNHYGIENIC);
}
-#line 3759 "gen/gen_parser.c"
+#line 3760 "gen/gen_parser.c"
break;
- case 162: /* const_if: "if" const_expr body "else" body */
-#line 455 "src/parser.y"
+ case 164: /* const_if: "if" const_expr body "else" body */
+#line 457 "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 3769 "gen/gen_parser.c"
+#line 3770 "gen/gen_parser.c"
break;
- case 163: /* const_if: "if" const_expr body "else" const_if */
-#line 460 "src/parser.y"
+ case 165: /* const_if: "if" const_expr body "else" const_if */
+#line 462 "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 3778 "gen/gen_parser.c"
+#line 3779 "gen/gen_parser.c"
break;
- case 164: /* const: "const" const_if */
-#line 468 "src/parser.y"
+ case 166: /* const: "const" const_if */
+#line 470 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); ast_set_flags((yyval.node), AST_FLAG_CONST); }
-#line 3784 "gen/gen_parser.c"
+#line 3785 "gen/gen_parser.c"
break;
- case 165: /* const: "const" const_for */
-#line 469 "src/parser.y"
+ case 167: /* const: "const" const_for */
+#line 471 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); ast_set_flags((yyval.node), AST_FLAG_CONST); }
-#line 3790 "gen/gen_parser.c"
+#line 3791 "gen/gen_parser.c"
break;
- case 166: /* simple_sign: "(" decls "=>" type ")" */
-#line 472 "src/parser.y"
+ case 168: /* func_sign: "(" decls "=>" type ")" */
+#line 474 "src/parser.y"
{
(yyval.node) = gen_type(AST_TYPE_SIGN, NULL, (yyvsp[-3].node), (yyvsp[-1].node));
}
-#line 3798 "gen/gen_parser.c"
+#line 3799 "gen/gen_parser.c"
break;
- case 167: /* simple_sign: "(" decls ")" */
-#line 475 "src/parser.y"
+ case 169: /* func_sign: "(" decls ")" */
+#line 477 "src/parser.y"
{ (yyval.node) = gen_type(AST_TYPE_SIGN, NULL, (yyvsp[-1].node), NULL); }
-#line 3804 "gen/gen_parser.c"
+#line 3805 "gen/gen_parser.c"
break;
- case 168: /* simple_sign: "(" decls "=>" ")" */
-#line 476 "src/parser.y"
+ case 170: /* func_sign: "(" decls "=>" ")" */
+#line 478 "src/parser.y"
{ (yyval.node) = gen_type(AST_TYPE_SIGN, NULL, (yyvsp[-2].node), NULL); }
-#line 3810 "gen/gen_parser.c"
+#line 3811 "gen/gen_parser.c"
break;
- case 169: /* simple_sign: "(" "=>" type ")" */
-#line 477 "src/parser.y"
+ case 171: /* func_sign: "(" "=>" type ")" */
+#line 479 "src/parser.y"
{ (yyval.node) = gen_type(AST_TYPE_SIGN, NULL, NULL, (yyvsp[-1].node)); }
-#line 3816 "gen/gen_parser.c"
+#line 3817 "gen/gen_parser.c"
break;
- case 170: /* simple_sign: "(" ")" */
-#line 478 "src/parser.y"
+ case 172: /* func_sign: "(" ")" */
+#line 480 "src/parser.y"
{ (yyval.node) = gen_type(AST_TYPE_SIGN, NULL, NULL, NULL); }
-#line 3822 "gen/gen_parser.c"
- break;
-
- case 171: /* func_sign: simple_sign */
-#line 481 "src/parser.y"
- { (yyval.node) = (yyvsp[0].node); }
-#line 3828 "gen/gen_parser.c"
- break;
-
- case 172: /* func_sign: "(" decls "..." id "=>" type ")" */
-#line 482 "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 3838 "gen/gen_parser.c"
+#line 3823 "gen/gen_parser.c"
break;
case 173: /* type: id */
-#line 489 "src/parser.y"
+#line 483 "src/parser.y"
{ (yyval.node) = gen_type(AST_TYPE_ID, (yyvsp[0].node), NULL, NULL); }
-#line 3844 "gen/gen_parser.c"
+#line 3829 "gen/gen_parser.c"
break;
- case 174: /* type: "@" simple_sign */
-#line 490 "src/parser.y"
- {
+ case 174: /* type: "@" func_sign */
+#line 484 "src/parser.y"
+ {
(yyval.node) = gen_type(AST_TYPE_POINTER, NULL, NULL, NULL);
(yyval.node)->_type.next = (yyvsp[0].node);
}
-#line 3853 "gen/gen_parser.c"
+#line 3838 "gen/gen_parser.c"
break;
case 175: /* type: apply "[" types "]" */
-#line 494 "src/parser.y"
+#line 488 "src/parser.y"
{
(yyval.node) = gen_type(AST_TYPE_GENERIC, (yyvsp[-3].node), (yyvsp[-1].node), NULL);
}
-#line 3861 "gen/gen_parser.c"
+#line 3846 "gen/gen_parser.c"
break;
case 176: /* type: "'" type */
-#line 497 "src/parser.y"
+#line 491 "src/parser.y"
{
(yyval.node) = gen_type(AST_TYPE_POINTER, NULL, NULL, NULL);
(yyval.node)->_type.next = (yyvsp[0].node);
}
-#line 3870 "gen/gen_parser.c"
+#line 3855 "gen/gen_parser.c"
break;
case 177: /* type: "'" "[" const_expr "]" type */
-#line 501 "src/parser.y"
+#line 495 "src/parser.y"
{
(yyval.node) = gen_type(AST_TYPE_ARR, NULL, (yyvsp[-2].node), NULL);
(yyval.node)->_type.next = (yyvsp[0].node);
}
-#line 3879 "gen/gen_parser.c"
+#line 3864 "gen/gen_parser.c"
break;
case 178: /* type: "typeof" expr */
-#line 505 "src/parser.y"
+#line 499 "src/parser.y"
{
(yyval.node) = gen_type(AST_TYPE_TYPEOF, NULL, (yyvsp[0].node), NULL);
}
-#line 3887 "gen/gen_parser.c"
+#line 3872 "gen/gen_parser.c"
break;
case 179: /* type: id "::" type */
-#line 508 "src/parser.y"
+#line 502 "src/parser.y"
{
(yyval.node) = gen_type(AST_TYPE_MEMBER, (yyvsp[-2].node), (yyvsp[0].node), NULL);
}
-#line 3895 "gen/gen_parser.c"
+#line 3880 "gen/gen_parser.c"
break;
case 180: /* var_decl: id "mut" type */
-#line 513 "src/parser.y"
+#line 507 "src/parser.y"
{
(yyval.node) = gen_var((yyvsp[-2].node), (yyvsp[0].node), NULL);
ast_set_flags((yyval.node), AST_FLAG_MUTABLE);
}
-#line 3904 "gen/gen_parser.c"
+#line 3889 "gen/gen_parser.c"
break;
case 181: /* var_decl: id "const" type */
-#line 517 "src/parser.y"
+#line 511 "src/parser.y"
{ (yyval.node) = gen_var((yyvsp[-2].node), (yyvsp[0].node), NULL); }
-#line 3910 "gen/gen_parser.c"
+#line 3895 "gen/gen_parser.c"
break;
case 182: /* var_decl: id type */
-#line 518 "src/parser.y"
+#line 512 "src/parser.y"
{ (yyval.node) = gen_var((yyvsp[-1].node), (yyvsp[0].node), NULL); }
-#line 3916 "gen/gen_parser.c"
+#line 3901 "gen/gen_parser.c"
break;
case 183: /* var_init: var_decl "=" expr */
-#line 521 "src/parser.y"
+#line 515 "src/parser.y"
{ (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->_var.init = (yyvsp[0].node); }
-#line 3922 "gen/gen_parser.c"
+#line 3907 "gen/gen_parser.c"
break;
case 184: /* var_init: id "mut" "=" expr */
-#line 522 "src/parser.y"
+#line 516 "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 3931 "gen/gen_parser.c"
+#line 3916 "gen/gen_parser.c"
break;
case 185: /* var_init: id "const" "=" expr */
-#line 526 "src/parser.y"
+#line 520 "src/parser.y"
{
(yyval.node) = gen_var((yyvsp[-3].node), NULL, (yyvsp[0].node));
ast_set_flags((yyval.node), AST_FLAG_UNTYPED);
}
-#line 3940 "gen/gen_parser.c"
+#line 3925 "gen/gen_parser.c"
break;
case 186: /* proc: id func_sign body */
-#line 532 "src/parser.y"
+#line 526 "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 3949 "gen/gen_parser.c"
+#line 3934 "gen/gen_parser.c"
break;
- case 187: /* proc: "extern" id simple_sign */
-#line 536 "src/parser.y"
- {
+ case 187: /* proc: "extern" id func_sign */
+#line 530 "src/parser.y"
+ {
+ /* todo check that we don't have a variadic function */
(yyval.node) = gen_proc((yyvsp[-1].node), (yyvsp[0].node), NULL);
ast_set_flags((yyval.node), AST_FLAG_EXTERN);
}
-#line 3958 "gen/gen_parser.c"
+#line 3944 "gen/gen_parser.c"
break;
- case 188: /* lambda: "[" references "]" simple_sign body */
-#line 542 "src/parser.y"
- { (yyval.node) = gen_lambda((yyvsp[-3].node), (yyvsp[-1].node), (yyvsp[0].node)); }
-#line 3964 "gen/gen_parser.c"
+ case 188: /* captures: id "," captures */
+#line 537 "src/parser.y"
+ { (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->next = (yyvsp[0].node); }
+#line 3950 "gen/gen_parser.c"
+ break;
+
+ case 189: /* captures: id */
+#line 538 "src/parser.y"
+ { (yyval.node) = (yyvsp[0].node); }
+#line 3956 "gen/gen_parser.c"
break;
- case 189: /* lambda: "[" references "]" body */
-#line 543 "src/parser.y"
- { (yyval.node) = gen_lambda((yyvsp[-2].node), NULL, (yyvsp[0].node)); }
-#line 3970 "gen/gen_parser.c"
+ case 190: /* lambda: "[" captures "]" func_sign body */
+#line 541 "src/parser.y"
+ { (yyval.node) = gen_lambda((yyvsp[-3].node), (yyvsp[-1].node), (yyvsp[0].node)); }
+#line 3962 "gen/gen_parser.c"
break;
- case 190: /* struct_elem: var_decl */
-#line 546 "src/parser.y"
+ case 191: /* lambda: "[" captures "]" body */
+#line 542 "src/parser.y"
+ { (yyval.node) = gen_lambda((yyvsp[-2].node), NULL, (yyvsp[0].node)); }
+#line 3968 "gen/gen_parser.c"
+ break;
+
+ case 192: /* struct_elem: var_decl */
+#line 545 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 3976 "gen/gen_parser.c"
+#line 3974 "gen/gen_parser.c"
break;
- case 191: /* members: struct_elem ";" members */
-#line 549 "src/parser.y"
+ case 193: /* members: struct_elem ";" members */
+#line 548 "src/parser.y"
{ (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->next = (yyvsp[0].node); }
-#line 3982 "gen/gen_parser.c"
+#line 3980 "gen/gen_parser.c"
break;
- case 192: /* members: struct_elem ";" */
-#line 550 "src/parser.y"
+ case 194: /* members: struct_elem ";" */
+#line 549 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 3988 "gen/gen_parser.c"
+#line 3986 "gen/gen_parser.c"
break;
- case 193: /* union: "union" id "{" members "}" */
-#line 553 "src/parser.y"
+ case 195: /* union: "union" id "{" members "}" */
+#line 552 "src/parser.y"
{
(yyval.node) = gen_union((yyvsp[-3].node), NULL, (yyvsp[-1].node));
}
-#line 3996 "gen/gen_parser.c"
+#line 3994 "gen/gen_parser.c"
break;
- case 194: /* union: "union" id "(" generics ")" "{" members "}" */
-#line 556 "src/parser.y"
+ case 196: /* union: "union" id "(" generics ")" "{" members "}" */
+#line 555 "src/parser.y"
{
(yyval.node) = gen_union((yyvsp[-6].node), (yyvsp[-4].node), (yyvsp[-1].node));
}
-#line 4004 "gen/gen_parser.c"
+#line 4002 "gen/gen_parser.c"
break;
- case 195: /* generic: id type */
-#line 561 "src/parser.y"
+ case 197: /* generic: id type */
+#line 560 "src/parser.y"
{ (yyval.node) = gen_alias((yyvsp[-1].node), (yyvsp[0].node)); }
-#line 4010 "gen/gen_parser.c"
+#line 4008 "gen/gen_parser.c"
break;
- case 196: /* generics: generic "," generics */
-#line 564 "src/parser.y"
+ case 198: /* generics: generic "," generics */
+#line 563 "src/parser.y"
{ (yyval.node) = (yyvsp[-2].node); (yyval.node)->next = (yyvsp[0].node); }
-#line 4016 "gen/gen_parser.c"
+#line 4014 "gen/gen_parser.c"
break;
- case 197: /* generics: generic */
-#line 565 "src/parser.y"
+ case 199: /* generics: generic */
+#line 564 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 4022 "gen/gen_parser.c"
+#line 4020 "gen/gen_parser.c"
break;
- case 198: /* struct: "struct" id "{" members "}" */
-#line 568 "src/parser.y"
+ case 200: /* struct: "struct" id "{" members "}" */
+#line 567 "src/parser.y"
{
(yyval.node) = gen_struct((yyvsp[-3].node), NULL, (yyvsp[-1].node));
}
-#line 4030 "gen/gen_parser.c"
+#line 4028 "gen/gen_parser.c"
break;
- case 199: /* struct: "struct" id "(" generics ")" "{" members "}" */
-#line 571 "src/parser.y"
+ case 201: /* struct: "struct" id "(" generics ")" "{" members "}" */
+#line 570 "src/parser.y"
{
(yyval.node) = gen_struct((yyvsp[-6].node), (yyvsp[-4].node), (yyvsp[-1].node));
}
-#line 4038 "gen/gen_parser.c"
+#line 4036 "gen/gen_parser.c"
break;
- case 200: /* template_elem: id ";" */
-#line 578 "src/parser.y"
+ case 202: /* template_elem: id ";" */
+#line 577 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 4044 "gen/gen_parser.c"
+#line 4042 "gen/gen_parser.c"
break;
- case 201: /* template_elem: id simple_sign ";" */
-#line 579 "src/parser.y"
- { (yyval.node) = gen_proc((yyvsp[-2].node), (yyvsp[-1].node), NULL); }
-#line 4050 "gen/gen_parser.c"
+ case 203: /* template_elem: id func_sign ";" */
+#line 578 "src/parser.y"
+ { (yyval.node) = gen_proc((yyvsp[-2].node), (yyvsp[-1].node), NULL); }
+#line 4048 "gen/gen_parser.c"
break;
- case 202: /* template_elem: var_decl ";" */
-#line 580 "src/parser.y"
+ case 204: /* template_elem: var_decl ";" */
+#line 579 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 4056 "gen/gen_parser.c"
+#line 4054 "gen/gen_parser.c"
break;
- case 203: /* template_elem: union */
-#line 581 "src/parser.y"
+ case 205: /* template_elem: union */
+#line 580 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 4062 "gen/gen_parser.c"
+#line 4060 "gen/gen_parser.c"
break;
- case 204: /* template_elems: template_elem template_elems */
-#line 584 "src/parser.y"
+ case 206: /* template_elems: template_elem template_elems */
+#line 583 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); (yyvsp[-1].node)->next = (yyvsp[0].node); }
-#line 4068 "gen/gen_parser.c"
+#line 4066 "gen/gen_parser.c"
break;
- case 205: /* template_elems: template_elem */
-#line 585 "src/parser.y"
+ case 207: /* template_elems: template_elem */
+#line 584 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 4074 "gen/gen_parser.c"
+#line 4072 "gen/gen_parser.c"
break;
- case 206: /* types: type "," types */
-#line 588 "src/parser.y"
+ case 208: /* types: type "," types */
+#line 587 "src/parser.y"
{ (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->next = (yyvsp[0].node); }
-#line 4080 "gen/gen_parser.c"
+#line 4078 "gen/gen_parser.c"
break;
- case 207: /* types: type */
-#line 589 "src/parser.y"
+ case 209: /* types: type */
+#line 588 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 4086 "gen/gen_parser.c"
+#line 4084 "gen/gen_parser.c"
break;
- case 208: /* alias: "typedef" id type */
-#line 592 "src/parser.y"
+ case 210: /* alias: "typedef" id type */
+#line 591 "src/parser.y"
{ (yyval.node) = gen_alias((yyvsp[-1].node), (yyvsp[0].node)); }
-#line 4092 "gen/gen_parser.c"
+#line 4090 "gen/gen_parser.c"
break;
- case 209: /* template: "typedef" id "{" template_elems "}" */
-#line 597 "src/parser.y"
+ case 211: /* template: "typedef" id "{" template_elems "}" */
+#line 596 "src/parser.y"
{
(yyval.node) = gen_template((yyvsp[-3].node), (yyvsp[-1].node));
}
-#line 4100 "gen/gen_parser.c"
+#line 4098 "gen/gen_parser.c"
break;
- case 210: /* template: "typedef" id "{" "}" */
-#line 600 "src/parser.y"
+ case 212: /* template: "typedef" id "{" "}" */
+#line 599 "src/parser.y"
{
/* should match anything, but doesn't implement anything */
(yyval.node) = gen_template((yyvsp[-2].node), NULL);
}
-#line 4109 "gen/gen_parser.c"
+#line 4107 "gen/gen_parser.c"
break;
- case 211: /* enum_val: id */
-#line 606 "src/parser.y"
+ case 213: /* enum_val: id */
+#line 605 "src/parser.y"
{ (yyval.node) = gen_val((yyvsp[0].node), NULL); }
-#line 4115 "gen/gen_parser.c"
+#line 4113 "gen/gen_parser.c"
break;
- case 212: /* enum_val: id "=" expr */
-#line 607 "src/parser.y"
+ case 214: /* enum_val: id "=" expr */
+#line 606 "src/parser.y"
{ (yyval.node) = gen_val((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4121 "gen/gen_parser.c"
+#line 4119 "gen/gen_parser.c"
break;
- case 213: /* enums: enum_val "," enums */
-#line 610 "src/parser.y"
+ case 215: /* enums: enum_val "," enums */
+#line 609 "src/parser.y"
{ (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->next = (yyvsp[0].node); }
-#line 4127 "gen/gen_parser.c"
+#line 4125 "gen/gen_parser.c"
break;
- case 214: /* enums: enum_val "," */
-#line 611 "src/parser.y"
+ case 216: /* enums: enum_val "," */
+#line 610 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); }
-#line 4133 "gen/gen_parser.c"
+#line 4131 "gen/gen_parser.c"
break;
- case 215: /* enums: enum_val */
-#line 612 "src/parser.y"
+ case 217: /* enums: enum_val */
+#line 611 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 4139 "gen/gen_parser.c"
+#line 4137 "gen/gen_parser.c"
break;
- case 216: /* enum: "enum" id ":" type "{" enums "}" */
-#line 615 "src/parser.y"
+ case 218: /* enum: "enum" id ":" type "{" enums "}" */
+#line 614 "src/parser.y"
{ (yyval.node) = gen_enum((yyvsp[-5].node), (yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 4145 "gen/gen_parser.c"
+#line 4143 "gen/gen_parser.c"
break;
- case 217: /* enum: "enum" id "{" enums "}" */
-#line 616 "src/parser.y"
+ case 219: /* enum: "enum" id "{" enums "}" */
+#line 615 "src/parser.y"
{
(yyval.node) = gen_enum((yyvsp[-3].node), NULL, (yyvsp[-1].node));
ast_set_flags((yyval.node), AST_FLAG_UNTYPED);
}
-#line 4154 "gen/gen_parser.c"
+#line 4152 "gen/gen_parser.c"
break;
- case 218: /* top_if: "if" const_expr "{" unit "}" */
-#line 622 "src/parser.y"
+ case 220: /* top_if: "if" const_expr "{" unit "}" */
+#line 621 "src/parser.y"
{
(yyval.node) = gen_if((yyvsp[-3].node), (yyvsp[-1].node), NULL);
ast_set_flags((yyval.node), AST_FLAG_UNHYGIENIC);
}
-#line 4163 "gen/gen_parser.c"
+#line 4161 "gen/gen_parser.c"
break;
- case 219: /* top_if: "if" const_expr "{" unit "}" "else" "{" unit "}" */
-#line 626 "src/parser.y"
+ case 221: /* top_if: "if" const_expr "{" unit "}" "else" "{" unit "}" */
+#line 625 "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 4172 "gen/gen_parser.c"
+#line 4170 "gen/gen_parser.c"
break;
- case 220: /* top_if: "if" const_expr "{" unit "}" "else" top_if */
-#line 630 "src/parser.y"
+ case 222: /* top_if: "if" const_expr "{" unit "}" "else" top_if */
+#line 629 "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 4181 "gen/gen_parser.c"
+#line 4179 "gen/gen_parser.c"
break;
- case 221: /* top_var_decl: id "mut" type */
-#line 636 "src/parser.y"
+ case 223: /* top_var_decl: id "mut" type */
+#line 635 "src/parser.y"
{
(yyval.node) = gen_var((yyvsp[-2].node), (yyvsp[0].node), NULL);
ast_set_flags((yyval.node), AST_FLAG_MUTABLE);
}
-#line 4190 "gen/gen_parser.c"
+#line 4188 "gen/gen_parser.c"
break;
- case 222: /* top_var_decl: id "const" type */
-#line 640 "src/parser.y"
+ case 224: /* top_var_decl: id "const" type */
+#line 639 "src/parser.y"
{ (yyval.node) = gen_var((yyvsp[-2].node), (yyvsp[0].node), NULL); }
-#line 4196 "gen/gen_parser.c"
+#line 4194 "gen/gen_parser.c"
break;
- case 223: /* top_var_decl: id type */
-#line 641 "src/parser.y"
+ case 225: /* top_var_decl: id type */
+#line 640 "src/parser.y"
{ (yyval.node) = gen_var((yyvsp[-1].node), (yyvsp[0].node), NULL); }
-#line 4202 "gen/gen_parser.c"
+#line 4200 "gen/gen_parser.c"
break;
- case 224: /* top_var_init: top_var_decl "=" const_expr */
-#line 644 "src/parser.y"
+ case 226: /* top_var_init: top_var_decl "=" const_expr */
+#line 643 "src/parser.y"
{ (yyval.node) = (yyvsp[-2].node); (yyvsp[-2].node)->_var.init = (yyvsp[0].node); }
-#line 4208 "gen/gen_parser.c"
+#line 4206 "gen/gen_parser.c"
break;
- case 225: /* top_var_init: id "mut" "=" const_expr */
-#line 645 "src/parser.y"
+ case 227: /* top_var_init: id "mut" "=" const_expr */
+#line 644 "src/parser.y"
{ (yyval.node) = (yyvsp[-3].node); (yyvsp[-3].node)->_var.init = (yyvsp[0].node); }
-#line 4214 "gen/gen_parser.c"
+#line 4212 "gen/gen_parser.c"
break;
- case 226: /* top_var_init: id "const" "=" const_expr */
-#line 646 "src/parser.y"
+ case 228: /* top_var_init: id "const" "=" const_expr */
+#line 645 "src/parser.y"
{ (yyval.node) = (yyvsp[-3].node); (yyvsp[-3].node)->_var.init = (yyvsp[0].node); }
-#line 4220 "gen/gen_parser.c"
+#line 4218 "gen/gen_parser.c"
break;
- case 227: /* top_var: top_var_decl */
-#line 649 "src/parser.y"
+ case 229: /* top_var: top_var_decl */
+#line 648 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 4226 "gen/gen_parser.c"
+#line 4224 "gen/gen_parser.c"
break;
- case 228: /* top_var: top_var_init */
-#line 650 "src/parser.y"
+ case 230: /* top_var: top_var_init */
+#line 649 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 4232 "gen/gen_parser.c"
+#line 4230 "gen/gen_parser.c"
break;
- case 229: /* top: enum */
-#line 655 "src/parser.y"
+ case 231: /* top: enum */
+#line 654 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 4238 "gen/gen_parser.c"
+#line 4236 "gen/gen_parser.c"
break;
- case 230: /* top: proc */
-#line 656 "src/parser.y"
+ case 232: /* top: proc */
+#line 655 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 4244 "gen/gen_parser.c"
+#line 4242 "gen/gen_parser.c"
break;
- case 231: /* top: struct */
-#line 657 "src/parser.y"
+ case 233: /* top: struct */
+#line 656 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 4250 "gen/gen_parser.c"
+#line 4248 "gen/gen_parser.c"
break;
- case 232: /* top: union */
-#line 658 "src/parser.y"
+ case 234: /* top: union */
+#line 657 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 4256 "gen/gen_parser.c"
+#line 4254 "gen/gen_parser.c"
break;
- case 233: /* top: macro */
-#line 659 "src/parser.y"
+ case 235: /* top: macro */
+#line 658 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 4262 "gen/gen_parser.c"
+#line 4260 "gen/gen_parser.c"
break;
- case 234: /* top: top_if */
-#line 660 "src/parser.y"
+ case 236: /* top: top_if */
+#line 659 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); ast_set_flags((yyval.node), AST_FLAG_CONST); }
-#line 4268 "gen/gen_parser.c"
+#line 4266 "gen/gen_parser.c"
break;
- case 235: /* top: top_var */
-#line 661 "src/parser.y"
+ case 237: /* top: top_var */
+#line 660 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); ast_set_flags((yyval.node), AST_FLAG_CONST); }
-#line 4274 "gen/gen_parser.c"
+#line 4272 "gen/gen_parser.c"
break;
- case 236: /* top: import */
-#line 662 "src/parser.y"
+ case 238: /* top: import */
+#line 661 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 4280 "gen/gen_parser.c"
+#line 4278 "gen/gen_parser.c"
break;
- case 237: /* top: alias */
-#line 663 "src/parser.y"
+ case 239: /* top: alias */
+#line 662 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 4286 "gen/gen_parser.c"
+#line 4284 "gen/gen_parser.c"
break;
- case 238: /* top: template */
-#line 664 "src/parser.y"
+ case 240: /* top: template */
+#line 663 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 4292 "gen/gen_parser.c"
+#line 4290 "gen/gen_parser.c"
break;
- case 239: /* top: "pub" enum */
-#line 665 "src/parser.y"
+ case 241: /* top: "pub" enum */
+#line 664 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); ast_set_flags((yyvsp[0].node), AST_FLAG_PUBLIC); }
-#line 4298 "gen/gen_parser.c"
+#line 4296 "gen/gen_parser.c"
break;
- case 240: /* top: "pub" struct */
-#line 666 "src/parser.y"
+ case 242: /* top: "pub" struct */
+#line 665 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); ast_set_flags((yyvsp[0].node), AST_FLAG_PUBLIC); }
-#line 4304 "gen/gen_parser.c"
+#line 4302 "gen/gen_parser.c"
break;
- case 241: /* top: "pub" union */
-#line 667 "src/parser.y"
+ case 243: /* top: "pub" union */
+#line 666 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); ast_set_flags((yyvsp[0].node), AST_FLAG_PUBLIC); }
-#line 4310 "gen/gen_parser.c"
+#line 4308 "gen/gen_parser.c"
break;
- case 242: /* top: "pub" proc */
-#line 668 "src/parser.y"
+ case 244: /* top: "pub" proc */
+#line 667 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); ast_set_flags((yyvsp[0].node), AST_FLAG_PUBLIC); }
-#line 4316 "gen/gen_parser.c"
+#line 4314 "gen/gen_parser.c"
break;
- case 243: /* top: "pub" macro */
-#line 669 "src/parser.y"
+ case 245: /* top: "pub" macro */
+#line 668 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); ast_set_flags((yyvsp[0].node), AST_FLAG_PUBLIC); }
-#line 4322 "gen/gen_parser.c"
+#line 4320 "gen/gen_parser.c"
break;
- case 244: /* top: "pub" import */
-#line 670 "src/parser.y"
+ case 246: /* top: "pub" import */
+#line 669 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); ast_set_flags((yyvsp[0].node), AST_FLAG_PUBLIC); }
-#line 4328 "gen/gen_parser.c"
+#line 4326 "gen/gen_parser.c"
break;
- case 245: /* top: "pub" alias */
-#line 671 "src/parser.y"
+ case 247: /* top: "pub" alias */
+#line 670 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); ast_set_flags((yyvsp[0].node), AST_FLAG_PUBLIC); }
-#line 4334 "gen/gen_parser.c"
+#line 4332 "gen/gen_parser.c"
break;
- case 246: /* top: "pub" template */
-#line 672 "src/parser.y"
+ case 248: /* top: "pub" template */
+#line 671 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); ast_set_flags((yyvsp[0].node), AST_FLAG_PUBLIC); }
-#line 4340 "gen/gen_parser.c"
+#line 4338 "gen/gen_parser.c"
break;
- case 247: /* top: "pub" top_var */
-#line 673 "src/parser.y"
+ case 249: /* top: "pub" top_var */
+#line 672 "src/parser.y"
{
(yyval.node) = (yyvsp[0].node); ast_set_flags((yyvsp[0].node), AST_FLAG_PUBLIC);
ast_set_flags((yyval.node), AST_FLAG_CONST);
}
-#line 4349 "gen/gen_parser.c"
+#line 4347 "gen/gen_parser.c"
break;
- case 248: /* top: ";" */
-#line 677 "src/parser.y"
+ case 250: /* top: ";" */
+#line 676 "src/parser.y"
{ (yyval.node) = gen_empty(); }
-#line 4355 "gen/gen_parser.c"
+#line 4353 "gen/gen_parser.c"
break;
- case 249: /* top: error */
-#line 678 "src/parser.y"
+ case 251: /* top: error */
+#line 677 "src/parser.y"
{
(yyval.node) = gen_empty();
parser->failed = true;
@@ -4369,29 +4367,29 @@ yyreduce:
yyclearin;
yyerrok;
}
-#line 4373 "gen/gen_parser.c"
+#line 4371 "gen/gen_parser.c"
break;
- case 250: /* unit: top */
-#line 693 "src/parser.y"
+ case 252: /* unit: top */
+#line 692 "src/parser.y"
{ (yyval.node) = (yyvsp[0].node); }
-#line 4379 "gen/gen_parser.c"
+#line 4377 "gen/gen_parser.c"
break;
- case 251: /* unit: top unit */
-#line 694 "src/parser.y"
+ case 253: /* unit: top unit */
+#line 693 "src/parser.y"
{ (yyval.node) = (yyvsp[-1].node); (yyvsp[-1].node)->next = (yyvsp[0].node); }
-#line 4385 "gen/gen_parser.c"
+#line 4383 "gen/gen_parser.c"
break;
- case 252: /* input: unit */
-#line 697 "src/parser.y"
+ case 254: /* input: unit */
+#line 696 "src/parser.y"
{ parser->tree = (yyvsp[0].node); }
-#line 4391 "gen/gen_parser.c"
+#line 4389 "gen/gen_parser.c"
break;
-#line 4395 "gen/gen_parser.c"
+#line 4393 "gen/gen_parser.c"
default: break;
}
@@ -4620,5 +4618,5 @@ yyreturnlab:
return yyresult;
}
-#line 700 "src/parser.y"
+#line 699 "src/parser.y"