diff --git a/src/parser.c b/src/parser.c index f82bdd1aa8..93a924ae21 100644 --- a/src/parser.c +++ b/src/parser.c @@ -678,16 +678,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 27 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1964 +#define YYLAST 2015 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 69 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 30 /* YYNRULES -- Number of rules. */ -#define YYNRULES 163 +#define YYNRULES 164 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 315 +#define YYNSTATES 316 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ @@ -739,22 +739,22 @@ static const yytype_uint8 yytranslate[] = static const yytype_uint16 yyrline[] = { 0, 300, 300, 303, 308, 311, 322, 325, 330, 333, - 338, 342, 345, 349, 353, 357, 360, 365, 369, 373, - 378, 385, 389, 393, 397, 401, 405, 409, 413, 417, - 421, 425, 429, 433, 437, 441, 445, 449, 455, 461, - 465, 469, 473, 477, 481, 485, 489, 493, 498, 501, - 518, 527, 534, 542, 553, 558, 564, 567, 572, 577, - 584, 584, 588, 588, 595, 598, 601, 607, 610, 615, - 618, 621, 627, 630, 633, 641, 645, 648, 651, 654, - 657, 660, 663, 666, 669, 673, 679, 682, 685, 688, + 338, 342, 345, 349, 353, 357, 360, 363, 368, 372, + 376, 381, 388, 392, 396, 400, 404, 408, 412, 416, + 420, 424, 428, 432, 436, 440, 444, 448, 452, 458, + 464, 468, 472, 476, 480, 484, 488, 492, 496, 501, + 504, 521, 530, 537, 545, 556, 561, 567, 570, 575, + 580, 587, 587, 591, 591, 598, 601, 604, 610, 613, + 618, 621, 624, 630, 633, 636, 644, 648, 651, 654, + 657, 660, 663, 666, 669, 672, 676, 682, 685, 688, 691, 694, 697, 700, 703, 706, 709, 712, 715, 718, - 721, 724, 727, 734, 738, 742, 754, 759, 760, 761, - 762, 765, 768, 773, 778, 781, 786, 789, 794, 798, - 801, 806, 809, 814, 817, 822, 825, 828, 831, 834, - 837, 845, 851, 854, 857, 860, 863, 866, 869, 872, + 721, 724, 727, 730, 737, 741, 745, 757, 762, 763, + 764, 765, 768, 771, 776, 781, 784, 789, 792, 797, + 801, 804, 809, 812, 817, 820, 825, 828, 831, 834, + 837, 840, 848, 854, 857, 860, 863, 866, 869, 872, 875, 878, 881, 884, 887, 890, 893, 896, 899, 902, - 905, 910, 913, 914, 915, 918, 921, 924, 927, 931, - 935, 939, 943, 951 + 905, 908, 913, 916, 917, 918, 921, 924, 927, 930, + 934, 938, 942, 946, 954 }; #endif @@ -797,52 +797,52 @@ static const yytype_uint16 yytoknum[] = }; # endif -#define YYPACT_NINF -160 +#define YYPACT_NINF -158 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-160))) + (!!((Yystate) == (-158))) -#define YYTABLE_NINF -152 +#define YYTABLE_NINF -153 #define yytable_value_is_error(Yytable_value) \ - (!!((Yytable_value) == (-152))) + (!!((Yytable_value) == (-153))) /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int16 yypact[] = { - 29, 764, 3, 59, -7, -10, -160, 16, -160, 57, - 764, 432, 432, 764, 18, 1, -160, 764, 514, 2, - 281, 174, 347, 1282, 764, -160, 5, -160, 4, 4, - 764, 59, 672, 764, -160, -160, -22, 1638, 9, 51, - 43, 74, -160, 75, -160, 66, 49, 1112, -160, -160, - -160, 113, 16, 72, 65, -160, 909, -21, 70, -160, - -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, - -160, -160, -160, -160, -160, -160, -160, -160, 764, 130, - 73, 76, 79, 95, 764, 764, 764, 764, 764, 764, - 764, 764, 764, 764, 764, 764, 764, 764, 764, 764, - 764, 764, 764, 764, 764, 764, 764, 764, -160, -160, - 1806, 90, -13, 4, 447, 137, -160, -160, -160, 1806, - 764, -160, -160, 1333, 1806, -46, -160, -160, 19, 764, - 579, -13, -13, 644, 104, -160, 17, -160, -160, -160, - -160, -160, -160, 404, 213, -160, 213, 1146, 89, 213, - 213, -160, 404, 1874, 116, 116, 1840, 342, 1906, 1874, - 1874, 1874, 1874, 1874, 1874, 116, 116, 1806, 1840, 1874, - 116, 116, 66, 66, 98, 98, 98, -160, 149, -13, - 826, 117, 112, 120, 103, 96, 764, 105, 859, 20, - -160, -160, 764, -160, 23, -160, 160, 64, -160, 1384, - -160, 1588, 123, 124, -160, -160, 764, -160, 764, -160, - -12, -160, 213, 126, 53, 126, 127, 213, 126, 126, - -160, -160, -160, -23, 131, 132, 764, 172, 135, -18, - -160, 136, -13, 764, -160, -160, 959, -160, 736, 129, - -160, 185, -160, -160, -160, 19, 139, -160, 764, 764, - -160, 764, 764, 1806, 1672, -160, 213, 213, 126, -13, - -160, -13, -13, 1180, 143, -13, 826, -160, -13, 153, - 1806, 142, 151, 1009, -160, -160, -160, 764, 1722, 1772, - 1435, 1486, -160, 126, 126, -160, -160, -160, 147, -13, - -160, -160, -160, -160, -160, 154, 1537, -160, 764, 764, - 764, -13, -160, -160, -160, 1588, 1214, 1059, -160, -160, - -160, 764, -160, 1248, -160 + 18, 765, 40, 48, -6, 10, -158, 31, -158, 76, + 765, 433, 433, 765, 20, 0, -158, 765, 515, 17, + 282, 146, 348, 1283, 765, -158, 2, -158, -5, -5, + 765, 48, 673, 765, -158, -158, -10, 1689, 14, 47, + 79, 112, -158, 119, -158, 3, 63, 1113, -158, -158, + -158, 124, 31, 68, 61, -158, 910, -26, 67, -158, + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + -158, -158, -158, -158, -158, -158, -158, -158, 765, 127, + 70, 71, 77, 87, 765, 765, 765, 765, 765, 765, + 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, + 765, 765, 765, 765, 765, 765, 765, 765, -158, -158, + 1857, 86, -16, -5, 448, 135, -158, -158, -158, 1857, + 765, -158, -158, 1334, 1857, -53, -158, -158, 1, 765, + 580, -16, -16, 645, 108, -158, 28, -158, -158, -158, + -158, -158, -158, 405, 214, -158, 214, 1147, 93, 214, + 214, -158, 405, 1925, 343, 343, 1891, 496, 1957, 1925, + 1925, 1925, 1925, 1925, 1925, 343, 343, 1857, 1891, 1925, + 343, 343, 3, 3, 99, 99, 99, -158, 155, -16, + 827, 121, 115, 123, 107, 100, 765, 113, 860, 7, + -158, -158, 765, -158, 75, -158, 166, -20, -158, 1385, + -158, 1589, 114, 117, -158, -158, 765, -158, 765, -158, + -18, -158, 214, 125, 50, 125, 118, 214, 125, 125, + -158, -158, -158, -23, 120, 126, 765, 174, 129, -24, + -158, 130, -16, 765, -158, -158, 960, -158, 737, 122, + -158, 178, -158, -158, -158, 1, 131, -158, 765, 765, + -158, -158, 765, 765, 1857, 1723, -158, 214, 214, 125, + -16, -158, -16, -16, 1181, 132, -16, 827, -158, -16, + 144, 1857, 138, 139, 1010, -158, -158, -158, 765, 1773, + 1823, 1436, 1487, -158, 125, 125, -158, -158, -158, 137, + -16, -158, -158, -158, -158, -158, 140, 1538, -158, 765, + 765, 765, -16, -158, -158, -158, 1639, 1215, 1060, -158, + -158, -158, 765, -158, 1249, -158 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -850,53 +850,53 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 4, 0, 0, 6, 105, 81, 96, 98, 73, 0, - 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, - 0, 0, 0, 0, 0, 97, 47, 1, 0, 0, - 8, 6, 0, 0, 77, 62, 0, 0, 0, 0, - 18, 0, 75, 0, 64, 32, 0, 0, 104, 103, - 84, 0, 0, 83, 0, 101, 0, 0, 161, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 0, 0, - 158, 0, 0, 152, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 6, 106, 82, 97, 99, 74, 0, + 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, + 0, 0, 0, 0, 0, 98, 48, 1, 0, 0, + 8, 6, 0, 0, 78, 63, 0, 0, 0, 0, + 19, 0, 76, 0, 65, 33, 0, 0, 105, 104, + 85, 0, 0, 84, 0, 102, 0, 0, 162, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 0, 0, + 159, 0, 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 21, 5, - 10, 80, 0, 0, 0, 0, 53, 52, 3, 2, - 8, 7, 48, 0, 113, 0, 111, 64, 0, 0, - 0, 0, 0, 0, 0, 74, 0, 107, 99, 85, - 79, 108, 100, 0, 0, 110, 0, 0, 160, 0, - 0, 102, 0, 40, 41, 42, 25, 24, 23, 27, - 31, 34, 36, 39, 26, 45, 46, 28, 29, 22, - 43, 44, 30, 33, 35, 37, 38, 76, 0, 0, - 0, 0, 0, 117, 82, 0, 0, 89, 0, 0, - 9, 49, 0, 106, 0, 59, 0, 0, 56, 0, - 16, 0, 0, 0, 19, 17, 0, 65, 0, 61, - 0, 154, 0, 163, 71, 155, 0, 0, 157, 156, - 153, 118, 121, 0, 0, 0, 0, 0, 0, 0, - 123, 0, 0, 0, 78, 109, 0, 88, 0, 87, - 51, 0, 112, 63, 58, 0, 0, 54, 0, 0, - 15, 0, 0, 20, 0, 70, 0, 0, 159, 0, - 119, 0, 0, 0, 125, 0, 0, 120, 0, 116, - 11, 95, 94, 0, 86, 50, 57, 0, 0, 0, - 0, 0, 66, 69, 162, 122, 131, 127, 0, 0, - 129, 124, 128, 92, 91, 93, 0, 68, 0, 0, - 0, 0, 126, 90, 55, 0, 0, 0, 130, 67, - 12, 0, 14, 0, 13 + 0, 0, 0, 0, 0, 0, 0, 0, 22, 5, + 10, 81, 0, 0, 0, 0, 54, 53, 3, 2, + 8, 7, 49, 0, 114, 0, 112, 65, 0, 0, + 0, 0, 0, 0, 0, 75, 0, 108, 100, 86, + 80, 109, 101, 0, 0, 111, 0, 0, 161, 0, + 0, 103, 0, 41, 42, 43, 26, 25, 24, 28, + 32, 35, 37, 40, 27, 46, 47, 29, 30, 23, + 44, 45, 31, 34, 36, 38, 39, 77, 0, 0, + 0, 0, 0, 118, 83, 0, 0, 90, 0, 0, + 9, 50, 0, 107, 0, 60, 0, 0, 57, 0, + 17, 0, 0, 0, 20, 18, 0, 66, 0, 62, + 0, 155, 0, 164, 72, 156, 0, 0, 158, 157, + 154, 119, 122, 0, 0, 0, 0, 0, 0, 0, + 124, 0, 0, 0, 79, 110, 0, 89, 0, 88, + 52, 0, 113, 64, 59, 0, 0, 55, 0, 0, + 16, 15, 0, 0, 21, 0, 71, 0, 0, 160, + 0, 120, 0, 0, 0, 126, 0, 0, 121, 0, + 117, 11, 96, 95, 0, 87, 51, 58, 0, 0, + 0, 0, 0, 67, 70, 163, 123, 132, 128, 0, + 0, 130, 125, 129, 93, 92, 94, 0, 69, 0, + 0, 0, 0, 127, 91, 56, 0, 0, 0, 131, + 68, 12, 0, 14, 0, 13 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -160, -160, -160, 180, 94, -1, -160, -160, 187, -11, - -160, -19, 6, -160, -160, 97, -83, -145, -4, -160, - 31, -160, -92, -124, -160, -160, -38, -159, -106, -160 + -158, -158, -158, 157, 81, -1, -158, -158, 161, -12, + -158, -43, 6, -158, -158, 88, -103, -136, -8, -158, + 22, -158, -57, -123, -158, -158, -51, -157, -105, -158 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 2, 3, 30, 118, 110, 31, 32, 115, 24, - 197, 198, 25, 44, 127, 136, 250, 213, 26, 125, + 197, 198, 25, 44, 127, 136, 251, 213, 26, 125, 126, 181, 182, 183, 223, 229, 230, 81, 82, 83 }; @@ -905,156 +905,151 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 23, 215, 42, 27, 218, 219, 48, 38, 39, 37, - 111, 52, 40, 192, 111, 193, 45, 47, 112, 120, - 56, 231, 131, 195, 240, 259, 53, 143, 80, 119, - 266, 123, 124, 49, 116, 116, 143, 211, 128, 202, - 203, 129, 144, 260, 1, 16, 220, 145, 34, 178, - 267, 144, 179, 33, 180, 222, 111, 35, 111, 207, - 208, 36, 209, 43, 132, 207, 208, 255, 243, 113, - 114, 133, 258, 113, 114, 28, 29, 147, 134, 135, - 41, 196, 241, 153, 154, 155, 156, 157, 158, 159, + 23, 42, 52, 38, 39, 195, 192, 111, 193, 37, + 215, 240, 40, 218, 219, 112, 45, 47, 120, 111, + 56, 48, 143, 231, 267, 260, 53, 131, 80, 119, + 143, 123, 124, 1, 116, 116, 16, 144, 211, 245, + 27, 246, 145, 261, 268, 144, 178, 220, 49, 179, + 128, 180, 111, 129, 33, 111, 222, 105, 106, 107, + 132, 108, 43, 196, 28, 29, 113, 114, 34, 241, + 207, 208, 35, 209, 202, 203, 256, 147, 113, 114, + 36, 259, 41, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 231, 269, 120, - 137, 283, 284, 188, 139, 113, 114, 113, 114, 184, - 105, 106, 107, 245, 108, 246, -152, -152, 199, 201, - 140, 141, 205, 146, 148, 285, 149, 286, 287, 150, - 214, 290, 214, 152, 292, 214, 214, 151, 177, 80, - 189, 206, 217, 221, -152, -152, 108, 232, 80, 233, - -115, 234, 235, 237, 244, 302, -152, -152, 103, 104, - 105, 106, 107, 256, 108, 54, 264, 308, 4, 5, - 6, 7, 8, 251, 252, 236, 228, 274, 9, 275, - 257, 124, 10, -114, 261, 262, 11, 12, 265, 268, - 293, 13, 277, 14, 15, 253, 289, 254, 214, 294, - 301, 121, 303, 214, 190, 16, 117, 4, 5, 6, - 7, 8, 309, 242, 194, 263, 276, 17, 291, 0, - 0, 0, 270, 0, 18, 0, 19, 273, 20, 21, - 55, 22, 0, 15, 0, 0, 0, 278, 279, 0, - 280, 281, 214, 214, 16, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 212, 0, 0, 0, - 0, 0, 228, 18, 0, 19, 296, 20, 21, 0, - 22, -72, 50, 0, 0, 51, -72, 0, 52, 0, - -72, -72, -72, -72, -72, 0, 0, 305, 306, 307, - -72, -72, -72, 0, 0, -72, -72, -72, 0, -72, - 313, 0, 0, -72, -72, -72, -72, -72, -72, -72, - -72, 0, 16, 0, 0, -72, 0, 0, -72, -72, - -72, -72, -72, -72, -72, -72, -72, -72, 0, -72, - -72, 0, -72, 0, -72, -72, -72, -72, 57, -72, - 0, 58, 85, 86, 52, 0, 0, 0, 0, 0, + 170, 171, 172, 173, 174, 175, 176, 133, 120, 270, + 231, 113, 114, 188, 113, 114, 134, 207, 208, 184, + 243, 284, 285, 135, 137, 139, 140, 141, 199, 201, + 146, 148, 205, 149, 150, 152, 214, 286, 214, 287, + 288, 214, 214, 291, 177, 151, 293, 54, 189, 80, + 4, 5, 6, 7, 8, 206, 217, 108, 80, 221, + 9, 232, 233, -116, 10, 234, 235, 303, 11, 12, + 244, 237, 257, 13, 252, 14, 15, 253, 265, 309, + 275, 258, 276, 262, -115, 236, 228, 16, 121, 263, + 117, 124, 266, 269, 278, 290, 294, 295, 304, 17, + 302, 190, 277, 310, 214, 254, 18, 255, 19, 214, + 20, 21, 55, 22, 242, 194, 292, 0, 4, 5, + 6, 7, 8, 0, 0, 264, 0, 0, 0, 0, + 0, 0, 271, 0, 0, 0, 0, 274, 0, 0, + 0, 0, 0, 0, 15, 0, 0, 279, 280, 214, + 214, 281, 282, 0, 0, 16, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 212, 0, 0, + 0, 0, 0, 228, 18, 0, 19, 297, 20, 21, + 0, 22, -73, 50, 0, 0, 51, -73, 0, 52, + 0, -73, -73, -73, -73, -73, 0, 0, 306, 307, + 308, -73, -73, -73, 0, 0, -73, -73, -73, 0, + -73, 314, 0, 0, -73, -73, -73, -73, -73, -73, + -73, -73, 0, 16, 0, 0, -73, 0, 0, -73, + -73, -73, -73, -73, -73, -73, -73, -73, -73, 0, + -73, -73, 0, -73, 0, -73, -73, -73, -73, 57, + -73, 0, 58, -153, -153, 52, 0, 0, 0, 0, + 0, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 0, -153, -153, 0, 0, 0, 0, 0, 0, 16, + 0, 0, 0, -153, -153, 103, 104, 105, 106, 107, + 0, 108, 0, 0, 0, 0, 210, 0, 78, 58, + 79, 0, 52, 0, 0, 0, -152, 0, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 4, 5, 6, + 7, 8, 0, 0, 0, 0, 16, 0, 0, 185, + 0, 0, 4, 5, 6, 7, 8, 0, 0, 0, + 0, 0, 9, 15, 0, 78, 10, 79, 0, 0, + 11, 12, 0, -152, 16, 13, 0, 14, 15, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, + 0, 0, 0, 18, 0, 19, 0, 20, 21, 0, + 22, 17, 0, 0, 0, 0, 85, 86, 18, 0, + 19, 186, 20, 21, 187, 22, 46, 0, 0, 4, + 5, 6, 7, 8, 0, 0, 0, 0, 0, 9, + 0, 0, 0, 10, 96, 97, 0, 11, 12, 0, + 0, 0, 13, 0, 14, 15, 101, 102, 103, 104, + 105, 106, 107, 0, 108, 0, 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, 200, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 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, 204, 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, 0, 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, 0, 16, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 122, 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, 0, 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, 273, 22, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, + 0, 0, 0, 0, 0, 18, 0, 19, 224, 20, + 21, 225, 22, 0, 52, 0, 0, 0, 0, 0, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 0, - 96, 97, 0, 0, 0, 0, 0, 0, 16, 0, - 0, 0, 101, 102, 103, 104, 105, 106, 107, 0, - 108, 0, 0, 0, 0, 210, 0, 78, 58, 79, - 0, 52, 0, 0, 0, -151, 0, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 4, 5, 6, 7, - 8, 0, 0, 0, 0, 16, 0, 0, 185, 0, - 0, 4, 5, 6, 7, 8, 0, 0, 0, 0, - 0, 9, 15, 0, 78, 10, 79, 0, 0, 11, - 12, 0, -151, 16, 13, 0, 14, 15, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, - 0, 0, 18, 0, 19, 0, 20, 21, 0, 22, - 17, 0, 0, 0, 0, 0, 0, 18, 0, 19, - 186, 20, 21, 187, 22, 46, 0, 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, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 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, - 200, 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, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 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, 204, 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, 0, 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, 0, 16, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, - 0, 122, 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, 0, 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, 272, 22, 0, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, - 0, 0, 0, 0, 18, 0, 19, 224, 20, 21, - 225, 22, 0, 52, 0, 0, 0, 0, 0, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 16, 84, 85, - 86, 87, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 88, 89, 226, 0, 227, 0, - 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, - 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 0, 108, 84, 85, - 86, 87, 238, 0, 0, 239, 0, 0, 0, 0, - 0, 0, 0, 0, 88, 89, 0, 0, 0, 0, - 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, - 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 0, 108, 84, 85, - 86, 87, 0, 0, 0, 142, 0, 0, 0, 0, - 0, 0, 0, 0, 88, 89, 0, 0, 0, 0, - 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, - 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 0, 108, 84, 85, - 86, 87, 0, 0, 0, 271, 0, 0, 0, 0, - 0, 0, 0, 0, 88, 89, 0, 0, 0, 0, - 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, - 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 0, 108, 84, 85, - 86, 87, 0, 0, 0, 295, 0, 0, 0, 0, - 0, 0, 0, 0, 88, 89, 0, 0, 0, 0, - 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, - 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 0, 108, 311, 0, - 312, 84, 85, 86, 87, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 88, 89, 0, - 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, - 96, 97, 0, 0, 0, 84, 85, 86, 87, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 0, - 108, 88, 89, 138, 0, 0, 0, 0, 90, 91, - 92, 93, 94, 95, 96, 97, 0, 0, 0, 84, - 85, 86, 87, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 0, 108, 88, 89, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 84, + 85, 86, 87, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 88, 89, 226, 0, 227, 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, - 0, 0, 0, 84, 85, 86, 87, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 0, 108, 88, - 89, 288, 0, 0, 0, 0, 90, 91, 92, 93, - 94, 95, 96, 97, 0, 0, 0, 84, 85, 86, - 87, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 0, 108, 88, 89, 310, 0, 0, 0, 0, - 90, 91, 92, 93, 94, 95, 96, 97, 0, 0, - 0, 84, 85, 86, 87, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 0, 108, 88, 89, 314, - 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, - 96, 97, 0, 0, 0, 0, 0, 0, 0, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 0, - 108, 109, 84, 85, 86, 87, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 0, 108, 84, + 85, 86, 87, 238, 0, 0, 239, 0, 0, 0, + 0, 0, 0, 0, 0, 88, 89, 0, 0, 0, + 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, + 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 0, 108, 84, + 85, 86, 87, 0, 0, 0, 142, 0, 0, 0, + 0, 0, 0, 0, 0, 88, 89, 0, 0, 0, + 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, + 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 0, 108, 84, + 85, 86, 87, 0, 0, 0, 272, 0, 0, 0, + 0, 0, 0, 0, 0, 88, 89, 0, 0, 0, + 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, + 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 0, 108, 84, + 85, 86, 87, 0, 0, 0, 296, 0, 0, 0, + 0, 0, 0, 0, 0, 88, 89, 0, 0, 0, + 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, + 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 0, 108, 312, + 0, 313, 84, 85, 86, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 89, 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, + 95, 96, 97, 0, 0, 0, 84, 85, 86, 87, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 0, 108, 88, 89, 138, 0, 0, 0, 0, 90, + 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, + 84, 85, 86, 87, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 0, 108, 88, 89, 216, 0, + 0, 0, 0, 90, 91, 92, 93, 94, 95, 96, + 97, 0, 0, 0, 84, 85, 86, 87, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 0, 108, + 88, 89, 289, 0, 0, 0, 0, 90, 91, 92, + 93, 94, 95, 96, 97, 0, 0, 0, 84, 85, + 86, 87, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 0, 108, 88, 89, 311, 0, 0, 0, + 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, + 0, 0, 84, 85, 86, 87, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 0, 108, 88, 89, + 315, 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 0, 108, 191, 84, 85, 86, 87, 0, 0, 0, + 0, 108, 109, 84, 85, 86, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 89, 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 0, 108, 247, 84, 85, 86, 87, 0, 0, + 107, 0, 108, 191, 84, 85, 86, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 89, 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 0, 108, 299, 84, 85, 86, 87, 0, + 106, 107, 0, 108, 247, 84, 85, 86, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 89, 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, 0, @@ -1064,185 +1059,190 @@ static const yytype_int16 yytable[] = 0, 0, 88, 89, 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 0, 108, 304, 84, 85, 86, - 87, 0, 0, 0, 0, 0, 0, 0, 248, 249, + 104, 105, 106, 107, 0, 108, 301, 84, 85, 86, + 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 89, 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 0, 108, 84, 85, 86, - 87, 0, 0, 0, 0, 0, 0, 130, 0, 0, - 0, 0, 0, 88, 89, 0, 0, 0, 0, 0, - 90, 91, 92, 93, 94, 95, 96, 97, 0, 0, - 0, 84, 85, 86, 87, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 0, 108, 88, 89, 0, - 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, - 96, 97, 0, 0, 0, 0, 282, 0, 0, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 0, - 108, 84, 85, 86, 87, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 297, 88, 89, 0, - 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, - 96, 97, 0, 0, 0, 0, 0, 0, 0, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 0, - 108, 84, 85, 86, 87, 0, 0, 0, 0, 0, - 0, 298, 0, 0, 0, 0, 0, 88, 89, 0, - 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, - 96, 97, 0, 0, 0, 84, 85, 86, 87, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 0, - 108, 88, 89, 0, 0, 0, 0, 0, 90, 91, - 92, 93, 94, 95, 96, 97, 0, 0, 0, 84, - 85, 86, 87, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 0, 108, 88, 89, 0, 0, 0, - 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, - 0, 0, 0, -152, 85, 86, 0, 0, 0, 100, - 101, 102, 103, 104, 105, 106, 107, 0, 108, 88, - 89, 0, 0, 0, 0, 0, -152, -152, -152, -152, - -152, -152, 96, 97, 0, 0, 85, 86, 0, 0, - 0, 0, 0, -152, 101, 102, 103, 104, 105, 106, - 107, 88, 108, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 96, 97, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 101, 102, 103, 104, - 105, 106, 107, 0, 108 + 103, 104, 105, 106, 107, 0, 108, 305, 84, 85, + 86, 87, 0, 0, 0, 0, 0, 0, 0, 248, + 249, 0, 0, 250, 88, 89, 0, 0, 0, 0, + 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, + 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 0, 108, 84, 85, + 86, 87, 0, 0, 0, 0, 0, 0, 0, 248, + 249, 0, 0, 0, 88, 89, 0, 0, 0, 0, + 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, + 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 0, 108, 84, 85, + 86, 87, 0, 0, 0, 0, 0, 0, 130, 0, + 0, 0, 0, 0, 88, 89, 0, 0, 0, 0, + 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, + 0, 0, 84, 85, 86, 87, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 0, 108, 88, 89, + 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, + 95, 96, 97, 0, 0, 0, 0, 283, 0, 0, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 0, 108, 84, 85, 86, 87, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 298, 88, 89, + 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, + 95, 96, 97, 0, 0, 0, 0, 0, 0, 0, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 0, 108, 84, 85, 86, 87, 0, 0, 0, 0, + 0, 0, 299, 0, 0, 0, 0, 0, 88, 89, + 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, + 95, 96, 97, 0, 0, 0, 84, 85, 86, 87, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 0, 108, 88, 89, 0, 0, 0, 0, 0, 90, + 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, + 84, 85, 86, 87, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 0, 108, 88, 89, 0, 0, + 0, 0, 0, 90, 91, 92, 93, 94, 95, 96, + 97, 0, 0, 0, -153, 85, 86, 0, 0, 0, + 100, 101, 102, 103, 104, 105, 106, 107, 0, 108, + 88, 89, 0, 0, 0, 0, 0, -153, -153, -153, + -153, -153, -153, 96, 97, 0, 0, 85, 86, 0, + 0, 0, 0, 0, -153, 101, 102, 103, 104, 105, + 106, 107, 88, 108, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 96, 97, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 101, 102, 103, + 104, 105, 106, 107, 0, 108 }; static const yytype_int16 yycheck[] = { - 1, 146, 1, 0, 149, 150, 4, 11, 12, 10, - 5, 7, 13, 59, 5, 61, 17, 18, 13, 30, - 21, 180, 13, 4, 4, 48, 20, 48, 22, 30, - 48, 32, 33, 31, 28, 29, 48, 143, 60, 131, - 132, 63, 63, 66, 15, 41, 152, 68, 58, 62, - 68, 63, 65, 60, 67, 179, 5, 41, 5, 42, - 43, 4, 45, 62, 13, 42, 43, 212, 45, 64, - 65, 28, 217, 64, 65, 16, 17, 78, 4, 4, - 62, 62, 62, 84, 85, 86, 87, 88, 89, 90, + 1, 1, 7, 11, 12, 4, 59, 5, 61, 10, + 146, 4, 13, 149, 150, 13, 17, 18, 30, 5, + 21, 4, 48, 180, 48, 48, 20, 13, 22, 30, + 48, 32, 33, 15, 28, 29, 41, 63, 143, 59, + 0, 61, 68, 66, 68, 63, 62, 152, 31, 65, + 60, 67, 5, 63, 60, 5, 179, 54, 55, 56, + 13, 58, 62, 62, 16, 17, 64, 65, 58, 62, + 42, 43, 41, 45, 131, 132, 212, 78, 64, 65, + 4, 217, 62, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 266, 232, 120, - 61, 256, 257, 114, 1, 64, 65, 64, 65, 113, - 54, 55, 56, 59, 58, 61, 10, 11, 129, 130, - 58, 66, 133, 63, 4, 259, 63, 261, 262, 63, - 144, 265, 146, 48, 268, 149, 150, 68, 58, 143, - 13, 47, 63, 4, 38, 39, 58, 40, 152, 47, - 40, 58, 66, 58, 4, 289, 50, 51, 52, 53, - 54, 55, 56, 47, 58, 1, 4, 301, 4, 5, - 6, 7, 8, 60, 60, 186, 180, 58, 14, 4, - 63, 192, 18, 40, 63, 63, 22, 23, 63, 63, - 58, 27, 63, 29, 30, 206, 63, 208, 212, 58, - 63, 31, 58, 217, 120, 41, 29, 4, 5, 6, - 7, 8, 305, 192, 127, 226, 245, 53, 266, -1, - -1, -1, 233, -1, 60, -1, 62, 238, 64, 65, - 66, 67, -1, 30, -1, -1, -1, 248, 249, -1, - 251, 252, 256, 257, 41, -1, -1, -1, -1, -1, + 101, 102, 103, 104, 105, 106, 107, 28, 120, 232, + 267, 64, 65, 114, 64, 65, 4, 42, 43, 113, + 45, 257, 258, 4, 61, 1, 58, 66, 129, 130, + 63, 4, 133, 63, 63, 48, 144, 260, 146, 262, + 263, 149, 150, 266, 58, 68, 269, 1, 13, 143, + 4, 5, 6, 7, 8, 47, 63, 58, 152, 4, + 14, 40, 47, 40, 18, 58, 66, 290, 22, 23, + 4, 58, 47, 27, 60, 29, 30, 60, 4, 302, + 58, 63, 4, 63, 40, 186, 180, 41, 31, 63, + 29, 192, 63, 63, 63, 63, 58, 58, 58, 53, + 63, 120, 245, 306, 212, 206, 60, 208, 62, 217, + 64, 65, 66, 67, 192, 127, 267, -1, 4, 5, + 6, 7, 8, -1, -1, 226, -1, -1, -1, -1, + -1, -1, 233, -1, -1, -1, -1, 238, -1, -1, + -1, -1, -1, -1, 30, -1, -1, 248, 249, 257, + 258, 252, 253, -1, -1, 41, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 53, -1, -1, + -1, -1, -1, 267, 60, -1, 62, 278, 64, 65, + -1, 67, 0, 1, -1, -1, 4, 5, -1, 7, + -1, 9, 10, 11, 12, 13, -1, -1, 299, 300, + 301, 19, 20, 21, -1, -1, 24, 25, 26, -1, + 28, 312, -1, -1, 32, 33, 34, 35, 36, 37, + 38, 39, -1, 41, -1, -1, 44, -1, -1, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, + 58, 59, -1, 61, -1, 63, 64, 65, 66, 1, + 68, -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, -1, 41, + -1, -1, -1, 50, 51, 52, 53, 54, 55, 56, + -1, 58, -1, -1, -1, -1, 1, -1, 60, 4, + 62, -1, 7, -1, -1, -1, 68, -1, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 4, 5, 6, + 7, 8, -1, -1, -1, -1, 41, -1, -1, 1, + -1, -1, 4, 5, 6, 7, 8, -1, -1, -1, + -1, -1, 14, 30, -1, 60, 18, 62, -1, -1, + 22, 23, -1, 68, 41, 27, -1, 29, 30, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, + -1, -1, -1, 60, -1, 62, -1, 64, 65, -1, + 67, 53, -1, -1, -1, -1, 10, 11, 60, -1, + 62, 63, 64, 65, 66, 67, 1, -1, -1, 4, + 5, 6, 7, 8, -1, -1, -1, -1, -1, 14, + -1, -1, -1, 18, 38, 39, -1, 22, 23, -1, + -1, -1, 27, -1, 29, 30, 50, 51, 52, 53, + 54, 55, 56, -1, 58, -1, 41, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 53, -1, + -1, -1, -1, -1, -1, 60, -1, 62, -1, 64, + 65, 1, 67, -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, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 53, -1, -1, -1, -1, -1, -1, + 60, -1, 62, -1, 64, 65, 1, 67, -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, -1, 4, 5, 6, + 7, 8, -1, -1, -1, -1, 41, 14, -1, -1, + -1, 18, -1, -1, -1, 22, 23, -1, 53, -1, + 27, -1, 29, 30, -1, 60, -1, 62, -1, 64, + 65, -1, 67, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, -1, -1, -1, - -1, -1, 266, 60, -1, 62, 277, 64, 65, -1, - 67, 0, 1, -1, -1, 4, 5, -1, 7, -1, - 9, 10, 11, 12, 13, -1, -1, 298, 299, 300, - 19, 20, 21, -1, -1, 24, 25, 26, -1, 28, - 311, -1, -1, 32, 33, 34, 35, 36, 37, 38, - 39, -1, 41, -1, -1, 44, -1, -1, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, - 59, -1, 61, -1, 63, 64, 65, 66, 1, 68, - -1, 4, 10, 11, 7, -1, -1, -1, -1, -1, + -1, -1, 59, 60, -1, 62, -1, 64, 65, -1, + 67, 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, -1, 4, + 5, 6, 7, 8, -1, -1, -1, -1, 41, 14, + -1, -1, -1, 18, -1, -1, -1, 22, 23, -1, + 53, -1, 27, -1, 29, 30, -1, 60, -1, 62, + -1, 64, 65, 66, 67, -1, 41, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 53, -1, + -1, -1, -1, -1, -1, 60, -1, 62, 1, 64, + 65, 4, 67, -1, 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, -1, 41, -1, - -1, -1, 50, 51, 52, 53, 54, 55, 56, -1, - 58, -1, -1, -1, -1, 1, -1, 60, 4, 62, - -1, 7, -1, -1, -1, 68, -1, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 4, 5, 6, 7, - 8, -1, -1, -1, -1, 41, -1, -1, 1, -1, - -1, 4, 5, 6, 7, 8, -1, -1, -1, -1, - -1, 14, 30, -1, 60, 18, 62, -1, -1, 22, - 23, -1, 68, 41, 27, -1, 29, 30, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, - -1, -1, 60, -1, 62, -1, 64, 65, -1, 67, - 53, -1, -1, -1, -1, -1, -1, 60, -1, 62, - 63, 64, 65, 66, 67, 1, -1, -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, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 41, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 53, -1, -1, - -1, -1, -1, -1, 60, -1, 62, -1, 64, 65, - 1, 67, -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, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 53, -1, -1, -1, -1, -1, -1, 60, - -1, 62, -1, 64, 65, 1, 67, -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, -1, 4, 5, 6, 7, - 8, -1, -1, -1, -1, 41, 14, -1, -1, -1, - 18, -1, -1, -1, 22, 23, -1, 53, -1, 27, - -1, 29, 30, -1, 60, -1, 62, -1, 64, 65, - -1, 67, -1, 41, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 53, -1, -1, -1, -1, - -1, 59, 60, -1, 62, -1, 64, 65, -1, 67, - 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, -1, 4, 5, - 6, 7, 8, -1, -1, -1, -1, 41, 14, -1, - -1, -1, 18, -1, -1, -1, 22, 23, -1, 53, - -1, 27, -1, 29, 30, -1, 60, -1, 62, -1, - 64, 65, 66, 67, -1, 41, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 53, -1, -1, - -1, -1, -1, -1, 60, -1, 62, 1, 64, 65, - 4, 67, -1, 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, -1, - -1, -1, -1, -1, -1, -1, -1, 41, 9, 10, - 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 25, 26, 60, -1, 62, -1, - -1, 32, 33, 34, 35, 36, 37, 38, 39, -1, - -1, -1, -1, -1, -1, -1, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, -1, 58, 9, 10, - 11, 12, 63, -1, -1, 66, -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, -1, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, -1, 58, 9, 10, - 11, 12, -1, -1, -1, 66, -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, -1, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, -1, 58, 9, 10, - 11, 12, -1, -1, -1, 66, -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, -1, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, -1, 58, 9, 10, - 11, 12, -1, -1, -1, 66, -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, -1, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, -1, 58, 59, -1, - 61, 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, 9, 10, 11, 12, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, - 58, 25, 26, 61, -1, -1, -1, -1, 32, 33, - 34, 35, 36, 37, 38, 39, -1, -1, -1, 9, - 10, 11, 12, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, -1, 58, 25, 26, 61, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 41, 9, + 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 25, 26, 60, -1, 62, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, - -1, -1, -1, 9, 10, 11, 12, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, -1, 58, 25, - 26, 61, -1, -1, -1, -1, 32, 33, 34, 35, - 36, 37, 38, 39, -1, -1, -1, 9, 10, 11, - 12, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, -1, 58, 25, 26, 61, -1, -1, -1, -1, - 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, - -1, 9, 10, 11, 12, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, -1, 58, 25, 26, 61, - -1, -1, -1, -1, 32, 33, 34, 35, 36, 37, - 38, 39, -1, -1, -1, -1, -1, -1, -1, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, - 58, 59, 9, 10, 11, 12, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, -1, 58, 9, + 10, 11, 12, 63, -1, -1, 66, -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, -1, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, -1, 58, 9, + 10, 11, 12, -1, -1, -1, 66, -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, -1, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, -1, 58, 9, + 10, 11, 12, -1, -1, -1, 66, -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, -1, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, -1, 58, 9, + 10, 11, 12, -1, -1, -1, 66, -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, -1, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, + -1, 61, 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, 9, 10, 11, 12, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + -1, 58, 25, 26, 61, -1, -1, -1, -1, 32, + 33, 34, 35, 36, 37, 38, 39, -1, -1, -1, + 9, 10, 11, 12, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, -1, 58, 25, 26, 61, -1, + -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, + 39, -1, -1, -1, 9, 10, 11, 12, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, + 25, 26, 61, -1, -1, -1, -1, 32, 33, 34, + 35, 36, 37, 38, 39, -1, -1, -1, 9, 10, + 11, 12, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, -1, 58, 25, 26, 61, -1, -1, -1, + -1, 32, 33, 34, 35, 36, 37, 38, 39, -1, + -1, -1, 9, 10, 11, 12, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, -1, 58, 25, 26, + 61, -1, -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 9, 10, 11, 12, -1, -1, -1, @@ -1266,43 +1266,53 @@ static const yytype_int16 yycheck[] = 33, 34, 35, 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 9, 10, 11, - 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, + 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, -1, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, -1, 58, 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, - -1, 9, 10, 11, 12, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, -1, 58, 25, 26, -1, - -1, -1, -1, -1, 32, 33, 34, 35, 36, 37, - 38, 39, -1, -1, -1, -1, 44, -1, -1, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, - 58, 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, -1, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, - 58, 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, -1, 9, 10, 11, 12, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, - 58, 25, 26, -1, -1, -1, -1, -1, 32, 33, - 34, 35, 36, 37, 38, 39, -1, -1, -1, 9, - 10, 11, 12, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, -1, 58, 25, 26, -1, -1, -1, - -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, - -1, -1, -1, 9, 10, 11, -1, -1, -1, 49, - 50, 51, 52, 53, 54, 55, 56, -1, 58, 25, - 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, - 36, 37, 38, 39, -1, -1, 10, 11, -1, -1, - -1, -1, -1, 49, 50, 51, 52, 53, 54, 55, - 56, 25, 58, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 38, 39, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 50, 51, 52, 53, - 54, 55, 56, -1, 58 + 52, 53, 54, 55, 56, -1, 58, 59, 9, 10, + 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, + 21, -1, -1, 24, 25, 26, -1, -1, -1, -1, + -1, 32, 33, 34, 35, 36, 37, 38, 39, -1, + -1, -1, -1, -1, -1, -1, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, -1, 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, -1, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, -1, 58, 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, -1, 9, 10, 11, 12, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, -1, 58, 25, 26, + -1, -1, -1, -1, -1, 32, 33, 34, 35, 36, + 37, 38, 39, -1, -1, -1, -1, 44, -1, -1, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + -1, 58, 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, -1, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + -1, 58, 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, -1, 9, 10, 11, 12, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + -1, 58, 25, 26, -1, -1, -1, -1, -1, 32, + 33, 34, 35, 36, 37, 38, 39, -1, -1, -1, + 9, 10, 11, 12, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, -1, 58, 25, 26, -1, -1, + -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, + 39, -1, -1, -1, 9, 10, 11, -1, -1, -1, + 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, + 25, 26, -1, -1, -1, -1, -1, 32, 33, 34, + 35, 36, 37, 38, 39, -1, -1, 10, 11, -1, + -1, -1, -1, -1, 49, 50, 51, 52, 53, 54, + 55, 56, 25, 58, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 38, 39, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 50, 51, 52, + 53, 54, 55, 56, -1, 58 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1334,13 +1344,13 @@ static const yytype_uint8 yystos[] = 97, 4, 92, 93, 1, 4, 60, 62, 81, 94, 95, 96, 40, 47, 58, 66, 74, 58, 63, 66, 4, 62, 89, 45, 4, 59, 61, 59, 20, 21, - 85, 60, 60, 74, 74, 86, 47, 63, 86, 48, - 66, 63, 63, 74, 4, 63, 48, 68, 63, 92, - 74, 66, 66, 74, 58, 4, 80, 63, 74, 74, - 74, 74, 44, 86, 86, 92, 92, 92, 61, 63, - 92, 95, 92, 58, 58, 66, 74, 24, 19, 59, - 59, 63, 92, 58, 59, 74, 74, 74, 92, 85, - 61, 59, 61, 74, 61 + 24, 85, 60, 60, 74, 74, 86, 47, 63, 86, + 48, 66, 63, 63, 74, 4, 63, 48, 68, 63, + 92, 74, 66, 66, 74, 58, 4, 80, 63, 74, + 74, 74, 74, 44, 86, 86, 92, 92, 92, 61, + 63, 92, 95, 92, 58, 58, 66, 74, 24, 19, + 59, 59, 63, 92, 58, 59, 74, 74, 74, 92, + 85, 61, 59, 61, 74, 61 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ @@ -1350,41 +1360,41 @@ static const yytype_uint8 yyr1[] = 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, 75, 75, - 76, 76, 76, 77, 78, 78, 79, 79, 80, 80, - 82, 81, 83, 81, 84, 84, 84, 85, 85, 86, - 86, 86, 87, 87, 87, 87, 87, 87, 87, 87, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 75, + 75, 76, 76, 76, 77, 78, 78, 79, 79, 80, + 80, 82, 81, 83, 81, 84, 84, 84, 85, 85, + 86, 86, 86, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 88, 88, 89, 90, 90, 91, 91, 92, 92, - 92, 93, 93, 94, 94, 95, 95, 95, 95, 95, - 95, 95, 96, 96, 96, 96, 96, 96, 96, 96, + 87, 87, 88, 88, 89, 90, 90, 91, 91, 92, + 92, 92, 93, 93, 94, 94, 95, 95, 95, 95, + 95, 95, 95, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 97, 97, 97, 97, 98, 98, 98, 98, 98, - 98, 98, 98, 98 + 96, 96, 97, 97, 97, 97, 98, 98, 98, 98, + 98, 98, 98, 98, 98 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 3, 3, 0, 3, 0, 2, 0, 2, - 2, 5, 9, 11, 9, 5, 4, 4, 2, 4, - 5, 2, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 1, 2, 3, - 5, 4, 2, 1, 5, 8, 1, 3, 2, 1, - 0, 4, 0, 5, 0, 2, 4, 5, 3, 3, - 2, 1, 1, 1, 3, 2, 3, 2, 4, 3, - 2, 1, 3, 2, 2, 3, 5, 4, 4, 3, - 7, 6, 6, 6, 5, 5, 1, 1, 1, 3, - 3, 2, 3, 2, 2, 1, 4, 3, 3, 4, - 3, 1, 3, 1, 3, 1, 3, 1, 2, 3, - 3, 1, 3, 1, 3, 2, 4, 3, 3, 3, - 5, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 5, 9, 11, 9, 5, 5, 4, 4, 2, + 4, 5, 2, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, + 3, 5, 4, 2, 1, 5, 8, 1, 3, 2, + 1, 0, 4, 0, 5, 0, 2, 4, 5, 3, + 3, 2, 1, 1, 1, 3, 2, 3, 2, 4, + 3, 2, 1, 3, 2, 2, 3, 5, 4, 4, + 3, 7, 6, 6, 6, 5, 5, 1, 1, 1, + 3, 3, 2, 3, 2, 2, 1, 4, 3, 3, + 4, 3, 1, 3, 1, 3, 1, 3, 1, 2, + 3, 3, 1, 3, 1, 3, 2, 4, 3, 3, + 3, 5, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 1, 3, 3, 3, 3, 3, 1, 4, - 2, 1, 5, 3 + 1, 1, 0, 1, 3, 3, 3, 3, 3, 1, + 4, 2, 1, 5, 3 }; @@ -1817,6 +1827,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, case N: \ yyformat = S; \ break + default: /* Avoid compiler warnings. */ YYCASE_(0, YY_("syntax error")); YYCASE_(1, YY_("syntax error, unexpected %s")); YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); @@ -1885,189 +1896,189 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio switch (yytype) { case 4: /* IDENT */ -#line 36 "src/parser.y" /* yacc.c:1257 */ +#line 36 "src/parser.y" /* yacc.c:1258 */ { jv_free(((*yyvaluep).literal)); } -#line 1891 "src/parser.c" /* yacc.c:1257 */ +#line 1902 "src/parser.c" /* yacc.c:1258 */ break; case 5: /* FIELD */ -#line 36 "src/parser.y" /* yacc.c:1257 */ +#line 36 "src/parser.y" /* yacc.c:1258 */ { jv_free(((*yyvaluep).literal)); } -#line 1897 "src/parser.c" /* yacc.c:1257 */ +#line 1908 "src/parser.c" /* yacc.c:1258 */ break; case 6: /* LITERAL */ -#line 36 "src/parser.y" /* yacc.c:1257 */ +#line 36 "src/parser.y" /* yacc.c:1258 */ { jv_free(((*yyvaluep).literal)); } -#line 1903 "src/parser.c" /* yacc.c:1257 */ +#line 1914 "src/parser.c" /* yacc.c:1258 */ break; case 7: /* FORMAT */ -#line 36 "src/parser.y" /* yacc.c:1257 */ +#line 36 "src/parser.y" /* yacc.c:1258 */ { jv_free(((*yyvaluep).literal)); } -#line 1909 "src/parser.c" /* yacc.c:1257 */ +#line 1920 "src/parser.c" /* yacc.c:1258 */ break; case 42: /* QQSTRING_TEXT */ -#line 36 "src/parser.y" /* yacc.c:1257 */ +#line 36 "src/parser.y" /* yacc.c:1258 */ { jv_free(((*yyvaluep).literal)); } -#line 1915 "src/parser.c" /* yacc.c:1257 */ +#line 1926 "src/parser.c" /* yacc.c:1258 */ break; case 71: /* Module */ -#line 37 "src/parser.y" /* yacc.c:1257 */ +#line 37 "src/parser.y" /* yacc.c:1258 */ { block_free(((*yyvaluep).blk)); } -#line 1921 "src/parser.c" /* yacc.c:1257 */ +#line 1932 "src/parser.c" /* yacc.c:1258 */ break; case 72: /* Imports */ -#line 37 "src/parser.y" /* yacc.c:1257 */ +#line 37 "src/parser.y" /* yacc.c:1258 */ { block_free(((*yyvaluep).blk)); } -#line 1927 "src/parser.c" /* yacc.c:1257 */ +#line 1938 "src/parser.c" /* yacc.c:1258 */ break; case 73: /* FuncDefs */ -#line 37 "src/parser.y" /* yacc.c:1257 */ +#line 37 "src/parser.y" /* yacc.c:1258 */ { block_free(((*yyvaluep).blk)); } -#line 1933 "src/parser.c" /* yacc.c:1257 */ +#line 1944 "src/parser.c" /* yacc.c:1258 */ break; case 74: /* Exp */ -#line 37 "src/parser.y" /* yacc.c:1257 */ +#line 37 "src/parser.y" /* yacc.c:1258 */ { block_free(((*yyvaluep).blk)); } -#line 1939 "src/parser.c" /* yacc.c:1257 */ +#line 1950 "src/parser.c" /* yacc.c:1258 */ break; case 75: /* Import */ -#line 37 "src/parser.y" /* yacc.c:1257 */ +#line 37 "src/parser.y" /* yacc.c:1258 */ { block_free(((*yyvaluep).blk)); } -#line 1945 "src/parser.c" /* yacc.c:1257 */ +#line 1956 "src/parser.c" /* yacc.c:1258 */ break; case 76: /* ImportWhat */ -#line 37 "src/parser.y" /* yacc.c:1257 */ +#line 37 "src/parser.y" /* yacc.c:1258 */ { block_free(((*yyvaluep).blk)); } -#line 1951 "src/parser.c" /* yacc.c:1257 */ +#line 1962 "src/parser.c" /* yacc.c:1258 */ break; case 77: /* ImportFrom */ -#line 37 "src/parser.y" /* yacc.c:1257 */ +#line 37 "src/parser.y" /* yacc.c:1258 */ { block_free(((*yyvaluep).blk)); } -#line 1957 "src/parser.c" /* yacc.c:1257 */ +#line 1968 "src/parser.c" /* yacc.c:1258 */ break; case 78: /* FuncDef */ -#line 37 "src/parser.y" /* yacc.c:1257 */ +#line 37 "src/parser.y" /* yacc.c:1258 */ { block_free(((*yyvaluep).blk)); } -#line 1963 "src/parser.c" /* yacc.c:1257 */ +#line 1974 "src/parser.c" /* yacc.c:1258 */ break; case 79: /* Params */ -#line 37 "src/parser.y" /* yacc.c:1257 */ +#line 37 "src/parser.y" /* yacc.c:1258 */ { block_free(((*yyvaluep).blk)); } -#line 1969 "src/parser.c" /* yacc.c:1257 */ +#line 1980 "src/parser.c" /* yacc.c:1258 */ break; case 80: /* Param */ -#line 37 "src/parser.y" /* yacc.c:1257 */ +#line 37 "src/parser.y" /* yacc.c:1258 */ { block_free(((*yyvaluep).blk)); } -#line 1975 "src/parser.c" /* yacc.c:1257 */ +#line 1986 "src/parser.c" /* yacc.c:1258 */ break; case 81: /* String */ -#line 37 "src/parser.y" /* yacc.c:1257 */ +#line 37 "src/parser.y" /* yacc.c:1258 */ { block_free(((*yyvaluep).blk)); } -#line 1981 "src/parser.c" /* yacc.c:1257 */ +#line 1992 "src/parser.c" /* yacc.c:1258 */ break; case 84: /* QQString */ -#line 37 "src/parser.y" /* yacc.c:1257 */ +#line 37 "src/parser.y" /* yacc.c:1258 */ { block_free(((*yyvaluep).blk)); } -#line 1987 "src/parser.c" /* yacc.c:1257 */ +#line 1998 "src/parser.c" /* yacc.c:1258 */ break; case 85: /* ElseBody */ -#line 37 "src/parser.y" /* yacc.c:1257 */ +#line 37 "src/parser.y" /* yacc.c:1258 */ { block_free(((*yyvaluep).blk)); } -#line 1993 "src/parser.c" /* yacc.c:1257 */ +#line 2004 "src/parser.c" /* yacc.c:1258 */ break; case 86: /* ExpD */ -#line 37 "src/parser.y" /* yacc.c:1257 */ +#line 37 "src/parser.y" /* yacc.c:1258 */ { block_free(((*yyvaluep).blk)); } -#line 1999 "src/parser.c" /* yacc.c:1257 */ +#line 2010 "src/parser.c" /* yacc.c:1258 */ break; case 87: /* Term */ -#line 37 "src/parser.y" /* yacc.c:1257 */ +#line 37 "src/parser.y" /* yacc.c:1258 */ { block_free(((*yyvaluep).blk)); } -#line 2005 "src/parser.c" /* yacc.c:1257 */ +#line 2016 "src/parser.c" /* yacc.c:1258 */ break; case 88: /* Args */ -#line 37 "src/parser.y" /* yacc.c:1257 */ +#line 37 "src/parser.y" /* yacc.c:1258 */ { block_free(((*yyvaluep).blk)); } -#line 2011 "src/parser.c" /* yacc.c:1257 */ +#line 2022 "src/parser.c" /* yacc.c:1258 */ break; case 89: /* Arg */ -#line 37 "src/parser.y" /* yacc.c:1257 */ +#line 37 "src/parser.y" /* yacc.c:1258 */ { block_free(((*yyvaluep).blk)); } -#line 2017 "src/parser.c" /* yacc.c:1257 */ +#line 2028 "src/parser.c" /* yacc.c:1258 */ break; case 90: /* RepPatterns */ -#line 37 "src/parser.y" /* yacc.c:1257 */ +#line 37 "src/parser.y" /* yacc.c:1258 */ { block_free(((*yyvaluep).blk)); } -#line 2023 "src/parser.c" /* yacc.c:1257 */ +#line 2034 "src/parser.c" /* yacc.c:1258 */ break; case 91: /* Patterns */ -#line 37 "src/parser.y" /* yacc.c:1257 */ +#line 37 "src/parser.y" /* yacc.c:1258 */ { block_free(((*yyvaluep).blk)); } -#line 2029 "src/parser.c" /* yacc.c:1257 */ +#line 2040 "src/parser.c" /* yacc.c:1258 */ break; case 92: /* Pattern */ -#line 37 "src/parser.y" /* yacc.c:1257 */ +#line 37 "src/parser.y" /* yacc.c:1258 */ { block_free(((*yyvaluep).blk)); } -#line 2035 "src/parser.c" /* yacc.c:1257 */ +#line 2046 "src/parser.c" /* yacc.c:1258 */ break; case 93: /* ArrayPats */ -#line 37 "src/parser.y" /* yacc.c:1257 */ +#line 37 "src/parser.y" /* yacc.c:1258 */ { block_free(((*yyvaluep).blk)); } -#line 2041 "src/parser.c" /* yacc.c:1257 */ +#line 2052 "src/parser.c" /* yacc.c:1258 */ break; case 94: /* ObjPats */ -#line 37 "src/parser.y" /* yacc.c:1257 */ +#line 37 "src/parser.y" /* yacc.c:1258 */ { block_free(((*yyvaluep).blk)); } -#line 2047 "src/parser.c" /* yacc.c:1257 */ +#line 2058 "src/parser.c" /* yacc.c:1258 */ break; case 95: /* ObjPat */ -#line 37 "src/parser.y" /* yacc.c:1257 */ +#line 37 "src/parser.y" /* yacc.c:1258 */ { block_free(((*yyvaluep).blk)); } -#line 2053 "src/parser.c" /* yacc.c:1257 */ +#line 2064 "src/parser.c" /* yacc.c:1258 */ break; case 96: /* Keyword */ -#line 36 "src/parser.y" /* yacc.c:1257 */ +#line 36 "src/parser.y" /* yacc.c:1258 */ { jv_free(((*yyvaluep).literal)); } -#line 2059 "src/parser.c" /* yacc.c:1257 */ +#line 2070 "src/parser.c" /* yacc.c:1258 */ break; case 97: /* MkDict */ -#line 37 "src/parser.y" /* yacc.c:1257 */ +#line 37 "src/parser.y" /* yacc.c:1258 */ { block_free(((*yyvaluep).blk)); } -#line 2065 "src/parser.c" /* yacc.c:1257 */ +#line 2076 "src/parser.c" /* yacc.c:1258 */ break; case 98: /* MkDictPair */ -#line 37 "src/parser.y" /* yacc.c:1257 */ +#line 37 "src/parser.y" /* yacc.c:1258 */ { block_free(((*yyvaluep).blk)); } -#line 2071 "src/parser.c" /* yacc.c:1257 */ +#line 2082 "src/parser.c" /* yacc.c:1258 */ break; @@ -2353,37 +2364,38 @@ YYLTYPE yylloc = yyloc_default; GCC warning that YYVAL may be used uninitialized. */ yyval = yyvsp[1-yylen]; - /* Default location. */ + /* Default location. */ YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); + yyerror_range[1] = yyloc; YY_REDUCE_PRINT (yyn); switch (yyn) { case 2: -#line 300 "src/parser.y" /* yacc.c:1646 */ +#line 300 "src/parser.y" /* yacc.c:1648 */ { *answer = BLOCK((yyvsp[-2].blk), (yyvsp[-1].blk), gen_op_simple(TOP), (yyvsp[0].blk)); } -#line 2367 "src/parser.c" /* yacc.c:1646 */ +#line 2379 "src/parser.c" /* yacc.c:1648 */ break; case 3: -#line 303 "src/parser.y" /* yacc.c:1646 */ +#line 303 "src/parser.y" /* yacc.c:1648 */ { *answer = BLOCK((yyvsp[-2].blk), (yyvsp[-1].blk), (yyvsp[0].blk)); } -#line 2375 "src/parser.c" /* yacc.c:1646 */ +#line 2387 "src/parser.c" /* yacc.c:1648 */ break; case 4: -#line 308 "src/parser.y" /* yacc.c:1646 */ +#line 308 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_noop(); } -#line 2383 "src/parser.c" /* yacc.c:1646 */ +#line 2395 "src/parser.c" /* yacc.c:1648 */ break; case 5: -#line 311 "src/parser.y" /* yacc.c:1646 */ +#line 311 "src/parser.y" /* yacc.c:1648 */ { if (!block_is_const((yyvsp[-1].blk))) { FAIL((yyloc), "Module metadata must be constant"); @@ -2393,366 +2405,374 @@ YYLTYPE yylloc = yyloc_default; (yyval.blk) = gen_module((yyvsp[-1].blk)); } } -#line 2397 "src/parser.c" /* yacc.c:1646 */ +#line 2409 "src/parser.c" /* yacc.c:1648 */ break; case 6: -#line 322 "src/parser.y" /* yacc.c:1646 */ +#line 322 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_noop(); } -#line 2405 "src/parser.c" /* yacc.c:1646 */ +#line 2417 "src/parser.c" /* yacc.c:1648 */ break; case 7: -#line 325 "src/parser.y" /* yacc.c:1646 */ +#line 325 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = BLOCK((yyvsp[-1].blk), (yyvsp[0].blk)); } -#line 2413 "src/parser.c" /* yacc.c:1646 */ +#line 2425 "src/parser.c" /* yacc.c:1648 */ break; case 8: -#line 330 "src/parser.y" /* yacc.c:1646 */ +#line 330 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_noop(); } -#line 2421 "src/parser.c" /* yacc.c:1646 */ +#line 2433 "src/parser.c" /* yacc.c:1648 */ break; case 9: -#line 333 "src/parser.y" /* yacc.c:1646 */ +#line 333 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = block_join((yyvsp[-1].blk), (yyvsp[0].blk)); } -#line 2429 "src/parser.c" /* yacc.c:1646 */ +#line 2441 "src/parser.c" /* yacc.c:1648 */ break; case 10: -#line 338 "src/parser.y" /* yacc.c:1646 */ +#line 338 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = block_bind_referenced((yyvsp[-1].blk), (yyvsp[0].blk), OP_IS_CALL_PSEUDO); } -#line 2437 "src/parser.c" /* yacc.c:1646 */ +#line 2449 "src/parser.c" /* yacc.c:1648 */ break; case 11: -#line 342 "src/parser.y" /* yacc.c:1646 */ +#line 342 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_destructure((yyvsp[-4].blk), (yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2445 "src/parser.c" /* yacc.c:1646 */ +#line 2457 "src/parser.c" /* yacc.c:1648 */ break; case 12: -#line 345 "src/parser.y" /* yacc.c:1646 */ +#line 345 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_reduce((yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk)); } -#line 2453 "src/parser.c" /* yacc.c:1646 */ +#line 2465 "src/parser.c" /* yacc.c:1648 */ break; case 13: -#line 349 "src/parser.y" /* yacc.c:1646 */ +#line 349 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_foreach((yyvsp[-9].blk), (yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk)); } -#line 2461 "src/parser.c" /* yacc.c:1646 */ +#line 2473 "src/parser.c" /* yacc.c:1648 */ break; case 14: -#line 353 "src/parser.y" /* yacc.c:1646 */ +#line 353 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_foreach((yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk), gen_noop()); } -#line 2469 "src/parser.c" /* yacc.c:1646 */ +#line 2481 "src/parser.c" /* yacc.c:1648 */ break; case 15: -#line 357 "src/parser.y" /* yacc.c:1646 */ +#line 357 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_cond((yyvsp[-3].blk), (yyvsp[-1].blk), (yyvsp[0].blk)); } -#line 2477 "src/parser.c" /* yacc.c:1646 */ +#line 2489 "src/parser.c" /* yacc.c:1648 */ break; case 16: -#line 360 "src/parser.y" /* yacc.c:1646 */ +#line 360 "src/parser.y" /* yacc.c:1648 */ + { + (yyval.blk) = gen_cond((yyvsp[-3].blk), (yyvsp[-1].blk), gen_noop()); +} +#line 2497 "src/parser.c" /* yacc.c:1648 */ + break; + + case 17: +#line 363 "src/parser.y" /* yacc.c:1648 */ { FAIL((yyloc), "Possibly unterminated 'if' statement"); (yyval.blk) = (yyvsp[-2].blk); } -#line 2486 "src/parser.c" /* yacc.c:1646 */ +#line 2506 "src/parser.c" /* yacc.c:1648 */ break; - case 17: -#line 365 "src/parser.y" /* yacc.c:1646 */ + case 18: +#line 368 "src/parser.y" /* yacc.c:1648 */ { //$$ = BLOCK(gen_op_target(FORK_OPT, $2), $2, $4); (yyval.blk) = gen_try((yyvsp[-2].blk), gen_try_handler((yyvsp[0].blk))); } -#line 2495 "src/parser.c" /* yacc.c:1646 */ +#line 2515 "src/parser.c" /* yacc.c:1648 */ break; - case 18: -#line 369 "src/parser.y" /* yacc.c:1646 */ + case 19: +#line 372 "src/parser.y" /* yacc.c:1648 */ { //$$ = BLOCK(gen_op_target(FORK_OPT, $2), $2, gen_op_simple(BACKTRACK)); (yyval.blk) = gen_try((yyvsp[0].blk), gen_op_simple(BACKTRACK)); } -#line 2504 "src/parser.c" /* yacc.c:1646 */ +#line 2524 "src/parser.c" /* yacc.c:1648 */ break; - case 19: -#line 373 "src/parser.y" /* yacc.c:1646 */ + case 20: +#line 376 "src/parser.y" /* yacc.c:1648 */ { FAIL((yyloc), "Possibly unterminated 'try' statement"); (yyval.blk) = (yyvsp[-2].blk); } -#line 2513 "src/parser.c" /* yacc.c:1646 */ +#line 2533 "src/parser.c" /* yacc.c:1648 */ break; - case 20: -#line 378 "src/parser.y" /* yacc.c:1646 */ + case 21: +#line 381 "src/parser.y" /* yacc.c:1648 */ { 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 2524 "src/parser.c" /* yacc.c:1646 */ +#line 2544 "src/parser.c" /* yacc.c:1648 */ break; - case 21: -#line 385 "src/parser.y" /* yacc.c:1646 */ + case 22: +#line 388 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_try((yyvsp[-1].blk), gen_op_simple(BACKTRACK)); } -#line 2532 "src/parser.c" /* yacc.c:1646 */ +#line 2552 "src/parser.c" /* yacc.c:1648 */ break; - case 22: -#line 389 "src/parser.y" /* yacc.c:1646 */ + case 23: +#line 392 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_call("_assign", BLOCK(gen_lambda((yyvsp[-2].blk)), gen_lambda((yyvsp[0].blk)))); } -#line 2540 "src/parser.c" /* yacc.c:1646 */ +#line 2560 "src/parser.c" /* yacc.c:1648 */ break; - case 23: -#line 393 "src/parser.y" /* yacc.c:1646 */ + case 24: +#line 396 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_or((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2548 "src/parser.c" /* yacc.c:1646 */ +#line 2568 "src/parser.c" /* yacc.c:1648 */ break; - case 24: -#line 397 "src/parser.y" /* yacc.c:1646 */ + case 25: +#line 400 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_and((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2556 "src/parser.c" /* yacc.c:1646 */ +#line 2576 "src/parser.c" /* yacc.c:1648 */ break; - case 25: -#line 401 "src/parser.y" /* yacc.c:1646 */ + case 26: +#line 404 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_definedor((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2564 "src/parser.c" /* yacc.c:1646 */ +#line 2584 "src/parser.c" /* yacc.c:1648 */ break; - case 26: -#line 405 "src/parser.y" /* yacc.c:1646 */ + case 27: +#line 408 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_definedor_assign((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2572 "src/parser.c" /* yacc.c:1646 */ +#line 2592 "src/parser.c" /* yacc.c:1648 */ break; - case 27: -#line 409 "src/parser.y" /* yacc.c:1646 */ + case 28: +#line 412 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_call("_modify", BLOCK(gen_lambda((yyvsp[-2].blk)), gen_lambda((yyvsp[0].blk)))); } -#line 2580 "src/parser.c" /* yacc.c:1646 */ +#line 2600 "src/parser.c" /* yacc.c:1648 */ break; - case 28: -#line 413 "src/parser.y" /* yacc.c:1646 */ + case 29: +#line 416 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = block_join((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2588 "src/parser.c" /* yacc.c:1646 */ +#line 2608 "src/parser.c" /* yacc.c:1648 */ break; - case 29: -#line 417 "src/parser.y" /* yacc.c:1646 */ + case 30: +#line 420 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_both((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2596 "src/parser.c" /* yacc.c:1646 */ +#line 2616 "src/parser.c" /* yacc.c:1648 */ break; - case 30: -#line 421 "src/parser.y" /* yacc.c:1646 */ + case 31: +#line 424 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '+'); } -#line 2604 "src/parser.c" /* yacc.c:1646 */ +#line 2624 "src/parser.c" /* yacc.c:1648 */ break; - case 31: -#line 425 "src/parser.y" /* yacc.c:1646 */ + case 32: +#line 428 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '+'); } -#line 2612 "src/parser.c" /* yacc.c:1646 */ +#line 2632 "src/parser.c" /* yacc.c:1648 */ break; - case 32: -#line 429 "src/parser.y" /* yacc.c:1646 */ + case 33: +#line 432 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = BLOCK((yyvsp[0].blk), gen_call("_negate", gen_noop())); } -#line 2620 "src/parser.c" /* yacc.c:1646 */ +#line 2640 "src/parser.c" /* yacc.c:1648 */ break; - case 33: -#line 433 "src/parser.y" /* yacc.c:1646 */ + case 34: +#line 436 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '-'); } -#line 2628 "src/parser.c" /* yacc.c:1646 */ +#line 2648 "src/parser.c" /* yacc.c:1648 */ break; - case 34: -#line 437 "src/parser.y" /* yacc.c:1646 */ + case 35: +#line 440 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '-'); } -#line 2636 "src/parser.c" /* yacc.c:1646 */ +#line 2656 "src/parser.c" /* yacc.c:1648 */ break; - case 35: -#line 441 "src/parser.y" /* yacc.c:1646 */ + case 36: +#line 444 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '*'); } -#line 2644 "src/parser.c" /* yacc.c:1646 */ +#line 2664 "src/parser.c" /* yacc.c:1648 */ break; - case 36: -#line 445 "src/parser.y" /* yacc.c:1646 */ + case 37: +#line 448 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '*'); } -#line 2652 "src/parser.c" /* yacc.c:1646 */ +#line 2672 "src/parser.c" /* yacc.c:1648 */ break; - case 37: -#line 449 "src/parser.y" /* yacc.c:1646 */ + case 38: +#line 452 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '/'); if (block_is_const_inf((yyval.blk))) FAIL((yyloc), "Division by zero?"); } -#line 2662 "src/parser.c" /* yacc.c:1646 */ +#line 2682 "src/parser.c" /* yacc.c:1648 */ break; - case 38: -#line 455 "src/parser.y" /* yacc.c:1646 */ + case 39: +#line 458 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '%'); if (block_is_const_inf((yyval.blk))) FAIL((yyloc), "Remainder by zero?"); } -#line 2672 "src/parser.c" /* yacc.c:1646 */ +#line 2692 "src/parser.c" /* yacc.c:1648 */ break; - case 39: -#line 461 "src/parser.y" /* yacc.c:1646 */ + case 40: +#line 464 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '/'); } -#line 2680 "src/parser.c" /* yacc.c:1646 */ +#line 2700 "src/parser.c" /* yacc.c:1648 */ break; - case 40: -#line 465 "src/parser.y" /* yacc.c:1646 */ + case 41: +#line 468 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '%'); } -#line 2688 "src/parser.c" /* yacc.c:1646 */ +#line 2708 "src/parser.c" /* yacc.c:1648 */ break; - case 41: -#line 469 "src/parser.y" /* yacc.c:1646 */ + case 42: +#line 472 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), EQ); } -#line 2696 "src/parser.c" /* yacc.c:1646 */ +#line 2716 "src/parser.c" /* yacc.c:1648 */ break; - case 42: -#line 473 "src/parser.y" /* yacc.c:1646 */ + case 43: +#line 476 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), NEQ); } -#line 2704 "src/parser.c" /* yacc.c:1646 */ +#line 2724 "src/parser.c" /* yacc.c:1648 */ break; - case 43: -#line 477 "src/parser.y" /* yacc.c:1646 */ + case 44: +#line 480 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '<'); } -#line 2712 "src/parser.c" /* yacc.c:1646 */ +#line 2732 "src/parser.c" /* yacc.c:1648 */ break; - case 44: -#line 481 "src/parser.y" /* yacc.c:1646 */ + case 45: +#line 484 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '>'); } -#line 2720 "src/parser.c" /* yacc.c:1646 */ +#line 2740 "src/parser.c" /* yacc.c:1648 */ break; - case 45: -#line 485 "src/parser.y" /* yacc.c:1646 */ + case 46: +#line 488 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), LESSEQ); } -#line 2728 "src/parser.c" /* yacc.c:1646 */ +#line 2748 "src/parser.c" /* yacc.c:1648 */ break; - case 46: -#line 489 "src/parser.y" /* yacc.c:1646 */ + case 47: +#line 492 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), GREATEREQ); } -#line 2736 "src/parser.c" /* yacc.c:1646 */ +#line 2756 "src/parser.c" /* yacc.c:1648 */ break; - case 47: -#line 493 "src/parser.y" /* yacc.c:1646 */ + case 48: +#line 496 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = (yyvsp[0].blk); } -#line 2744 "src/parser.c" /* yacc.c:1646 */ +#line 2764 "src/parser.c" /* yacc.c:1648 */ break; - case 48: -#line 498 "src/parser.y" /* yacc.c:1646 */ + case 49: +#line 501 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = (yyvsp[-1].blk); } -#line 2752 "src/parser.c" /* yacc.c:1646 */ +#line 2772 "src/parser.c" /* yacc.c:1648 */ break; - case 49: -#line 501 "src/parser.y" /* yacc.c:1646 */ + case 50: +#line 504 "src/parser.y" /* yacc.c:1648 */ { if (!block_is_const((yyvsp[-1].blk))) { FAIL((yyloc), "Module metadata must be constant"); @@ -2768,11 +2788,11 @@ YYLTYPE yylloc = yyloc_default; (yyval.blk) = gen_import_meta((yyvsp[-2].blk), (yyvsp[-1].blk)); } } -#line 2772 "src/parser.c" /* yacc.c:1646 */ +#line 2792 "src/parser.c" /* yacc.c:1648 */ break; - case 50: -#line 518 "src/parser.y" /* yacc.c:1646 */ + case 51: +#line 521 "src/parser.y" /* yacc.c:1648 */ { jv v = block_const((yyvsp[-3].blk)); // XXX Make gen_import take only blocks and the int is_data so we @@ -2782,11 +2802,11 @@ YYLTYPE yylloc = yyloc_default; jv_free((yyvsp[0].literal)); jv_free(v); } -#line 2786 "src/parser.c" /* yacc.c:1646 */ +#line 2806 "src/parser.c" /* yacc.c:1648 */ break; - case 51: -#line 527 "src/parser.y" /* yacc.c:1646 */ + case 52: +#line 530 "src/parser.y" /* yacc.c:1648 */ { jv v = block_const((yyvsp[-2].blk)); (yyval.blk) = gen_import(jv_string_value(v), jv_string_value((yyvsp[0].literal)), 0); @@ -2794,22 +2814,22 @@ YYLTYPE yylloc = yyloc_default; jv_free((yyvsp[0].literal)); jv_free(v); } -#line 2798 "src/parser.c" /* yacc.c:1646 */ +#line 2818 "src/parser.c" /* yacc.c:1648 */ break; - case 52: -#line 534 "src/parser.y" /* yacc.c:1646 */ + case 53: +#line 537 "src/parser.y" /* yacc.c:1648 */ { jv v = block_const((yyvsp[0].blk)); (yyval.blk) = gen_import(jv_string_value(v), NULL, 0); block_free((yyvsp[0].blk)); jv_free(v); } -#line 2809 "src/parser.c" /* yacc.c:1646 */ +#line 2829 "src/parser.c" /* yacc.c:1648 */ break; - case 53: -#line 542 "src/parser.y" /* yacc.c:1646 */ + case 54: +#line 545 "src/parser.y" /* yacc.c:1648 */ { if (!block_is_const((yyvsp[0].blk))) { FAIL((yyloc), "Import path must be constant"); @@ -2819,173 +2839,173 @@ YYLTYPE yylloc = yyloc_default; (yyval.blk) = (yyvsp[0].blk); } } -#line 2823 "src/parser.c" /* yacc.c:1646 */ +#line 2843 "src/parser.c" /* yacc.c:1648 */ break; - case 54: -#line 553 "src/parser.y" /* yacc.c:1646 */ + case 55: +#line 556 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_function(jv_string_value((yyvsp[-3].literal)), gen_noop(), (yyvsp[-1].blk)); jv_free((yyvsp[-3].literal)); } -#line 2832 "src/parser.c" /* yacc.c:1646 */ +#line 2852 "src/parser.c" /* yacc.c:1648 */ break; - case 55: -#line 558 "src/parser.y" /* yacc.c:1646 */ + case 56: +#line 561 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_function(jv_string_value((yyvsp[-6].literal)), (yyvsp[-4].blk), (yyvsp[-1].blk)); jv_free((yyvsp[-6].literal)); } -#line 2841 "src/parser.c" /* yacc.c:1646 */ +#line 2861 "src/parser.c" /* yacc.c:1648 */ break; - case 56: -#line 564 "src/parser.y" /* yacc.c:1646 */ + case 57: +#line 567 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = (yyvsp[0].blk); } -#line 2849 "src/parser.c" /* yacc.c:1646 */ +#line 2869 "src/parser.c" /* yacc.c:1648 */ break; - case 57: -#line 567 "src/parser.y" /* yacc.c:1646 */ + case 58: +#line 570 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2857 "src/parser.c" /* yacc.c:1646 */ +#line 2877 "src/parser.c" /* yacc.c:1648 */ break; - case 58: -#line 572 "src/parser.y" /* yacc.c:1646 */ + case 59: +#line 575 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_param_regular(jv_string_value((yyvsp[0].literal))); jv_free((yyvsp[0].literal)); } -#line 2866 "src/parser.c" /* yacc.c:1646 */ +#line 2886 "src/parser.c" /* yacc.c:1648 */ break; - case 59: -#line 577 "src/parser.y" /* yacc.c:1646 */ + case 60: +#line 580 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_param(jv_string_value((yyvsp[0].literal))); jv_free((yyvsp[0].literal)); } -#line 2875 "src/parser.c" /* yacc.c:1646 */ +#line 2895 "src/parser.c" /* yacc.c:1648 */ break; - case 60: -#line 584 "src/parser.y" /* yacc.c:1646 */ + case 61: +#line 587 "src/parser.y" /* yacc.c:1648 */ { (yyval.literal) = jv_string("text"); } -#line 2881 "src/parser.c" /* yacc.c:1646 */ +#line 2901 "src/parser.c" /* yacc.c:1648 */ break; - case 61: -#line 584 "src/parser.y" /* yacc.c:1646 */ + case 62: +#line 587 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = (yyvsp[-1].blk); jv_free((yyvsp[-2].literal)); } -#line 2890 "src/parser.c" /* yacc.c:1646 */ +#line 2910 "src/parser.c" /* yacc.c:1648 */ break; - case 62: -#line 588 "src/parser.y" /* yacc.c:1646 */ + case 63: +#line 591 "src/parser.y" /* yacc.c:1648 */ { (yyval.literal) = (yyvsp[-1].literal); } -#line 2896 "src/parser.c" /* yacc.c:1646 */ +#line 2916 "src/parser.c" /* yacc.c:1648 */ break; - case 63: -#line 588 "src/parser.y" /* yacc.c:1646 */ + case 64: +#line 591 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = (yyvsp[-1].blk); jv_free((yyvsp[-2].literal)); } -#line 2905 "src/parser.c" /* yacc.c:1646 */ +#line 2925 "src/parser.c" /* yacc.c:1648 */ break; - case 64: -#line 595 "src/parser.y" /* yacc.c:1646 */ + case 65: +#line 598 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_const(jv_string("")); } -#line 2913 "src/parser.c" /* yacc.c:1646 */ +#line 2933 "src/parser.c" /* yacc.c:1648 */ break; - case 65: -#line 598 "src/parser.y" /* yacc.c:1646 */ + case 66: +#line 601 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_binop((yyvsp[-1].blk), gen_const((yyvsp[0].literal)), '+'); } -#line 2921 "src/parser.c" /* yacc.c:1646 */ +#line 2941 "src/parser.c" /* yacc.c:1648 */ break; - case 66: -#line 601 "src/parser.y" /* yacc.c:1646 */ + case 67: +#line 604 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_binop((yyvsp[-3].blk), gen_format((yyvsp[-1].blk), jv_copy((yyvsp[-4].literal))), '+'); } -#line 2929 "src/parser.c" /* yacc.c:1646 */ +#line 2949 "src/parser.c" /* yacc.c:1648 */ break; - case 67: -#line 607 "src/parser.y" /* yacc.c:1646 */ + case 68: +#line 610 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_cond((yyvsp[-3].blk), (yyvsp[-1].blk), (yyvsp[0].blk)); } -#line 2937 "src/parser.c" /* yacc.c:1646 */ +#line 2957 "src/parser.c" /* yacc.c:1648 */ break; - case 68: -#line 610 "src/parser.y" /* yacc.c:1646 */ + case 69: +#line 613 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = (yyvsp[-1].blk); } -#line 2945 "src/parser.c" /* yacc.c:1646 */ +#line 2965 "src/parser.c" /* yacc.c:1648 */ break; - case 69: -#line 615 "src/parser.y" /* yacc.c:1646 */ + case 70: +#line 618 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = block_join((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2953 "src/parser.c" /* yacc.c:1646 */ +#line 2973 "src/parser.c" /* yacc.c:1648 */ break; - case 70: -#line 618 "src/parser.y" /* yacc.c:1646 */ + case 71: +#line 621 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = BLOCK((yyvsp[0].blk), gen_call("_negate", gen_noop())); } -#line 2961 "src/parser.c" /* yacc.c:1646 */ +#line 2981 "src/parser.c" /* yacc.c:1648 */ break; - case 71: -#line 621 "src/parser.y" /* yacc.c:1646 */ + case 72: +#line 624 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = (yyvsp[0].blk); } -#line 2969 "src/parser.c" /* yacc.c:1646 */ +#line 2989 "src/parser.c" /* yacc.c:1648 */ break; - case 72: -#line 627 "src/parser.y" /* yacc.c:1646 */ + case 73: +#line 630 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_noop(); } -#line 2977 "src/parser.c" /* yacc.c:1646 */ +#line 2997 "src/parser.c" /* yacc.c:1648 */ break; - case 73: -#line 630 "src/parser.y" /* yacc.c:1646 */ + case 74: +#line 633 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_call("recurse", gen_noop()); } -#line 2985 "src/parser.c" /* yacc.c:1646 */ +#line 3005 "src/parser.c" /* yacc.c:1648 */ break; - case 74: -#line 633 "src/parser.y" /* yacc.c:1646 */ + case 75: +#line 636 "src/parser.y" /* yacc.c:1648 */ { jv v = jv_string_fmt("*label-%s", jv_string_value((yyvsp[0].literal))); // impossible symbol (yyval.blk) = gen_location((yyloc), locations, @@ -2994,231 +3014,231 @@ YYLTYPE yylloc = yyloc_default; jv_free(v); jv_free((yyvsp[0].literal)); } -#line 2998 "src/parser.c" /* yacc.c:1646 */ +#line 3018 "src/parser.c" /* yacc.c:1648 */ break; - case 75: -#line 641 "src/parser.y" /* yacc.c:1646 */ + case 76: +#line 644 "src/parser.y" /* yacc.c:1648 */ { FAIL((yyloc), "break requires a label to break to"); (yyval.blk) = gen_noop(); } -#line 3007 "src/parser.c" /* yacc.c:1646 */ +#line 3027 "src/parser.c" /* yacc.c:1648 */ break; - case 76: -#line 645 "src/parser.y" /* yacc.c:1646 */ + case 77: +#line 648 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_index_opt((yyvsp[-2].blk), gen_const((yyvsp[-1].literal))); } -#line 3015 "src/parser.c" /* yacc.c:1646 */ +#line 3035 "src/parser.c" /* yacc.c:1648 */ break; - case 77: -#line 648 "src/parser.y" /* yacc.c:1646 */ + case 78: +#line 651 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_index_opt(gen_noop(), gen_const((yyvsp[-1].literal))); } -#line 3023 "src/parser.c" /* yacc.c:1646 */ +#line 3043 "src/parser.c" /* yacc.c:1648 */ break; - case 78: -#line 651 "src/parser.y" /* yacc.c:1646 */ + case 79: +#line 654 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_index_opt((yyvsp[-3].blk), (yyvsp[-1].blk)); } -#line 3031 "src/parser.c" /* yacc.c:1646 */ +#line 3051 "src/parser.c" /* yacc.c:1648 */ break; - case 79: -#line 654 "src/parser.y" /* yacc.c:1646 */ + case 80: +#line 657 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_index_opt(gen_noop(), (yyvsp[-1].blk)); } -#line 3039 "src/parser.c" /* yacc.c:1646 */ +#line 3059 "src/parser.c" /* yacc.c:1648 */ break; - case 80: -#line 657 "src/parser.y" /* yacc.c:1646 */ + case 81: +#line 660 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_index((yyvsp[-1].blk), gen_const((yyvsp[0].literal))); } -#line 3047 "src/parser.c" /* yacc.c:1646 */ +#line 3067 "src/parser.c" /* yacc.c:1648 */ break; - case 81: -#line 660 "src/parser.y" /* yacc.c:1646 */ + case 82: +#line 663 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_index(gen_noop(), gen_const((yyvsp[0].literal))); } -#line 3055 "src/parser.c" /* yacc.c:1646 */ +#line 3075 "src/parser.c" /* yacc.c:1648 */ break; - case 82: -#line 663 "src/parser.y" /* yacc.c:1646 */ + case 83: +#line 666 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_index((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3063 "src/parser.c" /* yacc.c:1646 */ +#line 3083 "src/parser.c" /* yacc.c:1648 */ break; - case 83: -#line 666 "src/parser.y" /* yacc.c:1646 */ + case 84: +#line 669 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_index(gen_noop(), (yyvsp[0].blk)); } -#line 3071 "src/parser.c" /* yacc.c:1646 */ +#line 3091 "src/parser.c" /* yacc.c:1648 */ break; - case 84: -#line 669 "src/parser.y" /* yacc.c:1646 */ + case 85: +#line 672 "src/parser.y" /* yacc.c:1648 */ { FAIL((yyloc), "try .[\"field\"] instead of .field for unusually named fields"); (yyval.blk) = gen_noop(); } -#line 3080 "src/parser.c" /* yacc.c:1646 */ +#line 3100 "src/parser.c" /* yacc.c:1648 */ break; - case 85: -#line 673 "src/parser.y" /* yacc.c:1646 */ + case 86: +#line 676 "src/parser.y" /* yacc.c:1648 */ { jv_free((yyvsp[-1].literal)); FAIL((yyloc), "try .[\"field\"] instead of .field for unusually named fields"); (yyval.blk) = gen_noop(); } -#line 3090 "src/parser.c" /* yacc.c:1646 */ +#line 3110 "src/parser.c" /* yacc.c:1648 */ break; - case 86: -#line 679 "src/parser.y" /* yacc.c:1646 */ + case 87: +#line 682 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_index_opt((yyvsp[-4].blk), (yyvsp[-2].blk)); } -#line 3098 "src/parser.c" /* yacc.c:1646 */ +#line 3118 "src/parser.c" /* yacc.c:1648 */ break; - case 87: -#line 682 "src/parser.y" /* yacc.c:1646 */ + case 88: +#line 685 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_index((yyvsp[-3].blk), (yyvsp[-1].blk)); } -#line 3106 "src/parser.c" /* yacc.c:1646 */ +#line 3126 "src/parser.c" /* yacc.c:1648 */ break; - case 88: -#line 685 "src/parser.y" /* yacc.c:1646 */ + case 89: +#line 688 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = block_join((yyvsp[-3].blk), gen_op_simple(EACH_OPT)); } -#line 3114 "src/parser.c" /* yacc.c:1646 */ +#line 3134 "src/parser.c" /* yacc.c:1648 */ break; - case 89: -#line 688 "src/parser.y" /* yacc.c:1646 */ + case 90: +#line 691 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = block_join((yyvsp[-2].blk), gen_op_simple(EACH)); } -#line 3122 "src/parser.c" /* yacc.c:1646 */ +#line 3142 "src/parser.c" /* yacc.c:1648 */ break; - case 90: -#line 691 "src/parser.y" /* yacc.c:1646 */ + case 91: +#line 694 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_slice_index((yyvsp[-6].blk), (yyvsp[-4].blk), (yyvsp[-2].blk), INDEX_OPT); } -#line 3130 "src/parser.c" /* yacc.c:1646 */ +#line 3150 "src/parser.c" /* yacc.c:1648 */ break; - case 91: -#line 694 "src/parser.y" /* yacc.c:1646 */ + case 92: +#line 697 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_slice_index((yyvsp[-5].blk), (yyvsp[-3].blk), gen_const(jv_null()), INDEX_OPT); } -#line 3138 "src/parser.c" /* yacc.c:1646 */ +#line 3158 "src/parser.c" /* yacc.c:1648 */ break; - case 92: -#line 697 "src/parser.y" /* yacc.c:1646 */ + case 93: +#line 700 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_slice_index((yyvsp[-5].blk), gen_const(jv_null()), (yyvsp[-2].blk), INDEX_OPT); } -#line 3146 "src/parser.c" /* yacc.c:1646 */ +#line 3166 "src/parser.c" /* yacc.c:1648 */ break; - case 93: -#line 700 "src/parser.y" /* yacc.c:1646 */ + case 94: +#line 703 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_slice_index((yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk), INDEX); } -#line 3154 "src/parser.c" /* yacc.c:1646 */ +#line 3174 "src/parser.c" /* yacc.c:1648 */ break; - case 94: -#line 703 "src/parser.y" /* yacc.c:1646 */ + case 95: +#line 706 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_slice_index((yyvsp[-4].blk), (yyvsp[-2].blk), gen_const(jv_null()), INDEX); } -#line 3162 "src/parser.c" /* yacc.c:1646 */ +#line 3182 "src/parser.c" /* yacc.c:1648 */ break; - case 95: -#line 706 "src/parser.y" /* yacc.c:1646 */ + case 96: +#line 709 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_slice_index((yyvsp[-4].blk), gen_const(jv_null()), (yyvsp[-1].blk), INDEX); } -#line 3170 "src/parser.c" /* yacc.c:1646 */ +#line 3190 "src/parser.c" /* yacc.c:1648 */ break; - case 96: -#line 709 "src/parser.y" /* yacc.c:1646 */ + case 97: +#line 712 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_const((yyvsp[0].literal)); } -#line 3178 "src/parser.c" /* yacc.c:1646 */ +#line 3198 "src/parser.c" /* yacc.c:1648 */ break; - case 97: -#line 712 "src/parser.y" /* yacc.c:1646 */ + case 98: +#line 715 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = (yyvsp[0].blk); } -#line 3186 "src/parser.c" /* yacc.c:1646 */ +#line 3206 "src/parser.c" /* yacc.c:1648 */ break; - case 98: -#line 715 "src/parser.y" /* yacc.c:1646 */ + case 99: +#line 718 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_format(gen_noop(), (yyvsp[0].literal)); } -#line 3194 "src/parser.c" /* yacc.c:1646 */ +#line 3214 "src/parser.c" /* yacc.c:1648 */ break; - case 99: -#line 718 "src/parser.y" /* yacc.c:1646 */ + case 100: +#line 721 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = (yyvsp[-1].blk); } -#line 3202 "src/parser.c" /* yacc.c:1646 */ +#line 3222 "src/parser.c" /* yacc.c:1648 */ break; - case 100: -#line 721 "src/parser.y" /* yacc.c:1646 */ + case 101: +#line 724 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_collect((yyvsp[-1].blk)); } -#line 3210 "src/parser.c" /* yacc.c:1646 */ +#line 3230 "src/parser.c" /* yacc.c:1648 */ break; - case 101: -#line 724 "src/parser.y" /* yacc.c:1646 */ + case 102: +#line 727 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_const(jv_array()); } -#line 3218 "src/parser.c" /* yacc.c:1646 */ +#line 3238 "src/parser.c" /* yacc.c:1648 */ break; - case 102: -#line 727 "src/parser.y" /* yacc.c:1646 */ + case 103: +#line 730 "src/parser.y" /* yacc.c:1648 */ { block o = gen_const_object((yyvsp[-1].blk)); if (o.first != NULL) @@ -3226,29 +3246,29 @@ YYLTYPE yylloc = yyloc_default; else (yyval.blk) = BLOCK(gen_subexp(gen_const(jv_object())), (yyvsp[-1].blk), gen_op_simple(POP)); } -#line 3230 "src/parser.c" /* yacc.c:1646 */ +#line 3250 "src/parser.c" /* yacc.c:1648 */ break; - case 103: -#line 734 "src/parser.y" /* yacc.c:1646 */ + case 104: +#line 737 "src/parser.y" /* yacc.c:1648 */ { (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 3239 "src/parser.c" /* yacc.c:1646 */ +#line 3259 "src/parser.c" /* yacc.c:1648 */ break; - case 104: -#line 738 "src/parser.y" /* yacc.c:1646 */ + case 105: +#line 741 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_location((yyloc), locations, gen_op_unbound(LOADV, jv_string_value((yyvsp[0].literal)))); jv_free((yyvsp[0].literal)); } -#line 3248 "src/parser.c" /* yacc.c:1646 */ +#line 3268 "src/parser.c" /* yacc.c:1648 */ break; - case 105: -#line 742 "src/parser.y" /* yacc.c:1646 */ + case 106: +#line 745 "src/parser.y" /* yacc.c:1648 */ { const char *s = jv_string_value((yyvsp[0].literal)); if (strcmp(s, "false") == 0) @@ -3261,198 +3281,198 @@ YYLTYPE yylloc = yyloc_default; (yyval.blk) = gen_location((yyloc), locations, gen_call(s, gen_noop())); jv_free((yyvsp[0].literal)); } -#line 3265 "src/parser.c" /* yacc.c:1646 */ +#line 3285 "src/parser.c" /* yacc.c:1648 */ break; - case 106: -#line 754 "src/parser.y" /* yacc.c:1646 */ + case 107: +#line 757 "src/parser.y" /* yacc.c:1648 */ { (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 3275 "src/parser.c" /* yacc.c:1646 */ +#line 3295 "src/parser.c" /* yacc.c:1648 */ break; - case 107: -#line 759 "src/parser.y" /* yacc.c:1646 */ + case 108: +#line 762 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_noop(); } -#line 3281 "src/parser.c" /* yacc.c:1646 */ +#line 3301 "src/parser.c" /* yacc.c:1648 */ break; - case 108: -#line 760 "src/parser.y" /* yacc.c:1646 */ + case 109: +#line 763 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_noop(); } -#line 3287 "src/parser.c" /* yacc.c:1646 */ +#line 3307 "src/parser.c" /* yacc.c:1648 */ break; - case 109: -#line 761 "src/parser.y" /* yacc.c:1646 */ + case 110: +#line 764 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = (yyvsp[-3].blk); } -#line 3293 "src/parser.c" /* yacc.c:1646 */ +#line 3313 "src/parser.c" /* yacc.c:1648 */ break; - case 110: -#line 762 "src/parser.y" /* yacc.c:1646 */ + case 111: +#line 765 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_noop(); } -#line 3299 "src/parser.c" /* yacc.c:1646 */ +#line 3319 "src/parser.c" /* yacc.c:1648 */ break; - case 111: -#line 765 "src/parser.y" /* yacc.c:1646 */ + case 112: +#line 768 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = (yyvsp[0].blk); } -#line 3307 "src/parser.c" /* yacc.c:1646 */ +#line 3327 "src/parser.c" /* yacc.c:1648 */ break; - case 112: -#line 768 "src/parser.y" /* yacc.c:1646 */ + case 113: +#line 771 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3315 "src/parser.c" /* yacc.c:1646 */ +#line 3335 "src/parser.c" /* yacc.c:1648 */ break; - case 113: -#line 773 "src/parser.y" /* yacc.c:1646 */ + case 114: +#line 776 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_lambda((yyvsp[0].blk)); } -#line 3323 "src/parser.c" /* yacc.c:1646 */ +#line 3343 "src/parser.c" /* yacc.c:1648 */ break; - case 114: -#line 778 "src/parser.y" /* yacc.c:1646 */ + case 115: +#line 781 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = BLOCK((yyvsp[-2].blk), gen_destructure_alt((yyvsp[0].blk))); } -#line 3331 "src/parser.c" /* yacc.c:1646 */ +#line 3351 "src/parser.c" /* yacc.c:1648 */ break; - case 115: -#line 781 "src/parser.y" /* yacc.c:1646 */ + case 116: +#line 784 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_destructure_alt((yyvsp[0].blk)); } -#line 3339 "src/parser.c" /* yacc.c:1646 */ +#line 3359 "src/parser.c" /* yacc.c:1648 */ break; - case 116: -#line 786 "src/parser.y" /* yacc.c:1646 */ + case 117: +#line 789 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3347 "src/parser.c" /* yacc.c:1646 */ +#line 3367 "src/parser.c" /* yacc.c:1648 */ break; - case 117: -#line 789 "src/parser.y" /* yacc.c:1646 */ + case 118: +#line 792 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = (yyvsp[0].blk); } -#line 3355 "src/parser.c" /* yacc.c:1646 */ +#line 3375 "src/parser.c" /* yacc.c:1648 */ break; - case 118: -#line 794 "src/parser.y" /* yacc.c:1646 */ + case 119: +#line 797 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_op_unbound(STOREV, jv_string_value((yyvsp[0].literal))); jv_free((yyvsp[0].literal)); } -#line 3364 "src/parser.c" /* yacc.c:1646 */ +#line 3384 "src/parser.c" /* yacc.c:1648 */ break; - case 119: -#line 798 "src/parser.y" /* yacc.c:1646 */ + case 120: +#line 801 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = BLOCK((yyvsp[-1].blk), gen_op_simple(POP)); } -#line 3372 "src/parser.c" /* yacc.c:1646 */ +#line 3392 "src/parser.c" /* yacc.c:1648 */ break; - case 120: -#line 801 "src/parser.y" /* yacc.c:1646 */ + case 121: +#line 804 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = BLOCK((yyvsp[-1].blk), gen_op_simple(POP)); } -#line 3380 "src/parser.c" /* yacc.c:1646 */ +#line 3400 "src/parser.c" /* yacc.c:1648 */ break; - case 121: -#line 806 "src/parser.y" /* yacc.c:1646 */ + case 122: +#line 809 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_array_matcher(gen_noop(), (yyvsp[0].blk)); } -#line 3388 "src/parser.c" /* yacc.c:1646 */ +#line 3408 "src/parser.c" /* yacc.c:1648 */ break; - case 122: -#line 809 "src/parser.y" /* yacc.c:1646 */ + case 123: +#line 812 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_array_matcher((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3396 "src/parser.c" /* yacc.c:1646 */ +#line 3416 "src/parser.c" /* yacc.c:1648 */ break; - case 123: -#line 814 "src/parser.y" /* yacc.c:1646 */ + case 124: +#line 817 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = (yyvsp[0].blk); } -#line 3404 "src/parser.c" /* yacc.c:1646 */ +#line 3424 "src/parser.c" /* yacc.c:1648 */ break; - case 124: -#line 817 "src/parser.y" /* yacc.c:1646 */ + case 125: +#line 820 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3412 "src/parser.c" /* yacc.c:1646 */ +#line 3432 "src/parser.c" /* yacc.c:1648 */ break; - case 125: -#line 822 "src/parser.y" /* yacc.c:1646 */ + case 126: +#line 825 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_object_matcher(gen_const((yyvsp[0].literal)), gen_op_unbound(STOREV, jv_string_value((yyvsp[0].literal)))); } -#line 3420 "src/parser.c" /* yacc.c:1646 */ +#line 3440 "src/parser.c" /* yacc.c:1648 */ break; - case 126: -#line 825 "src/parser.y" /* yacc.c:1646 */ + case 127: +#line 828 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_object_matcher(gen_const((yyvsp[-2].literal)), BLOCK(gen_op_simple(DUP), gen_op_unbound(STOREV, jv_string_value((yyvsp[-2].literal))), (yyvsp[0].blk))); } -#line 3428 "src/parser.c" /* yacc.c:1646 */ +#line 3448 "src/parser.c" /* yacc.c:1648 */ break; - case 127: -#line 828 "src/parser.y" /* yacc.c:1646 */ + case 128: +#line 831 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_object_matcher(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); } -#line 3436 "src/parser.c" /* yacc.c:1646 */ +#line 3456 "src/parser.c" /* yacc.c:1648 */ break; - case 128: -#line 831 "src/parser.y" /* yacc.c:1646 */ + case 129: +#line 834 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_object_matcher(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); } -#line 3444 "src/parser.c" /* yacc.c:1646 */ +#line 3464 "src/parser.c" /* yacc.c:1648 */ break; - case 129: -#line 834 "src/parser.y" /* yacc.c:1646 */ + case 130: +#line 837 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_object_matcher((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3452 "src/parser.c" /* yacc.c:1646 */ +#line 3472 "src/parser.c" /* yacc.c:1648 */ break; - case 130: -#line 837 "src/parser.y" /* yacc.c:1646 */ + case 131: +#line 840 "src/parser.y" /* yacc.c:1648 */ { jv msg = check_object_key((yyvsp[-3].blk)); if (jv_is_valid(msg)) { @@ -3461,258 +3481,258 @@ YYLTYPE yylloc = yyloc_default; jv_free(msg); (yyval.blk) = gen_object_matcher((yyvsp[-3].blk), (yyvsp[0].blk)); } -#line 3465 "src/parser.c" /* yacc.c:1646 */ +#line 3485 "src/parser.c" /* yacc.c:1648 */ break; - case 131: -#line 845 "src/parser.y" /* yacc.c:1646 */ + case 132: +#line 848 "src/parser.y" /* yacc.c:1648 */ { FAIL((yyloc), "May need parentheses around object key expression"); (yyval.blk) = (yyvsp[0].blk); } -#line 3474 "src/parser.c" /* yacc.c:1646 */ +#line 3494 "src/parser.c" /* yacc.c:1648 */ break; - case 132: -#line 851 "src/parser.y" /* yacc.c:1646 */ + case 133: +#line 854 "src/parser.y" /* yacc.c:1648 */ { (yyval.literal) = jv_string("as"); } -#line 3482 "src/parser.c" /* yacc.c:1646 */ +#line 3502 "src/parser.c" /* yacc.c:1648 */ break; - case 133: -#line 854 "src/parser.y" /* yacc.c:1646 */ + case 134: +#line 857 "src/parser.y" /* yacc.c:1648 */ { (yyval.literal) = jv_string("def"); } -#line 3490 "src/parser.c" /* yacc.c:1646 */ +#line 3510 "src/parser.c" /* yacc.c:1648 */ break; - case 134: -#line 857 "src/parser.y" /* yacc.c:1646 */ + case 135: +#line 860 "src/parser.y" /* yacc.c:1648 */ { (yyval.literal) = jv_string("module"); } -#line 3498 "src/parser.c" /* yacc.c:1646 */ +#line 3518 "src/parser.c" /* yacc.c:1648 */ break; - case 135: -#line 860 "src/parser.y" /* yacc.c:1646 */ + case 136: +#line 863 "src/parser.y" /* yacc.c:1648 */ { (yyval.literal) = jv_string("import"); } -#line 3506 "src/parser.c" /* yacc.c:1646 */ +#line 3526 "src/parser.c" /* yacc.c:1648 */ break; - case 136: -#line 863 "src/parser.y" /* yacc.c:1646 */ + case 137: +#line 866 "src/parser.y" /* yacc.c:1648 */ { (yyval.literal) = jv_string("include"); } -#line 3514 "src/parser.c" /* yacc.c:1646 */ +#line 3534 "src/parser.c" /* yacc.c:1648 */ break; - case 137: -#line 866 "src/parser.y" /* yacc.c:1646 */ + case 138: +#line 869 "src/parser.y" /* yacc.c:1648 */ { (yyval.literal) = jv_string("if"); } -#line 3522 "src/parser.c" /* yacc.c:1646 */ +#line 3542 "src/parser.c" /* yacc.c:1648 */ break; - case 138: -#line 869 "src/parser.y" /* yacc.c:1646 */ + case 139: +#line 872 "src/parser.y" /* yacc.c:1648 */ { (yyval.literal) = jv_string("then"); } -#line 3530 "src/parser.c" /* yacc.c:1646 */ +#line 3550 "src/parser.c" /* yacc.c:1648 */ break; - case 139: -#line 872 "src/parser.y" /* yacc.c:1646 */ + case 140: +#line 875 "src/parser.y" /* yacc.c:1648 */ { (yyval.literal) = jv_string("else"); } -#line 3538 "src/parser.c" /* yacc.c:1646 */ +#line 3558 "src/parser.c" /* yacc.c:1648 */ break; - case 140: -#line 875 "src/parser.y" /* yacc.c:1646 */ + case 141: +#line 878 "src/parser.y" /* yacc.c:1648 */ { (yyval.literal) = jv_string("elif"); } -#line 3546 "src/parser.c" /* yacc.c:1646 */ +#line 3566 "src/parser.c" /* yacc.c:1648 */ break; - case 141: -#line 878 "src/parser.y" /* yacc.c:1646 */ + case 142: +#line 881 "src/parser.y" /* yacc.c:1648 */ { (yyval.literal) = jv_string("reduce"); } -#line 3554 "src/parser.c" /* yacc.c:1646 */ +#line 3574 "src/parser.c" /* yacc.c:1648 */ break; - case 142: -#line 881 "src/parser.y" /* yacc.c:1646 */ + case 143: +#line 884 "src/parser.y" /* yacc.c:1648 */ { (yyval.literal) = jv_string("foreach"); } -#line 3562 "src/parser.c" /* yacc.c:1646 */ +#line 3582 "src/parser.c" /* yacc.c:1648 */ break; - case 143: -#line 884 "src/parser.y" /* yacc.c:1646 */ + case 144: +#line 887 "src/parser.y" /* yacc.c:1648 */ { (yyval.literal) = jv_string("end"); } -#line 3570 "src/parser.c" /* yacc.c:1646 */ +#line 3590 "src/parser.c" /* yacc.c:1648 */ break; - case 144: -#line 887 "src/parser.y" /* yacc.c:1646 */ + case 145: +#line 890 "src/parser.y" /* yacc.c:1648 */ { (yyval.literal) = jv_string("and"); } -#line 3578 "src/parser.c" /* yacc.c:1646 */ +#line 3598 "src/parser.c" /* yacc.c:1648 */ break; - case 145: -#line 890 "src/parser.y" /* yacc.c:1646 */ + case 146: +#line 893 "src/parser.y" /* yacc.c:1648 */ { (yyval.literal) = jv_string("or"); } -#line 3586 "src/parser.c" /* yacc.c:1646 */ +#line 3606 "src/parser.c" /* yacc.c:1648 */ break; - case 146: -#line 893 "src/parser.y" /* yacc.c:1646 */ + case 147: +#line 896 "src/parser.y" /* yacc.c:1648 */ { (yyval.literal) = jv_string("try"); } -#line 3594 "src/parser.c" /* yacc.c:1646 */ +#line 3614 "src/parser.c" /* yacc.c:1648 */ break; - case 147: -#line 896 "src/parser.y" /* yacc.c:1646 */ + case 148: +#line 899 "src/parser.y" /* yacc.c:1648 */ { (yyval.literal) = jv_string("catch"); } -#line 3602 "src/parser.c" /* yacc.c:1646 */ +#line 3622 "src/parser.c" /* yacc.c:1648 */ break; - case 148: -#line 899 "src/parser.y" /* yacc.c:1646 */ + case 149: +#line 902 "src/parser.y" /* yacc.c:1648 */ { (yyval.literal) = jv_string("label"); } -#line 3610 "src/parser.c" /* yacc.c:1646 */ +#line 3630 "src/parser.c" /* yacc.c:1648 */ break; - case 149: -#line 902 "src/parser.y" /* yacc.c:1646 */ + case 150: +#line 905 "src/parser.y" /* yacc.c:1648 */ { (yyval.literal) = jv_string("break"); } -#line 3618 "src/parser.c" /* yacc.c:1646 */ +#line 3638 "src/parser.c" /* yacc.c:1648 */ break; - case 150: -#line 905 "src/parser.y" /* yacc.c:1646 */ + case 151: +#line 908 "src/parser.y" /* yacc.c:1648 */ { (yyval.literal) = jv_string("__loc__"); } -#line 3626 "src/parser.c" /* yacc.c:1646 */ +#line 3646 "src/parser.c" /* yacc.c:1648 */ break; - case 151: -#line 910 "src/parser.y" /* yacc.c:1646 */ + case 152: +#line 913 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk)=gen_noop(); } -#line 3634 "src/parser.c" /* yacc.c:1646 */ +#line 3654 "src/parser.c" /* yacc.c:1648 */ break; - case 152: -#line 913 "src/parser.y" /* yacc.c:1646 */ + case 153: +#line 916 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = (yyvsp[0].blk); } -#line 3640 "src/parser.c" /* yacc.c:1646 */ +#line 3660 "src/parser.c" /* yacc.c:1648 */ break; - case 153: -#line 914 "src/parser.y" /* yacc.c:1646 */ + case 154: +#line 917 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk)=block_join((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3646 "src/parser.c" /* yacc.c:1646 */ +#line 3666 "src/parser.c" /* yacc.c:1648 */ break; - case 154: -#line 915 "src/parser.y" /* yacc.c:1646 */ + case 155: +#line 918 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = (yyvsp[0].blk); } -#line 3652 "src/parser.c" /* yacc.c:1646 */ +#line 3672 "src/parser.c" /* yacc.c:1648 */ break; - case 155: -#line 918 "src/parser.y" /* yacc.c:1646 */ + case 156: +#line 921 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); } -#line 3660 "src/parser.c" /* yacc.c:1646 */ +#line 3680 "src/parser.c" /* yacc.c:1648 */ break; - case 156: -#line 921 "src/parser.y" /* yacc.c:1646 */ + case 157: +#line 924 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); } -#line 3668 "src/parser.c" /* yacc.c:1646 */ +#line 3688 "src/parser.c" /* yacc.c:1648 */ break; - case 157: -#line 924 "src/parser.y" /* yacc.c:1646 */ + case 158: +#line 927 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_dictpair((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3676 "src/parser.c" /* yacc.c:1646 */ +#line 3696 "src/parser.c" /* yacc.c:1648 */ break; - case 158: -#line 927 "src/parser.y" /* yacc.c:1646 */ + case 159: +#line 930 "src/parser.y" /* yacc.c:1648 */ { (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 3685 "src/parser.c" /* yacc.c:1646 */ +#line 3705 "src/parser.c" /* yacc.c:1648 */ break; - case 159: -#line 931 "src/parser.y" /* yacc.c:1646 */ + case 160: +#line 934 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_dictpair(gen_location((yyloc), locations, gen_op_unbound(LOADV, jv_string_value((yyvsp[-2].literal)))), (yyvsp[0].blk)); } -#line 3694 "src/parser.c" /* yacc.c:1646 */ +#line 3714 "src/parser.c" /* yacc.c:1648 */ break; - case 160: -#line 935 "src/parser.y" /* yacc.c:1646 */ + case 161: +#line 938 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_dictpair(gen_const((yyvsp[0].literal)), gen_location((yyloc), locations, gen_op_unbound(LOADV, jv_string_value((yyvsp[0].literal))))); } -#line 3703 "src/parser.c" /* yacc.c:1646 */ +#line 3723 "src/parser.c" /* yacc.c:1648 */ break; - case 161: -#line 939 "src/parser.y" /* yacc.c:1646 */ + case 162: +#line 942 "src/parser.y" /* yacc.c:1648 */ { (yyval.blk) = gen_dictpair(gen_const(jv_copy((yyvsp[0].literal))), gen_index(gen_noop(), gen_const((yyvsp[0].literal)))); } -#line 3712 "src/parser.c" /* yacc.c:1646 */ +#line 3732 "src/parser.c" /* yacc.c:1648 */ break; - case 162: -#line 943 "src/parser.y" /* yacc.c:1646 */ + case 163: +#line 946 "src/parser.y" /* yacc.c:1648 */ { jv msg = check_object_key((yyvsp[-3].blk)); if (jv_is_valid(msg)) { @@ -3721,20 +3741,20 @@ YYLTYPE yylloc = yyloc_default; jv_free(msg); (yyval.blk) = gen_dictpair((yyvsp[-3].blk), (yyvsp[0].blk)); } -#line 3725 "src/parser.c" /* yacc.c:1646 */ +#line 3745 "src/parser.c" /* yacc.c:1648 */ break; - case 163: -#line 951 "src/parser.y" /* yacc.c:1646 */ + case 164: +#line 954 "src/parser.y" /* yacc.c:1648 */ { FAIL((yyloc), "May need parentheses around object key expression"); (yyval.blk) = (yyvsp[0].blk); } -#line 3734 "src/parser.c" /* yacc.c:1646 */ +#line 3754 "src/parser.c" /* yacc.c:1648 */ break; -#line 3738 "src/parser.c" /* yacc.c:1646 */ +#line 3758 "src/parser.c" /* yacc.c:1648 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -3857,7 +3877,6 @@ YYLTYPE yylloc = yyloc_default; if (/*CONSTCOND*/ 0) goto yyerrorlab; - yyerror_range[1] = yylsp[1-yylen]; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); @@ -3969,7 +3988,7 @@ YYLTYPE yylloc = yyloc_default; #endif return yyresult; } -#line 955 "src/parser.y" /* yacc.c:1906 */ +#line 958 "src/parser.y" /* yacc.c:1907 */ int jq_parse(struct locfile* locations, block* answer) { diff --git a/src/parser.h b/src/parser.h index b15c53aad4..e83a000a96 100644 --- a/src/parser.h +++ b/src/parser.h @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.0.4. */ +/* A Bison parser, made by GNU Bison 3.0.5. */ /* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -40,7 +40,7 @@ extern int yydebug; #endif /* "%code requires" blocks. */ -#line 11 "src/parser.y" /* yacc.c:1909 */ +#line 11 "src/parser.y" /* yacc.c:1910 */ #include "locfile.h" struct lexer_param; @@ -57,7 +57,7 @@ struct lexer_param; } \ } while (0) -#line 61 "src/parser.h" /* yacc.c:1909 */ +#line 61 "src/parser.h" /* yacc.c:1910 */ /* Token type. */ #ifndef YYTOKENTYPE @@ -163,12 +163,12 @@ struct lexer_param; union YYSTYPE { -#line 31 "src/parser.y" /* yacc.c:1909 */ +#line 31 "src/parser.y" /* yacc.c:1910 */ jv literal; block blk; -#line 172 "src/parser.h" /* yacc.c:1909 */ +#line 172 "src/parser.h" /* yacc.c:1910 */ }; typedef union YYSTYPE YYSTYPE; diff --git a/src/parser.y b/src/parser.y index 946a958206..62558502f0 100644 --- a/src/parser.y +++ b/src/parser.y @@ -357,6 +357,9 @@ Term "as" Patterns '|' Exp { "if" Exp "then" Exp ElseBody { $$ = gen_cond($2, $4, $5); } | +"if" Exp "then" Exp "end" { + $$ = gen_cond($2, $4, gen_noop()); +} | "if" Exp "then" error { FAIL(@$, "Possibly unterminated 'if' statement"); $$ = $2; diff --git a/tests/jq.test b/tests/jq.test index cbdc0bf017..c027f5382a 100644 --- a/tests/jq.test +++ b/tests/jq.test @@ -1036,6 +1036,19 @@ null null [5,6] +[if true then 3 end] +7 +[3] + +[if false then 3 end] +7 +[7] + +[if false then 3 else . end] +7 +[7] + + [.[] | [.foo[] // .bar]] [{"foo":[1,2], "bar": 42}, {"foo":[1], "bar": null}, {"foo":[null,false,3], "bar": 18}, {"foo":[], "bar":42}, {"foo": [null,false,null], "bar": 41}] [[1,2], [1], [3], [42], [41]]