From 3700b457aa305fef8eda398447d0448b738b507c Mon Sep 17 00:00:00 2001 From: Nicolas Williams Date: Mon, 25 May 2015 13:17:22 -0500 Subject: [PATCH] Update parser.c --- parser.c | 1609 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 898 insertions(+), 711 deletions(-) diff --git a/parser.c b/parser.c index 48547ab7..35cbe69f 100644 --- a/parser.c +++ b/parser.c @@ -250,7 +250,7 @@ int yyparse (block* answer, int* errors, struct locfile* locations, struct lexer #endif /* !YY_YY_PARSER_H_INCLUDED */ /* Copy the second part of user declarations. */ -#line 111 "parser.y" /* yacc.c:358 */ +#line 112 "parser.y" /* yacc.c:358 */ #include "lexer.h" struct lexer_param { @@ -650,16 +650,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 27 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1753 +#define YYLAST 1830 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 65 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 21 +#define YYNNTS 22 /* YYNRULES -- Number of rules. */ -#define YYNRULES 121 +#define YYNRULES 140 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 254 +#define YYNSTATES 275 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ @@ -709,19 +709,21 @@ static const yytype_uint8 yytranslate[] = /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 269, 269, 272, 277, 280, 290, 293, 298, 301, - 306, 310, 315, 320, 325, 330, 333, 338, 342, 346, - 351, 363, 367, 371, 375, 379, 383, 387, 391, 395, - 399, 403, 407, 411, 415, 419, 423, 427, 431, 435, - 439, 443, 447, 451, 455, 459, 463, 467, 472, 481, - 488, 500, 514, 519, 525, 528, 533, 538, 545, 545, - 549, 549, 556, 559, 562, 568, 571, 576, 579, 582, - 588, 591, 594, 602, 606, 609, 612, 615, 618, 621, - 624, 627, 630, 634, 640, 643, 646, 649, 652, 655, - 658, 661, 664, 667, 670, 673, 676, 679, 682, 685, - 688, 695, 699, 703, 715, 720, 721, 722, 723, 726, - 729, 734, 739, 742, 743, 744, 747, 750, 753, 757, - 761, 764 + 0, 270, 270, 273, 278, 281, 291, 294, 299, 302, + 307, 311, 316, 321, 326, 331, 334, 339, 343, 347, + 352, 364, 368, 372, 376, 380, 384, 388, 392, 396, + 400, 404, 408, 412, 416, 420, 424, 428, 432, 436, + 440, 444, 448, 452, 456, 460, 464, 468, 473, 482, + 489, 501, 515, 520, 526, 529, 534, 539, 546, 546, + 550, 550, 557, 560, 563, 569, 572, 577, 580, 583, + 589, 592, 595, 603, 607, 610, 613, 616, 619, 622, + 625, 628, 631, 635, 641, 644, 647, 650, 653, 656, + 659, 662, 665, 668, 671, 674, 677, 680, 683, 686, + 689, 696, 700, 704, 716, 721, 722, 723, 724, 727, + 730, 735, 740, 743, 746, 749, 752, 755, 758, 761, + 764, 767, 770, 773, 776, 779, 782, 785, 788, 791, + 796, 799, 800, 801, 804, 807, 810, 813, 817, 821, + 824 }; #endif @@ -742,7 +744,8 @@ static const char *const yytname[] = "';'", "'$'", "'('", "')'", "':'", "'.'", "'['", "']'", "'{'", "'}'", "$accept", "TopLevel", "Module", "Imports", "FuncDefs", "Exp", "Import", "FuncDef", "Params", "Param", "String", "@1", "@2", "QQString", - "ElseBody", "ExpD", "Term", "Args", "Arg", "MkDict", "MkDictPair", YY_NULLPTR + "ElseBody", "ExpD", "Term", "Args", "Arg", "Keyword", "MkDict", + "MkDictPair", YY_NULLPTR }; #endif @@ -761,46 +764,48 @@ static const yytype_uint16 yytoknum[] = }; # endif -#define YYPACT_NINF -121 +#define YYPACT_NINF -111 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-121))) + (!!((Yystate) == (-111))) -#define YYTABLE_NINF -113 +#define YYTABLE_NINF -131 #define yytable_value_is_error(Yytable_value) \ - (!!((Yytable_value) == (-113))) + (!!((Yytable_value) == (-131))) /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int16 yypact[] = { - 7, 698, 8, 15, -25, -40, -121, 5, -121, 31, - 698, 533, 533, 698, 40, 28, -121, 698, 3, 379, - 228, 316, 91, 1090, 698, -121, -2, -121, -3, 698, - 15, 698, -121, -121, -7, 1465, 108, 114, 24, 49, - -121, 50, -121, -14, -121, -121, 41, 966, -121, 54, - 5, 60, 55, -121, 778, -43, 57, 405, 61, 58, - 78, 698, 698, 698, 698, 698, 698, 698, 698, 698, - 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, - 698, 698, 698, 698, 698, -121, -121, 1619, 70, 69, - -3, 290, 113, -121, 1619, 698, -121, 1619, -45, -121, - -121, 30, 698, 466, 72, 73, 492, 89, -121, 2, - -121, -121, -121, -121, -121, -121, 93, -121, 102, 76, - 997, 102, -121, 93, 1681, 935, 935, 1650, 1699, 129, - 1681, 1681, 1681, 1681, 1681, 1681, 935, 935, 1619, 1650, - 1681, 935, 935, -14, -14, 81, 81, 81, -121, 132, - 83, 80, 698, 84, 732, 37, -121, 698, -121, 6, - -121, 139, -31, -121, 1137, -121, 1419, 140, 141, -121, - -121, 698, -121, 698, -121, 101, -121, 102, 103, 43, - 90, 95, 103, -121, 116, -121, -121, 824, -121, 552, - 107, 578, 160, -121, -121, -121, 30, 125, -121, 698, - 698, -121, 128, 130, 1619, 1496, -121, 102, 102, 102, - 698, 119, 135, 870, -121, -121, 1184, 638, -121, 698, - 1542, 1588, 698, 698, -121, 103, 103, 103, 1619, -121, - -121, 137, -121, -121, 1231, 1278, -121, 698, 1325, 1372, - -121, -121, -121, 1419, 698, 698, -121, 1028, 916, -121, - 698, -121, 1059, -121 + -11, 775, 40, 27, -7, 7, -111, 15, -111, 51, + 775, 610, 610, 775, 3, 0, -111, 775, 23, 456, + 249, 393, 311, 1167, 775, -111, -3, -111, -4, 775, + 27, 775, -111, -111, -10, 1542, 6, 9, 37, 61, + -111, 64, -111, -15, -111, -111, 13, 1043, -111, 71, + 15, 19, 16, -111, 855, -32, 18, -111, -111, -111, + -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, + -111, -111, -111, -111, -111, 482, 44, 46, 11, 62, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, -111, -111, 1696, 56, 55, -4, + 144, 99, -111, 1696, 775, -111, 1696, -29, -111, -111, + 4, 775, 543, 57, 58, 569, 72, -111, 1, -111, + -111, -111, -111, -111, -111, 363, -111, 695, 59, 1074, + 695, 695, -111, 363, 1758, 306, 306, 1727, 1776, 1012, + 1758, 1758, 1758, 1758, 1758, 1758, 306, 306, 1696, 1727, + 1758, 306, 306, -15, -15, 65, 65, 65, -111, 111, + 68, 63, 775, 69, 809, 20, -111, 775, -111, 5, + -111, 114, -24, -111, 1214, -111, 1496, 122, 123, -111, + -111, 775, -111, 775, -111, 83, -111, 695, 85, 2, + 73, 74, 85, 85, -111, 92, -111, -111, 901, -111, + 629, 88, 655, 133, -111, -111, -111, 4, 84, -111, + 775, 775, -111, 87, 89, 1696, 1573, -111, 695, 695, + 695, 775, 93, 100, 947, -111, -111, 1261, 715, -111, + 775, 1619, 1665, 775, 775, -111, 85, 85, 85, 1696, + -111, -111, 101, -111, -111, 1308, 1355, -111, 775, 1402, + 1449, -111, -111, -111, 1496, 775, 775, -111, 1105, 993, + -111, 775, -111, 1136, -111 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -813,43 +818,45 @@ static const yytype_uint8 yydefact[] = 0, 0, 0, 0, 0, 95, 47, 1, 0, 8, 6, 0, 75, 60, 0, 0, 0, 0, 18, 0, 73, 0, 62, 32, 102, 101, 0, 0, 82, 0, - 0, 81, 0, 99, 0, 0, 119, 0, 118, 0, - 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 81, 0, 99, 0, 0, 138, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 0, 137, 0, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 21, 5, 10, 78, 0, - 0, 0, 0, 3, 2, 8, 7, 111, 0, 109, - 62, 0, 0, 0, 0, 0, 0, 0, 72, 0, - 105, 97, 83, 77, 106, 98, 0, 108, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 21, 5, 10, 78, 0, 0, + 0, 0, 3, 2, 8, 7, 111, 0, 109, 62, + 0, 0, 0, 0, 0, 0, 0, 72, 0, 105, + 97, 83, 77, 106, 98, 0, 108, 0, 0, 0, 0, 0, 100, 0, 40, 41, 42, 25, 24, 23, 27, 31, 34, 36, 39, 26, 45, 46, 28, 29, 22, 43, 44, 30, 33, 35, 37, 38, 74, 0, 80, 0, 0, 87, 0, 0, 9, 0, 104, 0, 57, 0, 0, 54, 0, 16, 0, 0, 0, 19, - 17, 0, 63, 0, 59, 0, 115, 0, 116, 69, - 0, 0, 117, 114, 0, 76, 107, 0, 86, 0, - 85, 0, 0, 110, 61, 56, 0, 0, 52, 0, - 0, 15, 0, 0, 20, 0, 68, 0, 0, 0, - 0, 93, 92, 0, 84, 49, 0, 0, 55, 0, - 0, 0, 0, 0, 64, 67, 121, 120, 11, 90, - 89, 91, 50, 48, 0, 0, 66, 0, 0, 0, - 88, 51, 53, 0, 0, 0, 65, 0, 0, 12, - 0, 14, 0, 13 + 17, 0, 63, 0, 59, 0, 133, 0, 134, 69, + 0, 0, 136, 135, 132, 0, 76, 107, 0, 86, + 0, 85, 0, 0, 110, 61, 56, 0, 0, 52, + 0, 0, 15, 0, 0, 20, 0, 68, 0, 0, + 0, 0, 93, 92, 0, 84, 49, 0, 0, 55, + 0, 0, 0, 0, 0, 64, 67, 140, 139, 11, + 90, 89, 91, 50, 48, 0, 0, 66, 0, 0, + 0, 88, 51, 53, 0, 0, 0, 65, 0, 0, + 12, 0, 14, 0, 13 }; /* YYPGOTO[NTERM-NUM]. */ -static const yytype_int16 yypgoto[] = +static const yytype_int8 yypgoto[] = { - -121, -121, -121, 156, 97, -1, -121, -4, -121, 0, - -5, -121, -121, 94, -50, -120, -6, -121, 38, -97, - -121 + -111, -111, -111, 126, 39, -1, -111, -8, -111, -60, + -5, -111, -111, 41, -105, -89, -6, -111, -14, -111, + -110, -111 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 2, 3, 29, 93, 87, 30, 24, 162, 163, - 25, 42, 100, 109, 201, 178, 26, 98, 99, 59, - 60 + -1, 2, 3, 29, 112, 106, 30, 24, 182, 183, + 25, 42, 119, 128, 222, 198, 26, 117, 118, 77, + 78, 79 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -857,303 +864,314 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 23, 182, 116, 88, 50, 36, 37, 44, 27, 35, - 157, 89, 38, 158, 32, 51, 43, 58, 47, 176, - 54, 117, 1, 92, 196, 95, 183, 197, 94, 40, - 97, 28, 31, 45, 160, 34, 16, 82, 83, 84, - 85, 191, 172, 173, 33, 174, 172, 173, 88, 194, - 101, 106, 102, 107, 108, 112, 120, 206, 90, 91, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 41, 150, 161, 225, 226, 227, - 154, 95, 55, 192, 175, 56, 39, 56, 50, 110, - 50, 164, 166, 90, 91, 170, 4, 5, 6, 7, - 8, 58, 179, 88, 113, 179, 118, 114, 58, 88, - 121, 104, 122, 123, 148, 149, 155, 105, 167, 168, - 16, 15, 16, 171, 180, 85, 184, 185, 188, 62, - 63, 16, 186, 195, 202, 203, 116, 207, 57, 208, - 57, 187, 177, 65, 209, -112, 97, -112, 18, 19, - 210, 214, 20, 21, 217, 22, 73, 74, 90, 91, - 204, 179, 205, 229, 90, 91, 78, 79, 80, 81, - 82, 83, 84, 85, 219, 222, 96, 223, 213, 230, - 216, 240, 156, 246, 159, 193, 218, 0, 220, 221, - 0, 179, 179, 179, 0, 0, 0, 0, 0, 228, - 0, 0, 0, 0, 0, 0, 234, 0, 235, 0, - 0, 238, 239, 0, 0, 0, 0, 0, -70, 48, - 0, 0, 49, -70, 0, 50, 243, -70, -70, -70, - -70, -70, 0, 247, 248, 0, -70, -70, -70, 252, - 0, -70, -70, -70, 0, -70, 0, 0, 0, -70, - -70, -70, -70, -70, -70, -70, -70, 16, 0, 0, - -70, 0, -70, -70, -70, -70, -70, -70, -70, -70, - -70, -70, -70, -70, 0, 0, -70, -70, -70, -70, - -70, 151, -70, 0, 4, 5, 6, 7, 8, 0, - 0, 0, 0, 0, 9, 0, 0, 10, 0, 0, - 0, 11, 12, 0, 0, 0, 13, 52, 14, 15, - 4, 5, 6, 7, 8, 0, 0, 0, 0, 16, - 9, 0, 0, 10, 0, 0, 0, 11, 12, 0, - 17, 0, 13, 0, 14, 15, 18, 19, 0, 152, - 20, 21, 153, 22, 0, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 18, 19, 0, 0, 20, 21, 53, 22, - 46, 0, 0, 4, 5, 6, 7, 8, 0, 0, - 0, 0, 0, 9, 0, 0, 10, 0, 0, 0, - 11, 12, 0, 0, 0, 13, 119, 14, 15, 4, - 5, 6, 7, 8, 0, 0, 0, 0, 16, 9, - 0, 0, 10, 0, 0, 0, 11, 12, 0, 17, - 0, 13, 0, 14, 15, 18, 19, 0, 0, 20, - 21, 0, 22, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, - 0, 18, 19, 0, 0, 20, 21, 165, 22, 0, + 23, 40, 107, 50, 1, 36, 37, 107, 180, 35, + 108, 107, 38, 135, 107, 51, 43, 76, 47, 123, + 54, 114, 124, 111, 212, 196, 177, 44, 113, 178, + 116, 217, 136, 204, 218, 16, 101, 102, 103, 104, + 27, 192, 193, 28, 194, 192, 193, 120, 215, 121, + 31, 202, 203, 45, 33, 34, 41, 109, 110, 39, + 181, 32, 109, 110, 125, 126, 109, 110, 127, 109, + 110, 129, 131, 132, 139, 142, 213, 137, 133, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 140, 170, 141, 114, 143, 227, 174, + 168, 169, 175, 187, 188, 205, 191, 200, 216, 104, + 184, 186, 206, 209, 190, 207, 223, 224, 135, 228, + 76, 199, 229, 230, 199, 199, 231, 238, 76, 246, + 247, 248, 235, 240, 243, 171, 244, 250, 4, 5, + 6, 7, 8, 176, 251, 261, 115, 239, 9, 267, + 179, 10, 0, 214, 0, 11, 12, 0, 0, 0, + 13, 208, 14, 15, 0, 0, 116, 0, 0, 0, + 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, + 225, 199, 226, 0, 17, 0, 0, 0, 0, 0, + 18, 19, 0, 172, 20, 21, 173, 22, 0, 234, + 0, 237, 0, 0, 0, 0, 0, 0, 0, 241, + 242, 0, 199, 199, 199, 0, 0, 0, 0, 0, + 249, 0, 0, 0, 0, 0, 0, 255, 0, 256, + 0, 0, 259, 260, 0, 0, 0, 0, 0, -70, + 48, 0, 0, 49, -70, 0, 50, 264, -70, -70, + -70, -70, -70, 0, 268, 269, 0, -70, -70, -70, + 273, 0, -70, -70, -70, 0, -70, 0, 0, 0, + -70, -70, -70, -70, -70, -70, -70, -70, 16, 0, + 0, -70, 0, -70, -70, -70, -70, -70, -70, -70, + -70, -70, -70, -70, -70, 0, 0, -70, -70, -70, + -70, -70, 55, -70, 0, 56, -131, -131, 50, 0, + 0, 0, 0, 0, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 0, -131, -131, 0, 0, 0, 0, 0, + 16, 0, 0, -131, -131, 99, 100, 101, 102, 103, + 104, 0, 0, 0, 195, 0, 0, 56, 75, 0, + 50, 0, 0, 0, 0, -130, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 52, 0, 0, 4, 5, 6, + 7, 8, 16, 0, 0, 0, 0, 9, 0, 0, + 10, 0, 0, 0, 11, 12, 0, 0, 0, 13, + 75, 14, 15, 0, 0, 0, 0, -130, 0, 0, + 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 17, 0, 0, 0, 0, 0, 18, + 19, 0, 0, 20, 21, 53, 22, 46, 0, 0, 4, 5, 6, 7, 8, 0, 0, 0, 0, 0, 9, 0, 0, 10, 0, 0, 0, 11, 12, 0, - 0, 0, 13, 169, 14, 15, 4, 5, 6, 7, + 0, 0, 13, 138, 14, 15, 4, 5, 6, 7, 8, 0, 0, 0, 0, 16, 9, 0, 0, 10, 0, 0, 0, 11, 12, 0, 17, 0, 13, 0, 14, 15, 18, 19, 0, 0, 20, 21, 0, 22, - 0, 16, 0, 0, 0, 0, 0, 4, 5, 6, - 7, 8, 17, 0, 0, 0, 0, 0, 18, 19, - 0, 0, 20, 21, 0, 22, 4, 5, 6, 7, - 8, 0, 15, 0, 0, 0, 9, 0, 0, 10, - 0, 0, 16, 11, 12, 0, 0, 0, 13, 0, - 14, 15, 4, 5, 6, 7, 8, 0, 0, 18, - 19, 16, 9, 20, 21, 10, 22, 0, 0, 11, - 12, 0, 17, 0, 13, 0, 14, 15, 18, 19, - 0, 0, 20, 21, 212, 22, 0, 16, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, - 0, 0, 0, 215, 18, 19, 0, 0, 20, 21, - 0, 22, 4, 5, 6, 7, 8, 0, 0, 0, - 0, 0, 9, 0, 0, 10, 0, 0, 0, 11, - 12, 0, 0, 0, 13, 0, 14, 15, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, - 0, 0, 0, 233, 18, 19, 0, 0, 20, 21, - 0, 22, 4, 5, 6, 7, 8, 0, 0, 0, - 0, 0, 9, 0, 0, 10, 0, 0, 0, 11, - 12, 0, 0, 0, 13, 0, 14, 15, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, - 0, 61, 62, 63, 64, 0, 0, 0, 17, 0, - 0, 0, 0, 0, 18, 19, 65, 66, 20, 21, - 0, 22, 0, 67, 68, 69, 70, 71, 72, 73, - 74, 0, 0, 0, 0, 0, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 61, 62, 63, - 64, 189, 0, 0, 190, 0, 0, 0, 0, 0, - 0, 0, 65, 66, 0, 0, 0, 0, 0, 67, - 68, 69, 70, 71, 72, 73, 74, 0, 0, 0, - 0, 0, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 61, 62, 63, 64, 0, 0, 0, - 115, 0, 0, 0, 0, 0, 0, 0, 65, 66, - 0, 0, 0, 0, 0, 67, 68, 69, 70, 71, - 72, 73, 74, 0, 0, 0, 0, 0, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 61, - 62, 63, 64, 0, 0, 0, 211, 0, 0, 0, - 0, 0, 0, 0, 65, 66, 0, 0, 0, 0, - 0, 67, 68, 69, 70, 71, 72, 73, 74, 0, - 0, 0, 0, 0, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 61, 62, 63, 64, 0, - 0, 0, 231, 0, 0, 0, 0, 0, 0, 0, - 65, 66, 0, 0, 0, -113, -113, 67, 68, 69, - 70, 71, 72, 73, 74, 0, 0, 0, 0, 0, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 250, -113, -113, 251, 61, 62, 63, 64, 0, - 0, 0, -113, -113, 80, 81, 82, 83, 84, 85, - 65, 66, 0, 0, 0, 0, 0, 67, 68, 69, - 70, 71, 72, 73, 74, 0, 61, 62, 63, 64, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 65, 66, 0, 111, 0, 0, 0, 67, 68, - 69, 70, 71, 72, 73, 74, 0, 61, 62, 63, - 64, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 65, 66, 0, 181, 0, 0, 0, 67, - 68, 69, 70, 71, 72, 73, 74, 0, 61, 62, - 63, 64, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 65, 66, 0, 249, 0, 0, 0, - 67, 68, 69, 70, 71, 72, 73, 74, 0, 61, - 62, 63, 64, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 65, 66, 0, 253, 0, 0, - 0, 67, 68, 69, 70, 71, 72, 73, 74, 0, - 0, 0, 0, 0, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 61, 62, 63, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 65, 66, 0, 0, 0, 0, 0, 67, 68, - 69, 70, 71, 72, 73, 74, 0, 0, 0, 0, - 0, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 198, 61, 62, 63, 64, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 65, 66, - 0, 0, 0, 0, 0, 67, 68, 69, 70, 71, - 72, 73, 74, 0, 0, 0, 0, 0, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 232, - 61, 62, 63, 64, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 65, 66, 0, 0, 0, - 0, 0, 67, 68, 69, 70, 71, 72, 73, 74, - 0, 0, 0, 0, 0, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 241, 61, 62, 63, - 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 65, 66, 0, 0, 0, 0, 0, 67, - 68, 69, 70, 71, 72, 73, 74, 0, 0, 0, - 0, 0, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 242, 61, 62, 63, 64, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, - 66, 0, 0, 0, 0, 0, 67, 68, 69, 70, - 71, 72, 73, 74, 0, 0, 0, 0, 0, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 244, 61, 62, 63, 64, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 65, 66, 0, 0, - 0, 0, 0, 67, 68, 69, 70, 71, 72, 73, - 74, 0, 0, 0, 0, 0, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 245, 61, 62, - 63, 64, 0, 0, 0, 0, 0, 0, 199, 200, - 0, 0, 0, 65, 66, 0, 0, 0, 0, 0, - 67, 68, 69, 70, 71, 72, 73, 74, 0, 0, - 0, 0, 0, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 61, 62, 63, 64, 0, 0, - 0, 0, 0, 103, 0, 0, 0, 0, 0, 65, - 66, 0, 0, 0, 0, 0, 67, 68, 69, 70, - 71, 72, 73, 74, 0, 61, 62, 63, 64, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 65, 66, 0, 0, 0, 0, 0, 67, 68, 69, - 70, 71, 72, 73, 74, 0, 0, 0, 224, 0, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 61, 62, 63, 64, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 236, 65, 66, 0, 0, - 0, 0, 0, 67, 68, 69, 70, 71, 72, 73, - 74, 0, 0, 0, 0, 0, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 61, 62, 63, - 64, 0, 0, 0, 0, 0, 237, 0, 0, 0, - 0, 0, 65, 66, 0, 0, 0, 0, 0, 67, - 68, 69, 70, 71, 72, 73, 74, 0, 61, 62, - 63, 64, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 65, 66, 0, 0, 0, 0, 0, - 67, 68, 69, 70, 71, 72, 73, 74, 0, 61, - 62, 63, 64, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 65, 66, 0, 0, 0, 0, - 0, 67, 68, 69, 70, 71, 72, 73, 74, 0, - -113, 62, 63, 0, 0, 0, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 65, 66, 0, 0, 62, - 63, 0, -113, -113, -113, -113, -113, -113, 73, 74, - 0, 0, 0, 0, 0, 0, 0, -113, 78, 79, - 80, 81, 82, 83, 84, 85, 73, 74, 0, 0, - 0, 0, 0, 0, 0, 0, 78, 79, 80, 81, - 82, 83, 84, 85 + 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 17, 0, 0, 0, 0, 0, 18, 19, + 0, 0, 20, 21, 185, 22, 0, 4, 5, 6, + 7, 8, 0, 0, 0, 0, 0, 9, 0, 0, + 10, 0, 0, 0, 11, 12, 0, 0, 0, 13, + 189, 14, 15, 4, 5, 6, 7, 8, 0, 0, + 0, 0, 16, 9, 0, 0, 10, 0, 0, 0, + 11, 12, 0, 17, 0, 13, 0, 14, 15, 18, + 19, 0, 0, 20, 21, 0, 22, 0, 16, 0, + 0, 0, 0, 0, 4, 5, 6, 7, 8, 17, + 0, 0, 0, 0, 0, 18, 19, 0, 0, 20, + 21, 0, 22, 4, 5, 6, 7, 8, 0, 15, + 0, 0, 0, 9, 0, 0, 10, 0, 0, 16, + 11, 12, 0, 0, 0, 13, 0, 14, 15, 4, + 5, 6, 7, 8, 0, 0, 18, 19, 16, 9, + 20, 21, 10, 22, 0, 0, 11, 12, 0, 17, + 0, 13, 0, 14, 15, 18, 19, 0, 0, 20, + 21, 233, 22, 0, 16, 0, 0, 0, 0, 4, + 5, 6, 7, 8, 0, 17, 0, 0, 0, 0, + 236, 18, 19, 0, 0, 20, 21, 0, 22, 4, + 5, 6, 7, 8, 15, 0, 0, 0, 0, 9, + 0, 0, 10, 0, 16, 0, 11, 12, 0, 0, + 0, 13, 0, 14, 15, 197, 0, 0, 0, 0, + 0, 18, 19, 0, 16, 20, 21, 0, 22, 0, + 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, + 254, 18, 19, 0, 0, 20, 21, 0, 22, 4, + 5, 6, 7, 8, 0, 0, 0, 0, 0, 9, + 0, 0, 10, 0, 0, 0, 11, 12, 0, 0, + 0, 13, 0, 14, 15, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 0, 0, 0, 80, 81, + 82, 83, 0, 0, 0, 17, 0, 0, 0, 0, + 0, 18, 19, 84, 85, 20, 21, 0, 22, 0, + 86, 87, 88, 89, 90, 91, 92, 93, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 80, 81, 82, 83, 210, 0, + 0, 211, 0, 0, 0, 0, 0, 0, 0, 84, + 85, 0, 0, 0, 0, 0, 86, 87, 88, 89, + 90, 91, 92, 93, 0, 0, 0, 0, 0, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 80, 81, 82, 83, 0, 0, 0, 134, 0, 0, + 0, 0, 0, 0, 0, 84, 85, 0, 0, 0, + 0, 0, 86, 87, 88, 89, 90, 91, 92, 93, + 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 80, 81, 82, 83, + 0, 0, 0, 232, 0, 0, 0, 0, 0, 0, + 0, 84, 85, 0, 0, 0, 0, 0, 86, 87, + 88, 89, 90, 91, 92, 93, 0, 0, 0, 0, + 0, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 80, 81, 82, 83, 0, 0, 0, 252, + 0, 0, 0, 0, 0, 0, 0, 84, 85, 0, + 0, 0, 81, 82, 86, 87, 88, 89, 90, 91, + 92, 93, 0, 0, 0, 0, 84, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 271, 92, + 93, 272, 80, 81, 82, 83, 0, 0, 0, 97, + 98, 99, 100, 101, 102, 103, 104, 84, 85, 0, + 0, 0, 0, 0, 86, 87, 88, 89, 90, 91, + 92, 93, 0, 80, 81, 82, 83, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 84, 85, + 0, 130, 0, 0, 0, 86, 87, 88, 89, 90, + 91, 92, 93, 0, 80, 81, 82, 83, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 84, + 85, 0, 201, 0, 0, 0, 86, 87, 88, 89, + 90, 91, 92, 93, 0, 80, 81, 82, 83, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 84, 85, 0, 270, 0, 0, 0, 86, 87, 88, + 89, 90, 91, 92, 93, 0, 80, 81, 82, 83, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 84, 85, 0, 274, 0, 0, 0, 86, 87, + 88, 89, 90, 91, 92, 93, 0, 0, 0, 0, + 0, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 80, 81, 82, 83, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 84, 85, + 0, 0, 0, 0, 0, 86, 87, 88, 89, 90, + 91, 92, 93, 0, 0, 0, 0, 0, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 219, + 80, 81, 82, 83, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 84, 85, 0, 0, 0, + 0, 0, 86, 87, 88, 89, 90, 91, 92, 93, + 0, 0, 0, 0, 0, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 253, 80, 81, 82, + 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 84, 85, 0, 0, 0, 0, 0, 86, + 87, 88, 89, 90, 91, 92, 93, 0, 0, 0, + 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 262, 80, 81, 82, 83, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, + 85, 0, 0, 0, 0, 0, 86, 87, 88, 89, + 90, 91, 92, 93, 0, 0, 0, 0, 0, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 263, 80, 81, 82, 83, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 84, 85, 0, 0, + 0, 0, 0, 86, 87, 88, 89, 90, 91, 92, + 93, 0, 0, 0, 0, 0, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 265, 80, 81, + 82, 83, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 84, 85, 0, 0, 0, 0, 0, + 86, 87, 88, 89, 90, 91, 92, 93, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 266, 80, 81, 82, 83, 0, + 0, 0, 0, 0, 0, 220, 221, 0, 0, 0, + 84, 85, 0, 0, 0, 0, 0, 86, 87, 88, + 89, 90, 91, 92, 93, 0, 0, 0, 0, 0, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 80, 81, 82, 83, 0, 0, 0, 0, 0, + 122, 0, 0, 0, 0, 0, 84, 85, 0, 0, + 0, 0, 0, 86, 87, 88, 89, 90, 91, 92, + 93, 0, 80, 81, 82, 83, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 84, 85, 0, + 0, 0, 0, 0, 86, 87, 88, 89, 90, 91, + 92, 93, 0, 0, 0, 245, 0, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 80, 81, + 82, 83, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 257, 84, 85, 0, 0, 0, 0, 0, + 86, 87, 88, 89, 90, 91, 92, 93, 0, 0, + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 80, 81, 82, 83, 0, 0, + 0, 0, 0, 258, 0, 0, 0, 0, 0, 84, + 85, 0, 0, 0, 0, 0, 86, 87, 88, 89, + 90, 91, 92, 93, 0, 80, 81, 82, 83, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 84, 85, 0, 0, 0, 0, 0, 86, 87, 88, + 89, 90, 91, 92, 93, 0, 80, 81, 82, 83, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 84, 85, 0, 0, 0, 0, 0, 86, 87, + 88, 89, 90, 91, 92, 93, 0, -131, 81, 82, + 0, 0, 0, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 84, 85, 0, 0, 81, 82, 0, -131, + -131, -131, -131, -131, -131, 92, 93, 0, 0, 0, + 0, 0, 0, 0, -131, 97, 98, 99, 100, 101, + 102, 103, 104, 92, 93, 0, 0, 0, 0, 0, + 0, 0, 0, 97, 98, 99, 100, 101, 102, 103, + 104 }; static const yytype_int16 yycheck[] = { - 1, 121, 45, 5, 7, 11, 12, 4, 0, 10, - 55, 13, 13, 58, 54, 20, 17, 22, 19, 116, - 21, 64, 15, 28, 55, 29, 123, 58, 29, 1, - 31, 16, 57, 30, 4, 4, 39, 51, 52, 53, - 54, 4, 40, 41, 39, 43, 40, 41, 5, 43, - 57, 27, 59, 4, 4, 1, 57, 177, 60, 61, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 56, 90, 56, 207, 208, 209, - 91, 95, 1, 56, 1, 4, 56, 4, 7, 58, - 7, 102, 103, 60, 61, 106, 4, 5, 6, 7, - 8, 116, 118, 5, 54, 121, 59, 62, 123, 5, - 59, 13, 64, 45, 54, 56, 13, 13, 56, 56, - 39, 29, 39, 44, 58, 54, 4, 54, 54, 10, - 11, 39, 62, 4, 4, 4, 45, 44, 57, 59, - 57, 152, 50, 24, 59, 64, 157, 64, 56, 57, - 44, 54, 60, 61, 4, 63, 37, 38, 60, 61, - 171, 177, 173, 54, 60, 61, 47, 48, 49, 50, - 51, 52, 53, 54, 59, 57, 30, 57, 189, 54, - 191, 54, 95, 243, 100, 157, 196, -1, 199, 200, - -1, 207, 208, 209, -1, -1, -1, -1, -1, 210, - -1, -1, -1, -1, -1, -1, 217, -1, 219, -1, - -1, 222, 223, -1, -1, -1, -1, -1, 0, 1, - -1, -1, 4, 5, -1, 7, 237, 9, 10, 11, - 12, 13, -1, 244, 245, -1, 18, 19, 20, 250, - -1, 23, 24, 25, -1, 27, -1, -1, -1, 31, - 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, - 42, -1, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, -1, -1, 58, 59, 60, 61, - 62, 1, 64, -1, 4, 5, 6, 7, 8, -1, - -1, -1, -1, -1, 14, -1, -1, 17, -1, -1, - -1, 21, 22, -1, -1, -1, 26, 1, 28, 29, - 4, 5, 6, 7, 8, -1, -1, -1, -1, 39, - 14, -1, -1, 17, -1, -1, -1, 21, 22, -1, - 50, -1, 26, -1, 28, 29, 56, 57, -1, 59, - 60, 61, 62, 63, -1, 39, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, - -1, -1, 56, 57, -1, -1, 60, 61, 62, 63, - 1, -1, -1, 4, 5, 6, 7, 8, -1, -1, - -1, -1, -1, 14, -1, -1, 17, -1, -1, -1, - 21, 22, -1, -1, -1, 26, 1, 28, 29, 4, - 5, 6, 7, 8, -1, -1, -1, -1, 39, 14, - -1, -1, 17, -1, -1, -1, 21, 22, -1, 50, - -1, 26, -1, 28, 29, 56, 57, -1, -1, 60, - 61, -1, 63, -1, 39, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, - -1, 56, 57, -1, -1, 60, 61, 1, 63, -1, + 1, 1, 5, 7, 15, 11, 12, 5, 4, 10, + 13, 5, 13, 45, 5, 20, 17, 22, 19, 13, + 21, 29, 13, 28, 4, 135, 55, 4, 29, 58, + 31, 55, 64, 143, 58, 39, 51, 52, 53, 54, + 0, 40, 41, 16, 43, 40, 41, 57, 43, 59, + 57, 140, 141, 30, 39, 4, 56, 60, 61, 56, + 56, 54, 60, 61, 27, 4, 60, 61, 4, 60, + 61, 58, 1, 54, 75, 64, 56, 59, 62, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 59, 109, 59, 114, 45, 197, 110, + 54, 56, 13, 56, 56, 4, 44, 58, 4, 54, + 121, 122, 54, 54, 125, 62, 4, 4, 45, 44, + 135, 137, 59, 59, 140, 141, 44, 4, 143, 228, + 229, 230, 54, 59, 57, 1, 57, 54, 4, 5, + 6, 7, 8, 114, 54, 54, 30, 217, 14, 264, + 119, 17, -1, 177, -1, 21, 22, -1, -1, -1, + 26, 172, 28, 29, -1, -1, 177, -1, -1, -1, + -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, + 191, 197, 193, -1, 50, -1, -1, -1, -1, -1, + 56, 57, -1, 59, 60, 61, 62, 63, -1, 210, + -1, 212, -1, -1, -1, -1, -1, -1, -1, 220, + 221, -1, 228, 229, 230, -1, -1, -1, -1, -1, + 231, -1, -1, -1, -1, -1, -1, 238, -1, 240, + -1, -1, 243, 244, -1, -1, -1, -1, -1, 0, + 1, -1, -1, 4, 5, -1, 7, 258, 9, 10, + 11, 12, 13, -1, 265, 266, -1, 18, 19, 20, + 271, -1, 23, 24, 25, -1, 27, -1, -1, -1, + 31, 32, 33, 34, 35, 36, 37, 38, 39, -1, + -1, 42, -1, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, -1, -1, 58, 59, 60, + 61, 62, 1, 64, -1, 4, 10, 11, 7, -1, + -1, -1, -1, -1, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, -1, 37, 38, -1, -1, -1, -1, -1, + 39, -1, -1, 47, 48, 49, 50, 51, 52, 53, + 54, -1, -1, -1, 1, -1, -1, 4, 57, -1, + 7, -1, -1, -1, -1, 64, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 1, -1, -1, 4, 5, 6, + 7, 8, 39, -1, -1, -1, -1, 14, -1, -1, + 17, -1, -1, -1, 21, 22, -1, -1, -1, 26, + 57, 28, 29, -1, -1, -1, -1, 64, -1, -1, + -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 50, -1, -1, -1, -1, -1, 56, + 57, -1, -1, 60, 61, 62, 63, 1, -1, -1, 4, 5, 6, 7, 8, -1, -1, -1, -1, -1, 14, -1, -1, 17, -1, -1, -1, 21, 22, -1, -1, -1, 26, 1, 28, 29, 4, 5, 6, 7, 8, -1, -1, -1, -1, 39, 14, -1, -1, 17, -1, -1, -1, 21, 22, -1, 50, -1, 26, -1, 28, 29, 56, 57, -1, -1, 60, 61, -1, 63, - -1, 39, -1, -1, -1, -1, -1, 4, 5, 6, - 7, 8, 50, -1, -1, -1, -1, -1, 56, 57, - -1, -1, 60, 61, -1, 63, 4, 5, 6, 7, - 8, -1, 29, -1, -1, -1, 14, -1, -1, 17, - -1, -1, 39, 21, 22, -1, -1, -1, 26, -1, - 28, 29, 4, 5, 6, 7, 8, -1, -1, 56, - 57, 39, 14, 60, 61, 17, 63, -1, -1, 21, - 22, -1, 50, -1, 26, -1, 28, 29, 56, 57, - -1, -1, 60, 61, 62, 63, -1, 39, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 50, -1, - -1, -1, -1, 55, 56, 57, -1, -1, 60, 61, - -1, 63, 4, 5, 6, 7, 8, -1, -1, -1, - -1, -1, 14, -1, -1, 17, -1, -1, -1, 21, - 22, -1, -1, -1, 26, -1, 28, 29, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 39, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 50, -1, - -1, -1, -1, 55, 56, 57, -1, -1, 60, 61, - -1, 63, 4, 5, 6, 7, 8, -1, -1, -1, - -1, -1, 14, -1, -1, 17, -1, -1, -1, 21, - 22, -1, -1, -1, 26, -1, 28, 29, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 39, -1, -1, - -1, 9, 10, 11, 12, -1, -1, -1, 50, -1, - -1, -1, -1, -1, 56, 57, 24, 25, 60, 61, - -1, 63, -1, 31, 32, 33, 34, 35, 36, 37, - 38, -1, -1, -1, -1, -1, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 9, 10, 11, - 12, 59, -1, -1, 62, -1, -1, -1, -1, -1, - -1, -1, 24, 25, -1, -1, -1, -1, -1, 31, - 32, 33, 34, 35, 36, 37, 38, -1, -1, -1, - -1, -1, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 9, 10, 11, 12, -1, -1, -1, - 62, -1, -1, -1, -1, -1, -1, -1, 24, 25, - -1, -1, -1, -1, -1, 31, 32, 33, 34, 35, - 36, 37, 38, -1, -1, -1, -1, -1, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 9, - 10, 11, 12, -1, -1, -1, 62, -1, -1, -1, - -1, -1, -1, -1, 24, 25, -1, -1, -1, -1, - -1, 31, 32, 33, 34, 35, 36, 37, 38, -1, - -1, -1, -1, -1, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 9, 10, 11, 12, -1, - -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, - 24, 25, -1, -1, -1, 10, 11, 31, 32, 33, - 34, 35, 36, 37, 38, -1, -1, -1, -1, -1, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 37, 38, 58, 9, 10, 11, 12, -1, - -1, -1, 47, 48, 49, 50, 51, 52, 53, 54, - 24, 25, -1, -1, -1, -1, -1, 31, 32, 33, + -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 50, -1, -1, -1, -1, -1, 56, 57, + -1, -1, 60, 61, 1, 63, -1, 4, 5, 6, + 7, 8, -1, -1, -1, -1, -1, 14, -1, -1, + 17, -1, -1, -1, 21, 22, -1, -1, -1, 26, + 1, 28, 29, 4, 5, 6, 7, 8, -1, -1, + -1, -1, 39, 14, -1, -1, 17, -1, -1, -1, + 21, 22, -1, 50, -1, 26, -1, 28, 29, 56, + 57, -1, -1, 60, 61, -1, 63, -1, 39, -1, + -1, -1, -1, -1, 4, 5, 6, 7, 8, 50, + -1, -1, -1, -1, -1, 56, 57, -1, -1, 60, + 61, -1, 63, 4, 5, 6, 7, 8, -1, 29, + -1, -1, -1, 14, -1, -1, 17, -1, -1, 39, + 21, 22, -1, -1, -1, 26, -1, 28, 29, 4, + 5, 6, 7, 8, -1, -1, 56, 57, 39, 14, + 60, 61, 17, 63, -1, -1, 21, 22, -1, 50, + -1, 26, -1, 28, 29, 56, 57, -1, -1, 60, + 61, 62, 63, -1, 39, -1, -1, -1, -1, 4, + 5, 6, 7, 8, -1, 50, -1, -1, -1, -1, + 55, 56, 57, -1, -1, 60, 61, -1, 63, 4, + 5, 6, 7, 8, 29, -1, -1, -1, -1, 14, + -1, -1, 17, -1, 39, -1, 21, 22, -1, -1, + -1, 26, -1, 28, 29, 50, -1, -1, -1, -1, + -1, 56, 57, -1, 39, 60, 61, -1, 63, -1, + -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, + 55, 56, 57, -1, -1, 60, 61, -1, 63, 4, + 5, 6, 7, 8, -1, -1, -1, -1, -1, 14, + -1, -1, 17, -1, -1, -1, 21, 22, -1, -1, + -1, 26, -1, 28, 29, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 39, -1, -1, -1, 9, 10, + 11, 12, -1, -1, -1, 50, -1, -1, -1, -1, + -1, 56, 57, 24, 25, 60, 61, -1, 63, -1, + 31, 32, 33, 34, 35, 36, 37, 38, -1, -1, + -1, -1, -1, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 9, 10, 11, 12, 59, -1, + -1, 62, -1, -1, -1, -1, -1, -1, -1, 24, + 25, -1, -1, -1, -1, -1, 31, 32, 33, 34, + 35, 36, 37, 38, -1, -1, -1, -1, -1, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 9, 10, 11, 12, -1, -1, -1, 62, -1, -1, + -1, -1, -1, -1, -1, 24, 25, -1, -1, -1, + -1, -1, 31, 32, 33, 34, 35, 36, 37, 38, + -1, -1, -1, -1, -1, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 9, 10, 11, 12, + -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, + -1, 24, 25, -1, -1, -1, -1, -1, 31, 32, + 33, 34, 35, 36, 37, 38, -1, -1, -1, -1, + -1, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 9, 10, 11, 12, -1, -1, -1, 62, + -1, -1, -1, -1, -1, -1, -1, 24, 25, -1, + -1, -1, 10, 11, 31, 32, 33, 34, 35, 36, + 37, 38, -1, -1, -1, -1, 24, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 37, + 38, 58, 9, 10, 11, 12, -1, -1, -1, 47, + 48, 49, 50, 51, 52, 53, 54, 24, 25, -1, + -1, -1, -1, -1, 31, 32, 33, 34, 35, 36, + 37, 38, -1, 9, 10, 11, 12, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 24, 25, + -1, 58, -1, -1, -1, 31, 32, 33, 34, 35, + 36, 37, 38, -1, 9, 10, 11, 12, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 24, + 25, -1, 58, -1, -1, -1, 31, 32, 33, 34, + 35, 36, 37, 38, -1, 9, 10, 11, 12, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 24, 25, -1, 58, -1, -1, -1, 31, 32, 33, 34, 35, 36, 37, 38, -1, 9, 10, 11, 12, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 24, 25, -1, 58, -1, -1, -1, 31, 32, - 33, 34, 35, 36, 37, 38, -1, 9, 10, 11, - 12, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 24, 25, -1, 58, -1, -1, -1, 31, - 32, 33, 34, 35, 36, 37, 38, -1, 9, 10, - 11, 12, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 24, 25, -1, 58, -1, -1, -1, - 31, 32, 33, 34, 35, 36, 37, 38, -1, 9, - 10, 11, 12, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 24, 25, -1, 58, -1, -1, - -1, 31, 32, 33, 34, 35, 36, 37, 38, -1, - -1, -1, -1, -1, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 9, 10, 11, 12, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 24, 25, -1, -1, -1, -1, -1, 31, 32, 33, 34, 35, 36, 37, 38, -1, -1, -1, -1, -1, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 9, 10, 11, 12, -1, -1, -1, @@ -1180,39 +1198,44 @@ static const yytype_int16 yycheck[] = -1, -1, -1, 31, 32, 33, 34, 35, 36, 37, 38, -1, -1, -1, -1, -1, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 9, 10, - 11, 12, -1, -1, -1, -1, -1, -1, 19, 20, + 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, 25, -1, -1, -1, -1, -1, 31, 32, 33, 34, 35, 36, 37, 38, -1, -1, -1, -1, -1, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 9, 10, 11, 12, -1, + -1, -1, -1, -1, -1, 19, 20, -1, -1, -1, + 24, 25, -1, -1, -1, -1, -1, 31, 32, 33, + 34, 35, 36, 37, 38, -1, -1, -1, -1, -1, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 9, 10, 11, 12, -1, -1, -1, -1, -1, + 18, -1, -1, -1, -1, -1, 24, 25, -1, -1, + -1, -1, -1, 31, 32, 33, 34, 35, 36, 37, + 38, -1, 9, 10, 11, 12, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 24, 25, -1, + -1, -1, -1, -1, 31, 32, 33, 34, 35, 36, + 37, 38, -1, -1, -1, 42, -1, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 9, 10, + 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 23, 24, 25, -1, -1, -1, -1, -1, + 31, 32, 33, 34, 35, 36, 37, 38, -1, -1, + -1, -1, -1, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 9, 10, 11, 12, -1, -1, -1, -1, -1, 18, -1, -1, -1, -1, -1, 24, 25, -1, -1, -1, -1, -1, 31, 32, 33, 34, 35, 36, 37, 38, -1, 9, 10, 11, 12, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 24, 25, -1, -1, -1, -1, -1, 31, 32, 33, - 34, 35, 36, 37, 38, -1, -1, -1, 42, -1, + 34, 35, 36, 37, 38, -1, 9, 10, 11, 12, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 9, 10, 11, 12, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 23, 24, 25, -1, -1, - -1, -1, -1, 31, 32, 33, 34, 35, 36, 37, - 38, -1, -1, -1, -1, -1, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 9, 10, 11, - 12, -1, -1, -1, -1, -1, 18, -1, -1, -1, - -1, -1, 24, 25, -1, -1, -1, -1, -1, 31, - 32, 33, 34, 35, 36, 37, 38, -1, 9, 10, - 11, 12, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 24, 25, -1, -1, -1, -1, -1, - 31, 32, 33, 34, 35, 36, 37, 38, -1, 9, - 10, 11, 12, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 24, 25, -1, -1, -1, -1, - -1, 31, 32, 33, 34, 35, 36, 37, 38, -1, - 9, 10, 11, -1, -1, -1, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 24, 25, -1, -1, 10, - 11, -1, 31, 32, 33, 34, 35, 36, 37, 38, - -1, -1, -1, -1, -1, -1, -1, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 37, 38, -1, -1, - -1, -1, -1, -1, -1, -1, 47, 48, 49, 50, - 51, 52, 53, 54 + 54, 24, 25, -1, -1, -1, -1, -1, 31, 32, + 33, 34, 35, 36, 37, 38, -1, 9, 10, 11, + -1, -1, -1, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 24, 25, -1, -1, 10, 11, -1, 31, + 32, 33, 34, 35, 36, 37, 38, -1, -1, -1, + -1, -1, -1, -1, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 37, 38, -1, -1, -1, -1, -1, + -1, -1, -1, 47, 48, 49, 50, 51, 52, 53, + 54 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1224,27 +1247,29 @@ static const yytype_uint8 yystos[] = 60, 61, 63, 70, 72, 75, 81, 0, 16, 68, 71, 57, 54, 39, 4, 70, 81, 81, 70, 56, 1, 56, 76, 70, 4, 30, 1, 70, 1, 4, - 7, 75, 1, 62, 70, 1, 4, 57, 75, 84, - 85, 9, 10, 11, 12, 24, 25, 31, 32, 33, - 34, 35, 36, 37, 38, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 70, 5, 13, - 60, 61, 75, 69, 70, 72, 68, 70, 82, 83, - 77, 57, 59, 18, 13, 13, 27, 4, 4, 78, - 58, 58, 1, 54, 62, 62, 45, 64, 59, 1, - 70, 59, 64, 45, 70, 70, 70, 70, 70, 70, + 7, 75, 1, 62, 70, 1, 4, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 57, 75, 84, 85, 86, + 9, 10, 11, 12, 24, 25, 31, 32, 33, 34, + 35, 36, 37, 38, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 70, 5, 13, 60, + 61, 75, 69, 70, 72, 68, 70, 82, 83, 77, + 57, 59, 18, 13, 13, 27, 4, 4, 78, 58, + 58, 1, 54, 62, 62, 45, 64, 59, 1, 70, + 59, 59, 64, 45, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 54, 56, 75, 1, 59, 62, 70, 13, 69, 55, 58, 78, 4, 56, 73, 74, 70, 1, 70, 56, 56, 1, - 70, 44, 40, 41, 43, 1, 84, 50, 80, 81, - 58, 58, 80, 84, 4, 54, 62, 70, 54, 59, - 62, 4, 56, 83, 43, 4, 55, 58, 55, 19, - 20, 79, 4, 4, 70, 70, 80, 44, 59, 59, - 44, 62, 62, 70, 54, 55, 70, 4, 74, 59, - 70, 70, 57, 57, 42, 80, 80, 80, 70, 54, - 54, 62, 55, 55, 70, 70, 23, 18, 70, 70, - 54, 55, 55, 70, 55, 55, 79, 70, 70, 58, - 55, 58, 70, 58 + 70, 44, 40, 41, 43, 1, 85, 50, 80, 81, + 58, 58, 80, 80, 85, 4, 54, 62, 70, 54, + 59, 62, 4, 56, 83, 43, 4, 55, 58, 55, + 19, 20, 79, 4, 4, 70, 70, 80, 44, 59, + 59, 44, 62, 62, 70, 54, 55, 70, 4, 74, + 59, 70, 70, 57, 57, 42, 80, 80, 80, 70, + 54, 54, 62, 55, 55, 70, 70, 23, 18, 70, + 70, 54, 55, 55, 70, 55, 55, 79, 70, 70, + 58, 55, 58, 70, 58 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ @@ -1261,8 +1286,10 @@ static const yytype_uint8 yyr1[] = 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 82, - 82, 83, 84, 84, 84, 84, 85, 85, 85, 85, - 85, 85 + 82, 83, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 85, 85, 85, 85, 86, 86, 86, 86, 86, 86, + 86 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1279,8 +1306,10 @@ static const yytype_uint8 yyr2[] = 3, 2, 2, 3, 5, 4, 4, 3, 7, 6, 6, 6, 5, 5, 1, 1, 1, 3, 3, 2, 3, 2, 2, 1, 4, 3, 3, 4, 3, 1, - 3, 1, 0, 1, 3, 3, 3, 3, 1, 1, - 5, 5 + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 1, 3, 3, 3, 3, 3, 1, 1, 5, + 5 }; @@ -1783,133 +1812,139 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio case 4: /* IDENT */ #line 35 "parser.y" /* yacc.c:1257 */ { jv_free(((*yyvaluep).literal)); } -#line 1787 "parser.c" /* yacc.c:1257 */ +#line 1816 "parser.c" /* yacc.c:1257 */ break; case 5: /* FIELD */ #line 35 "parser.y" /* yacc.c:1257 */ { jv_free(((*yyvaluep).literal)); } -#line 1793 "parser.c" /* yacc.c:1257 */ +#line 1822 "parser.c" /* yacc.c:1257 */ break; case 6: /* LITERAL */ #line 35 "parser.y" /* yacc.c:1257 */ { jv_free(((*yyvaluep).literal)); } -#line 1799 "parser.c" /* yacc.c:1257 */ +#line 1828 "parser.c" /* yacc.c:1257 */ break; case 7: /* FORMAT */ #line 35 "parser.y" /* yacc.c:1257 */ { jv_free(((*yyvaluep).literal)); } -#line 1805 "parser.c" /* yacc.c:1257 */ +#line 1834 "parser.c" /* yacc.c:1257 */ break; case 40: /* QQSTRING_TEXT */ #line 35 "parser.y" /* yacc.c:1257 */ { jv_free(((*yyvaluep).literal)); } -#line 1811 "parser.c" /* yacc.c:1257 */ +#line 1840 "parser.c" /* yacc.c:1257 */ break; case 67: /* Module */ #line 36 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1817 "parser.c" /* yacc.c:1257 */ +#line 1846 "parser.c" /* yacc.c:1257 */ break; case 68: /* Imports */ #line 36 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1823 "parser.c" /* yacc.c:1257 */ +#line 1852 "parser.c" /* yacc.c:1257 */ break; case 69: /* FuncDefs */ #line 36 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1829 "parser.c" /* yacc.c:1257 */ +#line 1858 "parser.c" /* yacc.c:1257 */ break; case 70: /* Exp */ #line 36 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1835 "parser.c" /* yacc.c:1257 */ +#line 1864 "parser.c" /* yacc.c:1257 */ break; case 71: /* Import */ #line 36 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1841 "parser.c" /* yacc.c:1257 */ +#line 1870 "parser.c" /* yacc.c:1257 */ break; case 72: /* FuncDef */ #line 36 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1847 "parser.c" /* yacc.c:1257 */ +#line 1876 "parser.c" /* yacc.c:1257 */ break; case 73: /* Params */ #line 36 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1853 "parser.c" /* yacc.c:1257 */ +#line 1882 "parser.c" /* yacc.c:1257 */ break; case 74: /* Param */ #line 36 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1859 "parser.c" /* yacc.c:1257 */ +#line 1888 "parser.c" /* yacc.c:1257 */ break; case 75: /* String */ #line 36 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1865 "parser.c" /* yacc.c:1257 */ +#line 1894 "parser.c" /* yacc.c:1257 */ break; case 78: /* QQString */ #line 36 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1871 "parser.c" /* yacc.c:1257 */ +#line 1900 "parser.c" /* yacc.c:1257 */ break; case 79: /* ElseBody */ #line 36 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1877 "parser.c" /* yacc.c:1257 */ +#line 1906 "parser.c" /* yacc.c:1257 */ break; case 80: /* ExpD */ #line 36 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1883 "parser.c" /* yacc.c:1257 */ +#line 1912 "parser.c" /* yacc.c:1257 */ break; case 81: /* Term */ #line 36 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1889 "parser.c" /* yacc.c:1257 */ +#line 1918 "parser.c" /* yacc.c:1257 */ break; case 82: /* Args */ #line 36 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1895 "parser.c" /* yacc.c:1257 */ +#line 1924 "parser.c" /* yacc.c:1257 */ break; case 83: /* Arg */ #line 36 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1901 "parser.c" /* yacc.c:1257 */ +#line 1930 "parser.c" /* yacc.c:1257 */ break; - case 84: /* MkDict */ -#line 36 "parser.y" /* yacc.c:1257 */ - { block_free(((*yyvaluep).blk)); } -#line 1907 "parser.c" /* yacc.c:1257 */ + case 84: /* Keyword */ +#line 35 "parser.y" /* yacc.c:1257 */ + { jv_free(((*yyvaluep).literal)); } +#line 1936 "parser.c" /* yacc.c:1257 */ break; - case 85: /* MkDictPair */ + case 85: /* MkDict */ #line 36 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1913 "parser.c" /* yacc.c:1257 */ +#line 1942 "parser.c" /* yacc.c:1257 */ + break; + + case 86: /* MkDictPair */ +#line 36 "parser.y" /* yacc.c:1257 */ + { block_free(((*yyvaluep).blk)); } +#line 1948 "parser.c" /* yacc.c:1257 */ break; @@ -2201,31 +2236,31 @@ yyreduce: switch (yyn) { case 2: -#line 269 "parser.y" /* yacc.c:1646 */ +#line 270 "parser.y" /* yacc.c:1646 */ { *answer = BLOCK((yyvsp[-2].blk), (yyvsp[-1].blk), gen_op_simple(TOP), (yyvsp[0].blk)); } -#line 2209 "parser.c" /* yacc.c:1646 */ +#line 2244 "parser.c" /* yacc.c:1646 */ break; case 3: -#line 272 "parser.y" /* yacc.c:1646 */ +#line 273 "parser.y" /* yacc.c:1646 */ { *answer = BLOCK((yyvsp[-2].blk), (yyvsp[-1].blk), (yyvsp[0].blk)); } -#line 2217 "parser.c" /* yacc.c:1646 */ +#line 2252 "parser.c" /* yacc.c:1646 */ break; case 4: -#line 277 "parser.y" /* yacc.c:1646 */ +#line 278 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_noop(); } -#line 2225 "parser.c" /* yacc.c:1646 */ +#line 2260 "parser.c" /* yacc.c:1646 */ break; case 5: -#line 280 "parser.y" /* yacc.c:1646 */ +#line 281 "parser.y" /* yacc.c:1646 */ { if (!block_is_const((yyvsp[-1].blk))) { FAIL((yyloc), "Module metadata must be constant."); @@ -2234,358 +2269,358 @@ yyreduce: (yyval.blk) = gen_module((yyvsp[-1].blk)); } } -#line 2238 "parser.c" /* yacc.c:1646 */ +#line 2273 "parser.c" /* yacc.c:1646 */ break; case 6: -#line 290 "parser.y" /* yacc.c:1646 */ +#line 291 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_noop(); } -#line 2246 "parser.c" /* yacc.c:1646 */ +#line 2281 "parser.c" /* yacc.c:1646 */ break; case 7: -#line 293 "parser.y" /* yacc.c:1646 */ +#line 294 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = BLOCK((yyvsp[-1].blk), (yyvsp[0].blk)); } -#line 2254 "parser.c" /* yacc.c:1646 */ +#line 2289 "parser.c" /* yacc.c:1646 */ break; case 8: -#line 298 "parser.y" /* yacc.c:1646 */ +#line 299 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_noop(); } -#line 2262 "parser.c" /* yacc.c:1646 */ +#line 2297 "parser.c" /* yacc.c:1646 */ break; case 9: -#line 301 "parser.y" /* yacc.c:1646 */ +#line 302 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = block_bind((yyvsp[-1].blk), (yyvsp[0].blk), OP_IS_CALL_PSEUDO); } -#line 2270 "parser.c" /* yacc.c:1646 */ - break; - - case 10: -#line 306 "parser.y" /* yacc.c:1646 */ - { - (yyval.blk) = block_bind_referenced((yyvsp[-1].blk), (yyvsp[0].blk), OP_IS_CALL_PSEUDO); -} -#line 2278 "parser.c" /* yacc.c:1646 */ - break; - - case 11: -#line 310 "parser.y" /* yacc.c:1646 */ - { - (yyval.blk) = gen_var_binding((yyvsp[-5].blk), jv_string_value((yyvsp[-2].literal)), (yyvsp[0].blk)); - jv_free((yyvsp[-2].literal)); -} -#line 2287 "parser.c" /* yacc.c:1646 */ - break; - - case 12: -#line 315 "parser.y" /* yacc.c:1646 */ - { - (yyval.blk) = gen_reduce(jv_string_value((yyvsp[-5].literal)), (yyvsp[-8].blk), (yyvsp[-3].blk), (yyvsp[-1].blk)); - jv_free((yyvsp[-5].literal)); -} -#line 2296 "parser.c" /* yacc.c:1646 */ - break; - - case 13: -#line 320 "parser.y" /* yacc.c:1646 */ - { - (yyval.blk) = gen_foreach(jv_string_value((yyvsp[-7].literal)), (yyvsp[-10].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk)); - jv_free((yyvsp[-7].literal)); -} #line 2305 "parser.c" /* yacc.c:1646 */ break; - case 14: -#line 325 "parser.y" /* yacc.c:1646 */ + case 10: +#line 307 "parser.y" /* yacc.c:1646 */ { - (yyval.blk) = gen_foreach(jv_string_value((yyvsp[-5].literal)), (yyvsp[-8].blk), (yyvsp[-3].blk), (yyvsp[-1].blk), gen_noop()); - jv_free((yyvsp[-5].literal)); + (yyval.blk) = block_bind_referenced((yyvsp[-1].blk), (yyvsp[0].blk), OP_IS_CALL_PSEUDO); } -#line 2314 "parser.c" /* yacc.c:1646 */ +#line 2313 "parser.c" /* yacc.c:1646 */ break; - case 15: -#line 330 "parser.y" /* yacc.c:1646 */ + case 11: +#line 311 "parser.y" /* yacc.c:1646 */ { - (yyval.blk) = gen_cond((yyvsp[-3].blk), (yyvsp[-1].blk), (yyvsp[0].blk)); + (yyval.blk) = gen_var_binding((yyvsp[-5].blk), jv_string_value((yyvsp[-2].literal)), (yyvsp[0].blk)); + jv_free((yyvsp[-2].literal)); } #line 2322 "parser.c" /* yacc.c:1646 */ break; - case 16: -#line 333 "parser.y" /* yacc.c:1646 */ + case 12: +#line 316 "parser.y" /* yacc.c:1646 */ { - FAIL((yyloc), "Possibly unterminated 'if' statement"); - (yyval.blk) = (yyvsp[-2].blk); + (yyval.blk) = gen_reduce(jv_string_value((yyvsp[-5].literal)), (yyvsp[-8].blk), (yyvsp[-3].blk), (yyvsp[-1].blk)); + jv_free((yyvsp[-5].literal)); } #line 2331 "parser.c" /* yacc.c:1646 */ break; - case 17: -#line 338 "parser.y" /* yacc.c:1646 */ + case 13: +#line 321 "parser.y" /* yacc.c:1646 */ { - //$$ = BLOCK(gen_op_target(FORK_OPT, $2), $2, $4); - (yyval.blk) = gen_try((yyvsp[-2].blk), gen_try_handler((yyvsp[0].blk))); + (yyval.blk) = gen_foreach(jv_string_value((yyvsp[-7].literal)), (yyvsp[-10].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk)); + jv_free((yyvsp[-7].literal)); } #line 2340 "parser.c" /* yacc.c:1646 */ break; - case 18: -#line 342 "parser.y" /* yacc.c:1646 */ + case 14: +#line 326 "parser.y" /* yacc.c:1646 */ { - //$$ = BLOCK(gen_op_target(FORK_OPT, $2), $2, gen_op_simple(BACKTRACK)); - (yyval.blk) = gen_try((yyvsp[0].blk), gen_op_simple(BACKTRACK)); + (yyval.blk) = gen_foreach(jv_string_value((yyvsp[-5].literal)), (yyvsp[-8].blk), (yyvsp[-3].blk), (yyvsp[-1].blk), gen_noop()); + jv_free((yyvsp[-5].literal)); } #line 2349 "parser.c" /* yacc.c:1646 */ break; + case 15: +#line 331 "parser.y" /* yacc.c:1646 */ + { + (yyval.blk) = gen_cond((yyvsp[-3].blk), (yyvsp[-1].blk), (yyvsp[0].blk)); +} +#line 2357 "parser.c" /* yacc.c:1646 */ + break; + + case 16: +#line 334 "parser.y" /* yacc.c:1646 */ + { + FAIL((yyloc), "Possibly unterminated 'if' statement"); + (yyval.blk) = (yyvsp[-2].blk); +} +#line 2366 "parser.c" /* yacc.c:1646 */ + break; + + case 17: +#line 339 "parser.y" /* yacc.c:1646 */ + { + //$$ = BLOCK(gen_op_target(FORK_OPT, $2), $2, $4); + (yyval.blk) = gen_try((yyvsp[-2].blk), gen_try_handler((yyvsp[0].blk))); +} +#line 2375 "parser.c" /* yacc.c:1646 */ + break; + + case 18: +#line 343 "parser.y" /* yacc.c:1646 */ + { + //$$ = BLOCK(gen_op_target(FORK_OPT, $2), $2, gen_op_simple(BACKTRACK)); + (yyval.blk) = gen_try((yyvsp[0].blk), gen_op_simple(BACKTRACK)); +} +#line 2384 "parser.c" /* yacc.c:1646 */ + break; + case 19: -#line 346 "parser.y" /* yacc.c:1646 */ +#line 347 "parser.y" /* yacc.c:1646 */ { FAIL((yyloc), "Possibly unterminated 'try' statement"); (yyval.blk) = (yyvsp[-2].blk); } -#line 2358 "parser.c" /* yacc.c:1646 */ +#line 2393 "parser.c" /* yacc.c:1646 */ break; case 20: -#line 351 "parser.y" /* yacc.c:1646 */ +#line 352 "parser.y" /* yacc.c:1646 */ { jv v = jv_string_fmt("*label-%s", jv_string_value((yyvsp[-2].literal))); (yyval.blk) = gen_location((yyloc), locations, gen_label(jv_string_value(v), (yyvsp[0].blk))); jv_free((yyvsp[-2].literal)); jv_free(v); } -#line 2369 "parser.c" /* yacc.c:1646 */ +#line 2404 "parser.c" /* yacc.c:1646 */ break; case 21: -#line 363 "parser.y" /* yacc.c:1646 */ +#line 364 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_try((yyvsp[-1].blk), gen_op_simple(BACKTRACK)); } -#line 2377 "parser.c" /* yacc.c:1646 */ +#line 2412 "parser.c" /* yacc.c:1646 */ break; case 22: -#line 367 "parser.y" /* yacc.c:1646 */ +#line 368 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_call("_assign", BLOCK(gen_lambda((yyvsp[-2].blk)), gen_lambda((yyvsp[0].blk)))); } -#line 2385 "parser.c" /* yacc.c:1646 */ +#line 2420 "parser.c" /* yacc.c:1646 */ break; case 23: -#line 371 "parser.y" /* yacc.c:1646 */ +#line 372 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_or((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2393 "parser.c" /* yacc.c:1646 */ +#line 2428 "parser.c" /* yacc.c:1646 */ break; case 24: -#line 375 "parser.y" /* yacc.c:1646 */ +#line 376 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_and((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2401 "parser.c" /* yacc.c:1646 */ +#line 2436 "parser.c" /* yacc.c:1646 */ break; case 25: -#line 379 "parser.y" /* yacc.c:1646 */ +#line 380 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_definedor((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2409 "parser.c" /* yacc.c:1646 */ +#line 2444 "parser.c" /* yacc.c:1646 */ break; case 26: -#line 383 "parser.y" /* yacc.c:1646 */ +#line 384 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_definedor_assign((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2417 "parser.c" /* yacc.c:1646 */ +#line 2452 "parser.c" /* yacc.c:1646 */ break; case 27: -#line 387 "parser.y" /* yacc.c:1646 */ +#line 388 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_call("_modify", BLOCK(gen_lambda((yyvsp[-2].blk)), gen_lambda((yyvsp[0].blk)))); } -#line 2425 "parser.c" /* yacc.c:1646 */ +#line 2460 "parser.c" /* yacc.c:1646 */ break; case 28: -#line 391 "parser.y" /* yacc.c:1646 */ +#line 392 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = block_join((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2433 "parser.c" /* yacc.c:1646 */ +#line 2468 "parser.c" /* yacc.c:1646 */ break; case 29: -#line 395 "parser.y" /* yacc.c:1646 */ +#line 396 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_both((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2441 "parser.c" /* yacc.c:1646 */ +#line 2476 "parser.c" /* yacc.c:1646 */ break; case 30: -#line 399 "parser.y" /* yacc.c:1646 */ +#line 400 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '+'); } -#line 2449 "parser.c" /* yacc.c:1646 */ +#line 2484 "parser.c" /* yacc.c:1646 */ break; case 31: -#line 403 "parser.y" /* yacc.c:1646 */ +#line 404 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '+'); } -#line 2457 "parser.c" /* yacc.c:1646 */ +#line 2492 "parser.c" /* yacc.c:1646 */ break; case 32: -#line 407 "parser.y" /* yacc.c:1646 */ +#line 408 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = BLOCK((yyvsp[0].blk), gen_call("_negate", gen_noop())); } -#line 2465 "parser.c" /* yacc.c:1646 */ +#line 2500 "parser.c" /* yacc.c:1646 */ break; case 33: -#line 411 "parser.y" /* yacc.c:1646 */ +#line 412 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '-'); } -#line 2473 "parser.c" /* yacc.c:1646 */ +#line 2508 "parser.c" /* yacc.c:1646 */ break; case 34: -#line 415 "parser.y" /* yacc.c:1646 */ +#line 416 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '-'); } -#line 2481 "parser.c" /* yacc.c:1646 */ +#line 2516 "parser.c" /* yacc.c:1646 */ break; case 35: -#line 419 "parser.y" /* yacc.c:1646 */ +#line 420 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '*'); } -#line 2489 "parser.c" /* yacc.c:1646 */ +#line 2524 "parser.c" /* yacc.c:1646 */ break; case 36: -#line 423 "parser.y" /* yacc.c:1646 */ +#line 424 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '*'); } -#line 2497 "parser.c" /* yacc.c:1646 */ +#line 2532 "parser.c" /* yacc.c:1646 */ break; case 37: -#line 427 "parser.y" /* yacc.c:1646 */ +#line 428 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '/'); } -#line 2505 "parser.c" /* yacc.c:1646 */ +#line 2540 "parser.c" /* yacc.c:1646 */ break; case 38: -#line 431 "parser.y" /* yacc.c:1646 */ +#line 432 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '%'); } -#line 2513 "parser.c" /* yacc.c:1646 */ +#line 2548 "parser.c" /* yacc.c:1646 */ break; case 39: -#line 435 "parser.y" /* yacc.c:1646 */ +#line 436 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '/'); } -#line 2521 "parser.c" /* yacc.c:1646 */ +#line 2556 "parser.c" /* yacc.c:1646 */ break; case 40: -#line 439 "parser.y" /* yacc.c:1646 */ +#line 440 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '%'); } -#line 2529 "parser.c" /* yacc.c:1646 */ +#line 2564 "parser.c" /* yacc.c:1646 */ break; case 41: -#line 443 "parser.y" /* yacc.c:1646 */ +#line 444 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), EQ); } -#line 2537 "parser.c" /* yacc.c:1646 */ +#line 2572 "parser.c" /* yacc.c:1646 */ break; case 42: -#line 447 "parser.y" /* yacc.c:1646 */ +#line 448 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), NEQ); } -#line 2545 "parser.c" /* yacc.c:1646 */ +#line 2580 "parser.c" /* yacc.c:1646 */ break; case 43: -#line 451 "parser.y" /* yacc.c:1646 */ +#line 452 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '<'); } -#line 2553 "parser.c" /* yacc.c:1646 */ +#line 2588 "parser.c" /* yacc.c:1646 */ break; case 44: -#line 455 "parser.y" /* yacc.c:1646 */ +#line 456 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '>'); } -#line 2561 "parser.c" /* yacc.c:1646 */ +#line 2596 "parser.c" /* yacc.c:1646 */ break; case 45: -#line 459 "parser.y" /* yacc.c:1646 */ +#line 460 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), LESSEQ); } -#line 2569 "parser.c" /* yacc.c:1646 */ +#line 2604 "parser.c" /* yacc.c:1646 */ break; case 46: -#line 463 "parser.y" /* yacc.c:1646 */ +#line 464 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), GREATEREQ); } -#line 2577 "parser.c" /* yacc.c:1646 */ +#line 2612 "parser.c" /* yacc.c:1646 */ break; case 47: -#line 467 "parser.y" /* yacc.c:1646 */ +#line 468 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[0].blk); } -#line 2585 "parser.c" /* yacc.c:1646 */ +#line 2620 "parser.c" /* yacc.c:1646 */ break; case 48: -#line 472 "parser.y" /* yacc.c:1646 */ +#line 473 "parser.y" /* yacc.c:1646 */ { jv v = block_const((yyvsp[-4].blk)); // XXX Make gen_import take only blocks and the int is_data so we @@ -2595,11 +2630,11 @@ yyreduce: jv_free((yyvsp[-1].literal)); jv_free(v); } -#line 2599 "parser.c" /* yacc.c:1646 */ +#line 2634 "parser.c" /* yacc.c:1646 */ break; case 49: -#line 481 "parser.y" /* yacc.c:1646 */ +#line 482 "parser.y" /* yacc.c:1646 */ { jv v = block_const((yyvsp[-3].blk)); (yyval.blk) = gen_import(jv_string_value(v), gen_noop(), jv_string_value((yyvsp[-1].literal)), 0); @@ -2607,11 +2642,11 @@ yyreduce: jv_free((yyvsp[-1].literal)); jv_free(v); } -#line 2611 "parser.c" /* yacc.c:1646 */ +#line 2646 "parser.c" /* yacc.c:1646 */ break; case 50: -#line 488 "parser.y" /* yacc.c:1646 */ +#line 489 "parser.y" /* yacc.c:1646 */ { if (!block_is_const((yyvsp[-1].blk))) { FAIL((yyloc), "Module metadata must be constant."); @@ -2624,11 +2659,11 @@ yyreduce: block_free((yyvsp[-4].blk)); jv_free((yyvsp[-2].literal)); } -#line 2628 "parser.c" /* yacc.c:1646 */ +#line 2663 "parser.c" /* yacc.c:1646 */ break; case 51: -#line 500 "parser.y" /* yacc.c:1646 */ +#line 501 "parser.y" /* yacc.c:1646 */ { if (!block_is_const((yyvsp[-1].blk))) { FAIL((yyloc), "Module metadata must be constant."); @@ -2641,173 +2676,173 @@ yyreduce: block_free((yyvsp[-5].blk)); jv_free((yyvsp[-2].literal)); } -#line 2645 "parser.c" /* yacc.c:1646 */ +#line 2680 "parser.c" /* yacc.c:1646 */ break; case 52: -#line 514 "parser.y" /* yacc.c:1646 */ +#line 515 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_function(jv_string_value((yyvsp[-3].literal)), gen_noop(), (yyvsp[-1].blk)); jv_free((yyvsp[-3].literal)); } -#line 2654 "parser.c" /* yacc.c:1646 */ +#line 2689 "parser.c" /* yacc.c:1646 */ break; case 53: -#line 519 "parser.y" /* yacc.c:1646 */ +#line 520 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_function(jv_string_value((yyvsp[-6].literal)), (yyvsp[-4].blk), (yyvsp[-1].blk)); jv_free((yyvsp[-6].literal)); } -#line 2663 "parser.c" /* yacc.c:1646 */ +#line 2698 "parser.c" /* yacc.c:1646 */ break; case 54: -#line 525 "parser.y" /* yacc.c:1646 */ +#line 526 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[0].blk); } -#line 2671 "parser.c" /* yacc.c:1646 */ +#line 2706 "parser.c" /* yacc.c:1646 */ break; case 55: -#line 528 "parser.y" /* yacc.c:1646 */ +#line 529 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2679 "parser.c" /* yacc.c:1646 */ +#line 2714 "parser.c" /* yacc.c:1646 */ break; case 56: -#line 533 "parser.y" /* yacc.c:1646 */ +#line 534 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_param_regular(jv_string_value((yyvsp[0].literal))); jv_free((yyvsp[0].literal)); } -#line 2688 "parser.c" /* yacc.c:1646 */ +#line 2723 "parser.c" /* yacc.c:1646 */ break; case 57: -#line 538 "parser.y" /* yacc.c:1646 */ +#line 539 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_param(jv_string_value((yyvsp[0].literal))); jv_free((yyvsp[0].literal)); } -#line 2697 "parser.c" /* yacc.c:1646 */ +#line 2732 "parser.c" /* yacc.c:1646 */ break; case 58: -#line 545 "parser.y" /* yacc.c:1646 */ +#line 546 "parser.y" /* yacc.c:1646 */ { (yyval.literal) = jv_string("text"); } -#line 2703 "parser.c" /* yacc.c:1646 */ +#line 2738 "parser.c" /* yacc.c:1646 */ break; case 59: -#line 545 "parser.y" /* yacc.c:1646 */ +#line 546 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[-1].blk); jv_free((yyvsp[-2].literal)); } -#line 2712 "parser.c" /* yacc.c:1646 */ +#line 2747 "parser.c" /* yacc.c:1646 */ break; case 60: -#line 549 "parser.y" /* yacc.c:1646 */ +#line 550 "parser.y" /* yacc.c:1646 */ { (yyval.literal) = (yyvsp[-1].literal); } -#line 2718 "parser.c" /* yacc.c:1646 */ +#line 2753 "parser.c" /* yacc.c:1646 */ break; case 61: -#line 549 "parser.y" /* yacc.c:1646 */ +#line 550 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[-1].blk); jv_free((yyvsp[-2].literal)); } -#line 2727 "parser.c" /* yacc.c:1646 */ +#line 2762 "parser.c" /* yacc.c:1646 */ break; case 62: -#line 556 "parser.y" /* yacc.c:1646 */ +#line 557 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_const(jv_string("")); } -#line 2735 "parser.c" /* yacc.c:1646 */ +#line 2770 "parser.c" /* yacc.c:1646 */ break; case 63: -#line 559 "parser.y" /* yacc.c:1646 */ +#line 560 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-1].blk), gen_const((yyvsp[0].literal)), '+'); } -#line 2743 "parser.c" /* yacc.c:1646 */ +#line 2778 "parser.c" /* yacc.c:1646 */ break; case 64: -#line 562 "parser.y" /* yacc.c:1646 */ +#line 563 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-3].blk), gen_format((yyvsp[-1].blk), jv_copy((yyvsp[-4].literal))), '+'); } -#line 2751 "parser.c" /* yacc.c:1646 */ +#line 2786 "parser.c" /* yacc.c:1646 */ break; case 65: -#line 568 "parser.y" /* yacc.c:1646 */ +#line 569 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_cond((yyvsp[-3].blk), (yyvsp[-1].blk), (yyvsp[0].blk)); } -#line 2759 "parser.c" /* yacc.c:1646 */ +#line 2794 "parser.c" /* yacc.c:1646 */ break; case 66: -#line 571 "parser.y" /* yacc.c:1646 */ +#line 572 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[-1].blk); } -#line 2767 "parser.c" /* yacc.c:1646 */ +#line 2802 "parser.c" /* yacc.c:1646 */ break; case 67: -#line 576 "parser.y" /* yacc.c:1646 */ +#line 577 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = block_join((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2775 "parser.c" /* yacc.c:1646 */ +#line 2810 "parser.c" /* yacc.c:1646 */ break; case 68: -#line 579 "parser.y" /* yacc.c:1646 */ +#line 580 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = BLOCK((yyvsp[0].blk), gen_call("_negate", gen_noop())); } -#line 2783 "parser.c" /* yacc.c:1646 */ +#line 2818 "parser.c" /* yacc.c:1646 */ break; case 69: -#line 582 "parser.y" /* yacc.c:1646 */ +#line 583 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[0].blk); } -#line 2791 "parser.c" /* yacc.c:1646 */ +#line 2826 "parser.c" /* yacc.c:1646 */ break; case 70: -#line 588 "parser.y" /* yacc.c:1646 */ +#line 589 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_noop(); } -#line 2799 "parser.c" /* yacc.c:1646 */ +#line 2834 "parser.c" /* yacc.c:1646 */ break; case 71: -#line 591 "parser.y" /* yacc.c:1646 */ +#line 592 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_call("recurse", gen_noop()); } -#line 2807 "parser.c" /* yacc.c:1646 */ +#line 2842 "parser.c" /* yacc.c:1646 */ break; case 72: -#line 594 "parser.y" /* yacc.c:1646 */ +#line 595 "parser.y" /* yacc.c:1646 */ { jv v = jv_string_fmt("*label-%s", jv_string_value((yyvsp[0].literal))); // impossible symbol (yyval.blk) = gen_location((yyloc), locations, @@ -2816,231 +2851,231 @@ yyreduce: jv_free(v); jv_free((yyvsp[0].literal)); } -#line 2820 "parser.c" /* yacc.c:1646 */ +#line 2855 "parser.c" /* yacc.c:1646 */ break; case 73: -#line 602 "parser.y" /* yacc.c:1646 */ +#line 603 "parser.y" /* yacc.c:1646 */ { FAIL((yyloc), "break requires a label to break to"); (yyval.blk) = gen_noop(); } -#line 2829 "parser.c" /* yacc.c:1646 */ +#line 2864 "parser.c" /* yacc.c:1646 */ break; case 74: -#line 606 "parser.y" /* yacc.c:1646 */ +#line 607 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index_opt((yyvsp[-2].blk), gen_const((yyvsp[-1].literal))); } -#line 2837 "parser.c" /* yacc.c:1646 */ +#line 2872 "parser.c" /* yacc.c:1646 */ break; case 75: -#line 609 "parser.y" /* yacc.c:1646 */ +#line 610 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index_opt(gen_noop(), gen_const((yyvsp[-1].literal))); } -#line 2845 "parser.c" /* yacc.c:1646 */ +#line 2880 "parser.c" /* yacc.c:1646 */ break; case 76: -#line 612 "parser.y" /* yacc.c:1646 */ +#line 613 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index_opt((yyvsp[-3].blk), (yyvsp[-1].blk)); } -#line 2853 "parser.c" /* yacc.c:1646 */ +#line 2888 "parser.c" /* yacc.c:1646 */ break; case 77: -#line 615 "parser.y" /* yacc.c:1646 */ +#line 616 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index_opt(gen_noop(), (yyvsp[-1].blk)); } -#line 2861 "parser.c" /* yacc.c:1646 */ +#line 2896 "parser.c" /* yacc.c:1646 */ break; case 78: -#line 618 "parser.y" /* yacc.c:1646 */ +#line 619 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index((yyvsp[-1].blk), gen_const((yyvsp[0].literal))); } -#line 2869 "parser.c" /* yacc.c:1646 */ +#line 2904 "parser.c" /* yacc.c:1646 */ break; case 79: -#line 621 "parser.y" /* yacc.c:1646 */ +#line 622 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index(gen_noop(), gen_const((yyvsp[0].literal))); } -#line 2877 "parser.c" /* yacc.c:1646 */ +#line 2912 "parser.c" /* yacc.c:1646 */ break; case 80: -#line 624 "parser.y" /* yacc.c:1646 */ +#line 625 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2885 "parser.c" /* yacc.c:1646 */ +#line 2920 "parser.c" /* yacc.c:1646 */ break; case 81: -#line 627 "parser.y" /* yacc.c:1646 */ +#line 628 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index(gen_noop(), (yyvsp[0].blk)); } -#line 2893 "parser.c" /* yacc.c:1646 */ +#line 2928 "parser.c" /* yacc.c:1646 */ break; case 82: -#line 630 "parser.y" /* yacc.c:1646 */ +#line 631 "parser.y" /* yacc.c:1646 */ { FAIL((yyloc), "try .[\"field\"] instead of .field for unusually named fields"); (yyval.blk) = gen_noop(); } -#line 2902 "parser.c" /* yacc.c:1646 */ +#line 2937 "parser.c" /* yacc.c:1646 */ break; case 83: -#line 634 "parser.y" /* yacc.c:1646 */ +#line 635 "parser.y" /* yacc.c:1646 */ { jv_free((yyvsp[-1].literal)); FAIL((yyloc), "try .[\"field\"] instead of .field for unusually named fields"); (yyval.blk) = gen_noop(); } -#line 2912 "parser.c" /* yacc.c:1646 */ +#line 2947 "parser.c" /* yacc.c:1646 */ break; case 84: -#line 640 "parser.y" /* yacc.c:1646 */ +#line 641 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index_opt((yyvsp[-4].blk), (yyvsp[-2].blk)); } -#line 2920 "parser.c" /* yacc.c:1646 */ +#line 2955 "parser.c" /* yacc.c:1646 */ break; case 85: -#line 643 "parser.y" /* yacc.c:1646 */ +#line 644 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index((yyvsp[-3].blk), (yyvsp[-1].blk)); } -#line 2928 "parser.c" /* yacc.c:1646 */ +#line 2963 "parser.c" /* yacc.c:1646 */ break; case 86: -#line 646 "parser.y" /* yacc.c:1646 */ +#line 647 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = block_join((yyvsp[-3].blk), gen_op_simple(EACH_OPT)); } -#line 2936 "parser.c" /* yacc.c:1646 */ +#line 2971 "parser.c" /* yacc.c:1646 */ break; case 87: -#line 649 "parser.y" /* yacc.c:1646 */ +#line 650 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = block_join((yyvsp[-2].blk), gen_op_simple(EACH)); } -#line 2944 "parser.c" /* yacc.c:1646 */ +#line 2979 "parser.c" /* yacc.c:1646 */ break; case 88: -#line 652 "parser.y" /* yacc.c:1646 */ +#line 653 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_slice_index((yyvsp[-6].blk), (yyvsp[-4].blk), (yyvsp[-2].blk), INDEX_OPT); } -#line 2952 "parser.c" /* yacc.c:1646 */ +#line 2987 "parser.c" /* yacc.c:1646 */ break; case 89: -#line 655 "parser.y" /* yacc.c:1646 */ +#line 656 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_slice_index((yyvsp[-5].blk), (yyvsp[-3].blk), gen_const(jv_null()), INDEX_OPT); } -#line 2960 "parser.c" /* yacc.c:1646 */ +#line 2995 "parser.c" /* yacc.c:1646 */ break; case 90: -#line 658 "parser.y" /* yacc.c:1646 */ +#line 659 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_slice_index((yyvsp[-5].blk), gen_const(jv_null()), (yyvsp[-2].blk), INDEX_OPT); } -#line 2968 "parser.c" /* yacc.c:1646 */ +#line 3003 "parser.c" /* yacc.c:1646 */ break; case 91: -#line 661 "parser.y" /* yacc.c:1646 */ +#line 662 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_slice_index((yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk), INDEX); } -#line 2976 "parser.c" /* yacc.c:1646 */ +#line 3011 "parser.c" /* yacc.c:1646 */ break; case 92: -#line 664 "parser.y" /* yacc.c:1646 */ +#line 665 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_slice_index((yyvsp[-4].blk), (yyvsp[-2].blk), gen_const(jv_null()), INDEX); } -#line 2984 "parser.c" /* yacc.c:1646 */ +#line 3019 "parser.c" /* yacc.c:1646 */ break; case 93: -#line 667 "parser.y" /* yacc.c:1646 */ +#line 668 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_slice_index((yyvsp[-4].blk), gen_const(jv_null()), (yyvsp[-1].blk), INDEX); } -#line 2992 "parser.c" /* yacc.c:1646 */ +#line 3027 "parser.c" /* yacc.c:1646 */ break; case 94: -#line 670 "parser.y" /* yacc.c:1646 */ +#line 671 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_const((yyvsp[0].literal)); } -#line 3000 "parser.c" /* yacc.c:1646 */ +#line 3035 "parser.c" /* yacc.c:1646 */ break; case 95: -#line 673 "parser.y" /* yacc.c:1646 */ +#line 674 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[0].blk); } -#line 3008 "parser.c" /* yacc.c:1646 */ +#line 3043 "parser.c" /* yacc.c:1646 */ break; case 96: -#line 676 "parser.y" /* yacc.c:1646 */ +#line 677 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_format(gen_noop(), (yyvsp[0].literal)); } -#line 3016 "parser.c" /* yacc.c:1646 */ +#line 3051 "parser.c" /* yacc.c:1646 */ break; case 97: -#line 679 "parser.y" /* yacc.c:1646 */ +#line 680 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[-1].blk); } -#line 3024 "parser.c" /* yacc.c:1646 */ +#line 3059 "parser.c" /* yacc.c:1646 */ break; case 98: -#line 682 "parser.y" /* yacc.c:1646 */ +#line 683 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_collect((yyvsp[-1].blk)); } -#line 3032 "parser.c" /* yacc.c:1646 */ +#line 3067 "parser.c" /* yacc.c:1646 */ break; case 99: -#line 685 "parser.y" /* yacc.c:1646 */ +#line 686 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_const(jv_array()); } -#line 3040 "parser.c" /* yacc.c:1646 */ +#line 3075 "parser.c" /* yacc.c:1646 */ break; case 100: -#line 688 "parser.y" /* yacc.c:1646 */ +#line 689 "parser.y" /* yacc.c:1646 */ { block o = gen_const_object((yyvsp[-1].blk)); if (o.first != NULL) @@ -3048,29 +3083,29 @@ yyreduce: else (yyval.blk) = BLOCK(gen_subexp(gen_const(jv_object())), (yyvsp[-1].blk), gen_op_simple(POP)); } -#line 3052 "parser.c" /* yacc.c:1646 */ +#line 3087 "parser.c" /* yacc.c:1646 */ break; case 101: -#line 695 "parser.y" /* yacc.c:1646 */ +#line 696 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_const(JV_OBJECT(jv_string("file"), jv_copy(locations->fname), jv_string("line"), jv_number(locfile_get_line(locations, (yyloc).start) + 1))); } -#line 3061 "parser.c" /* yacc.c:1646 */ +#line 3096 "parser.c" /* yacc.c:1646 */ break; case 102: -#line 699 "parser.y" /* yacc.c:1646 */ +#line 700 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_location((yyloc), locations, gen_op_unbound(LOADV, jv_string_value((yyvsp[0].literal)))); jv_free((yyvsp[0].literal)); } -#line 3070 "parser.c" /* yacc.c:1646 */ +#line 3105 "parser.c" /* yacc.c:1646 */ break; case 103: -#line 703 "parser.y" /* yacc.c:1646 */ +#line 704 "parser.y" /* yacc.c:1646 */ { const char *s = jv_string_value((yyvsp[0].literal)); if (strcmp(s, "false") == 0) @@ -3083,143 +3118,295 @@ yyreduce: (yyval.blk) = gen_location((yyloc), locations, gen_call(s, gen_noop())); jv_free((yyvsp[0].literal)); } -#line 3087 "parser.c" /* yacc.c:1646 */ +#line 3122 "parser.c" /* yacc.c:1646 */ break; case 104: -#line 715 "parser.y" /* yacc.c:1646 */ +#line 716 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_call(jv_string_value((yyvsp[-3].literal)), (yyvsp[-1].blk)); (yyval.blk) = gen_location((yylsp[-3]), locations, (yyval.blk)); jv_free((yyvsp[-3].literal)); } -#line 3097 "parser.c" /* yacc.c:1646 */ +#line 3132 "parser.c" /* yacc.c:1646 */ break; case 105: -#line 720 "parser.y" /* yacc.c:1646 */ +#line 721 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_noop(); } -#line 3103 "parser.c" /* yacc.c:1646 */ +#line 3138 "parser.c" /* yacc.c:1646 */ break; case 106: -#line 721 "parser.y" /* yacc.c:1646 */ +#line 722 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_noop(); } -#line 3109 "parser.c" /* yacc.c:1646 */ +#line 3144 "parser.c" /* yacc.c:1646 */ break; case 107: -#line 722 "parser.y" /* yacc.c:1646 */ +#line 723 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[-3].blk); } -#line 3115 "parser.c" /* yacc.c:1646 */ +#line 3150 "parser.c" /* yacc.c:1646 */ break; case 108: -#line 723 "parser.y" /* yacc.c:1646 */ +#line 724 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_noop(); } -#line 3121 "parser.c" /* yacc.c:1646 */ +#line 3156 "parser.c" /* yacc.c:1646 */ break; case 109: -#line 726 "parser.y" /* yacc.c:1646 */ +#line 727 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[0].blk); } -#line 3129 "parser.c" /* yacc.c:1646 */ +#line 3164 "parser.c" /* yacc.c:1646 */ break; case 110: -#line 729 "parser.y" /* yacc.c:1646 */ +#line 730 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3137 "parser.c" /* yacc.c:1646 */ +#line 3172 "parser.c" /* yacc.c:1646 */ break; case 111: -#line 734 "parser.y" /* yacc.c:1646 */ +#line 735 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_lambda((yyvsp[0].blk)); } -#line 3145 "parser.c" /* yacc.c:1646 */ +#line 3180 "parser.c" /* yacc.c:1646 */ break; case 112: -#line 739 "parser.y" /* yacc.c:1646 */ - { - (yyval.blk)=gen_noop(); +#line 740 "parser.y" /* yacc.c:1646 */ + { + (yyval.literal) = jv_string("as"); } -#line 3153 "parser.c" /* yacc.c:1646 */ +#line 3188 "parser.c" /* yacc.c:1646 */ break; case 113: -#line 742 "parser.y" /* yacc.c:1646 */ - { (yyval.blk) = (yyvsp[0].blk); } -#line 3159 "parser.c" /* yacc.c:1646 */ +#line 743 "parser.y" /* yacc.c:1646 */ + { + (yyval.literal) = jv_string("def"); +} +#line 3196 "parser.c" /* yacc.c:1646 */ break; case 114: -#line 743 "parser.y" /* yacc.c:1646 */ - { (yyval.blk)=block_join((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3165 "parser.c" /* yacc.c:1646 */ +#line 746 "parser.y" /* yacc.c:1646 */ + { + (yyval.literal) = jv_string("module"); +} +#line 3204 "parser.c" /* yacc.c:1646 */ break; case 115: -#line 744 "parser.y" /* yacc.c:1646 */ - { (yyval.blk) = (yyvsp[0].blk); } -#line 3171 "parser.c" /* yacc.c:1646 */ +#line 749 "parser.y" /* yacc.c:1646 */ + { + (yyval.literal) = jv_string("import"); +} +#line 3212 "parser.c" /* yacc.c:1646 */ break; case 116: -#line 747 "parser.y" /* yacc.c:1646 */ - { - (yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); - } -#line 3179 "parser.c" /* yacc.c:1646 */ +#line 752 "parser.y" /* yacc.c:1646 */ + { + (yyval.literal) = jv_string("if"); +} +#line 3220 "parser.c" /* yacc.c:1646 */ break; case 117: -#line 750 "parser.y" /* yacc.c:1646 */ +#line 755 "parser.y" /* yacc.c:1646 */ { - (yyval.blk) = gen_dictpair((yyvsp[-2].blk), (yyvsp[0].blk)); - } -#line 3187 "parser.c" /* yacc.c:1646 */ + (yyval.literal) = jv_string("then"); +} +#line 3228 "parser.c" /* yacc.c:1646 */ break; case 118: -#line 753 "parser.y" /* yacc.c:1646 */ +#line 758 "parser.y" /* yacc.c:1646 */ + { + (yyval.literal) = jv_string("else"); +} +#line 3236 "parser.c" /* yacc.c:1646 */ + break; + + case 119: +#line 761 "parser.y" /* yacc.c:1646 */ + { + (yyval.literal) = jv_string("elif"); +} +#line 3244 "parser.c" /* yacc.c:1646 */ + break; + + case 120: +#line 764 "parser.y" /* yacc.c:1646 */ + { + (yyval.literal) = jv_string("reduce"); +} +#line 3252 "parser.c" /* yacc.c:1646 */ + break; + + case 121: +#line 767 "parser.y" /* yacc.c:1646 */ + { + (yyval.literal) = jv_string("foreach"); +} +#line 3260 "parser.c" /* yacc.c:1646 */ + break; + + case 122: +#line 770 "parser.y" /* yacc.c:1646 */ + { + (yyval.literal) = jv_string("end"); +} +#line 3268 "parser.c" /* yacc.c:1646 */ + break; + + case 123: +#line 773 "parser.y" /* yacc.c:1646 */ + { + (yyval.literal) = jv_string("and"); +} +#line 3276 "parser.c" /* yacc.c:1646 */ + break; + + case 124: +#line 776 "parser.y" /* yacc.c:1646 */ + { + (yyval.literal) = jv_string("or"); +} +#line 3284 "parser.c" /* yacc.c:1646 */ + break; + + case 125: +#line 779 "parser.y" /* yacc.c:1646 */ + { + (yyval.literal) = jv_string("try"); +} +#line 3292 "parser.c" /* yacc.c:1646 */ + break; + + case 126: +#line 782 "parser.y" /* yacc.c:1646 */ + { + (yyval.literal) = jv_string("catch"); +} +#line 3300 "parser.c" /* yacc.c:1646 */ + break; + + case 127: +#line 785 "parser.y" /* yacc.c:1646 */ + { + (yyval.literal) = jv_string("label"); +} +#line 3308 "parser.c" /* yacc.c:1646 */ + break; + + case 128: +#line 788 "parser.y" /* yacc.c:1646 */ + { + (yyval.literal) = jv_string("break"); +} +#line 3316 "parser.c" /* yacc.c:1646 */ + break; + + case 129: +#line 791 "parser.y" /* yacc.c:1646 */ + { + (yyval.literal) = jv_string("__loc__"); +} +#line 3324 "parser.c" /* yacc.c:1646 */ + break; + + case 130: +#line 796 "parser.y" /* yacc.c:1646 */ + { + (yyval.blk)=gen_noop(); +} +#line 3332 "parser.c" /* yacc.c:1646 */ + break; + + case 131: +#line 799 "parser.y" /* yacc.c:1646 */ + { (yyval.blk) = (yyvsp[0].blk); } +#line 3338 "parser.c" /* yacc.c:1646 */ + break; + + case 132: +#line 800 "parser.y" /* yacc.c:1646 */ + { (yyval.blk)=block_join((yyvsp[-2].blk), (yyvsp[0].blk)); } +#line 3344 "parser.c" /* yacc.c:1646 */ + break; + + case 133: +#line 801 "parser.y" /* yacc.c:1646 */ + { (yyval.blk) = (yyvsp[0].blk); } +#line 3350 "parser.c" /* yacc.c:1646 */ + break; + + case 134: +#line 804 "parser.y" /* yacc.c:1646 */ + { + (yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); + } +#line 3358 "parser.c" /* yacc.c:1646 */ + break; + + case 135: +#line 807 "parser.y" /* yacc.c:1646 */ + { + (yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); + } +#line 3366 "parser.c" /* yacc.c:1646 */ + break; + + case 136: +#line 810 "parser.y" /* yacc.c:1646 */ + { + (yyval.blk) = gen_dictpair((yyvsp[-2].blk), (yyvsp[0].blk)); + } +#line 3374 "parser.c" /* yacc.c:1646 */ + break; + + case 137: +#line 813 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_dictpair((yyvsp[0].blk), BLOCK(gen_op_simple(POP), gen_op_simple(DUP2), gen_op_simple(DUP2), gen_op_simple(INDEX))); } -#line 3196 "parser.c" /* yacc.c:1646 */ +#line 3383 "parser.c" /* yacc.c:1646 */ break; - case 119: -#line 757 "parser.y" /* yacc.c:1646 */ + case 138: +#line 817 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_dictpair(gen_const(jv_copy((yyvsp[0].literal))), gen_index(gen_noop(), gen_const((yyvsp[0].literal)))); } -#line 3205 "parser.c" /* yacc.c:1646 */ +#line 3392 "parser.c" /* yacc.c:1646 */ break; - case 120: -#line 761 "parser.y" /* yacc.c:1646 */ + case 139: +#line 821 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_dictpair((yyvsp[-3].blk), (yyvsp[0].blk)); } -#line 3213 "parser.c" /* yacc.c:1646 */ +#line 3400 "parser.c" /* yacc.c:1646 */ break; - case 121: -#line 764 "parser.y" /* yacc.c:1646 */ + case 140: +#line 824 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[0].blk); } -#line 3219 "parser.c" /* yacc.c:1646 */ +#line 3406 "parser.c" /* yacc.c:1646 */ break; -#line 3223 "parser.c" /* yacc.c:1646 */ +#line 3410 "parser.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -3454,7 +3641,7 @@ yyreturn: #endif return yyresult; } -#line 765 "parser.y" /* yacc.c:1906 */ +#line 825 "parser.y" /* yacc.c:1906 */ int jq_parse(struct locfile* locations, block* answer) {