diff --git a/parser.c b/parser.c index 0a799cb1..e5cbf95d 100644 --- a/parser.c +++ b/parser.c @@ -169,7 +169,8 @@ struct lexer_param; QQSTRING_INTERP_START = 297, QQSTRING_INTERP_END = 298, QQSTRING_END = 299, - FUNCDEF = 300 + FUNCDEF = 300, + NONOPT = 301 }; #endif /* Tokens. */ @@ -216,6 +217,7 @@ struct lexer_param; #define QQSTRING_INTERP_END 298 #define QQSTRING_END 299 #define FUNCDEF 300 +#define NONOPT 301 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -227,7 +229,7 @@ union YYSTYPE jv literal; block blk; -#line 231 "parser.c" /* yacc.c:355 */ +#line 233 "parser.c" /* yacc.c:355 */ }; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 @@ -254,7 +256,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 115 "parser.y" /* yacc.c:358 */ +#line 118 "parser.y" /* yacc.c:358 */ #include "lexer.h" struct lexer_param { @@ -410,7 +412,7 @@ static block gen_update(block object, block val, int optype) { } -#line 414 "parser.c" /* yacc.c:358 */ +#line 416 "parser.c" /* yacc.c:358 */ #ifdef short # undef short @@ -654,10 +656,10 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 27 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1919 +#define YYLAST 2110 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 67 +#define YYNTOKENS 68 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 26 /* YYNRULES -- Number of rules. */ @@ -668,7 +670,7 @@ union yyalloc /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 300 +#define YYMAXUTOK 301 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -680,16 +682,16 @@ static const yytype_uint8 yytranslate[] = 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 60, 55, 2, 2, - 58, 59, 53, 51, 47, 52, 62, 54, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 61, 57, - 49, 48, 50, 56, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 61, 55, 2, 2, + 59, 60, 53, 51, 47, 52, 63, 54, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 62, 58, + 49, 48, 50, 57, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 63, 2, 64, 2, 2, 2, 2, 2, 2, + 2, 64, 2, 65, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 65, 46, 66, 2, 2, 2, 2, + 2, 2, 2, 66, 46, 67, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -707,29 +709,29 @@ static const yytype_uint8 yytranslate[] = 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45 + 45, 56 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 273, 273, 276, 281, 284, 294, 297, 302, 305, - 310, 314, 318, 322, 326, 330, 333, 338, 342, 346, - 351, 363, 367, 371, 375, 379, 383, 387, 391, 395, - 399, 403, 407, 411, 415, 419, 423, 427, 433, 439, - 443, 447, 451, 455, 459, 463, 467, 471, 476, 485, - 492, 498, 510, 521, 535, 540, 546, 549, 554, 559, - 566, 566, 570, 570, 577, 580, 583, 589, 592, 597, - 600, 603, 609, 612, 615, 623, 627, 630, 633, 636, - 639, 642, 645, 648, 651, 655, 661, 664, 667, 670, - 673, 676, 679, 682, 685, 688, 691, 694, 697, 700, - 703, 706, 709, 716, 720, 724, 736, 741, 742, 743, - 744, 747, 750, 755, 760, 764, 767, 772, 775, 780, - 783, 788, 791, 794, 797, 800, 805, 808, 811, 814, - 817, 820, 823, 826, 829, 832, 835, 838, 841, 844, - 847, 850, 853, 856, 859, 864, 867, 868, 869, 872, - 875, 878, 881, 885, 889, 893, 896 + 0, 276, 276, 279, 284, 287, 297, 300, 305, 308, + 313, 317, 321, 325, 329, 333, 336, 341, 345, 349, + 354, 361, 365, 369, 373, 377, 381, 385, 389, 393, + 397, 401, 405, 409, 413, 417, 421, 425, 431, 437, + 441, 445, 449, 453, 457, 461, 465, 469, 474, 483, + 490, 496, 508, 519, 533, 538, 544, 547, 552, 557, + 564, 564, 568, 568, 575, 578, 581, 587, 590, 595, + 598, 601, 607, 610, 613, 621, 625, 628, 631, 634, + 637, 640, 643, 646, 649, 653, 659, 662, 665, 668, + 671, 674, 677, 680, 683, 686, 689, 692, 695, 698, + 701, 704, 707, 714, 718, 722, 734, 739, 740, 741, + 742, 745, 748, 753, 758, 762, 765, 770, 773, 778, + 781, 786, 789, 792, 795, 798, 803, 806, 809, 812, + 815, 818, 821, 824, 827, 830, 833, 836, 839, 842, + 845, 848, 851, 854, 857, 862, 865, 866, 867, 870, + 873, 876, 879, 883, 887, 891, 894 }; #endif @@ -747,12 +749,12 @@ static const char *const yytname[] = "\"/=\"", "\"//=\"", "\"<=\"", "\">=\"", "QQSTRING_START", "QQSTRING_TEXT", "QQSTRING_INTERP_START", "QQSTRING_INTERP_END", "QQSTRING_END", "FUNCDEF", "'|'", "','", "'='", "'<'", "'>'", "'+'", - "'-'", "'*'", "'/'", "'%'", "'?'", "';'", "'('", "')'", "'$'", "':'", - "'.'", "'['", "']'", "'{'", "'}'", "$accept", "TopLevel", "Module", - "Imports", "FuncDefs", "Exp", "Import", "FuncDef", "Params", "Param", - "String", "@1", "@2", "QQString", "ElseBody", "ExpD", "Term", "Args", - "Arg", "Pattern", "ArrayPats", "ObjPats", "ObjPat", "Keyword", "MkDict", - "MkDictPair", YY_NULLPTR + "'-'", "'*'", "'/'", "'%'", "NONOPT", "'?'", "';'", "'('", "')'", "'$'", + "':'", "'.'", "'['", "']'", "'{'", "'}'", "$accept", "TopLevel", + "Module", "Imports", "FuncDefs", "Exp", "Import", "FuncDef", "Params", + "Param", "String", "@1", "@2", "QQString", "ElseBody", "ExpD", "Term", + "Args", "Arg", "Pattern", "ArrayPats", "ObjPats", "ObjPat", "Keyword", + "MkDict", "MkDictPair", YY_NULLPTR }; #endif @@ -766,8 +768,8 @@ static const yytype_uint16 yytoknum[] = 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 124, 44, 61, 60, - 62, 43, 45, 42, 47, 37, 63, 59, 40, 41, - 36, 58, 46, 91, 93, 123, 125 + 62, 43, 45, 42, 47, 37, 301, 63, 59, 40, + 41, 36, 58, 46, 91, 93, 123, 125 }; # endif @@ -785,37 +787,37 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - 27, 856, 38, 36, 7, 5, -152, 22, -152, 41, - 856, 835, 835, 856, 20, 0, -152, 856, 463, 23, - 276, 436, 340, 1292, 856, -152, 1, -152, 3, 3, - 856, 36, 856, -152, -152, -21, 1620, 6, 8, 31, - 63, -152, 77, -152, 2, 56, 1132, -152, -152, -152, - 116, 22, 66, 62, -152, 982, -19, 69, -152, -152, + 22, 828, 42, 46, 9, -2, -152, 27, -152, 55, + 828, 871, 871, 828, 20, 0, -152, 828, 466, 23, + 276, 439, 341, 1374, 828, -152, 1, -152, 3, 3, + 828, 46, 828, -152, -152, -18, 1823, 6, 8, 50, + 107, -152, 109, -152, -8, 57, 1209, -152, -152, -152, + 114, 27, 65, 61, -152, 1010, -19, 68, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, 526, 127, 73, - 75, 72, 92, 856, 856, 856, 856, 856, 856, 856, - 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, - 856, 856, 856, 856, 856, 856, 856, -152, -152, 1780, - 84, -24, 3, 190, 131, 643, -152, 1780, 856, -152, - 1780, -11, -152, -152, 18, 856, 553, -24, -24, 616, - 99, -152, 33, -152, -152, -152, -152, -152, -152, 395, - -152, 773, 89, 1164, -152, 773, 773, -152, 395, 1844, - 335, 335, 1812, 1863, 108, 1844, 1844, 1844, 1844, 1844, - 1844, 335, 335, 1780, 1812, 1844, 335, 335, 2, 2, - 93, 93, 93, -152, 146, -24, 913, 105, 97, 90, - 856, 100, 949, 19, -152, 1325, -152, 856, -152, 79, - -152, 151, 54, -152, 1358, -152, 1572, 107, 109, -152, - -152, 856, -152, 856, -152, 119, -152, 773, 122, 10, - 111, 112, 122, 122, -152, -152, -152, -13, 113, 856, - 165, 114, -17, -152, 115, 856, -152, -152, 1015, -152, - 705, 121, 732, 166, -152, -152, -152, -152, 18, 117, - -152, 856, 856, -152, 856, 856, 1780, 1652, -152, 773, - 773, 773, -24, -152, -24, 1196, -152, -24, 913, -152, - -24, 1780, 125, 126, 1048, -152, -152, 1391, 794, -152, - 856, 1700, 1748, 1424, 1457, -152, 122, 122, 122, -152, - -152, 123, -152, -152, -152, -152, -152, 129, -152, -152, - 1490, 1523, -152, 856, 856, 856, -24, -152, -152, -152, - 1572, 1228, 1081, -152, -152, -152, 856, -152, 1260, -152 + -152, -152, -152, -152, -152, -152, -152, 530, 127, 72, + 74, 71, 92, 828, 828, 828, 828, 828, 828, 828, + 828, 828, 828, 828, 828, 828, 828, 828, 828, 828, + 828, 828, 828, 828, 828, 828, 828, -152, -152, 1987, + 83, -26, 3, 190, 131, 648, -152, 1987, 828, -152, + 1987, -7, -152, -152, 18, 828, 557, -26, -26, 621, + 99, -152, 16, -152, -152, -152, -152, -152, -152, 397, + -152, 865, 88, 1242, -152, 865, 865, -152, 397, 2053, + 336, 336, 2020, 928, 108, 2053, 2053, 2053, 2053, 2053, + 2053, 336, 336, 1987, 2020, 2053, 336, 336, -8, -8, + 93, 93, 93, -152, 145, -26, 929, 105, 96, 89, + 828, 98, 961, 19, -152, 1424, -152, 828, -152, 79, + -152, 152, 17, -152, 1474, -152, 1774, 110, 111, -152, + -152, 828, -152, 828, -152, 117, -152, 865, 120, 10, + 106, 112, 120, 120, -152, -152, -152, -13, 113, 828, + 163, 115, -11, -152, 116, 828, -152, -152, 1059, -152, + 711, 119, 738, 168, -152, -152, -152, -152, 18, 121, + -152, 828, 828, -152, 828, 828, 1987, 1856, -152, 865, + 865, 865, -26, -152, -26, 1275, -152, -26, 929, -152, + -26, 1987, 124, 125, 1108, -152, -152, 1524, 801, -152, + 828, 1905, 1954, 1574, 1624, -152, 120, 120, 120, -152, + -152, 122, -152, -152, -152, -152, -152, 128, -152, -152, + 1674, 1724, -152, 828, 828, 828, -26, -152, -152, -152, + 1774, 1308, 1157, -152, -152, -152, 828, -152, 1341, -152 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -859,9 +861,9 @@ static const yytype_uint8 yydefact[] = /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -152, -152, -152, 152, 70, -1, -152, -12, -152, -51, - 4, -152, -152, 67, -111, -141, -4, -152, 12, -125, - -152, -152, -66, -151, -104, -152 + -152, -152, -152, 142, 69, -1, -152, -12, -152, -50, + 4, -152, -152, 66, -110, -141, -4, -152, 5, -125, + -152, -152, -65, -151, -109, -152 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -880,29 +882,29 @@ static const yytype_int16 yytable[] = 23, 41, 197, 198, 212, 213, 110, 37, 38, 36, 51, 110, 39, 110, 111, 110, 44, 46, 118, 127, 55, 128, 190, 232, 52, 224, 79, 47, 139, 117, - 258, 120, 114, 115, 252, 206, 174, 124, 27, 175, - 125, 176, 1, 16, 214, 35, 187, 140, 188, 259, - 216, 253, 28, 29, 48, 104, 105, 106, 107, 129, - 42, 33, 34, 112, 113, 32, 248, 130, 112, 113, - 112, 113, 112, 113, 202, 203, 143, 204, 191, 233, - 40, 131, 149, 150, 151, 152, 153, 154, 155, 156, + 206, 120, 114, 115, 252, 174, 258, 1, 175, 214, + 176, 124, 27, 16, 125, 104, 105, 106, 140, 107, + 216, 187, 253, 188, 48, 33, 259, 202, 203, 35, + 204, 42, 28, 29, 112, 113, 248, 34, 32, 112, + 113, 112, 113, 112, 113, 238, 143, 239, 129, 191, + 233, 40, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 118, 224, 276, 277, - 278, 238, 182, 239, 185, 133, 178, 135, 84, 85, + 278, 130, 182, 131, 185, 135, 178, 133, 84, 85, 202, 203, 136, 236, 194, 196, 137, 279, 200, 280, 141, 144, 282, 87, 145, 284, 146, 209, 147, 148, - 173, 209, 209, 79, 183, 201, 95, 96, 210, 107, - 215, 225, 79, 226, 227, 237, 229, 100, 101, 102, - 103, 104, 105, 106, 107, 244, 139, 245, 249, 256, - 268, 303, 250, 251, 254, 257, 260, 265, 270, 228, - 221, 285, 286, 119, 296, 297, 120, 269, 186, 304, - 189, 179, 283, 0, 4, 5, 6, 7, 8, 235, + 173, 209, 209, 79, 183, 201, 95, 96, 210, 215, + 107, 225, 79, 226, 227, 229, 237, 100, 101, 102, + 103, 104, 105, 106, 139, 107, 249, 256, 250, 244, + 245, 303, 268, 119, 251, 254, 265, 257, 260, 228, + 221, 285, 286, 270, 296, 297, 120, 186, 269, 189, + 304, 179, 235, 283, 4, 5, 6, 7, 8, 0, 246, 0, 247, 209, 9, 0, 0, 0, 10, 0, 0, 0, 11, 12, 0, 0, 0, 13, 255, 14, 15, 0, 0, 0, 261, 0, 0, 0, 0, 264, 16, 267, 0, 0, 0, 0, 0, 0, 0, 0, - 271, 272, 17, 273, 274, 209, 209, 209, 18, 0, - 19, 180, 20, 21, 181, 22, 0, 0, 0, 0, + 271, 272, 17, 273, 274, 209, 209, 209, 0, 18, + 0, 19, 180, 20, 21, 181, 22, 0, 0, 0, 0, 0, 221, 0, 0, 0, 0, 290, 0, 291, 0, 0, 0, 0, 0, 0, -72, 49, 0, 0, 50, -72, 0, 51, 0, -72, -72, -72, -72, -72, @@ -910,165 +912,185 @@ static const yytype_int16 yytable[] = -72, -72, -72, 0, -72, 308, 0, 0, -72, -72, -72, -72, -72, -72, -72, -72, 16, 0, 0, -72, 0, 0, -72, -72, -72, -72, -72, -72, -72, -72, - -72, -72, -72, -72, 0, -72, 0, -72, -72, -72, - -72, 56, -72, 0, 57, -146, -146, 51, 0, 0, - 0, 0, 0, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 0, -146, -146, 0, 0, 0, 0, 0, - 16, 0, 0, 0, -146, -146, 102, 103, 104, 105, - 106, 107, 0, 0, 0, 0, 205, 0, 77, 57, - 78, 0, 51, 0, 0, 0, -145, 0, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 0, 0, 0, - 0, 0, 0, 0, 0, 16, 0, 53, 0, 0, - 4, 5, 6, 7, 8, 0, 0, 0, 0, 0, - 9, 0, 0, 77, 10, 78, 0, 0, 11, 12, - 0, -145, 0, 13, 45, 14, 15, 4, 5, 6, - 7, 8, 0, 0, 0, 0, 16, 9, 0, 0, - 0, 10, 0, 0, 0, 11, 12, 0, 17, 0, - 13, 0, 14, 15, 18, 0, 19, 0, 20, 21, - 54, 22, 0, 16, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, - 0, 18, 0, 19, 0, 20, 21, 142, 22, 0, - 4, 5, 6, 7, 8, 0, 0, 0, 0, 0, + -72, -72, 0, -72, -72, 0, -72, 0, -72, -72, + -72, -72, 56, -72, 0, 57, -146, -146, 51, 0, + 0, 0, 0, 0, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 0, -146, -146, 0, 0, 0, 0, + 0, 16, 0, 0, 0, -146, -146, 102, 103, 104, + 105, 106, 0, 107, 0, 0, 0, 0, 205, 0, + 77, 57, 78, 0, 51, 0, 0, 0, -145, 0, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 0, + 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, + 53, 0, 0, 4, 5, 6, 7, 8, 0, 0, + 0, 0, 0, 9, 0, 0, 77, 10, 78, 0, + 0, 11, 12, 0, -145, 0, 13, 45, 14, 15, + 4, 5, 6, 7, 8, 0, 0, 0, 0, 16, 9, 0, 0, 0, 10, 0, 0, 0, 11, 12, - 0, 0, 0, 13, 195, 14, 15, 4, 5, 6, - 7, 8, 0, 0, 0, 0, 16, 9, 0, 0, - 0, 10, 0, 0, 0, 11, 12, 0, 17, 0, - 13, 0, 14, 15, 18, 0, 19, 0, 20, 21, - 0, 22, 0, 16, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, - 0, 18, 0, 19, 0, 20, 21, 199, 22, 0, - 4, 5, 6, 7, 8, 0, 0, 0, 0, 0, - 9, 0, 0, 0, 10, 0, 0, 0, 11, 12, - 0, 0, 0, 13, 0, 14, 15, 4, 5, 6, - 7, 8, 0, 0, 0, 0, 16, 9, 0, 0, - 0, 10, 0, 0, 0, 11, 12, 0, 17, 0, - 13, 0, 14, 15, 18, 0, 19, 0, 20, 21, - 0, 22, 0, 16, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, - 184, 18, 0, 19, 0, 20, 21, 0, 22, 4, - 5, 6, 7, 8, 0, 0, 0, 0, 0, 9, - 0, 0, 0, 10, 0, 0, 0, 11, 12, 0, - 0, 0, 13, 0, 14, 15, 4, 5, 6, 7, - 8, 0, 0, 0, 0, 16, 9, 0, 0, 0, - 10, 0, 0, 0, 11, 12, 0, 17, 0, 13, - 0, 14, 15, 18, 0, 19, 0, 20, 21, 263, - 22, 0, 16, 0, 0, 0, 0, 4, 5, 6, - 7, 8, 0, 0, 17, 0, 0, 0, 0, 266, - 18, 0, 19, 0, 20, 21, 0, 22, 4, 5, - 6, 7, 8, 15, 0, 0, 0, 0, 9, 0, - 0, 0, 10, 16, 0, 0, 11, 12, 0, 0, - 0, 13, 0, 14, 15, 207, 0, 0, 0, 0, - 0, 18, 0, 19, 16, 20, 21, 0, 22, 4, - 5, 6, 7, 8, 0, 0, 17, 0, 0, 0, - 0, 289, 18, 0, 19, 0, 20, 21, 0, 22, - 4, 5, 6, 7, 8, 15, 0, 0, 0, 0, - 9, 0, 0, 0, 10, 16, 0, 0, 11, 12, - 0, 0, 0, 13, 0, 14, 15, 0, 0, 0, - 0, 0, 0, 18, 0, 19, 16, 20, 21, 0, - 22, 0, 0, 0, 0, 0, 0, 0, 17, 0, - 0, 0, 0, 0, 18, 0, 19, 218, 20, 21, - 51, 22, 0, 0, 0, 0, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 0, 0, 0, 0, 0, - 0, 0, 0, 16, 0, 0, 0, 0, 83, 84, + 0, 17, 0, 13, 0, 14, 15, 0, 18, 0, + 19, 0, 20, 21, 54, 22, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, + 0, 0, 0, 0, 0, 18, 0, 19, 0, 20, + 21, 142, 22, 0, 4, 5, 6, 7, 8, 0, + 0, 0, 0, 0, 9, 0, 0, 0, 10, 0, + 0, 0, 11, 12, 0, 0, 0, 13, 195, 14, + 15, 4, 5, 6, 7, 8, 0, 0, 0, 0, + 16, 9, 0, 0, 0, 10, 0, 0, 0, 11, + 12, 0, 17, 0, 13, 0, 14, 15, 0, 18, + 0, 19, 0, 20, 21, 0, 22, 16, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, + 0, 0, 0, 0, 0, 0, 18, 0, 19, 0, + 20, 21, 199, 22, 0, 4, 5, 6, 7, 8, + 0, 0, 0, 0, 0, 9, 0, 0, 0, 10, + 0, 0, 0, 11, 12, 0, 0, 0, 13, 0, + 14, 15, 4, 5, 6, 7, 8, 0, 0, 0, + 0, 16, 9, 0, 0, 0, 10, 0, 0, 0, + 11, 12, 0, 17, 0, 13, 0, 14, 15, 0, + 18, 0, 19, 0, 20, 21, 0, 22, 16, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 184, 18, 0, 19, + 0, 20, 21, 0, 22, 4, 5, 6, 7, 8, + 0, 0, 0, 0, 0, 9, 0, 0, 0, 10, + 0, 0, 0, 11, 12, 0, 0, 0, 13, 0, + 14, 15, 4, 5, 6, 7, 8, 0, 0, 0, + 0, 16, 9, 0, 0, 0, 10, 0, 0, 0, + 11, 12, 0, 17, 0, 13, 0, 14, 15, 0, + 18, 0, 19, 0, 20, 21, 263, 22, 16, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 266, 18, 0, 19, + 0, 20, 21, 0, 22, 4, 5, 6, 7, 8, + 0, 0, 0, 0, 0, 9, 0, 0, 0, 10, + 0, 0, 0, 11, 12, 0, 0, 0, 13, 0, + 14, 15, 4, 5, 6, 7, 8, 0, 0, 0, + 0, 16, 9, 0, 0, 0, 10, 0, 0, 0, + 11, 12, 0, 17, 0, 13, 0, 14, 15, 289, + 18, 0, 19, 0, 20, 21, 0, 22, 16, 4, + 5, 6, 7, 8, 0, 4, 5, 6, 7, 8, + 17, 0, 0, 0, 0, 0, 0, 18, 0, 19, + 0, 20, 21, 0, 22, 15, 0, 0, 0, 0, + 0, 15, 0, 0, 0, 16, 0, 0, 0, 0, + 0, 16, 0, 0, 0, 0, 0, 207, 0, 0, + 0, 0, 0, 0, 18, 0, 19, 0, 20, 21, + 18, 22, 19, 218, 20, 21, 51, 22, 84, 85, + 0, 0, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 0, 0, 0, 0, 0, 95, 96, 0, 16, + 83, 84, 85, 86, 0, 0, 0, 100, 101, 102, + 103, 104, 105, 106, 0, 107, 87, 88, 219, 0, + 220, 0, 0, 89, 90, 91, 92, 93, 94, 95, + 96, 0, 0, 0, 0, 0, 0, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 0, 107, 83, + 84, 85, 86, 230, 0, 0, 231, 0, 0, 0, + 0, 0, 0, 0, 0, 87, 88, 0, 0, 0, + 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, + 0, 0, 0, 0, 0, 0, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 0, 107, 83, 84, + 85, 86, 0, 0, 0, 138, 0, 0, 0, 0, + 0, 0, 0, 0, 87, 88, 0, 0, 0, 0, + 0, 89, 90, 91, 92, 93, 94, 95, 96, 0, + 0, 0, 0, 0, 0, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 0, 107, 83, 84, 85, + 86, 0, 0, 0, 262, 0, 0, 0, 0, 0, + 0, 0, 0, 87, 88, 0, 0, 0, 0, 0, + 89, 90, 91, 92, 93, 94, 95, 96, 0, 0, + 0, 0, 0, 0, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 0, 107, 83, 84, 85, 86, + 0, 0, 0, 287, 0, 0, 0, 0, 0, 0, + 0, 0, 87, 88, 0, 0, 0, 0, 0, 89, + 90, 91, 92, 93, 94, 95, 96, 0, 0, 0, + 0, 0, 0, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 0, 107, 306, 0, 307, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 219, 0, 220, 87, 88, 0, 0, 0, 0, + 0, 0, 0, 0, 87, 88, 0, 0, 0, 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, 0, 0, 83, 84, 85, 86, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 0, 87, 88, 0, - 230, 0, 0, 231, 89, 90, 91, 92, 93, 94, - 95, 96, 0, 0, 83, 84, 85, 86, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 0, - 87, 88, 0, 0, 0, 0, 138, 89, 90, 91, - 92, 93, 94, 95, 96, 0, 0, 83, 84, 85, - 86, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 0, 87, 88, 0, 0, 0, 0, 262, - 89, 90, 91, 92, 93, 94, 95, 96, 0, 0, - 83, 84, 85, 86, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 0, 87, 88, 0, 0, - 0, 0, 287, 89, 90, 91, 92, 93, 94, 95, - 96, 0, 0, 0, 0, 0, 0, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 306, 0, - 307, 83, 84, 85, 86, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 87, 88, 0, - 0, 0, 0, 0, 89, 90, 91, 92, 93, 94, - 95, 96, 0, 83, 84, 85, 86, 0, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 87, - 88, 134, 0, 0, 0, 0, 89, 90, 91, 92, - 93, 94, 95, 96, 0, 83, 84, 85, 86, 0, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 87, 88, 211, 0, 0, 0, 0, 89, 90, - 91, 92, 93, 94, 95, 96, 0, 83, 84, 85, - 86, 0, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 87, 88, 281, 0, 0, 0, 0, - 89, 90, 91, 92, 93, 94, 95, 96, 0, 83, - 84, 85, 86, 0, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 87, 88, 305, 0, 0, - 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, - 0, 83, 84, 85, 86, 0, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 87, 88, 309, + 102, 103, 104, 105, 106, 0, 107, 87, 88, 134, 0, 0, 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, 0, 0, 83, 84, 85, 86, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 87, 88, 0, 0, 0, 0, 0, 89, 90, 91, + 99, 100, 101, 102, 103, 104, 105, 106, 0, 107, + 87, 88, 211, 0, 0, 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, 0, 0, 83, 84, 85, 86, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 234, 87, 88, 0, 0, 0, 0, 0, + 106, 0, 107, 87, 88, 281, 0, 0, 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, 0, 0, 83, 84, 85, 86, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 240, 87, 88, 0, 0, + 103, 104, 105, 106, 0, 107, 87, 88, 305, 0, 0, 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, 0, 0, 83, 84, 85, 86, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 288, 87, + 100, 101, 102, 103, 104, 105, 106, 0, 107, 87, + 88, 309, 0, 0, 0, 0, 89, 90, 91, 92, + 93, 94, 95, 96, 0, 0, 0, 0, 0, 0, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 0, 107, 108, 83, 84, 85, 86, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, + 88, 0, 0, 0, 0, 0, 89, 90, 91, 92, + 93, 94, 95, 96, 0, 0, 0, 0, 0, 0, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 0, 107, 234, 83, 84, 85, 86, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, + 88, 0, 0, 0, 0, 0, 89, 90, 91, 92, + 93, 94, 95, 96, 0, 0, 0, 0, 0, 0, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 0, 107, 240, 83, 84, 85, 86, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, + 88, 0, 0, 0, 0, 0, 89, 90, 91, 92, + 93, 94, 95, 96, 0, 0, 0, 0, 0, 0, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 0, 107, 288, 83, 84, 85, 86, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, + 88, 0, 0, 0, 0, 0, 89, 90, 91, 92, + 93, 94, 95, 96, 0, 0, 0, 0, 0, 0, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 0, 107, 294, 83, 84, 85, 86, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, + 88, 0, 0, 0, 0, 0, 89, 90, 91, 92, + 93, 94, 95, 96, 0, 0, 0, 0, 0, 0, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 0, 107, 295, 83, 84, 85, 86, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, + 88, 0, 0, 0, 0, 0, 89, 90, 91, 92, + 93, 94, 95, 96, 0, 0, 0, 0, 0, 0, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 0, 107, 298, 83, 84, 85, 86, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, + 88, 0, 0, 0, 0, 0, 89, 90, 91, 92, + 93, 94, 95, 96, 0, 0, 0, 0, 0, 0, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 0, 107, 299, 83, 84, 85, 86, 0, 0, 0, + 0, 0, 0, 0, 241, 242, 0, 0, 0, 87, + 88, 0, 0, 0, 0, 0, 89, 90, 91, 92, + 93, 94, 95, 96, 0, 0, 0, 0, 0, 0, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 0, 107, 83, 84, 85, 86, 0, 0, 0, 0, + 0, 0, 126, 0, 0, 0, 0, 0, 87, 88, + 0, 0, 0, 0, 0, 89, 90, 91, 92, 93, + 94, 95, 96, 0, 0, 83, 84, 85, 86, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 0, + 107, 87, 88, 0, 0, 0, 0, 0, 89, 90, + 91, 92, 93, 94, 95, 96, 0, 0, 0, 275, + 0, 0, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 0, 107, 83, 84, 85, 86, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, + 87, 88, 0, 0, 0, 0, 0, 89, 90, 91, + 92, 93, 94, 95, 96, 0, 0, 0, 0, 0, + 0, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 0, 107, 83, 84, 85, 86, 0, 0, 0, + 0, 0, 0, 293, 0, 0, 0, 0, 0, 87, 88, 0, 0, 0, 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, 0, 0, 83, 84, 85, 86, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 294, 87, 88, 0, 0, 0, 0, 0, 89, + 0, 107, 87, 88, 0, 0, 0, 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, 0, 0, 83, 84, 85, 86, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 295, 87, 88, 0, 0, 0, + 104, 105, 106, 0, 107, 87, 88, 0, 0, 0, 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, - 0, 0, 83, 84, 85, 86, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 298, 87, 88, - 0, 0, 0, 0, 0, 89, 90, 91, 92, 93, - 94, 95, 96, 0, 0, 0, 0, 0, 0, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 299, 83, 84, 85, 86, 0, 0, 0, 0, 0, - 0, 0, 241, 242, 0, 0, 0, 87, 88, 0, - 0, 0, 0, 0, 89, 90, 91, 92, 93, 94, - 95, 96, 0, 0, 0, 0, 0, 0, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 83, - 84, 85, 86, 0, 0, 0, 0, 0, 0, 126, - 0, 0, 0, 0, 0, 87, 88, 0, 0, 0, - 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, - 0, 83, 84, 85, 86, 0, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 87, 88, 0, - 0, 0, 0, 0, 89, 90, 91, 92, 93, 94, - 95, 96, 0, 0, 0, 275, 0, 0, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 83, - 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 292, 87, 88, 0, 0, 0, - 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, - 0, 0, 0, 0, 0, 0, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 83, 84, 85, - 86, 0, 0, 0, 0, 0, 0, 293, 0, 0, - 0, 0, 0, 87, 88, 0, 0, 0, 0, 0, - 89, 90, 91, 92, 93, 94, 95, 96, 0, 83, - 84, 85, 86, 0, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 87, 88, 0, 0, 0, - 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, - 0, 83, 84, 85, 86, 0, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 87, 88, 0, - 0, 0, 0, 0, 89, 90, 91, 92, 93, 94, - 95, 96, 0, -146, 84, 85, 0, 0, 0, 0, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 87, - 88, 0, 0, 84, 85, 0, -146, -146, -146, -146, - -146, -146, 95, 96, 0, 0, 0, 0, 0, 0, - 0, 0, -146, 100, 101, 102, 103, 104, 105, 106, - 107, 95, 96, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 100, 101, 102, 103, 104, 105, 106, 107 + 0, 0, -146, 84, 85, 0, 0, 0, 99, 100, + 101, 102, 103, 104, 105, 106, 0, 107, 87, 88, + 0, 0, 0, 0, 0, -146, -146, -146, -146, -146, + -146, 95, 96, 0, 0, 0, 0, 0, 0, 0, + 0, -146, 100, 101, 102, 103, 104, 105, 106, 0, + 107 }; static const yytype_int16 yycheck[] = @@ -1076,29 +1098,29 @@ static const yytype_int16 yycheck[] = 1, 1, 127, 128, 145, 146, 5, 11, 12, 10, 7, 5, 13, 5, 13, 5, 17, 18, 30, 13, 21, 13, 4, 4, 20, 176, 22, 4, 47, 30, - 47, 32, 28, 29, 47, 139, 60, 58, 0, 63, - 61, 65, 15, 40, 148, 4, 57, 66, 59, 66, - 175, 64, 16, 17, 31, 53, 54, 55, 56, 28, - 60, 56, 40, 62, 63, 58, 207, 4, 62, 63, - 62, 63, 62, 63, 41, 42, 77, 44, 60, 60, - 60, 4, 83, 84, 85, 86, 87, 88, 89, 90, + 139, 32, 28, 29, 47, 61, 47, 15, 64, 148, + 66, 59, 0, 40, 62, 53, 54, 55, 67, 57, + 175, 58, 65, 60, 31, 57, 67, 41, 42, 4, + 44, 61, 16, 17, 63, 64, 207, 40, 59, 63, + 64, 63, 64, 63, 64, 58, 77, 60, 28, 61, + 61, 61, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 118, 258, 249, 250, - 251, 57, 113, 59, 115, 59, 112, 1, 10, 11, - 41, 42, 56, 44, 125, 126, 64, 252, 129, 254, - 61, 4, 257, 25, 61, 260, 61, 141, 66, 47, - 56, 145, 146, 139, 13, 46, 38, 39, 59, 56, - 4, 46, 148, 56, 64, 4, 56, 49, 50, 51, - 52, 53, 54, 55, 56, 58, 47, 58, 46, 4, - 4, 296, 61, 61, 61, 61, 61, 56, 61, 180, - 176, 56, 56, 31, 61, 56, 187, 238, 118, 300, - 123, 1, 258, -1, 4, 5, 6, 7, 8, 187, + 251, 4, 113, 4, 115, 1, 112, 60, 10, 11, + 41, 42, 57, 44, 125, 126, 65, 252, 129, 254, + 62, 4, 257, 25, 62, 260, 62, 141, 67, 47, + 57, 145, 146, 139, 13, 46, 38, 39, 60, 4, + 57, 46, 148, 57, 65, 57, 4, 49, 50, 51, + 52, 53, 54, 55, 47, 57, 46, 4, 62, 59, + 59, 296, 4, 31, 62, 62, 57, 62, 62, 180, + 176, 57, 57, 62, 62, 57, 187, 118, 238, 123, + 300, 1, 187, 258, 4, 5, 6, 7, 8, -1, 201, -1, 203, 207, 14, -1, -1, -1, 18, -1, -1, -1, 22, 23, -1, -1, -1, 27, 219, 29, 30, -1, -1, -1, 225, -1, -1, -1, -1, 230, 40, 232, -1, -1, -1, -1, -1, -1, -1, -1, - 241, 242, 52, 244, 245, 249, 250, 251, 58, -1, - 60, 61, 62, 63, 64, 65, -1, -1, -1, -1, + 241, 242, 52, 244, 245, 249, 250, 251, -1, 59, + -1, 61, 62, 63, 64, 65, 66, -1, -1, -1, -1, -1, 258, -1, -1, -1, -1, 268, -1, 270, -1, -1, -1, -1, -1, -1, 0, 1, -1, -1, 4, 5, -1, 7, -1, 9, 10, 11, 12, 13, @@ -1106,223 +1128,243 @@ static const yytype_int16 yycheck[] = 24, 25, 26, -1, 28, 306, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, -1, -1, 43, -1, -1, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, -1, 59, -1, 61, 62, 63, - 64, 1, 66, -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, 31, -1, 38, 39, -1, -1, -1, -1, -1, - 40, -1, -1, -1, 49, 50, 51, 52, 53, 54, - 55, 56, -1, -1, -1, -1, 1, -1, 58, 4, - 60, -1, 7, -1, -1, -1, 66, -1, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, -1, -1, -1, - -1, -1, -1, -1, -1, 40, -1, 1, -1, -1, - 4, 5, 6, 7, 8, -1, -1, -1, -1, -1, - 14, -1, -1, 58, 18, 60, -1, -1, 22, 23, - -1, 66, -1, 27, 1, 29, 30, 4, 5, 6, - 7, 8, -1, -1, -1, -1, 40, 14, -1, -1, - -1, 18, -1, -1, -1, 22, 23, -1, 52, -1, - 27, -1, 29, 30, 58, -1, 60, -1, 62, 63, - 64, 65, -1, 40, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 52, -1, -1, -1, -1, - -1, 58, -1, 60, -1, 62, 63, 1, 65, -1, - 4, 5, 6, 7, 8, -1, -1, -1, -1, -1, + 54, 55, -1, 57, 58, -1, 60, -1, 62, 63, + 64, 65, 1, 67, -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, 31, -1, 38, 39, -1, -1, -1, -1, + -1, 40, -1, -1, -1, 49, 50, 51, 52, 53, + 54, 55, -1, 57, -1, -1, -1, -1, 1, -1, + 59, 4, 61, -1, 7, -1, -1, -1, 67, -1, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, -1, + -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, + 1, -1, -1, 4, 5, 6, 7, 8, -1, -1, + -1, -1, -1, 14, -1, -1, 59, 18, 61, -1, + -1, 22, 23, -1, 67, -1, 27, 1, 29, 30, + 4, 5, 6, 7, 8, -1, -1, -1, -1, 40, 14, -1, -1, -1, 18, -1, -1, -1, 22, 23, - -1, -1, -1, 27, 1, 29, 30, 4, 5, 6, - 7, 8, -1, -1, -1, -1, 40, 14, -1, -1, - -1, 18, -1, -1, -1, 22, 23, -1, 52, -1, - 27, -1, 29, 30, 58, -1, 60, -1, 62, 63, - -1, 65, -1, 40, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 52, -1, -1, -1, -1, - -1, 58, -1, 60, -1, 62, 63, 1, 65, -1, - 4, 5, 6, 7, 8, -1, -1, -1, -1, -1, - 14, -1, -1, -1, 18, -1, -1, -1, 22, 23, - -1, -1, -1, 27, -1, 29, 30, 4, 5, 6, - 7, 8, -1, -1, -1, -1, 40, 14, -1, -1, - -1, 18, -1, -1, -1, 22, 23, -1, 52, -1, - 27, -1, 29, 30, 58, -1, 60, -1, 62, 63, - -1, 65, -1, 40, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 52, -1, -1, -1, -1, - 57, 58, -1, 60, -1, 62, 63, -1, 65, 4, - 5, 6, 7, 8, -1, -1, -1, -1, -1, 14, - -1, -1, -1, 18, -1, -1, -1, 22, 23, -1, - -1, -1, 27, -1, 29, 30, 4, 5, 6, 7, - 8, -1, -1, -1, -1, 40, 14, -1, -1, -1, - 18, -1, -1, -1, 22, 23, -1, 52, -1, 27, - -1, 29, 30, 58, -1, 60, -1, 62, 63, 64, - 65, -1, 40, -1, -1, -1, -1, 4, 5, 6, - 7, 8, -1, -1, 52, -1, -1, -1, -1, 57, - 58, -1, 60, -1, 62, 63, -1, 65, 4, 5, - 6, 7, 8, 30, -1, -1, -1, -1, 14, -1, - -1, -1, 18, 40, -1, -1, 22, 23, -1, -1, - -1, 27, -1, 29, 30, 52, -1, -1, -1, -1, - -1, 58, -1, 60, 40, 62, 63, -1, 65, 4, - 5, 6, 7, 8, -1, -1, 52, -1, -1, -1, - -1, 57, 58, -1, 60, -1, 62, 63, -1, 65, - 4, 5, 6, 7, 8, 30, -1, -1, -1, -1, - 14, -1, -1, -1, 18, 40, -1, -1, 22, 23, - -1, -1, -1, 27, -1, 29, 30, -1, -1, -1, - -1, -1, -1, 58, -1, 60, 40, 62, 63, -1, - 65, -1, -1, -1, -1, -1, -1, -1, 52, -1, - -1, -1, -1, -1, 58, -1, 60, 4, 62, 63, - 7, 65, -1, -1, -1, -1, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, -1, -1, -1, -1, -1, - -1, -1, -1, 40, -1, -1, -1, -1, 9, 10, + -1, 52, -1, 27, -1, 29, 30, -1, 59, -1, + 61, -1, 63, 64, 65, 66, 40, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 52, -1, + -1, -1, -1, -1, -1, 59, -1, 61, -1, 63, + 64, 1, 66, -1, 4, 5, 6, 7, 8, -1, + -1, -1, -1, -1, 14, -1, -1, -1, 18, -1, + -1, -1, 22, 23, -1, -1, -1, 27, 1, 29, + 30, 4, 5, 6, 7, 8, -1, -1, -1, -1, + 40, 14, -1, -1, -1, 18, -1, -1, -1, 22, + 23, -1, 52, -1, 27, -1, 29, 30, -1, 59, + -1, 61, -1, 63, 64, -1, 66, 40, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, + -1, -1, -1, -1, -1, -1, 59, -1, 61, -1, + 63, 64, 1, 66, -1, 4, 5, 6, 7, 8, + -1, -1, -1, -1, -1, 14, -1, -1, -1, 18, + -1, -1, -1, 22, 23, -1, -1, -1, 27, -1, + 29, 30, 4, 5, 6, 7, 8, -1, -1, -1, + -1, 40, 14, -1, -1, -1, 18, -1, -1, -1, + 22, 23, -1, 52, -1, 27, -1, 29, 30, -1, + 59, -1, 61, -1, 63, 64, -1, 66, 40, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 52, -1, -1, -1, -1, -1, 58, 59, -1, 61, + -1, 63, 64, -1, 66, 4, 5, 6, 7, 8, + -1, -1, -1, -1, -1, 14, -1, -1, -1, 18, + -1, -1, -1, 22, 23, -1, -1, -1, 27, -1, + 29, 30, 4, 5, 6, 7, 8, -1, -1, -1, + -1, 40, 14, -1, -1, -1, 18, -1, -1, -1, + 22, 23, -1, 52, -1, 27, -1, 29, 30, -1, + 59, -1, 61, -1, 63, 64, 65, 66, 40, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 52, -1, -1, -1, -1, -1, 58, 59, -1, 61, + -1, 63, 64, -1, 66, 4, 5, 6, 7, 8, + -1, -1, -1, -1, -1, 14, -1, -1, -1, 18, + -1, -1, -1, 22, 23, -1, -1, -1, 27, -1, + 29, 30, 4, 5, 6, 7, 8, -1, -1, -1, + -1, 40, 14, -1, -1, -1, 18, -1, -1, -1, + 22, 23, -1, 52, -1, 27, -1, 29, 30, 58, + 59, -1, 61, -1, 63, 64, -1, 66, 40, 4, + 5, 6, 7, 8, -1, 4, 5, 6, 7, 8, + 52, -1, -1, -1, -1, -1, -1, 59, -1, 61, + -1, 63, 64, -1, 66, 30, -1, -1, -1, -1, + -1, 30, -1, -1, -1, 40, -1, -1, -1, -1, + -1, 40, -1, -1, -1, -1, -1, 52, -1, -1, + -1, -1, -1, -1, 59, -1, 61, -1, 63, 64, + 59, 66, 61, 4, 63, 64, 7, 66, 10, 11, + -1, -1, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, -1, -1, -1, -1, -1, 38, 39, -1, 40, + 9, 10, 11, 12, -1, -1, -1, 49, 50, 51, + 52, 53, 54, 55, -1, 57, 25, 26, 59, -1, + 61, -1, -1, 32, 33, 34, 35, 36, 37, 38, + 39, -1, -1, -1, -1, -1, -1, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, -1, 57, 9, + 10, 11, 12, 62, -1, -1, 65, -1, -1, -1, + -1, -1, -1, -1, -1, 25, 26, -1, -1, -1, + -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, + -1, -1, -1, -1, -1, -1, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, -1, 57, 9, 10, + 11, 12, -1, -1, -1, 65, -1, -1, -1, -1, + -1, -1, -1, -1, 25, 26, -1, -1, -1, -1, + -1, 32, 33, 34, 35, 36, 37, 38, 39, -1, + -1, -1, -1, -1, -1, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, -1, 57, 9, 10, 11, + 12, -1, -1, -1, 65, -1, -1, -1, -1, -1, + -1, -1, -1, 25, 26, -1, -1, -1, -1, -1, + 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, + -1, -1, -1, -1, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, -1, 57, 9, 10, 11, 12, + -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, + -1, -1, 25, 26, -1, -1, -1, -1, -1, 32, + 33, 34, 35, 36, 37, 38, 39, -1, -1, -1, + -1, -1, -1, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, -1, 57, 58, -1, 60, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 58, -1, 60, 25, 26, -1, -1, -1, -1, + -1, -1, -1, -1, 25, 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, 9, 10, 11, 12, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, -1, 25, 26, -1, - 61, -1, -1, 64, 32, 33, 34, 35, 36, 37, - 38, 39, -1, -1, 9, 10, 11, 12, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, - 25, 26, -1, -1, -1, -1, 64, 32, 33, 34, - 35, 36, 37, 38, 39, -1, -1, 9, 10, 11, - 12, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, -1, 25, 26, -1, -1, -1, -1, 64, - 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, - 9, 10, 11, 12, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, -1, 25, 26, -1, -1, - -1, -1, 64, 32, 33, 34, 35, 36, 37, 38, - 39, -1, -1, -1, -1, -1, -1, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, - 59, 9, 10, 11, 12, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 25, 26, -1, - -1, -1, -1, -1, 32, 33, 34, 35, 36, 37, - 38, 39, -1, 9, 10, 11, 12, -1, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 25, - 26, 59, -1, -1, -1, -1, 32, 33, 34, 35, - 36, 37, 38, 39, -1, 9, 10, 11, 12, -1, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 25, 26, 59, -1, -1, -1, -1, 32, 33, - 34, 35, 36, 37, 38, 39, -1, 9, 10, 11, - 12, -1, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 25, 26, 59, -1, -1, -1, -1, - 32, 33, 34, 35, 36, 37, 38, 39, -1, 9, - 10, 11, 12, -1, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 25, 26, 59, -1, -1, - -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, - -1, 9, 10, 11, 12, -1, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 25, 26, 59, + 51, 52, 53, 54, 55, -1, 57, 25, 26, 60, -1, -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, 9, 10, 11, 12, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 25, 26, -1, -1, -1, -1, -1, 32, 33, 34, + 48, 49, 50, 51, 52, 53, 54, 55, -1, 57, + 25, 26, 60, -1, -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, 9, 10, 11, 12, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 25, 26, -1, -1, -1, -1, -1, + 55, -1, 57, 25, 26, 60, -1, -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, 9, 10, 11, 12, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 25, 26, -1, -1, + 52, 53, 54, 55, -1, 57, 25, 26, 60, -1, -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, 9, 10, 11, 12, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 25, + 49, 50, 51, 52, 53, 54, 55, -1, 57, 25, + 26, 60, -1, -1, -1, -1, 32, 33, 34, 35, + 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + -1, 57, 58, 9, 10, 11, 12, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, + 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, + 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + -1, 57, 58, 9, 10, 11, 12, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, + 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, + 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + -1, 57, 58, 9, 10, 11, 12, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, + 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, + 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + -1, 57, 58, 9, 10, 11, 12, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, + 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, + 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + -1, 57, 58, 9, 10, 11, 12, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, + 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, + 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + -1, 57, 58, 9, 10, 11, 12, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, + 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, + 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + -1, 57, 58, 9, 10, 11, 12, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, + 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, + 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + -1, 57, 58, 9, 10, 11, 12, -1, -1, -1, + -1, -1, -1, -1, 20, 21, -1, -1, -1, 25, + 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, + 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + -1, 57, 9, 10, 11, 12, -1, -1, -1, -1, + -1, -1, 19, -1, -1, -1, -1, -1, 25, 26, + -1, -1, -1, -1, -1, 32, 33, 34, 35, 36, + 37, 38, 39, -1, -1, 9, 10, 11, 12, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, -1, + 57, 25, 26, -1, -1, -1, -1, -1, 32, 33, + 34, 35, 36, 37, 38, 39, -1, -1, -1, 43, + -1, -1, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, -1, 57, 9, 10, 11, 12, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, + 25, 26, -1, -1, -1, -1, -1, 32, 33, 34, + 35, 36, 37, 38, 39, -1, -1, -1, -1, -1, + -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, -1, 57, 9, 10, 11, 12, -1, -1, -1, + -1, -1, -1, 19, -1, -1, -1, -1, -1, 25, 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, 9, 10, 11, 12, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 25, 26, -1, -1, -1, -1, -1, 32, + -1, 57, 25, 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, 9, 10, 11, 12, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 25, 26, -1, -1, -1, + 53, 54, 55, -1, 57, 25, 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, - -1, -1, 9, 10, 11, 12, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 25, 26, + -1, -1, 9, 10, 11, -1, -1, -1, 48, 49, + 50, 51, 52, 53, 54, 55, -1, 57, 25, 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, 36, - 37, 38, 39, -1, -1, -1, -1, -1, -1, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 9, 10, 11, 12, -1, -1, -1, -1, -1, - -1, -1, 20, 21, -1, -1, -1, 25, 26, -1, - -1, -1, -1, -1, 32, 33, 34, 35, 36, 37, - 38, 39, -1, -1, -1, -1, -1, -1, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 9, - 10, 11, 12, -1, -1, -1, -1, -1, -1, 19, - -1, -1, -1, -1, -1, 25, 26, -1, -1, -1, - -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, - -1, 9, 10, 11, 12, -1, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 25, 26, -1, - -1, -1, -1, -1, 32, 33, 34, 35, 36, 37, - 38, 39, -1, -1, -1, 43, -1, -1, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 9, - 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 24, 25, 26, -1, -1, -1, - -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, - -1, -1, -1, -1, -1, -1, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 9, 10, 11, - 12, -1, -1, -1, -1, -1, -1, 19, -1, -1, - -1, -1, -1, 25, 26, -1, -1, -1, -1, -1, - 32, 33, 34, 35, 36, 37, 38, 39, -1, 9, - 10, 11, 12, -1, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 25, 26, -1, -1, -1, - -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, - -1, 9, 10, 11, 12, -1, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 25, 26, -1, - -1, -1, -1, -1, 32, 33, 34, 35, 36, 37, - 38, 39, -1, 9, 10, 11, -1, -1, -1, -1, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 25, - 26, -1, -1, 10, 11, -1, 32, 33, 34, 35, - 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, - -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 38, 39, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 49, 50, 51, 52, 53, 54, 55, 56 + 37, 38, 39, -1, -1, -1, -1, -1, -1, -1, + -1, 48, 49, 50, 51, 52, 53, 54, 55, -1, + 57 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 15, 68, 69, 4, 5, 6, 7, 8, 14, - 18, 22, 23, 27, 29, 30, 40, 52, 58, 60, - 62, 63, 65, 72, 74, 77, 83, 0, 16, 17, - 70, 73, 58, 56, 40, 4, 72, 83, 83, 72, - 60, 1, 60, 78, 72, 1, 72, 4, 31, 1, - 4, 7, 77, 1, 64, 72, 1, 4, 13, 14, + 0, 15, 69, 70, 4, 5, 6, 7, 8, 14, + 18, 22, 23, 27, 29, 30, 40, 52, 59, 61, + 63, 64, 66, 73, 75, 78, 84, 0, 16, 17, + 71, 74, 59, 57, 40, 4, 73, 84, 84, 73, + 61, 1, 61, 79, 73, 1, 73, 4, 31, 1, + 4, 7, 78, 1, 65, 73, 1, 4, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 58, 60, 77, - 90, 91, 92, 9, 10, 11, 12, 25, 26, 32, + 25, 26, 27, 28, 29, 30, 31, 59, 61, 78, + 91, 92, 93, 9, 10, 11, 12, 25, 26, 32, 33, 34, 35, 36, 37, 38, 39, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 72, - 5, 13, 62, 63, 77, 77, 71, 72, 74, 70, - 72, 84, 85, 79, 58, 61, 19, 13, 13, 28, - 4, 4, 80, 59, 59, 1, 56, 64, 64, 47, - 66, 61, 1, 72, 4, 61, 61, 66, 47, 72, - 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 56, 60, 63, 65, 86, 77, 1, - 61, 64, 72, 13, 57, 72, 71, 57, 59, 80, - 4, 60, 75, 76, 72, 1, 72, 86, 86, 1, - 72, 46, 41, 42, 44, 1, 91, 52, 82, 83, - 59, 59, 82, 82, 91, 4, 86, 87, 4, 58, - 60, 77, 88, 89, 90, 46, 56, 64, 72, 56, - 61, 64, 4, 60, 57, 85, 44, 4, 57, 59, - 57, 20, 21, 81, 58, 58, 72, 72, 82, 46, - 61, 61, 47, 64, 61, 72, 4, 61, 47, 66, - 61, 72, 64, 64, 72, 56, 57, 72, 4, 76, - 61, 72, 72, 72, 72, 43, 82, 82, 82, 86, - 86, 59, 86, 89, 86, 56, 56, 64, 57, 57, - 72, 72, 24, 19, 57, 57, 61, 56, 57, 57, - 72, 72, 72, 86, 81, 59, 57, 59, 72, 59 + 49, 50, 51, 52, 53, 54, 55, 57, 58, 73, + 5, 13, 63, 64, 78, 78, 72, 73, 75, 71, + 73, 85, 86, 80, 59, 62, 19, 13, 13, 28, + 4, 4, 81, 60, 60, 1, 57, 65, 65, 47, + 67, 62, 1, 73, 4, 62, 62, 67, 47, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 57, 61, 64, 66, 87, 78, 1, + 62, 65, 73, 13, 58, 73, 72, 58, 60, 81, + 4, 61, 76, 77, 73, 1, 73, 87, 87, 1, + 73, 46, 41, 42, 44, 1, 92, 52, 83, 84, + 60, 60, 83, 83, 92, 4, 87, 88, 4, 59, + 61, 78, 89, 90, 91, 46, 57, 65, 73, 57, + 62, 65, 4, 61, 58, 86, 44, 4, 58, 60, + 58, 20, 21, 82, 59, 59, 73, 73, 83, 46, + 62, 62, 47, 65, 62, 73, 4, 62, 47, 67, + 62, 73, 65, 65, 73, 57, 58, 73, 4, 77, + 62, 73, 73, 73, 73, 43, 83, 83, 83, 87, + 87, 60, 87, 90, 87, 57, 57, 65, 58, 58, + 73, 73, 24, 19, 58, 58, 62, 57, 58, 58, + 73, 73, 73, 87, 82, 60, 58, 60, 73, 60 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 67, 68, 68, 69, 69, 70, 70, 71, 71, - 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, 73, 73, - 73, 73, 73, 73, 74, 74, 75, 75, 76, 76, - 78, 77, 79, 77, 80, 80, 80, 81, 81, 82, - 82, 82, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 84, 84, 85, 86, 86, 86, 87, 87, 88, - 88, 89, 89, 89, 89, 89, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 91, 91, 91, 91, 92, - 92, 92, 92, 92, 92, 92, 92 + 0, 68, 69, 69, 70, 70, 71, 71, 72, 72, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 74, 74, + 74, 74, 74, 74, 75, 75, 76, 76, 77, 77, + 79, 78, 80, 78, 81, 81, 81, 82, 82, 83, + 83, 83, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 85, 85, 86, 87, 87, 87, 88, 88, 89, + 89, 90, 90, 90, 90, 90, 91, 91, 91, 91, + 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, + 91, 91, 91, 91, 91, 92, 92, 92, 92, 93, + 93, 93, 93, 93, 93, 93, 93 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1846,165 +1888,165 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio case 4: /* IDENT */ #line 36 "parser.y" /* yacc.c:1257 */ { jv_free(((*yyvaluep).literal)); } -#line 1850 "parser.c" /* yacc.c:1257 */ +#line 1892 "parser.c" /* yacc.c:1257 */ break; case 5: /* FIELD */ #line 36 "parser.y" /* yacc.c:1257 */ { jv_free(((*yyvaluep).literal)); } -#line 1856 "parser.c" /* yacc.c:1257 */ +#line 1898 "parser.c" /* yacc.c:1257 */ break; case 6: /* LITERAL */ #line 36 "parser.y" /* yacc.c:1257 */ { jv_free(((*yyvaluep).literal)); } -#line 1862 "parser.c" /* yacc.c:1257 */ +#line 1904 "parser.c" /* yacc.c:1257 */ break; case 7: /* FORMAT */ #line 36 "parser.y" /* yacc.c:1257 */ { jv_free(((*yyvaluep).literal)); } -#line 1868 "parser.c" /* yacc.c:1257 */ +#line 1910 "parser.c" /* yacc.c:1257 */ break; case 41: /* QQSTRING_TEXT */ #line 36 "parser.y" /* yacc.c:1257 */ { jv_free(((*yyvaluep).literal)); } -#line 1874 "parser.c" /* yacc.c:1257 */ - break; - - case 69: /* Module */ -#line 37 "parser.y" /* yacc.c:1257 */ - { block_free(((*yyvaluep).blk)); } -#line 1880 "parser.c" /* yacc.c:1257 */ - break; - - case 70: /* Imports */ -#line 37 "parser.y" /* yacc.c:1257 */ - { block_free(((*yyvaluep).blk)); } -#line 1886 "parser.c" /* yacc.c:1257 */ - break; - - case 71: /* FuncDefs */ -#line 37 "parser.y" /* yacc.c:1257 */ - { block_free(((*yyvaluep).blk)); } -#line 1892 "parser.c" /* yacc.c:1257 */ - break; - - case 72: /* Exp */ -#line 37 "parser.y" /* yacc.c:1257 */ - { block_free(((*yyvaluep).blk)); } -#line 1898 "parser.c" /* yacc.c:1257 */ - break; - - case 73: /* Import */ -#line 37 "parser.y" /* yacc.c:1257 */ - { block_free(((*yyvaluep).blk)); } -#line 1904 "parser.c" /* yacc.c:1257 */ - break; - - case 74: /* FuncDef */ -#line 37 "parser.y" /* yacc.c:1257 */ - { block_free(((*yyvaluep).blk)); } -#line 1910 "parser.c" /* yacc.c:1257 */ - break; - - case 75: /* Params */ -#line 37 "parser.y" /* yacc.c:1257 */ - { block_free(((*yyvaluep).blk)); } #line 1916 "parser.c" /* yacc.c:1257 */ break; - case 76: /* Param */ + case 70: /* Module */ #line 37 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } #line 1922 "parser.c" /* yacc.c:1257 */ break; - case 77: /* String */ + case 71: /* Imports */ #line 37 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } #line 1928 "parser.c" /* yacc.c:1257 */ break; - case 80: /* QQString */ + case 72: /* FuncDefs */ #line 37 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } #line 1934 "parser.c" /* yacc.c:1257 */ break; - case 81: /* ElseBody */ + case 73: /* Exp */ #line 37 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } #line 1940 "parser.c" /* yacc.c:1257 */ break; - case 82: /* ExpD */ + case 74: /* Import */ #line 37 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } #line 1946 "parser.c" /* yacc.c:1257 */ break; - case 83: /* Term */ + case 75: /* FuncDef */ #line 37 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } #line 1952 "parser.c" /* yacc.c:1257 */ break; - case 84: /* Args */ + case 76: /* Params */ #line 37 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } #line 1958 "parser.c" /* yacc.c:1257 */ break; - case 85: /* Arg */ + case 77: /* Param */ #line 37 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } #line 1964 "parser.c" /* yacc.c:1257 */ break; - case 86: /* Pattern */ + case 78: /* String */ #line 37 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } #line 1970 "parser.c" /* yacc.c:1257 */ break; - case 87: /* ArrayPats */ + case 81: /* QQString */ #line 37 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } #line 1976 "parser.c" /* yacc.c:1257 */ break; - case 88: /* ObjPats */ + case 82: /* ElseBody */ #line 37 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } #line 1982 "parser.c" /* yacc.c:1257 */ break; - case 89: /* ObjPat */ + case 83: /* ExpD */ #line 37 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } #line 1988 "parser.c" /* yacc.c:1257 */ break; - case 90: /* Keyword */ -#line 36 "parser.y" /* yacc.c:1257 */ - { jv_free(((*yyvaluep).literal)); } + case 84: /* Term */ +#line 37 "parser.y" /* yacc.c:1257 */ + { block_free(((*yyvaluep).blk)); } #line 1994 "parser.c" /* yacc.c:1257 */ break; - case 91: /* MkDict */ + case 85: /* Args */ #line 37 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } #line 2000 "parser.c" /* yacc.c:1257 */ break; - case 92: /* MkDictPair */ + case 86: /* Arg */ #line 37 "parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } #line 2006 "parser.c" /* yacc.c:1257 */ break; + case 87: /* Pattern */ +#line 37 "parser.y" /* yacc.c:1257 */ + { block_free(((*yyvaluep).blk)); } +#line 2012 "parser.c" /* yacc.c:1257 */ + break; + + case 88: /* ArrayPats */ +#line 37 "parser.y" /* yacc.c:1257 */ + { block_free(((*yyvaluep).blk)); } +#line 2018 "parser.c" /* yacc.c:1257 */ + break; + + case 89: /* ObjPats */ +#line 37 "parser.y" /* yacc.c:1257 */ + { block_free(((*yyvaluep).blk)); } +#line 2024 "parser.c" /* yacc.c:1257 */ + break; + + case 90: /* ObjPat */ +#line 37 "parser.y" /* yacc.c:1257 */ + { block_free(((*yyvaluep).blk)); } +#line 2030 "parser.c" /* yacc.c:1257 */ + break; + + case 91: /* Keyword */ +#line 36 "parser.y" /* yacc.c:1257 */ + { jv_free(((*yyvaluep).literal)); } +#line 2036 "parser.c" /* yacc.c:1257 */ + break; + + case 92: /* MkDict */ +#line 37 "parser.y" /* yacc.c:1257 */ + { block_free(((*yyvaluep).blk)); } +#line 2042 "parser.c" /* yacc.c:1257 */ + break; + + case 93: /* MkDictPair */ +#line 37 "parser.y" /* yacc.c:1257 */ + { block_free(((*yyvaluep).blk)); } +#line 2048 "parser.c" /* yacc.c:1257 */ + break; + default: break; @@ -2294,31 +2336,31 @@ yyreduce: switch (yyn) { case 2: -#line 273 "parser.y" /* yacc.c:1646 */ +#line 276 "parser.y" /* yacc.c:1646 */ { *answer = BLOCK((yyvsp[-2].blk), (yyvsp[-1].blk), gen_op_simple(TOP), (yyvsp[0].blk)); } -#line 2302 "parser.c" /* yacc.c:1646 */ +#line 2344 "parser.c" /* yacc.c:1646 */ break; case 3: -#line 276 "parser.y" /* yacc.c:1646 */ +#line 279 "parser.y" /* yacc.c:1646 */ { *answer = BLOCK((yyvsp[-2].blk), (yyvsp[-1].blk), (yyvsp[0].blk)); } -#line 2310 "parser.c" /* yacc.c:1646 */ +#line 2352 "parser.c" /* yacc.c:1646 */ break; case 4: -#line 281 "parser.y" /* yacc.c:1646 */ +#line 284 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_noop(); } -#line 2318 "parser.c" /* yacc.c:1646 */ +#line 2360 "parser.c" /* yacc.c:1646 */ break; case 5: -#line 284 "parser.y" /* yacc.c:1646 */ +#line 287 "parser.y" /* yacc.c:1646 */ { if (!block_is_const((yyvsp[-1].blk))) { FAIL((yyloc), "Module metadata must be constant."); @@ -2327,358 +2369,358 @@ yyreduce: (yyval.blk) = gen_module((yyvsp[-1].blk)); } } -#line 2331 "parser.c" /* yacc.c:1646 */ +#line 2373 "parser.c" /* yacc.c:1646 */ break; case 6: -#line 294 "parser.y" /* yacc.c:1646 */ +#line 297 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_noop(); } -#line 2339 "parser.c" /* yacc.c:1646 */ +#line 2381 "parser.c" /* yacc.c:1646 */ break; case 7: -#line 297 "parser.y" /* yacc.c:1646 */ +#line 300 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = BLOCK((yyvsp[-1].blk), (yyvsp[0].blk)); } -#line 2347 "parser.c" /* yacc.c:1646 */ +#line 2389 "parser.c" /* yacc.c:1646 */ break; case 8: -#line 302 "parser.y" /* yacc.c:1646 */ +#line 305 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_noop(); } -#line 2355 "parser.c" /* yacc.c:1646 */ +#line 2397 "parser.c" /* yacc.c:1646 */ break; case 9: -#line 305 "parser.y" /* yacc.c:1646 */ +#line 308 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = block_bind((yyvsp[-1].blk), (yyvsp[0].blk), OP_IS_CALL_PSEUDO); } -#line 2363 "parser.c" /* yacc.c:1646 */ +#line 2405 "parser.c" /* yacc.c:1646 */ break; case 10: -#line 310 "parser.y" /* yacc.c:1646 */ +#line 313 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = block_bind_referenced((yyvsp[-1].blk), (yyvsp[0].blk), OP_IS_CALL_PSEUDO); } -#line 2371 "parser.c" /* yacc.c:1646 */ +#line 2413 "parser.c" /* yacc.c:1646 */ break; case 11: -#line 314 "parser.y" /* yacc.c:1646 */ +#line 317 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_destructure((yyvsp[-4].blk), (yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2379 "parser.c" /* yacc.c:1646 */ +#line 2421 "parser.c" /* yacc.c:1646 */ break; case 12: -#line 318 "parser.y" /* yacc.c:1646 */ +#line 321 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_reduce((yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk)); } -#line 2387 "parser.c" /* yacc.c:1646 */ - break; - - case 13: -#line 322 "parser.y" /* yacc.c:1646 */ - { - (yyval.blk) = gen_foreach((yyvsp[-9].blk), (yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk)); -} -#line 2395 "parser.c" /* yacc.c:1646 */ - break; - - case 14: -#line 326 "parser.y" /* yacc.c:1646 */ - { - (yyval.blk) = gen_foreach((yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk), gen_noop()); -} -#line 2403 "parser.c" /* yacc.c:1646 */ - break; - - case 15: -#line 330 "parser.y" /* yacc.c:1646 */ - { - (yyval.blk) = gen_cond((yyvsp[-3].blk), (yyvsp[-1].blk), (yyvsp[0].blk)); -} -#line 2411 "parser.c" /* yacc.c:1646 */ - break; - - case 16: -#line 333 "parser.y" /* yacc.c:1646 */ - { - FAIL((yyloc), "Possibly unterminated 'if' statement"); - (yyval.blk) = (yyvsp[-2].blk); -} -#line 2420 "parser.c" /* yacc.c:1646 */ - break; - - case 17: -#line 338 "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 2429 "parser.c" /* yacc.c:1646 */ break; + case 13: +#line 325 "parser.y" /* yacc.c:1646 */ + { + (yyval.blk) = gen_foreach((yyvsp[-9].blk), (yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk)); +} +#line 2437 "parser.c" /* yacc.c:1646 */ + break; + + case 14: +#line 329 "parser.y" /* yacc.c:1646 */ + { + (yyval.blk) = gen_foreach((yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk), gen_noop()); +} +#line 2445 "parser.c" /* yacc.c:1646 */ + break; + + case 15: +#line 333 "parser.y" /* yacc.c:1646 */ + { + (yyval.blk) = gen_cond((yyvsp[-3].blk), (yyvsp[-1].blk), (yyvsp[0].blk)); +} +#line 2453 "parser.c" /* yacc.c:1646 */ + break; + + case 16: +#line 336 "parser.y" /* yacc.c:1646 */ + { + FAIL((yyloc), "Possibly unterminated 'if' statement"); + (yyval.blk) = (yyvsp[-2].blk); +} +#line 2462 "parser.c" /* yacc.c:1646 */ + break; + + case 17: +#line 341 "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 2471 "parser.c" /* yacc.c:1646 */ + break; + case 18: -#line 342 "parser.y" /* yacc.c:1646 */ +#line 345 "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 2438 "parser.c" /* yacc.c:1646 */ +#line 2480 "parser.c" /* yacc.c:1646 */ break; case 19: -#line 346 "parser.y" /* yacc.c:1646 */ +#line 349 "parser.y" /* yacc.c:1646 */ { FAIL((yyloc), "Possibly unterminated 'try' statement"); (yyval.blk) = (yyvsp[-2].blk); } -#line 2447 "parser.c" /* yacc.c:1646 */ +#line 2489 "parser.c" /* yacc.c:1646 */ break; case 20: -#line 351 "parser.y" /* yacc.c:1646 */ +#line 354 "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 2458 "parser.c" /* yacc.c:1646 */ +#line 2500 "parser.c" /* yacc.c:1646 */ break; case 21: -#line 363 "parser.y" /* yacc.c:1646 */ +#line 361 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_try((yyvsp[-1].blk), gen_op_simple(BACKTRACK)); } -#line 2466 "parser.c" /* yacc.c:1646 */ +#line 2508 "parser.c" /* yacc.c:1646 */ break; case 22: -#line 367 "parser.y" /* yacc.c:1646 */ +#line 365 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_call("_assign", BLOCK(gen_lambda((yyvsp[-2].blk)), gen_lambda((yyvsp[0].blk)))); } -#line 2474 "parser.c" /* yacc.c:1646 */ +#line 2516 "parser.c" /* yacc.c:1646 */ break; case 23: -#line 371 "parser.y" /* yacc.c:1646 */ +#line 369 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_or((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2482 "parser.c" /* yacc.c:1646 */ +#line 2524 "parser.c" /* yacc.c:1646 */ break; case 24: -#line 375 "parser.y" /* yacc.c:1646 */ +#line 373 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_and((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2490 "parser.c" /* yacc.c:1646 */ +#line 2532 "parser.c" /* yacc.c:1646 */ break; case 25: -#line 379 "parser.y" /* yacc.c:1646 */ +#line 377 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_definedor((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2498 "parser.c" /* yacc.c:1646 */ +#line 2540 "parser.c" /* yacc.c:1646 */ break; case 26: -#line 383 "parser.y" /* yacc.c:1646 */ +#line 381 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_definedor_assign((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2506 "parser.c" /* yacc.c:1646 */ +#line 2548 "parser.c" /* yacc.c:1646 */ break; case 27: -#line 387 "parser.y" /* yacc.c:1646 */ +#line 385 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_call("_modify", BLOCK(gen_lambda((yyvsp[-2].blk)), gen_lambda((yyvsp[0].blk)))); } -#line 2514 "parser.c" /* yacc.c:1646 */ +#line 2556 "parser.c" /* yacc.c:1646 */ break; case 28: -#line 391 "parser.y" /* yacc.c:1646 */ +#line 389 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = block_join((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2522 "parser.c" /* yacc.c:1646 */ +#line 2564 "parser.c" /* yacc.c:1646 */ break; case 29: -#line 395 "parser.y" /* yacc.c:1646 */ +#line 393 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_both((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2530 "parser.c" /* yacc.c:1646 */ +#line 2572 "parser.c" /* yacc.c:1646 */ break; case 30: -#line 399 "parser.y" /* yacc.c:1646 */ +#line 397 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '+'); } -#line 2538 "parser.c" /* yacc.c:1646 */ +#line 2580 "parser.c" /* yacc.c:1646 */ break; case 31: -#line 403 "parser.y" /* yacc.c:1646 */ +#line 401 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '+'); } -#line 2546 "parser.c" /* yacc.c:1646 */ +#line 2588 "parser.c" /* yacc.c:1646 */ break; case 32: -#line 407 "parser.y" /* yacc.c:1646 */ +#line 405 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = BLOCK((yyvsp[0].blk), gen_call("_negate", gen_noop())); } -#line 2554 "parser.c" /* yacc.c:1646 */ +#line 2596 "parser.c" /* yacc.c:1646 */ break; case 33: -#line 411 "parser.y" /* yacc.c:1646 */ +#line 409 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '-'); } -#line 2562 "parser.c" /* yacc.c:1646 */ +#line 2604 "parser.c" /* yacc.c:1646 */ break; case 34: -#line 415 "parser.y" /* yacc.c:1646 */ +#line 413 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '-'); } -#line 2570 "parser.c" /* yacc.c:1646 */ +#line 2612 "parser.c" /* yacc.c:1646 */ break; case 35: -#line 419 "parser.y" /* yacc.c:1646 */ +#line 417 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '*'); } -#line 2578 "parser.c" /* yacc.c:1646 */ +#line 2620 "parser.c" /* yacc.c:1646 */ break; case 36: -#line 423 "parser.y" /* yacc.c:1646 */ +#line 421 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '*'); } -#line 2586 "parser.c" /* yacc.c:1646 */ +#line 2628 "parser.c" /* yacc.c:1646 */ break; case 37: -#line 427 "parser.y" /* yacc.c:1646 */ +#line 425 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '/'); if (block_is_const_inf((yyval.blk))) FAIL((yyloc), "Division by zero?"); } -#line 2596 "parser.c" /* yacc.c:1646 */ +#line 2638 "parser.c" /* yacc.c:1646 */ break; case 38: -#line 433 "parser.y" /* yacc.c:1646 */ +#line 431 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '%'); if (block_is_const_inf((yyval.blk))) FAIL((yyloc), "Remainder by zero?"); } -#line 2606 "parser.c" /* yacc.c:1646 */ +#line 2648 "parser.c" /* yacc.c:1646 */ break; case 39: -#line 439 "parser.y" /* yacc.c:1646 */ +#line 437 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '/'); } -#line 2614 "parser.c" /* yacc.c:1646 */ +#line 2656 "parser.c" /* yacc.c:1646 */ break; case 40: -#line 443 "parser.y" /* yacc.c:1646 */ +#line 441 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '%'); } -#line 2622 "parser.c" /* yacc.c:1646 */ +#line 2664 "parser.c" /* yacc.c:1646 */ break; case 41: -#line 447 "parser.y" /* yacc.c:1646 */ +#line 445 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), EQ); } -#line 2630 "parser.c" /* yacc.c:1646 */ +#line 2672 "parser.c" /* yacc.c:1646 */ break; case 42: -#line 451 "parser.y" /* yacc.c:1646 */ +#line 449 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), NEQ); } -#line 2638 "parser.c" /* yacc.c:1646 */ +#line 2680 "parser.c" /* yacc.c:1646 */ break; case 43: -#line 455 "parser.y" /* yacc.c:1646 */ +#line 453 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '<'); } -#line 2646 "parser.c" /* yacc.c:1646 */ +#line 2688 "parser.c" /* yacc.c:1646 */ break; case 44: -#line 459 "parser.y" /* yacc.c:1646 */ +#line 457 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '>'); } -#line 2654 "parser.c" /* yacc.c:1646 */ +#line 2696 "parser.c" /* yacc.c:1646 */ break; case 45: -#line 463 "parser.y" /* yacc.c:1646 */ +#line 461 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), LESSEQ); } -#line 2662 "parser.c" /* yacc.c:1646 */ +#line 2704 "parser.c" /* yacc.c:1646 */ break; case 46: -#line 467 "parser.y" /* yacc.c:1646 */ +#line 465 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), GREATEREQ); } -#line 2670 "parser.c" /* yacc.c:1646 */ +#line 2712 "parser.c" /* yacc.c:1646 */ break; case 47: -#line 471 "parser.y" /* yacc.c:1646 */ +#line 469 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[0].blk); } -#line 2678 "parser.c" /* yacc.c:1646 */ +#line 2720 "parser.c" /* yacc.c:1646 */ break; case 48: -#line 476 "parser.y" /* yacc.c:1646 */ +#line 474 "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 @@ -2688,11 +2730,11 @@ yyreduce: jv_free((yyvsp[-1].literal)); jv_free(v); } -#line 2692 "parser.c" /* yacc.c:1646 */ +#line 2734 "parser.c" /* yacc.c:1646 */ break; case 49: -#line 485 "parser.y" /* yacc.c:1646 */ +#line 483 "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); @@ -2700,22 +2742,22 @@ yyreduce: jv_free((yyvsp[-1].literal)); jv_free(v); } -#line 2704 "parser.c" /* yacc.c:1646 */ +#line 2746 "parser.c" /* yacc.c:1646 */ break; case 50: -#line 492 "parser.y" /* yacc.c:1646 */ +#line 490 "parser.y" /* yacc.c:1646 */ { jv v = block_const((yyvsp[-1].blk)); (yyval.blk) = gen_import(jv_string_value(v), gen_noop(), NULL, 0); block_free((yyvsp[-1].blk)); jv_free(v); } -#line 2715 "parser.c" /* yacc.c:1646 */ +#line 2757 "parser.c" /* yacc.c:1646 */ break; case 51: -#line 498 "parser.y" /* yacc.c:1646 */ +#line 496 "parser.y" /* yacc.c:1646 */ { if (!block_is_const((yyvsp[-1].blk))) { FAIL((yyloc), "Module metadata must be constant."); @@ -2728,11 +2770,11 @@ yyreduce: block_free((yyvsp[-4].blk)); jv_free((yyvsp[-2].literal)); } -#line 2732 "parser.c" /* yacc.c:1646 */ +#line 2774 "parser.c" /* yacc.c:1646 */ break; case 52: -#line 510 "parser.y" /* yacc.c:1646 */ +#line 508 "parser.y" /* yacc.c:1646 */ { if (!block_is_const((yyvsp[-1].blk))) { FAIL((yyloc), "Module metadata must be constant."); @@ -2744,11 +2786,11 @@ yyreduce: } block_free((yyvsp[-2].blk)); } -#line 2748 "parser.c" /* yacc.c:1646 */ +#line 2790 "parser.c" /* yacc.c:1646 */ break; case 53: -#line 521 "parser.y" /* yacc.c:1646 */ +#line 519 "parser.y" /* yacc.c:1646 */ { if (!block_is_const((yyvsp[-1].blk))) { FAIL((yyloc), "Module metadata must be constant."); @@ -2761,173 +2803,173 @@ yyreduce: block_free((yyvsp[-5].blk)); jv_free((yyvsp[-2].literal)); } -#line 2765 "parser.c" /* yacc.c:1646 */ +#line 2807 "parser.c" /* yacc.c:1646 */ break; case 54: -#line 535 "parser.y" /* yacc.c:1646 */ +#line 533 "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 2774 "parser.c" /* yacc.c:1646 */ +#line 2816 "parser.c" /* yacc.c:1646 */ break; case 55: -#line 540 "parser.y" /* yacc.c:1646 */ +#line 538 "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 2783 "parser.c" /* yacc.c:1646 */ +#line 2825 "parser.c" /* yacc.c:1646 */ break; case 56: -#line 546 "parser.y" /* yacc.c:1646 */ +#line 544 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[0].blk); } -#line 2791 "parser.c" /* yacc.c:1646 */ +#line 2833 "parser.c" /* yacc.c:1646 */ break; case 57: -#line 549 "parser.y" /* yacc.c:1646 */ +#line 547 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2799 "parser.c" /* yacc.c:1646 */ +#line 2841 "parser.c" /* yacc.c:1646 */ break; case 58: -#line 554 "parser.y" /* yacc.c:1646 */ +#line 552 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_param_regular(jv_string_value((yyvsp[0].literal))); jv_free((yyvsp[0].literal)); } -#line 2808 "parser.c" /* yacc.c:1646 */ +#line 2850 "parser.c" /* yacc.c:1646 */ break; case 59: -#line 559 "parser.y" /* yacc.c:1646 */ +#line 557 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_param(jv_string_value((yyvsp[0].literal))); jv_free((yyvsp[0].literal)); } -#line 2817 "parser.c" /* yacc.c:1646 */ +#line 2859 "parser.c" /* yacc.c:1646 */ break; case 60: -#line 566 "parser.y" /* yacc.c:1646 */ +#line 564 "parser.y" /* yacc.c:1646 */ { (yyval.literal) = jv_string("text"); } -#line 2823 "parser.c" /* yacc.c:1646 */ +#line 2865 "parser.c" /* yacc.c:1646 */ break; case 61: -#line 566 "parser.y" /* yacc.c:1646 */ +#line 564 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[-1].blk); jv_free((yyvsp[-2].literal)); } -#line 2832 "parser.c" /* yacc.c:1646 */ +#line 2874 "parser.c" /* yacc.c:1646 */ break; case 62: -#line 570 "parser.y" /* yacc.c:1646 */ +#line 568 "parser.y" /* yacc.c:1646 */ { (yyval.literal) = (yyvsp[-1].literal); } -#line 2838 "parser.c" /* yacc.c:1646 */ +#line 2880 "parser.c" /* yacc.c:1646 */ break; case 63: -#line 570 "parser.y" /* yacc.c:1646 */ +#line 568 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[-1].blk); jv_free((yyvsp[-2].literal)); } -#line 2847 "parser.c" /* yacc.c:1646 */ +#line 2889 "parser.c" /* yacc.c:1646 */ break; case 64: -#line 577 "parser.y" /* yacc.c:1646 */ +#line 575 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_const(jv_string("")); } -#line 2855 "parser.c" /* yacc.c:1646 */ +#line 2897 "parser.c" /* yacc.c:1646 */ break; case 65: -#line 580 "parser.y" /* yacc.c:1646 */ +#line 578 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-1].blk), gen_const((yyvsp[0].literal)), '+'); } -#line 2863 "parser.c" /* yacc.c:1646 */ +#line 2905 "parser.c" /* yacc.c:1646 */ break; case 66: -#line 583 "parser.y" /* yacc.c:1646 */ +#line 581 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-3].blk), gen_format((yyvsp[-1].blk), jv_copy((yyvsp[-4].literal))), '+'); } -#line 2871 "parser.c" /* yacc.c:1646 */ +#line 2913 "parser.c" /* yacc.c:1646 */ break; case 67: -#line 589 "parser.y" /* yacc.c:1646 */ +#line 587 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_cond((yyvsp[-3].blk), (yyvsp[-1].blk), (yyvsp[0].blk)); } -#line 2879 "parser.c" /* yacc.c:1646 */ +#line 2921 "parser.c" /* yacc.c:1646 */ break; case 68: -#line 592 "parser.y" /* yacc.c:1646 */ +#line 590 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[-1].blk); } -#line 2887 "parser.c" /* yacc.c:1646 */ +#line 2929 "parser.c" /* yacc.c:1646 */ break; case 69: -#line 597 "parser.y" /* yacc.c:1646 */ +#line 595 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = block_join((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2895 "parser.c" /* yacc.c:1646 */ +#line 2937 "parser.c" /* yacc.c:1646 */ break; case 70: -#line 600 "parser.y" /* yacc.c:1646 */ +#line 598 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = BLOCK((yyvsp[0].blk), gen_call("_negate", gen_noop())); } -#line 2903 "parser.c" /* yacc.c:1646 */ +#line 2945 "parser.c" /* yacc.c:1646 */ break; case 71: -#line 603 "parser.y" /* yacc.c:1646 */ +#line 601 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[0].blk); } -#line 2911 "parser.c" /* yacc.c:1646 */ +#line 2953 "parser.c" /* yacc.c:1646 */ break; case 72: -#line 609 "parser.y" /* yacc.c:1646 */ +#line 607 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_noop(); } -#line 2919 "parser.c" /* yacc.c:1646 */ +#line 2961 "parser.c" /* yacc.c:1646 */ break; case 73: -#line 612 "parser.y" /* yacc.c:1646 */ +#line 610 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_call("recurse", gen_noop()); } -#line 2927 "parser.c" /* yacc.c:1646 */ +#line 2969 "parser.c" /* yacc.c:1646 */ break; case 74: -#line 615 "parser.y" /* yacc.c:1646 */ +#line 613 "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, @@ -2936,231 +2978,231 @@ yyreduce: jv_free(v); jv_free((yyvsp[0].literal)); } -#line 2940 "parser.c" /* yacc.c:1646 */ +#line 2982 "parser.c" /* yacc.c:1646 */ break; case 75: -#line 623 "parser.y" /* yacc.c:1646 */ +#line 621 "parser.y" /* yacc.c:1646 */ { FAIL((yyloc), "break requires a label to break to"); (yyval.blk) = gen_noop(); } -#line 2949 "parser.c" /* yacc.c:1646 */ +#line 2991 "parser.c" /* yacc.c:1646 */ break; case 76: -#line 627 "parser.y" /* yacc.c:1646 */ +#line 625 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index_opt((yyvsp[-2].blk), gen_const((yyvsp[-1].literal))); } -#line 2957 "parser.c" /* yacc.c:1646 */ +#line 2999 "parser.c" /* yacc.c:1646 */ break; case 77: -#line 630 "parser.y" /* yacc.c:1646 */ +#line 628 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index_opt(gen_noop(), gen_const((yyvsp[-1].literal))); } -#line 2965 "parser.c" /* yacc.c:1646 */ +#line 3007 "parser.c" /* yacc.c:1646 */ break; case 78: -#line 633 "parser.y" /* yacc.c:1646 */ +#line 631 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index_opt((yyvsp[-3].blk), (yyvsp[-1].blk)); } -#line 2973 "parser.c" /* yacc.c:1646 */ +#line 3015 "parser.c" /* yacc.c:1646 */ break; case 79: -#line 636 "parser.y" /* yacc.c:1646 */ +#line 634 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index_opt(gen_noop(), (yyvsp[-1].blk)); } -#line 2981 "parser.c" /* yacc.c:1646 */ +#line 3023 "parser.c" /* yacc.c:1646 */ break; case 80: -#line 639 "parser.y" /* yacc.c:1646 */ +#line 637 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index((yyvsp[-1].blk), gen_const((yyvsp[0].literal))); } -#line 2989 "parser.c" /* yacc.c:1646 */ +#line 3031 "parser.c" /* yacc.c:1646 */ break; case 81: -#line 642 "parser.y" /* yacc.c:1646 */ +#line 640 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index(gen_noop(), gen_const((yyvsp[0].literal))); } -#line 2997 "parser.c" /* yacc.c:1646 */ +#line 3039 "parser.c" /* yacc.c:1646 */ break; case 82: -#line 645 "parser.y" /* yacc.c:1646 */ +#line 643 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3005 "parser.c" /* yacc.c:1646 */ +#line 3047 "parser.c" /* yacc.c:1646 */ break; case 83: -#line 648 "parser.y" /* yacc.c:1646 */ +#line 646 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index(gen_noop(), (yyvsp[0].blk)); } -#line 3013 "parser.c" /* yacc.c:1646 */ +#line 3055 "parser.c" /* yacc.c:1646 */ break; case 84: -#line 651 "parser.y" /* yacc.c:1646 */ +#line 649 "parser.y" /* yacc.c:1646 */ { FAIL((yyloc), "try .[\"field\"] instead of .field for unusually named fields"); (yyval.blk) = gen_noop(); } -#line 3022 "parser.c" /* yacc.c:1646 */ +#line 3064 "parser.c" /* yacc.c:1646 */ break; case 85: -#line 655 "parser.y" /* yacc.c:1646 */ +#line 653 "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 3032 "parser.c" /* yacc.c:1646 */ +#line 3074 "parser.c" /* yacc.c:1646 */ break; case 86: -#line 661 "parser.y" /* yacc.c:1646 */ +#line 659 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index_opt((yyvsp[-4].blk), (yyvsp[-2].blk)); } -#line 3040 "parser.c" /* yacc.c:1646 */ +#line 3082 "parser.c" /* yacc.c:1646 */ break; case 87: -#line 664 "parser.y" /* yacc.c:1646 */ +#line 662 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index((yyvsp[-3].blk), (yyvsp[-1].blk)); } -#line 3048 "parser.c" /* yacc.c:1646 */ +#line 3090 "parser.c" /* yacc.c:1646 */ break; case 88: -#line 667 "parser.y" /* yacc.c:1646 */ +#line 665 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = block_join((yyvsp[-3].blk), gen_op_simple(EACH_OPT)); } -#line 3056 "parser.c" /* yacc.c:1646 */ +#line 3098 "parser.c" /* yacc.c:1646 */ break; case 89: -#line 670 "parser.y" /* yacc.c:1646 */ +#line 668 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = block_join((yyvsp[-2].blk), gen_op_simple(EACH)); } -#line 3064 "parser.c" /* yacc.c:1646 */ +#line 3106 "parser.c" /* yacc.c:1646 */ break; case 90: -#line 673 "parser.y" /* yacc.c:1646 */ +#line 671 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_slice_index((yyvsp[-6].blk), (yyvsp[-4].blk), (yyvsp[-2].blk), INDEX_OPT); } -#line 3072 "parser.c" /* yacc.c:1646 */ +#line 3114 "parser.c" /* yacc.c:1646 */ break; case 91: -#line 676 "parser.y" /* yacc.c:1646 */ +#line 674 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_slice_index((yyvsp[-5].blk), (yyvsp[-3].blk), gen_const(jv_null()), INDEX_OPT); } -#line 3080 "parser.c" /* yacc.c:1646 */ +#line 3122 "parser.c" /* yacc.c:1646 */ break; case 92: -#line 679 "parser.y" /* yacc.c:1646 */ +#line 677 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_slice_index((yyvsp[-5].blk), gen_const(jv_null()), (yyvsp[-2].blk), INDEX_OPT); } -#line 3088 "parser.c" /* yacc.c:1646 */ +#line 3130 "parser.c" /* yacc.c:1646 */ break; case 93: -#line 682 "parser.y" /* yacc.c:1646 */ +#line 680 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_slice_index((yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk), INDEX); } -#line 3096 "parser.c" /* yacc.c:1646 */ +#line 3138 "parser.c" /* yacc.c:1646 */ break; case 94: -#line 685 "parser.y" /* yacc.c:1646 */ +#line 683 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_slice_index((yyvsp[-4].blk), (yyvsp[-2].blk), gen_const(jv_null()), INDEX); } -#line 3104 "parser.c" /* yacc.c:1646 */ +#line 3146 "parser.c" /* yacc.c:1646 */ break; case 95: -#line 688 "parser.y" /* yacc.c:1646 */ +#line 686 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_slice_index((yyvsp[-4].blk), gen_const(jv_null()), (yyvsp[-1].blk), INDEX); } -#line 3112 "parser.c" /* yacc.c:1646 */ +#line 3154 "parser.c" /* yacc.c:1646 */ break; case 96: -#line 691 "parser.y" /* yacc.c:1646 */ +#line 689 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_const((yyvsp[0].literal)); } -#line 3120 "parser.c" /* yacc.c:1646 */ +#line 3162 "parser.c" /* yacc.c:1646 */ break; case 97: -#line 694 "parser.y" /* yacc.c:1646 */ +#line 692 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[0].blk); } -#line 3128 "parser.c" /* yacc.c:1646 */ +#line 3170 "parser.c" /* yacc.c:1646 */ break; case 98: -#line 697 "parser.y" /* yacc.c:1646 */ +#line 695 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_format(gen_noop(), (yyvsp[0].literal)); } -#line 3136 "parser.c" /* yacc.c:1646 */ +#line 3178 "parser.c" /* yacc.c:1646 */ break; case 99: -#line 700 "parser.y" /* yacc.c:1646 */ +#line 698 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[-1].blk); } -#line 3144 "parser.c" /* yacc.c:1646 */ +#line 3186 "parser.c" /* yacc.c:1646 */ break; case 100: -#line 703 "parser.y" /* yacc.c:1646 */ +#line 701 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_collect((yyvsp[-1].blk)); } -#line 3152 "parser.c" /* yacc.c:1646 */ +#line 3194 "parser.c" /* yacc.c:1646 */ break; case 101: -#line 706 "parser.y" /* yacc.c:1646 */ +#line 704 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_const(jv_array()); } -#line 3160 "parser.c" /* yacc.c:1646 */ +#line 3202 "parser.c" /* yacc.c:1646 */ break; case 102: -#line 709 "parser.y" /* yacc.c:1646 */ +#line 707 "parser.y" /* yacc.c:1646 */ { block o = gen_const_object((yyvsp[-1].blk)); if (o.first != NULL) @@ -3168,29 +3210,29 @@ yyreduce: else (yyval.blk) = BLOCK(gen_subexp(gen_const(jv_object())), (yyvsp[-1].blk), gen_op_simple(POP)); } -#line 3172 "parser.c" /* yacc.c:1646 */ +#line 3214 "parser.c" /* yacc.c:1646 */ break; case 103: -#line 716 "parser.y" /* yacc.c:1646 */ +#line 714 "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 3181 "parser.c" /* yacc.c:1646 */ +#line 3223 "parser.c" /* yacc.c:1646 */ break; case 104: -#line 720 "parser.y" /* yacc.c:1646 */ +#line 718 "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 3190 "parser.c" /* yacc.c:1646 */ +#line 3232 "parser.c" /* yacc.c:1646 */ break; case 105: -#line 724 "parser.y" /* yacc.c:1646 */ +#line 722 "parser.y" /* yacc.c:1646 */ { const char *s = jv_string_value((yyvsp[0].literal)); if (strcmp(s, "false") == 0) @@ -3203,409 +3245,409 @@ yyreduce: (yyval.blk) = gen_location((yyloc), locations, gen_call(s, gen_noop())); jv_free((yyvsp[0].literal)); } -#line 3207 "parser.c" /* yacc.c:1646 */ +#line 3249 "parser.c" /* yacc.c:1646 */ break; case 106: -#line 736 "parser.y" /* yacc.c:1646 */ +#line 734 "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 3217 "parser.c" /* yacc.c:1646 */ +#line 3259 "parser.c" /* yacc.c:1646 */ break; case 107: -#line 741 "parser.y" /* yacc.c:1646 */ +#line 739 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_noop(); } -#line 3223 "parser.c" /* yacc.c:1646 */ - break; - - case 108: -#line 742 "parser.y" /* yacc.c:1646 */ - { (yyval.blk) = gen_noop(); } -#line 3229 "parser.c" /* yacc.c:1646 */ - break; - - case 109: -#line 743 "parser.y" /* yacc.c:1646 */ - { (yyval.blk) = (yyvsp[-3].blk); } -#line 3235 "parser.c" /* yacc.c:1646 */ - break; - - case 110: -#line 744 "parser.y" /* yacc.c:1646 */ - { (yyval.blk) = gen_noop(); } -#line 3241 "parser.c" /* yacc.c:1646 */ - break; - - case 111: -#line 747 "parser.y" /* yacc.c:1646 */ - { - (yyval.blk) = (yyvsp[0].blk); -} -#line 3249 "parser.c" /* yacc.c:1646 */ - break; - - case 112: -#line 750 "parser.y" /* yacc.c:1646 */ - { - (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk)); -} -#line 3257 "parser.c" /* yacc.c:1646 */ - break; - - case 113: -#line 755 "parser.y" /* yacc.c:1646 */ - { - (yyval.blk) = gen_lambda((yyvsp[0].blk)); -} #line 3265 "parser.c" /* yacc.c:1646 */ break; + case 108: +#line 740 "parser.y" /* yacc.c:1646 */ + { (yyval.blk) = gen_noop(); } +#line 3271 "parser.c" /* yacc.c:1646 */ + break; + + case 109: +#line 741 "parser.y" /* yacc.c:1646 */ + { (yyval.blk) = (yyvsp[-3].blk); } +#line 3277 "parser.c" /* yacc.c:1646 */ + break; + + case 110: +#line 742 "parser.y" /* yacc.c:1646 */ + { (yyval.blk) = gen_noop(); } +#line 3283 "parser.c" /* yacc.c:1646 */ + break; + + case 111: +#line 745 "parser.y" /* yacc.c:1646 */ + { + (yyval.blk) = (yyvsp[0].blk); +} +#line 3291 "parser.c" /* yacc.c:1646 */ + break; + + case 112: +#line 748 "parser.y" /* yacc.c:1646 */ + { + (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk)); +} +#line 3299 "parser.c" /* yacc.c:1646 */ + break; + + case 113: +#line 753 "parser.y" /* yacc.c:1646 */ + { + (yyval.blk) = gen_lambda((yyvsp[0].blk)); +} +#line 3307 "parser.c" /* yacc.c:1646 */ + break; + case 114: -#line 760 "parser.y" /* yacc.c:1646 */ +#line 758 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_op_unbound(STOREV, jv_string_value((yyvsp[0].literal))); jv_free((yyvsp[0].literal)); } -#line 3274 "parser.c" /* yacc.c:1646 */ +#line 3316 "parser.c" /* yacc.c:1646 */ break; case 115: -#line 764 "parser.y" /* yacc.c:1646 */ +#line 762 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = BLOCK((yyvsp[-1].blk), gen_op_simple(POP)); } -#line 3282 "parser.c" /* yacc.c:1646 */ +#line 3324 "parser.c" /* yacc.c:1646 */ break; case 116: -#line 767 "parser.y" /* yacc.c:1646 */ +#line 765 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = BLOCK((yyvsp[-1].blk), gen_op_simple(POP)); } -#line 3290 "parser.c" /* yacc.c:1646 */ +#line 3332 "parser.c" /* yacc.c:1646 */ break; case 117: -#line 772 "parser.y" /* yacc.c:1646 */ +#line 770 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_array_matcher(gen_noop(), (yyvsp[0].blk)); } -#line 3298 "parser.c" /* yacc.c:1646 */ +#line 3340 "parser.c" /* yacc.c:1646 */ break; case 118: -#line 775 "parser.y" /* yacc.c:1646 */ +#line 773 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_array_matcher((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3306 "parser.c" /* yacc.c:1646 */ +#line 3348 "parser.c" /* yacc.c:1646 */ break; case 119: -#line 780 "parser.y" /* yacc.c:1646 */ +#line 778 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[0].blk); } -#line 3314 "parser.c" /* yacc.c:1646 */ +#line 3356 "parser.c" /* yacc.c:1646 */ break; case 120: -#line 783 "parser.y" /* yacc.c:1646 */ +#line 781 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3322 "parser.c" /* yacc.c:1646 */ +#line 3364 "parser.c" /* yacc.c:1646 */ break; case 121: -#line 788 "parser.y" /* yacc.c:1646 */ +#line 786 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_object_matcher(gen_const((yyvsp[0].literal)), gen_op_unbound(STOREV, jv_string_value((yyvsp[0].literal)))); } -#line 3330 "parser.c" /* yacc.c:1646 */ +#line 3372 "parser.c" /* yacc.c:1646 */ break; case 122: -#line 791 "parser.y" /* yacc.c:1646 */ +#line 789 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_object_matcher(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); } -#line 3338 "parser.c" /* yacc.c:1646 */ +#line 3380 "parser.c" /* yacc.c:1646 */ break; case 123: -#line 794 "parser.y" /* yacc.c:1646 */ +#line 792 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_object_matcher(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); } -#line 3346 "parser.c" /* yacc.c:1646 */ +#line 3388 "parser.c" /* yacc.c:1646 */ break; case 124: -#line 797 "parser.y" /* yacc.c:1646 */ +#line 795 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_object_matcher((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3354 "parser.c" /* yacc.c:1646 */ +#line 3396 "parser.c" /* yacc.c:1646 */ break; case 125: -#line 800 "parser.y" /* yacc.c:1646 */ +#line 798 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_object_matcher((yyvsp[-3].blk), (yyvsp[0].blk)); } -#line 3362 "parser.c" /* yacc.c:1646 */ +#line 3404 "parser.c" /* yacc.c:1646 */ break; case 126: -#line 805 "parser.y" /* yacc.c:1646 */ +#line 803 "parser.y" /* yacc.c:1646 */ { (yyval.literal) = jv_string("as"); } -#line 3370 "parser.c" /* yacc.c:1646 */ +#line 3412 "parser.c" /* yacc.c:1646 */ break; case 127: -#line 808 "parser.y" /* yacc.c:1646 */ +#line 806 "parser.y" /* yacc.c:1646 */ { (yyval.literal) = jv_string("def"); } -#line 3378 "parser.c" /* yacc.c:1646 */ +#line 3420 "parser.c" /* yacc.c:1646 */ break; case 128: -#line 811 "parser.y" /* yacc.c:1646 */ +#line 809 "parser.y" /* yacc.c:1646 */ { (yyval.literal) = jv_string("module"); } -#line 3386 "parser.c" /* yacc.c:1646 */ +#line 3428 "parser.c" /* yacc.c:1646 */ break; case 129: -#line 814 "parser.y" /* yacc.c:1646 */ +#line 812 "parser.y" /* yacc.c:1646 */ { (yyval.literal) = jv_string("import"); } -#line 3394 "parser.c" /* yacc.c:1646 */ +#line 3436 "parser.c" /* yacc.c:1646 */ break; case 130: -#line 817 "parser.y" /* yacc.c:1646 */ +#line 815 "parser.y" /* yacc.c:1646 */ { (yyval.literal) = jv_string("include"); } -#line 3402 "parser.c" /* yacc.c:1646 */ +#line 3444 "parser.c" /* yacc.c:1646 */ break; case 131: -#line 820 "parser.y" /* yacc.c:1646 */ +#line 818 "parser.y" /* yacc.c:1646 */ { (yyval.literal) = jv_string("if"); } -#line 3410 "parser.c" /* yacc.c:1646 */ +#line 3452 "parser.c" /* yacc.c:1646 */ break; case 132: -#line 823 "parser.y" /* yacc.c:1646 */ +#line 821 "parser.y" /* yacc.c:1646 */ { (yyval.literal) = jv_string("then"); } -#line 3418 "parser.c" /* yacc.c:1646 */ +#line 3460 "parser.c" /* yacc.c:1646 */ break; case 133: -#line 826 "parser.y" /* yacc.c:1646 */ +#line 824 "parser.y" /* yacc.c:1646 */ { (yyval.literal) = jv_string("else"); } -#line 3426 "parser.c" /* yacc.c:1646 */ +#line 3468 "parser.c" /* yacc.c:1646 */ break; case 134: -#line 829 "parser.y" /* yacc.c:1646 */ +#line 827 "parser.y" /* yacc.c:1646 */ { (yyval.literal) = jv_string("elif"); } -#line 3434 "parser.c" /* yacc.c:1646 */ +#line 3476 "parser.c" /* yacc.c:1646 */ break; case 135: -#line 832 "parser.y" /* yacc.c:1646 */ +#line 830 "parser.y" /* yacc.c:1646 */ { (yyval.literal) = jv_string("reduce"); } -#line 3442 "parser.c" /* yacc.c:1646 */ +#line 3484 "parser.c" /* yacc.c:1646 */ break; case 136: -#line 835 "parser.y" /* yacc.c:1646 */ +#line 833 "parser.y" /* yacc.c:1646 */ { (yyval.literal) = jv_string("foreach"); } -#line 3450 "parser.c" /* yacc.c:1646 */ +#line 3492 "parser.c" /* yacc.c:1646 */ break; case 137: -#line 838 "parser.y" /* yacc.c:1646 */ +#line 836 "parser.y" /* yacc.c:1646 */ { (yyval.literal) = jv_string("end"); } -#line 3458 "parser.c" /* yacc.c:1646 */ +#line 3500 "parser.c" /* yacc.c:1646 */ break; case 138: -#line 841 "parser.y" /* yacc.c:1646 */ +#line 839 "parser.y" /* yacc.c:1646 */ { (yyval.literal) = jv_string("and"); } -#line 3466 "parser.c" /* yacc.c:1646 */ +#line 3508 "parser.c" /* yacc.c:1646 */ break; case 139: -#line 844 "parser.y" /* yacc.c:1646 */ +#line 842 "parser.y" /* yacc.c:1646 */ { (yyval.literal) = jv_string("or"); } -#line 3474 "parser.c" /* yacc.c:1646 */ +#line 3516 "parser.c" /* yacc.c:1646 */ break; case 140: -#line 847 "parser.y" /* yacc.c:1646 */ +#line 845 "parser.y" /* yacc.c:1646 */ { (yyval.literal) = jv_string("try"); } -#line 3482 "parser.c" /* yacc.c:1646 */ +#line 3524 "parser.c" /* yacc.c:1646 */ break; case 141: -#line 850 "parser.y" /* yacc.c:1646 */ +#line 848 "parser.y" /* yacc.c:1646 */ { (yyval.literal) = jv_string("catch"); } -#line 3490 "parser.c" /* yacc.c:1646 */ +#line 3532 "parser.c" /* yacc.c:1646 */ break; case 142: -#line 853 "parser.y" /* yacc.c:1646 */ +#line 851 "parser.y" /* yacc.c:1646 */ { (yyval.literal) = jv_string("label"); } -#line 3498 "parser.c" /* yacc.c:1646 */ - break; - - case 143: -#line 856 "parser.y" /* yacc.c:1646 */ - { - (yyval.literal) = jv_string("break"); -} -#line 3506 "parser.c" /* yacc.c:1646 */ - break; - - case 144: -#line 859 "parser.y" /* yacc.c:1646 */ - { - (yyval.literal) = jv_string("__loc__"); -} -#line 3514 "parser.c" /* yacc.c:1646 */ - break; - - case 145: -#line 864 "parser.y" /* yacc.c:1646 */ - { - (yyval.blk)=gen_noop(); -} -#line 3522 "parser.c" /* yacc.c:1646 */ - break; - - case 146: -#line 867 "parser.y" /* yacc.c:1646 */ - { (yyval.blk) = (yyvsp[0].blk); } -#line 3528 "parser.c" /* yacc.c:1646 */ - break; - - case 147: -#line 868 "parser.y" /* yacc.c:1646 */ - { (yyval.blk)=block_join((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3534 "parser.c" /* yacc.c:1646 */ - break; - - case 148: -#line 869 "parser.y" /* yacc.c:1646 */ - { (yyval.blk) = (yyvsp[0].blk); } #line 3540 "parser.c" /* yacc.c:1646 */ break; - case 149: -#line 872 "parser.y" /* yacc.c:1646 */ + case 143: +#line 854 "parser.y" /* yacc.c:1646 */ { - (yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); - } + (yyval.literal) = jv_string("break"); +} #line 3548 "parser.c" /* yacc.c:1646 */ break; - case 150: -#line 875 "parser.y" /* yacc.c:1646 */ + case 144: +#line 857 "parser.y" /* yacc.c:1646 */ { - (yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); - } + (yyval.literal) = jv_string("__loc__"); +} #line 3556 "parser.c" /* yacc.c:1646 */ break; - case 151: -#line 878 "parser.y" /* yacc.c:1646 */ + case 145: +#line 862 "parser.y" /* yacc.c:1646 */ { - (yyval.blk) = gen_dictpair((yyvsp[-2].blk), (yyvsp[0].blk)); - } + (yyval.blk)=gen_noop(); +} #line 3564 "parser.c" /* yacc.c:1646 */ break; + case 146: +#line 865 "parser.y" /* yacc.c:1646 */ + { (yyval.blk) = (yyvsp[0].blk); } +#line 3570 "parser.c" /* yacc.c:1646 */ + break; + + case 147: +#line 866 "parser.y" /* yacc.c:1646 */ + { (yyval.blk)=block_join((yyvsp[-2].blk), (yyvsp[0].blk)); } +#line 3576 "parser.c" /* yacc.c:1646 */ + break; + + case 148: +#line 867 "parser.y" /* yacc.c:1646 */ + { (yyval.blk) = (yyvsp[0].blk); } +#line 3582 "parser.c" /* yacc.c:1646 */ + break; + + case 149: +#line 870 "parser.y" /* yacc.c:1646 */ + { + (yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); + } +#line 3590 "parser.c" /* yacc.c:1646 */ + break; + + case 150: +#line 873 "parser.y" /* yacc.c:1646 */ + { + (yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); + } +#line 3598 "parser.c" /* yacc.c:1646 */ + break; + + case 151: +#line 876 "parser.y" /* yacc.c:1646 */ + { + (yyval.blk) = gen_dictpair((yyvsp[-2].blk), (yyvsp[0].blk)); + } +#line 3606 "parser.c" /* yacc.c:1646 */ + break; + case 152: -#line 881 "parser.y" /* yacc.c:1646 */ +#line 879 "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 3573 "parser.c" /* yacc.c:1646 */ +#line 3615 "parser.c" /* yacc.c:1646 */ break; case 153: -#line 885 "parser.y" /* yacc.c:1646 */ +#line 883 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_dictpair(gen_const((yyvsp[0].literal)), gen_location((yyloc), locations, gen_op_unbound(LOADV, jv_string_value((yyvsp[0].literal))))); } -#line 3582 "parser.c" /* yacc.c:1646 */ +#line 3624 "parser.c" /* yacc.c:1646 */ break; case 154: -#line 889 "parser.y" /* yacc.c:1646 */ +#line 887 "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 3591 "parser.c" /* yacc.c:1646 */ +#line 3633 "parser.c" /* yacc.c:1646 */ break; case 155: -#line 893 "parser.y" /* yacc.c:1646 */ +#line 891 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_dictpair((yyvsp[-3].blk), (yyvsp[0].blk)); } -#line 3599 "parser.c" /* yacc.c:1646 */ +#line 3641 "parser.c" /* yacc.c:1646 */ break; case 156: -#line 896 "parser.y" /* yacc.c:1646 */ +#line 894 "parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[0].blk); } -#line 3605 "parser.c" /* yacc.c:1646 */ +#line 3647 "parser.c" /* yacc.c:1646 */ break; -#line 3609 "parser.c" /* yacc.c:1646 */ +#line 3651 "parser.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -3840,7 +3882,7 @@ yyreturn: #endif return yyresult; } -#line 897 "parser.y" /* yacc.c:1906 */ +#line 895 "parser.y" /* yacc.c:1906 */ int jq_parse(struct locfile* locations, block* answer) { diff --git a/parser.h b/parser.h index 20766047..0f6eb0b6 100644 --- a/parser.h +++ b/parser.h @@ -106,7 +106,8 @@ struct lexer_param; QQSTRING_INTERP_START = 297, QQSTRING_INTERP_END = 298, QQSTRING_END = 299, - FUNCDEF = 300 + FUNCDEF = 300, + NONOPT = 301 }; #endif /* Tokens. */ @@ -153,6 +154,7 @@ struct lexer_param; #define QQSTRING_INTERP_END 298 #define QQSTRING_END 299 #define FUNCDEF 300 +#define NONOPT 301 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -164,7 +166,7 @@ union YYSTYPE jv literal; block blk; -#line 168 "parser.h" /* yacc.c:1909 */ +#line 170 "parser.h" /* yacc.c:1909 */ }; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 diff --git a/parser.y b/parser.y index 62c4e5e5..5f44d7a6 100644 --- a/parser.y +++ b/parser.y @@ -90,8 +90,9 @@ struct lexer_param; %token QQSTRING_INTERP_END %token QQSTRING_END -/* see Exp '?' rule */ -%expect 9 +/* Instead of raising this, find a way to use precedence to resolve + * shift-reduce conflicts. */ +%expect 0 %precedence FUNCDEF %right '|' @@ -103,6 +104,8 @@ struct lexer_param; %nonassoc NEQ EQ '<' '>' LESSEQ GREATEREQ %left '+' '-' %left '*' '/' '%' +%precedence NONOPT /* non-optional; rules for which a specialized + '?' rule should be preferred over Exp '?' */ %precedence '?' %precedence "try" %precedence "catch" @@ -355,11 +358,6 @@ Term "as" Pattern '|' Exp { jv_free(v); } | -// This rule conflicts with all the other rules using the '?' operator. -// It doesn't matter which bison prefers: all of them result in the same -// syntax and semantics, but the more specific rules optimize better -// because they use opcodes specifically made for the purpose. We -// expect 9 such conflicts. Exp '?' { $$ = gen_try($1, gen_op_simple(BACKTRACK)); } | @@ -636,16 +634,16 @@ Term '.' String '?' { '.' String '?' { $$ = gen_index_opt(gen_noop(), $2); } | -Term FIELD { +Term FIELD %prec NONOPT { $$ = gen_index($1, gen_const($2)); } | -FIELD { +FIELD %prec NONOPT { $$ = gen_index(gen_noop(), gen_const($1)); } | -Term '.' String { +Term '.' String %prec NONOPT { $$ = gen_index($1, $3); } | -'.' String { +'.' String %prec NONOPT { $$ = gen_index(gen_noop(), $2); } | '.' error { @@ -661,13 +659,13 @@ Term '.' String { Term '[' Exp ']' '?' { $$ = gen_index_opt($1, $3); } | -Term '[' Exp ']' { +Term '[' Exp ']' %prec NONOPT { $$ = gen_index($1, $3); } | Term '[' ']' '?' { $$ = block_join($1, gen_op_simple(EACH_OPT)); } | -Term '[' ']' { +Term '[' ']' %prec NONOPT { $$ = block_join($1, gen_op_simple(EACH)); } | Term '[' Exp ':' Exp ']' '?' { @@ -679,13 +677,13 @@ Term '[' Exp ':' ']' '?' { Term '[' ':' Exp ']' '?' { $$ = gen_slice_index($1, gen_const(jv_null()), $4, INDEX_OPT); } | -Term '[' Exp ':' Exp ']' { +Term '[' Exp ':' Exp ']' %prec NONOPT { $$ = gen_slice_index($1, $3, $5, INDEX); } | -Term '[' Exp ':' ']' { +Term '[' Exp ':' ']' %prec NONOPT { $$ = gen_slice_index($1, $3, gen_const(jv_null()), INDEX); } | -Term '[' ':' Exp ']' { +Term '[' ':' Exp ']' %prec NONOPT { $$ = gen_slice_index($1, gen_const(jv_null()), $4, INDEX); } | LITERAL {