diff --git a/src/parser.c b/src/parser.c index 0eaefaf6..8bba4684 100644 --- a/src/parser.c +++ b/src/parser.c @@ -870,7 +870,7 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 31 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1275 +#define YYLAST 1226 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 70 @@ -879,7 +879,7 @@ union yyalloc /* YYNRULES -- Number of rules. */ #define YYNRULES 168 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 313 +#define YYNSTATES 312 /* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 303 @@ -991,7 +991,7 @@ yysymbol_name (yysymbol_kind_t yysymbol) } #endif -#define YYPACT_NINF (-179) +#define YYPACT_NINF (-146) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) @@ -1005,38 +1005,38 @@ yysymbol_name (yysymbol_kind_t yysymbol) STATE-NUM. */ static const yytype_int16 yypact[] = { - 0, 1003, 32, 51, -25, -4, -179, -179, 17, -179, - 59, 1003, 1069, 1069, 1069, 68, 18, -179, -179, 1069, - 392, 458, 525, 721, 9, 22, 1186, 1003, -179, -179, - 1, -179, 15, 15, 1003, 51, 805, 1003, -179, -179, - 98, -8, 267, 6, 1153, 61, 45, -179, -179, 6, - -179, 104, 17, 95, 44, -179, 47, 66, 72, -34, - 55, 106, -179, -179, -179, -179, -179, -179, -179, -179, - -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, - -179, 1003, 126, 131, 135, 157, 147, 1003, 1003, -179, - 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, - 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, - 1069, 1069, 209, 5, 160, -3, -179, 14, 151, 226, - -179, -179, -179, 209, 1003, -179, -179, 63, 209, 73, - -179, 1003, 142, 592, -3, -3, 659, 1003, -179, -179, - -179, -179, -179, -179, 1069, -179, 1069, 1069, 119, 1069, - 1069, -179, 776, 236, 209, -179, 1218, 315, 315, 1186, - 618, 88, 1218, 1218, 1218, 1218, 1218, 1218, 315, 315, - 1218, 315, 315, 181, 181, -179, -179, -179, -179, 1003, - -179, -179, -179, -3, 1131, 203, 198, 218, 871, 191, - 194, 1003, 202, 28, 225, -179, -179, 1003, -179, 67, - -179, -179, 111, -179, -179, 176, 199, 206, -179, -179, - 209, 1186, 214, 214, 214, 204, 214, 214, 208, -179, - -179, 185, -179, -41, 210, 211, 213, 1003, 219, -21, - -179, 220, -3, 1003, 207, 53, -179, -179, 58, -179, - 937, 227, -179, -179, -179, -179, 142, 221, 1003, 1003, - -179, -179, 1003, 1003, 1069, 1069, -179, -3, -179, -3, - -3, -3, 123, -3, 1131, -179, -3, 231, 209, -179, - 228, 229, 230, 60, -179, -179, 1003, -18, 24, 161, - 173, 214, 214, -179, -179, -179, -179, 222, -179, -179, - -179, -179, -179, -179, 232, 179, -179, 1003, 1003, 1003, - -3, -179, -179, 176, 137, 115, -179, -179, -179, 1003, - -179, 143, -179 + 31, 890, 44, 35, 11, 9, -146, -146, 38, -146, + 85, 890, 956, 956, 956, 112, 26, -146, -146, 956, + 279, 345, 412, 608, 59, 25, 1040, 890, -146, -146, + -2, -146, 4, 4, 890, 35, 692, 890, -146, -146, + 20, -18, 1073, 1105, 131, 86, -146, -146, -2, -146, + 164, 38, 108, 107, -146, 22, 104, 0, -34, 121, + 124, -146, -146, -146, -146, -146, -146, -146, -146, -146, + -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, + 890, 135, 137, 134, 126, 141, 890, 890, -146, 956, + 956, 956, 956, -5, 956, 956, 956, 956, 956, 956, + 956, 956, 956, 956, 956, 956, 956, 956, 956, 956, + 956, 956, 84, 177, 147, -146, 3, 173, 199, -146, + -146, -146, 84, 890, -146, -146, 114, 84, 77, -146, + 890, 13, 479, -5, -5, 546, 890, -146, -146, -146, + -146, -146, -146, 956, -146, 956, 956, 78, 956, 956, + -146, 663, 220, 84, -146, 1169, 505, 505, 1137, -146, + -5, 1018, 187, 166, 188, 606, 205, 1169, 1169, 1169, + 1169, 1169, 1169, 505, 505, 1169, 505, 505, 208, 208, + -146, -146, -146, -146, 890, -146, -146, 758, 176, 175, + 890, 184, 6, 57, -146, -146, 890, -146, 123, -146, + -146, 83, -146, -146, 18, 185, 189, -146, -146, 84, + 1137, 200, 200, 200, 203, 200, 200, 206, -146, -146, + -146, -42, 207, 209, 210, 890, 212, -45, -146, 213, + -5, 890, 33, 193, 28, -146, -146, 71, -146, 824, + 218, -146, -146, -146, -146, 13, 215, 890, 890, -146, + -146, 890, 890, 956, 956, -5, -146, -5, -5, -5, + 103, -5, 1018, -146, -5, 227, 84, -146, -146, 222, + 223, 226, 74, -146, -146, 890, -7, 2, 160, 163, + 200, 200, -146, -146, -146, -146, 225, -146, -146, -146, + -146, -146, -146, 235, 170, -146, 890, 890, 890, -5, + -146, -146, 18, 105, 76, -146, -146, -146, 890, -146, + 142, -146 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1048,50 +1048,50 @@ static const yytype_uint8 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 107, 52, 0, 0, 0, 0, 0, 0, 0, 15, 0, 54, 90, 38, 1, 0, 0, 8, 6, 0, 0, 65, 51, - 0, 0, 0, 38, 0, 104, 0, 63, 62, 92, - 72, 0, 0, 71, 0, 95, 0, 0, 0, 0, - 162, 161, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 163, 0, 159, 164, 0, 154, 0, 0, 0, 5, + 0, 0, 0, 0, 104, 0, 63, 62, 92, 72, + 0, 0, 71, 0, 95, 0, 0, 0, 0, 162, + 161, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 163, + 0, 159, 164, 0, 154, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 0, 68, 0, 88, 0, 0, 0, - 44, 43, 3, 2, 8, 7, 39, 0, 116, 0, - 114, 0, 0, 0, 0, 0, 0, 0, 73, 67, - 111, 94, 110, 93, 0, 113, 0, 0, 0, 0, - 0, 96, 0, 0, 13, 14, 31, 32, 33, 16, - 19, 18, 21, 23, 25, 27, 30, 20, 36, 37, - 17, 34, 35, 22, 24, 26, 28, 29, 55, 0, - 53, 64, 121, 0, 0, 0, 0, 120, 0, 70, - 0, 0, 79, 0, 0, 9, 40, 0, 109, 0, - 50, 49, 0, 47, 101, 0, 0, 0, 103, 102, - 12, 168, 166, 156, 160, 0, 158, 157, 0, 155, - 105, 0, 124, 0, 0, 0, 128, 0, 0, 0, - 126, 0, 0, 0, 81, 0, 66, 112, 0, 78, - 0, 75, 42, 41, 115, 45, 0, 0, 0, 0, - 59, 100, 0, 0, 0, 0, 56, 0, 122, 0, - 0, 0, 0, 0, 0, 123, 0, 119, 11, 80, - 77, 87, 86, 0, 74, 48, 0, 0, 0, 0, - 0, 167, 165, 125, 134, 130, 129, 0, 132, 127, - 131, 76, 84, 83, 85, 0, 58, 0, 0, 0, - 0, 82, 46, 0, 0, 0, 133, 57, 97, 0, - 99, 0, 98 + 0, 0, 10, 0, 68, 88, 0, 0, 0, 44, + 43, 3, 2, 8, 7, 39, 0, 116, 0, 114, + 0, 0, 0, 0, 0, 0, 0, 73, 67, 111, + 94, 110, 93, 0, 113, 0, 0, 0, 0, 0, + 96, 0, 0, 13, 14, 31, 32, 33, 16, 121, + 0, 0, 0, 0, 120, 19, 18, 21, 23, 25, + 27, 30, 20, 36, 37, 17, 34, 35, 22, 24, + 26, 28, 29, 55, 0, 53, 64, 0, 70, 0, + 0, 79, 0, 0, 9, 40, 0, 109, 0, 50, + 49, 0, 47, 101, 0, 0, 0, 103, 102, 12, + 168, 166, 156, 160, 0, 158, 157, 0, 155, 105, + 124, 0, 0, 0, 128, 0, 0, 0, 126, 0, + 0, 0, 0, 81, 0, 66, 112, 0, 78, 0, + 75, 42, 41, 115, 45, 0, 0, 0, 0, 59, + 100, 0, 0, 0, 0, 0, 122, 0, 0, 0, + 0, 0, 0, 123, 0, 119, 11, 56, 80, 77, + 87, 86, 0, 74, 48, 0, 0, 0, 0, 0, + 167, 165, 125, 134, 130, 129, 0, 132, 127, 131, + 76, 84, 83, 85, 0, 58, 0, 0, 0, 0, + 82, 46, 0, 0, 0, 133, 57, 97, 0, 99, + 0, 98 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -179, -179, -179, 255, 171, 16, 241, -179, -179, 266, - -32, -179, 64, -179, -19, -179, 8, -1, -179, 112, - -179, 65, -178, -179, -179, 48, -175, 164, -179, -104 + -146, -146, -146, 236, 179, -1, 1, -146, -146, 253, + -8, -146, 53, -146, 5, -146, 7, 284, -146, 115, + -146, 60, -100, -146, -146, 48, -145, 169, -146, -140 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_uint8 yydefgoto[] = { - 0, 2, 3, 34, 122, 112, 26, 35, 36, 119, - 27, 202, 203, 28, 29, 113, 251, 43, 129, 130, - 185, 186, 187, 223, 229, 230, 83, 84, 85, 212 + 0, 2, 3, 34, 121, 112, 26, 35, 36, 118, + 27, 201, 202, 28, 29, 113, 250, 30, 128, 129, + 162, 163, 164, 221, 227, 228, 82, 83, 84, 211 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1099,266 +1099,256 @@ static const yytype_uint8 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 30, 53, 124, 182, 82, 222, 114, 296, 257, 231, - 30, 114, 133, 120, 120, 115, 1, 25, 49, 47, - 30, 30, 52, 52, 48, 258, 30, 41, 264, 144, - 87, 88, 31, 30, 145, 30, 30, 56, 58, 37, - 87, 88, 213, 214, 297, 216, 217, 265, 178, 179, - 123, 180, 127, 128, 267, 38, 18, 18, 183, 39, - 116, 117, 118, 40, 184, 116, 117, 118, 32, 33, - 87, 88, 87, 88, 46, 188, 87, 88, 86, 283, - 30, 284, 285, 286, 89, 288, 30, 30, 290, 231, - 136, 240, 124, 137, 241, 87, 88, 148, 189, 91, - 92, 87, 88, 154, 155, 138, 87, 88, 87, 88, - 140, 87, 88, 141, 94, 87, 88, 30, 146, 270, - 87, 88, 306, 30, 271, 196, 294, 102, 103, 245, - 30, 142, 30, 82, 193, 197, 30, 143, 198, 105, - 106, 107, 108, 109, 110, 111, 200, 199, 201, 205, - 281, 282, 190, 210, 139, 4, 5, 6, 7, 8, - 9, 131, 132, 87, 88, 228, 10, 87, 88, 147, - 11, 87, 88, 246, 12, 13, 247, 309, 30, 14, - 310, 15, 16, 17, 215, 87, 88, 30, 287, 149, - 30, 87, 88, 18, 150, 221, 30, 248, 249, 206, - 207, 250, 308, 151, 235, 19, 152, 238, 312, 87, - 88, 20, 21, 128, 191, 22, 153, 192, 23, 181, - 24, 87, 88, 298, 87, 88, 30, 87, 88, 242, - 256, 243, 30, 87, 88, 299, 109, 110, 111, 30, - 194, 302, 220, 262, 232, 228, 233, 30, 30, 268, - 236, 30, 30, 42, 44, 45, 273, 87, 88, -118, - 237, 239, 254, 252, 277, 278, 269, 255, 279, 280, - 253, 144, -117, 259, 260, 30, 261, 90, 91, 92, - 93, 134, 263, 266, 276, 300, 274, 291, 292, 293, - 125, 301, 295, 94, 95, 195, 30, 30, 30, 121, - 96, 97, 98, 99, 100, 101, 102, 103, 30, 244, - 275, 307, 289, 303, 304, 305, 219, 104, 105, 106, - 107, 108, 109, 110, 111, 311, -154, -154, 0, 0, - 0, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 0, -154, -154, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -154, -154, 107, 108, - 109, 110, 111, 0, 0, 0, 0, 209, 0, 0, - 0, 0, 0, 0, 0, 211, 0, 211, 211, 0, - 211, 211, -60, 50, 0, 0, 51, -60, 0, 0, - 52, 0, -60, -60, -60, -60, -60, 0, 0, 0, - 0, 0, -60, -60, -60, 0, 0, -60, -60, -60, - 0, -60, 0, 0, 0, -60, -60, -60, -60, -60, - -60, -60, -60, 0, 18, 0, 0, -60, 0, 0, - -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, - 0, -60, -60, -60, -60, -60, 0, -60, -60, 54, - -60, 0, 4, 5, 6, 7, 8, 9, 0, 0, - 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, - 0, 12, 13, 0, 0, 0, 14, 0, 15, 16, - 17, 0, 0, 0, 0, 211, 211, 0, 0, 0, - 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 19, 0, 0, 0, 0, 0, 20, 21, - 0, 0, 22, 0, 55, 23, 57, 24, 0, 4, + 25, 159, 132, 114, 262, 212, 213, 255, 215, 216, + 41, 51, 51, 42, 43, 44, 229, 199, 295, 200, + 55, 57, 296, 263, 256, 52, 123, 46, 81, 143, + 86, 87, 47, 122, 144, 126, 127, 119, 119, 247, + 248, 86, 87, 249, 31, 18, 18, 1, 86, 87, + 86, 87, 32, 33, 86, 87, 160, 115, 116, 117, + 220, 241, 161, 242, 187, 142, 86, 87, 38, 239, + 86, 87, 240, 86, 87, 37, 86, 87, 267, 147, + 39, 86, 87, 130, 131, 153, 154, 88, 140, 40, + 155, 156, 157, 158, 269, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 280, 281, 123, 192, 229, 45, 86, + 87, 188, 86, 87, 86, 87, 86, 87, 85, 198, + 265, 204, 86, 87, 136, 209, 208, 270, 308, 196, + 293, 309, 197, 214, 210, 245, 210, 210, 246, 210, + 210, 86, 87, 86, 87, 282, 81, 283, 284, 285, + 135, 287, 86, 87, 289, 137, 226, 138, 286, 141, + 307, 86, 87, 139, 189, 151, 195, 4, 5, 6, + 7, 8, 9, 232, 145, 244, 234, 146, 10, 237, + 86, 87, 11, 205, 206, 127, 12, 13, 148, 305, + 149, 14, 150, 15, 16, 17, 186, 311, 86, 87, + 152, 86, 87, 193, 231, 18, 90, 91, 86, 87, + 183, 184, 297, 185, 260, 298, 219, 19, 230, -118, + 266, 94, 301, 20, 21, 235, 190, 22, 272, 191, + 23, 236, 24, 238, 102, 103, 276, 277, 253, 251, + 278, 279, 268, 252, 210, 210, 105, 106, 107, 108, + 109, 110, 111, 109, 110, 111, 254, 226, -117, 143, + 257, 124, 258, 259, 294, 261, 264, 273, 275, -60, + 49, 290, 291, 50, -60, 292, 120, 51, 299, -60, + -60, -60, -60, -60, 300, 302, 303, 304, 274, -60, + -60, -60, 194, 48, -60, -60, -60, 310, -60, 306, + 288, 243, -60, -60, -60, -60, -60, -60, -60, -60, + 218, 18, 0, 0, -60, 0, 0, -60, -60, -60, + -60, -60, -60, -60, -60, -60, -60, 0, -60, -60, + -60, -60, -60, 0, -60, -60, 53, -60, 0, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 13, 0, 0, 0, 14, 0, 15, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 20, 21, 0, 0, 22, - 0, 0, 23, 204, 24, 0, 4, 5, 6, 7, + 0, 54, 23, 56, 24, 0, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 13, 0, 0, 0, - 14, 0, 15, 16, 17, 0, 0, 0, 0, 91, - 92, 0, 0, 0, 18, 0, 0, 0, 0, 0, + 14, 0, 15, 16, 17, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, - 0, 0, 20, 21, 0, 0, 22, 102, 103, 23, - 208, 24, 0, 4, 5, 6, 7, 8, 9, 105, - 106, 107, 108, 109, 110, 111, 0, 0, 11, 0, - 0, 0, 12, 13, 0, 0, 0, 14, 0, 0, - 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 20, 21, 0, 0, 22, 0, 0, 23, + 203, 24, 0, 4, 5, 6, 7, 8, 9, 0, + 0, 0, 0, 0, 10, 0, 0, 0, 11, 0, + 0, 0, 12, 13, 0, 0, 0, 14, 0, 15, + 16, 17, 0, 0, 0, 0, -154, -154, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 20, - 21, 0, 59, 22, 0, 60, 23, 61, 24, 52, - 0, 0, 0, 0, 0, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 218, 0, 0, - 60, 0, 61, 0, 52, 81, 0, 0, 0, -153, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 4, - 5, 6, 7, 8, 9, 0, 0, 0, 18, 0, - 10, 0, 0, 0, 11, 0, 0, 0, 12, 13, - 0, 0, 0, 14, 0, 15, 16, 17, 0, 0, - 81, 0, 0, 0, -153, 0, 0, 18, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, - 0, 0, 0, 0, 0, 20, 21, 126, 0, 22, - 0, 0, 23, 0, 24, 4, 5, 6, 7, 8, - 9, 0, 0, 0, 0, 0, 10, 0, 0, 0, - 11, 0, 0, 0, 12, 13, 0, 0, 0, 14, - 0, 15, 16, 17, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, - 0, 20, 21, 0, 0, 22, 0, 234, 23, 0, - 24, 4, 5, 6, 7, 8, 9, 0, 0, 0, - 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, - 12, 13, 0, 0, 0, 14, 0, 15, 16, 17, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, + 21, 0, 0, 22, -154, -154, 23, 207, 24, 0, + 4, 5, 6, 7, 8, 9, -154, -154, 107, 108, + 109, 110, 111, 0, 0, 11, 0, 0, 0, 12, + 13, 0, 0, 0, 14, 0, 0, 16, 17, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 19, 0, 0, 0, 0, 0, 20, 21, 0, - 0, 22, 0, 272, 23, 0, 24, 4, 5, 6, - 7, 8, 9, 0, 0, 0, 0, 0, 10, 0, - 0, 0, 11, 0, 0, 0, 12, 13, 0, 0, - 0, 14, 0, 15, 16, 17, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, - 0, 0, 0, 20, 21, 0, 0, 22, 0, 0, - 23, 0, 24, 4, 5, 6, 7, 8, 9, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, - 0, 0, 12, 13, 0, 0, 0, 14, 0, 0, - 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 19, 0, 0, 0, 0, 0, 20, - 21, 0, 224, 22, 0, 225, 23, 226, 24, 52, - 0, 0, 0, 0, 0, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 90, 91, 92, 93, 135, 0, 0, - 0, 0, 0, 18, 0, 0, 0, 0, 0, 94, + 19, 0, 0, 0, 0, 0, 20, 21, 0, 58, + 22, 0, 59, 23, 60, 24, 51, 90, 91, 0, + 0, 0, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 0, 0, 0, 0, 102, 103, 0, 0, 0, + 18, 0, 0, 0, 0, 0, 0, 105, 106, 107, + 108, 109, 110, 111, 217, 0, 0, 59, 0, 60, + 0, 51, 80, 0, 0, 0, -153, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 4, 5, 6, 7, + 8, 9, 0, 0, 0, 18, 0, 10, 0, 0, + 0, 11, 0, 0, 0, 12, 13, 0, 0, 0, + 14, 0, 15, 16, 17, 0, 0, 80, 0, 0, + 0, -153, 0, 0, 18, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, + 0, 0, 20, 21, 125, 0, 22, 0, 0, 23, + 0, 24, 4, 5, 6, 7, 8, 9, 0, 0, + 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, + 0, 12, 13, 0, 0, 0, 14, 0, 15, 16, + 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 19, 0, 0, 0, 0, 0, 20, 21, + 0, 0, 22, 0, 233, 23, 0, 24, 4, 5, + 6, 7, 8, 9, 0, 0, 0, 0, 0, 10, + 0, 0, 0, 11, 0, 0, 0, 12, 13, 0, + 0, 0, 14, 0, 15, 16, 17, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, + 0, 0, 0, 0, 20, 21, 0, 0, 22, 0, + 271, 23, 0, 24, 4, 5, 6, 7, 8, 9, + 0, 0, 0, 0, 0, 10, 0, 0, 0, 11, + 0, 0, 0, 12, 13, 0, 0, 0, 14, 0, + 15, 16, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, + 20, 21, 0, 0, 22, 0, 0, 23, 0, 24, + 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, + 13, 0, 0, 0, 14, 0, 0, 16, 17, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 19, 0, 0, 0, 0, 0, 20, 21, 0, 222, + 22, 0, 223, 23, 224, 24, 51, 0, 0, 0, + 0, 0, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 89, 90, 91, 92, 93, 0, 0, 0, 0, 0, + 18, 0, 0, 0, 0, 0, 94, 95, 0, 0, + 0, 0, 0, 96, 97, 98, 99, 100, 101, 102, + 103, 0, 225, 89, 90, 91, 92, 133, 0, 0, + 104, 105, 106, 107, 108, 109, 110, 111, 0, 94, 95, 0, 0, 0, 0, 0, 96, 97, 98, 99, - 100, 101, 102, 103, 0, 227, 90, 91, 92, 93, + 100, 101, 102, 103, 0, 89, 90, 91, 92, 134, 0, 0, 0, 104, 105, 106, 107, 108, 109, 110, - 111, 0, 94, 95, 0, 0, 0, 0, 0, 96, - 97, 98, 99, 100, 101, 102, 103, 0, -154, 91, - 92, 0, 0, 0, 0, 0, 104, 105, 106, 107, - 108, 109, 110, 111, 94, 95, 0, 0, 0, 0, - 0, -154, -154, -154, -154, -154, -154, 102, 103, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -154, 105, - 106, 107, 108, 109, 110, 111 + 111, 94, 95, 0, 0, 0, 0, 0, 96, 97, + 98, 99, 100, 101, 102, 103, 0, 89, 90, 91, + 92, 0, 0, 0, 0, 104, 105, 106, 107, 108, + 109, 110, 111, 94, 95, 0, 0, 0, 0, 0, + 96, 97, 98, 99, 100, 101, 102, 103, 0, -154, + 90, 91, 0, 0, 0, 0, 0, 104, 105, 106, + 107, 108, 109, 110, 111, 94, 95, 0, 0, 0, + 0, 0, -154, -154, -154, -154, -154, -154, 102, 103, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -154, + 105, 106, 107, 108, 109, 110, 111 }; static const yytype_int16 yycheck[] = { - 1, 20, 34, 6, 23, 183, 5, 25, 49, 184, - 11, 5, 20, 32, 33, 14, 16, 1, 19, 1, - 21, 22, 8, 8, 6, 66, 27, 11, 49, 63, - 48, 49, 0, 34, 68, 36, 37, 21, 22, 64, - 48, 49, 146, 147, 20, 149, 150, 68, 43, 44, - 34, 46, 36, 37, 232, 59, 42, 42, 61, 42, - 59, 60, 61, 4, 67, 59, 60, 61, 17, 18, - 48, 49, 48, 49, 6, 61, 48, 49, 69, 257, - 81, 259, 260, 261, 62, 263, 87, 88, 266, 264, - 29, 63, 124, 48, 66, 48, 49, 81, 117, 11, - 12, 48, 49, 87, 88, 1, 48, 49, 48, 49, - 66, 48, 49, 66, 26, 48, 49, 118, 63, 66, - 48, 49, 300, 124, 66, 62, 66, 39, 40, 62, - 131, 65, 133, 152, 118, 62, 137, 65, 65, 51, - 52, 53, 54, 55, 56, 57, 4, 131, 6, 133, - 254, 255, 1, 137, 59, 4, 5, 6, 7, 8, - 9, 63, 64, 48, 49, 184, 15, 48, 49, 63, - 19, 48, 49, 62, 23, 24, 65, 62, 179, 28, - 65, 30, 31, 32, 65, 48, 49, 188, 65, 63, - 191, 48, 49, 42, 63, 179, 197, 21, 22, 134, - 135, 25, 65, 68, 188, 54, 49, 191, 65, 48, - 49, 60, 61, 197, 63, 64, 69, 66, 67, 59, - 69, 48, 49, 62, 48, 49, 227, 48, 49, 4, - 45, 6, 233, 48, 49, 62, 55, 56, 57, 240, - 14, 62, 6, 227, 41, 264, 48, 248, 249, 233, - 59, 252, 253, 12, 13, 14, 240, 48, 49, 41, - 66, 59, 48, 64, 248, 249, 59, 63, 252, 253, - 64, 63, 41, 63, 63, 276, 63, 10, 11, 12, - 13, 14, 63, 63, 63, 63, 59, 59, 59, 59, - 35, 59, 276, 26, 27, 124, 297, 298, 299, 33, - 33, 34, 35, 36, 37, 38, 39, 40, 309, 197, - 246, 303, 264, 297, 298, 299, 152, 50, 51, 52, - 53, 54, 55, 56, 57, 309, 11, 12, -1, -1, - -1, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 1, 6, 20, 5, 49, 145, 146, 49, 148, 149, + 11, 8, 8, 12, 13, 14, 161, 4, 25, 6, + 21, 22, 20, 68, 66, 20, 34, 1, 23, 63, + 48, 49, 6, 34, 68, 36, 37, 32, 33, 21, + 22, 48, 49, 25, 0, 42, 42, 16, 48, 49, + 48, 49, 17, 18, 48, 49, 61, 59, 60, 61, + 160, 4, 67, 6, 61, 65, 48, 49, 59, 63, + 48, 49, 66, 48, 49, 64, 48, 49, 45, 80, + 42, 48, 49, 63, 64, 86, 87, 62, 66, 4, + 89, 90, 91, 92, 66, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, -1, 39, 40, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 51, 52, 53, 54, - 55, 56, 57, -1, -1, -1, -1, 136, -1, -1, - -1, -1, -1, -1, -1, 144, -1, 146, 147, -1, - 149, 150, 0, 1, -1, -1, 4, 5, -1, -1, - 8, -1, 10, 11, 12, 13, 14, -1, -1, -1, - -1, -1, 20, 21, 22, -1, -1, 25, 26, 27, - -1, 29, -1, -1, -1, 33, 34, 35, 36, 37, - 38, 39, 40, -1, 42, -1, -1, 45, -1, -1, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - -1, 59, 60, 61, 62, 63, -1, 65, 66, 1, - 68, -1, 4, 5, 6, 7, 8, 9, -1, -1, - -1, -1, -1, 15, -1, -1, -1, 19, -1, -1, - -1, 23, 24, -1, -1, -1, 28, -1, 30, 31, - 32, -1, -1, -1, -1, 254, 255, -1, -1, -1, - 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 54, -1, -1, -1, -1, -1, 60, 61, - -1, -1, 64, -1, 66, 67, 1, 69, -1, 4, + 109, 110, 111, 253, 254, 123, 117, 262, 6, 48, + 49, 116, 48, 49, 48, 49, 48, 49, 69, 130, + 230, 132, 48, 49, 48, 136, 135, 66, 62, 62, + 66, 65, 65, 65, 143, 62, 145, 146, 65, 148, + 149, 48, 49, 48, 49, 255, 151, 257, 258, 259, + 29, 261, 48, 49, 264, 1, 161, 59, 65, 65, + 65, 48, 49, 66, 1, 49, 62, 4, 5, 6, + 7, 8, 9, 184, 63, 62, 187, 63, 15, 190, + 48, 49, 19, 133, 134, 196, 23, 24, 63, 299, + 63, 28, 68, 30, 31, 32, 59, 65, 48, 49, + 69, 48, 49, 14, 48, 42, 11, 12, 48, 49, + 43, 44, 62, 46, 225, 62, 6, 54, 41, 41, + 231, 26, 62, 60, 61, 59, 63, 64, 239, 66, + 67, 66, 69, 59, 39, 40, 247, 248, 48, 64, + 251, 252, 59, 64, 253, 254, 51, 52, 53, 54, + 55, 56, 57, 55, 56, 57, 63, 262, 41, 63, + 63, 35, 63, 63, 275, 63, 63, 59, 63, 0, + 1, 59, 59, 4, 5, 59, 33, 8, 63, 10, + 11, 12, 13, 14, 59, 296, 297, 298, 245, 20, + 21, 22, 123, 19, 25, 26, 27, 308, 29, 302, + 262, 196, 33, 34, 35, 36, 37, 38, 39, 40, + 151, 42, -1, -1, 45, -1, -1, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, -1, 59, 60, + 61, 62, 63, -1, 65, 66, 1, 68, -1, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, 15, -1, -1, -1, 19, -1, -1, -1, 23, 24, -1, -1, -1, 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, 60, 61, -1, -1, 64, - -1, -1, 67, 1, 69, -1, 4, 5, 6, 7, + -1, 66, 67, 1, 69, -1, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, 15, -1, -1, -1, 19, -1, -1, -1, 23, 24, -1, -1, -1, - 28, -1, 30, 31, 32, -1, -1, -1, -1, 11, - 12, -1, -1, -1, 42, -1, -1, -1, -1, -1, + 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 54, -1, -1, -1, - -1, -1, 60, 61, -1, -1, 64, 39, 40, 67, - 1, 69, -1, 4, 5, 6, 7, 8, 9, 51, - 52, 53, 54, 55, 56, 57, -1, -1, 19, -1, - -1, -1, 23, 24, -1, -1, -1, 28, -1, -1, - 31, 32, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 60, 61, -1, -1, 64, -1, -1, 67, + 1, 69, -1, 4, 5, 6, 7, 8, 9, -1, + -1, -1, -1, -1, 15, -1, -1, -1, 19, -1, + -1, -1, 23, 24, -1, -1, -1, 28, -1, 30, + 31, 32, -1, -1, -1, -1, 11, 12, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, 60, - 61, -1, 1, 64, -1, 4, 67, 6, 69, 8, - -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, - 4, -1, 6, -1, 8, 64, -1, -1, -1, 68, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 4, - 5, 6, 7, 8, 9, -1, -1, -1, 42, -1, - 15, -1, -1, -1, 19, -1, -1, -1, 23, 24, - -1, -1, -1, 28, -1, 30, 31, 32, -1, -1, - 64, -1, -1, -1, 68, -1, -1, 42, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 54, - -1, -1, -1, -1, -1, 60, 61, 62, -1, 64, - -1, -1, 67, -1, 69, 4, 5, 6, 7, 8, - 9, -1, -1, -1, -1, -1, 15, -1, -1, -1, - 19, -1, -1, -1, 23, 24, -1, -1, -1, 28, - -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 54, -1, -1, -1, -1, - -1, 60, 61, -1, -1, 64, -1, 66, 67, -1, - 69, 4, 5, 6, 7, 8, 9, -1, -1, -1, - -1, -1, 15, -1, -1, -1, 19, -1, -1, -1, - 23, 24, -1, -1, -1, 28, -1, 30, 31, 32, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, + 61, -1, -1, 64, 39, 40, 67, 1, 69, -1, + 4, 5, 6, 7, 8, 9, 51, 52, 53, 54, + 55, 56, 57, -1, -1, 19, -1, -1, -1, 23, + 24, -1, -1, -1, 28, -1, -1, 31, 32, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 54, -1, -1, -1, -1, -1, 60, 61, -1, - -1, 64, -1, 66, 67, -1, 69, 4, 5, 6, - 7, 8, 9, -1, -1, -1, -1, -1, 15, -1, - -1, -1, 19, -1, -1, -1, 23, 24, -1, -1, - -1, 28, -1, 30, 31, 32, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 54, -1, -1, - -1, -1, -1, 60, 61, -1, -1, 64, -1, -1, - 67, -1, 69, 4, 5, 6, 7, 8, 9, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 19, -1, - -1, -1, 23, 24, -1, -1, -1, 28, -1, -1, - 31, 32, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 54, -1, -1, -1, -1, -1, 60, - 61, -1, 1, 64, -1, 4, 67, 6, 69, 8, - -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 10, 11, 12, 13, 14, -1, -1, - -1, -1, -1, 42, -1, -1, -1, -1, -1, 26, + 54, -1, -1, -1, -1, -1, 60, 61, -1, 1, + 64, -1, 4, 67, 6, 69, 8, 11, 12, -1, + -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, -1, -1, -1, -1, 39, 40, -1, -1, -1, + 42, -1, -1, -1, -1, -1, -1, 51, 52, 53, + 54, 55, 56, 57, 1, -1, -1, 4, -1, 6, + -1, 8, 64, -1, -1, -1, 68, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 4, 5, 6, 7, + 8, 9, -1, -1, -1, 42, -1, 15, -1, -1, + -1, 19, -1, -1, -1, 23, 24, -1, -1, -1, + 28, -1, 30, 31, 32, -1, -1, 64, -1, -1, + -1, 68, -1, -1, 42, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 54, -1, -1, -1, + -1, -1, 60, 61, 62, -1, 64, -1, -1, 67, + -1, 69, 4, 5, 6, 7, 8, 9, -1, -1, + -1, -1, -1, 15, -1, -1, -1, 19, -1, -1, + -1, 23, 24, -1, -1, -1, 28, -1, 30, 31, + 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 54, -1, -1, -1, -1, -1, 60, 61, + -1, -1, 64, -1, 66, 67, -1, 69, 4, 5, + 6, 7, 8, 9, -1, -1, -1, -1, -1, 15, + -1, -1, -1, 19, -1, -1, -1, 23, 24, -1, + -1, -1, 28, -1, 30, 31, 32, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 42, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 54, -1, + -1, -1, -1, -1, 60, 61, -1, -1, 64, -1, + 66, 67, -1, 69, 4, 5, 6, 7, 8, 9, + -1, -1, -1, -1, -1, 15, -1, -1, -1, 19, + -1, -1, -1, 23, 24, -1, -1, -1, 28, -1, + 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, + 60, 61, -1, -1, 64, -1, -1, 67, -1, 69, + 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 19, -1, -1, -1, 23, + 24, -1, -1, -1, 28, -1, -1, 31, 32, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 54, -1, -1, -1, -1, -1, 60, 61, -1, 1, + 64, -1, 4, 67, 6, 69, 8, -1, -1, -1, + -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 10, 11, 12, 13, 14, -1, -1, -1, -1, -1, + 42, -1, -1, -1, -1, -1, 26, 27, -1, -1, + -1, -1, -1, 33, 34, 35, 36, 37, 38, 39, + 40, -1, 64, 10, 11, 12, 13, 14, -1, -1, + 50, 51, 52, 53, 54, 55, 56, 57, -1, 26, 27, -1, -1, -1, -1, -1, 33, 34, 35, 36, - 37, 38, 39, 40, -1, 64, 10, 11, 12, 13, + 37, 38, 39, 40, -1, 10, 11, 12, 13, 14, -1, -1, -1, 50, 51, 52, 53, 54, 55, 56, - 57, -1, 26, 27, -1, -1, -1, -1, -1, 33, - 34, 35, 36, 37, 38, 39, 40, -1, 10, 11, - 12, -1, -1, -1, -1, -1, 50, 51, 52, 53, - 54, 55, 56, 57, 26, 27, -1, -1, -1, -1, - -1, 33, 34, 35, 36, 37, 38, 39, 40, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 50, 51, - 52, 53, 54, 55, 56, 57 + 57, 26, 27, -1, -1, -1, -1, -1, 33, 34, + 35, 36, 37, 38, 39, 40, -1, 10, 11, 12, + 13, -1, -1, -1, -1, 50, 51, 52, 53, 54, + 55, 56, 57, 26, 27, -1, -1, -1, -1, -1, + 33, 34, 35, 36, 37, 38, 39, 40, -1, 10, + 11, 12, -1, -1, -1, -1, -1, 50, 51, 52, + 53, 54, 55, 56, 57, 26, 27, -1, -1, -1, + -1, -1, 33, 34, 35, 36, 37, 38, 39, 40, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 50, + 51, 52, 53, 54, 55, 56, 57 }; /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of @@ -1369,34 +1359,34 @@ static const yytype_int8 yystos[] = 15, 19, 23, 24, 28, 30, 31, 32, 42, 54, 60, 61, 64, 67, 69, 75, 76, 80, 83, 84, 87, 0, 17, 18, 73, 77, 78, 64, 59, 42, - 4, 75, 76, 87, 76, 76, 6, 1, 6, 87, - 1, 4, 8, 84, 1, 66, 75, 1, 75, 1, - 4, 6, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 64, 84, 96, 97, 98, 69, 48, 49, 62, - 10, 11, 12, 13, 26, 27, 33, 34, 35, 36, + 4, 75, 76, 76, 76, 6, 1, 6, 87, 1, + 4, 8, 84, 1, 66, 75, 1, 75, 1, 4, + 6, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 64, 84, 96, 97, 98, 69, 48, 49, 62, 10, + 11, 12, 13, 14, 26, 27, 33, 34, 35, 36, 37, 38, 39, 40, 50, 51, 52, 53, 54, 55, - 56, 57, 75, 85, 5, 14, 59, 60, 61, 79, - 84, 79, 74, 75, 80, 73, 62, 75, 75, 88, - 89, 63, 64, 20, 14, 14, 29, 48, 1, 59, - 66, 66, 65, 65, 63, 68, 63, 63, 75, 63, - 63, 68, 49, 69, 75, 75, 76, 76, 76, 76, + 56, 57, 75, 85, 5, 59, 60, 61, 79, 84, + 79, 74, 75, 80, 73, 62, 75, 75, 88, 89, + 63, 64, 20, 14, 14, 29, 48, 1, 59, 66, + 66, 65, 65, 63, 68, 63, 63, 75, 63, 63, + 68, 49, 69, 75, 75, 76, 76, 76, 76, 6, + 61, 67, 90, 91, 92, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, - 76, 76, 76, 76, 76, 76, 76, 76, 43, 44, - 46, 59, 6, 61, 67, 90, 91, 92, 61, 84, - 1, 63, 66, 75, 14, 74, 62, 62, 65, 75, - 4, 6, 81, 82, 1, 75, 91, 91, 1, 76, - 75, 76, 99, 99, 99, 65, 99, 99, 1, 97, - 6, 75, 92, 93, 1, 4, 6, 64, 84, 94, - 95, 96, 41, 48, 66, 75, 59, 66, 75, 59, - 63, 66, 4, 6, 89, 62, 62, 65, 21, 22, - 25, 86, 64, 64, 48, 63, 45, 49, 66, 63, - 63, 63, 75, 63, 49, 68, 63, 92, 75, 59, - 66, 66, 66, 75, 59, 82, 63, 75, 75, 75, - 75, 99, 99, 92, 92, 92, 92, 65, 92, 95, - 92, 59, 59, 59, 66, 75, 25, 20, 62, 62, - 63, 59, 62, 75, 75, 75, 92, 86, 65, 62, - 65, 75, 65 + 76, 76, 76, 43, 44, 46, 59, 61, 84, 1, + 63, 66, 75, 14, 74, 62, 62, 65, 75, 4, + 6, 81, 82, 1, 75, 91, 91, 1, 76, 75, + 76, 99, 99, 99, 65, 99, 99, 1, 97, 6, + 92, 93, 1, 4, 6, 64, 84, 94, 95, 96, + 41, 48, 75, 66, 75, 59, 66, 75, 59, 63, + 66, 4, 6, 89, 62, 62, 65, 21, 22, 25, + 86, 64, 64, 48, 63, 49, 66, 63, 63, 63, + 75, 63, 49, 68, 63, 92, 75, 45, 59, 66, + 66, 66, 75, 59, 82, 63, 75, 75, 75, 75, + 99, 99, 92, 92, 92, 92, 65, 92, 95, 92, + 59, 59, 59, 66, 75, 25, 20, 62, 62, 63, + 59, 62, 75, 75, 75, 92, 86, 65, 62, 65, + 75, 65 }; /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ @@ -2010,205 +2000,205 @@ yydestruct (const char *yymsg, case YYSYMBOL_IDENT: /* IDENT */ #line 37 "src/parser.y" { jv_free(((*yyvaluep).literal)); } -#line 2014 "src/parser.c" +#line 2004 "src/parser.c" break; case YYSYMBOL_FIELD: /* FIELD */ #line 37 "src/parser.y" { jv_free(((*yyvaluep).literal)); } -#line 2020 "src/parser.c" +#line 2010 "src/parser.c" break; case YYSYMBOL_BINDING: /* BINDING */ #line 37 "src/parser.y" { jv_free(((*yyvaluep).literal)); } -#line 2026 "src/parser.c" +#line 2016 "src/parser.c" break; case YYSYMBOL_LITERAL: /* LITERAL */ #line 37 "src/parser.y" { jv_free(((*yyvaluep).literal)); } -#line 2032 "src/parser.c" +#line 2022 "src/parser.c" break; case YYSYMBOL_FORMAT: /* FORMAT */ #line 37 "src/parser.y" { jv_free(((*yyvaluep).literal)); } -#line 2038 "src/parser.c" +#line 2028 "src/parser.c" break; case YYSYMBOL_QQSTRING_TEXT: /* QQSTRING_TEXT */ #line 37 "src/parser.y" { jv_free(((*yyvaluep).literal)); } -#line 2044 "src/parser.c" +#line 2034 "src/parser.c" break; case YYSYMBOL_Module: /* Module */ #line 38 "src/parser.y" { block_free(((*yyvaluep).blk)); } -#line 2050 "src/parser.c" +#line 2040 "src/parser.c" break; case YYSYMBOL_Imports: /* Imports */ #line 38 "src/parser.y" { block_free(((*yyvaluep).blk)); } -#line 2056 "src/parser.c" +#line 2046 "src/parser.c" break; case YYSYMBOL_FuncDefs: /* FuncDefs */ #line 38 "src/parser.y" { block_free(((*yyvaluep).blk)); } -#line 2062 "src/parser.c" +#line 2052 "src/parser.c" break; case YYSYMBOL_Query: /* Query */ #line 38 "src/parser.y" { block_free(((*yyvaluep).blk)); } -#line 2068 "src/parser.c" +#line 2058 "src/parser.c" break; case YYSYMBOL_Expr: /* Expr */ #line 38 "src/parser.y" { block_free(((*yyvaluep).blk)); } -#line 2074 "src/parser.c" +#line 2064 "src/parser.c" break; case YYSYMBOL_Import: /* Import */ #line 38 "src/parser.y" { block_free(((*yyvaluep).blk)); } -#line 2080 "src/parser.c" +#line 2070 "src/parser.c" break; case YYSYMBOL_ImportWhat: /* ImportWhat */ #line 38 "src/parser.y" { block_free(((*yyvaluep).blk)); } -#line 2086 "src/parser.c" +#line 2076 "src/parser.c" break; case YYSYMBOL_ImportFrom: /* ImportFrom */ #line 38 "src/parser.y" { block_free(((*yyvaluep).blk)); } -#line 2092 "src/parser.c" +#line 2082 "src/parser.c" break; case YYSYMBOL_FuncDef: /* FuncDef */ #line 38 "src/parser.y" { block_free(((*yyvaluep).blk)); } -#line 2098 "src/parser.c" +#line 2088 "src/parser.c" break; case YYSYMBOL_Params: /* Params */ #line 38 "src/parser.y" { block_free(((*yyvaluep).blk)); } -#line 2104 "src/parser.c" +#line 2094 "src/parser.c" break; case YYSYMBOL_Param: /* Param */ #line 38 "src/parser.y" { block_free(((*yyvaluep).blk)); } -#line 2110 "src/parser.c" +#line 2100 "src/parser.c" break; case YYSYMBOL_StringStart: /* StringStart */ #line 37 "src/parser.y" { jv_free(((*yyvaluep).literal)); } -#line 2116 "src/parser.c" +#line 2106 "src/parser.c" break; case YYSYMBOL_String: /* String */ #line 38 "src/parser.y" { block_free(((*yyvaluep).blk)); } -#line 2122 "src/parser.c" +#line 2112 "src/parser.c" break; case YYSYMBOL_QQString: /* QQString */ #line 38 "src/parser.y" { block_free(((*yyvaluep).blk)); } -#line 2128 "src/parser.c" +#line 2118 "src/parser.c" break; case YYSYMBOL_ElseBody: /* ElseBody */ #line 38 "src/parser.y" { block_free(((*yyvaluep).blk)); } -#line 2134 "src/parser.c" +#line 2124 "src/parser.c" break; case YYSYMBOL_Term: /* Term */ #line 38 "src/parser.y" { block_free(((*yyvaluep).blk)); } -#line 2140 "src/parser.c" +#line 2130 "src/parser.c" break; case YYSYMBOL_Args: /* Args */ #line 38 "src/parser.y" { block_free(((*yyvaluep).blk)); } -#line 2146 "src/parser.c" +#line 2136 "src/parser.c" break; case YYSYMBOL_Arg: /* Arg */ #line 38 "src/parser.y" { block_free(((*yyvaluep).blk)); } -#line 2152 "src/parser.c" +#line 2142 "src/parser.c" break; case YYSYMBOL_RepPatterns: /* RepPatterns */ #line 38 "src/parser.y" { block_free(((*yyvaluep).blk)); } -#line 2158 "src/parser.c" +#line 2148 "src/parser.c" break; case YYSYMBOL_Patterns: /* Patterns */ #line 38 "src/parser.y" { block_free(((*yyvaluep).blk)); } -#line 2164 "src/parser.c" +#line 2154 "src/parser.c" break; case YYSYMBOL_Pattern: /* Pattern */ #line 38 "src/parser.y" { block_free(((*yyvaluep).blk)); } -#line 2170 "src/parser.c" +#line 2160 "src/parser.c" break; case YYSYMBOL_ArrayPats: /* ArrayPats */ #line 38 "src/parser.y" { block_free(((*yyvaluep).blk)); } -#line 2176 "src/parser.c" +#line 2166 "src/parser.c" break; case YYSYMBOL_ObjPats: /* ObjPats */ #line 38 "src/parser.y" { block_free(((*yyvaluep).blk)); } -#line 2182 "src/parser.c" +#line 2172 "src/parser.c" break; case YYSYMBOL_ObjPat: /* ObjPat */ #line 38 "src/parser.y" { block_free(((*yyvaluep).blk)); } -#line 2188 "src/parser.c" +#line 2178 "src/parser.c" break; case YYSYMBOL_Keyword: /* Keyword */ #line 37 "src/parser.y" { jv_free(((*yyvaluep).literal)); } -#line 2194 "src/parser.c" +#line 2184 "src/parser.c" break; case YYSYMBOL_DictPairs: /* DictPairs */ #line 38 "src/parser.y" { block_free(((*yyvaluep).blk)); } -#line 2200 "src/parser.c" +#line 2190 "src/parser.c" break; case YYSYMBOL_DictPair: /* DictPair */ #line 38 "src/parser.y" { block_free(((*yyvaluep).blk)); } -#line 2206 "src/parser.c" +#line 2196 "src/parser.c" break; case YYSYMBOL_DictExpr: /* DictExpr */ #line 38 "src/parser.y" { block_free(((*yyvaluep).blk)); } -#line 2212 "src/parser.c" +#line 2202 "src/parser.c" break; default: @@ -2516,7 +2506,7 @@ yyreduce: { *answer = BLOCK((yyvsp[-2].blk), (yyvsp[-1].blk), gen_op_simple(TOP), (yyvsp[0].blk)); } -#line 2520 "src/parser.c" +#line 2510 "src/parser.c" break; case 3: /* TopLevel: Module Imports FuncDefs */ @@ -2524,7 +2514,7 @@ yyreduce: { *answer = BLOCK((yyvsp[-2].blk), (yyvsp[-1].blk), (yyvsp[0].blk)); } -#line 2528 "src/parser.c" +#line 2518 "src/parser.c" break; case 4: /* Module: %empty */ @@ -2532,7 +2522,7 @@ yyreduce: { (yyval.blk) = gen_noop(); } -#line 2536 "src/parser.c" +#line 2526 "src/parser.c" break; case 5: /* Module: "module" Query ';' */ @@ -2550,7 +2540,7 @@ yyreduce: (yyval.blk) = gen_module((yyvsp[-1].blk)); } } -#line 2554 "src/parser.c" +#line 2544 "src/parser.c" break; case 6: /* Imports: %empty */ @@ -2558,7 +2548,7 @@ yyreduce: { (yyval.blk) = gen_noop(); } -#line 2562 "src/parser.c" +#line 2552 "src/parser.c" break; case 7: /* Imports: Import Imports */ @@ -2566,7 +2556,7 @@ yyreduce: { (yyval.blk) = BLOCK((yyvsp[-1].blk), (yyvsp[0].blk)); } -#line 2570 "src/parser.c" +#line 2560 "src/parser.c" break; case 8: /* FuncDefs: %empty */ @@ -2574,7 +2564,7 @@ yyreduce: { (yyval.blk) = gen_noop(); } -#line 2578 "src/parser.c" +#line 2568 "src/parser.c" break; case 9: /* FuncDefs: FuncDef FuncDefs */ @@ -2582,7 +2572,7 @@ yyreduce: { (yyval.blk) = block_join((yyvsp[-1].blk), (yyvsp[0].blk)); } -#line 2586 "src/parser.c" +#line 2576 "src/parser.c" break; case 10: /* Query: FuncDef Query */ @@ -2590,15 +2580,15 @@ yyreduce: { (yyval.blk) = block_bind_referenced((yyvsp[-1].blk), (yyvsp[0].blk), OP_IS_CALL_PSEUDO); } -#line 2594 "src/parser.c" +#line 2584 "src/parser.c" break; - case 11: /* Query: Term "as" Patterns '|' Query */ + case 11: /* Query: Expr "as" Patterns '|' Query */ #line 328 "src/parser.y" { (yyval.blk) = gen_destructure((yyvsp[-4].blk), (yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2602 "src/parser.c" +#line 2592 "src/parser.c" break; case 12: /* Query: "label" BINDING '|' Query */ @@ -2609,7 +2599,7 @@ yyreduce: jv_free((yyvsp[-2].literal)); jv_free(v); } -#line 2613 "src/parser.c" +#line 2603 "src/parser.c" break; case 13: /* Query: Query '|' Query */ @@ -2617,7 +2607,7 @@ yyreduce: { (yyval.blk) = block_join((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2621 "src/parser.c" +#line 2611 "src/parser.c" break; case 14: /* Query: Query ',' Query */ @@ -2625,7 +2615,7 @@ yyreduce: { (yyval.blk) = gen_both((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2629 "src/parser.c" +#line 2619 "src/parser.c" break; case 15: /* Query: Expr */ @@ -2633,7 +2623,7 @@ yyreduce: { (yyval.blk) = (yyvsp[0].blk); } -#line 2637 "src/parser.c" +#line 2627 "src/parser.c" break; case 16: /* Expr: Expr "//" Expr */ @@ -2641,7 +2631,7 @@ yyreduce: { (yyval.blk) = gen_definedor((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2645 "src/parser.c" +#line 2635 "src/parser.c" break; case 17: /* Expr: Expr '=' Expr */ @@ -2649,7 +2639,7 @@ yyreduce: { (yyval.blk) = gen_call("_assign", BLOCK(gen_lambda((yyvsp[-2].blk)), gen_lambda((yyvsp[0].blk)))); } -#line 2653 "src/parser.c" +#line 2643 "src/parser.c" break; case 18: /* Expr: Expr "or" Expr */ @@ -2657,7 +2647,7 @@ yyreduce: { (yyval.blk) = gen_or((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2661 "src/parser.c" +#line 2651 "src/parser.c" break; case 19: /* Expr: Expr "and" Expr */ @@ -2665,7 +2655,7 @@ yyreduce: { (yyval.blk) = gen_and((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2669 "src/parser.c" +#line 2659 "src/parser.c" break; case 20: /* Expr: Expr "//=" Expr */ @@ -2673,7 +2663,7 @@ yyreduce: { (yyval.blk) = gen_definedor_assign((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2677 "src/parser.c" +#line 2667 "src/parser.c" break; case 21: /* Expr: Expr "|=" Expr */ @@ -2681,7 +2671,7 @@ yyreduce: { (yyval.blk) = gen_call("_modify", BLOCK(gen_lambda((yyvsp[-2].blk)), gen_lambda((yyvsp[0].blk)))); } -#line 2685 "src/parser.c" +#line 2675 "src/parser.c" break; case 22: /* Expr: Expr '+' Expr */ @@ -2689,7 +2679,7 @@ yyreduce: { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '+'); } -#line 2693 "src/parser.c" +#line 2683 "src/parser.c" break; case 23: /* Expr: Expr "+=" Expr */ @@ -2697,7 +2687,7 @@ yyreduce: { (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '+'); } -#line 2701 "src/parser.c" +#line 2691 "src/parser.c" break; case 24: /* Expr: Expr '-' Expr */ @@ -2705,7 +2695,7 @@ yyreduce: { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '-'); } -#line 2709 "src/parser.c" +#line 2699 "src/parser.c" break; case 25: /* Expr: Expr "-=" Expr */ @@ -2713,7 +2703,7 @@ yyreduce: { (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '-'); } -#line 2717 "src/parser.c" +#line 2707 "src/parser.c" break; case 26: /* Expr: Expr '*' Expr */ @@ -2721,7 +2711,7 @@ yyreduce: { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '*'); } -#line 2725 "src/parser.c" +#line 2715 "src/parser.c" break; case 27: /* Expr: Expr "*=" Expr */ @@ -2729,7 +2719,7 @@ yyreduce: { (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '*'); } -#line 2733 "src/parser.c" +#line 2723 "src/parser.c" break; case 28: /* Expr: Expr '/' Expr */ @@ -2737,7 +2727,7 @@ yyreduce: { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '/'); } -#line 2741 "src/parser.c" +#line 2731 "src/parser.c" break; case 29: /* Expr: Expr '%' Expr */ @@ -2745,7 +2735,7 @@ yyreduce: { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '%'); } -#line 2749 "src/parser.c" +#line 2739 "src/parser.c" break; case 30: /* Expr: Expr "/=" Expr */ @@ -2753,7 +2743,7 @@ yyreduce: { (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '/'); } -#line 2757 "src/parser.c" +#line 2747 "src/parser.c" break; case 31: /* Expr: Expr "%=" Expr */ @@ -2761,7 +2751,7 @@ yyreduce: { (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '%'); } -#line 2765 "src/parser.c" +#line 2755 "src/parser.c" break; case 32: /* Expr: Expr "==" Expr */ @@ -2769,7 +2759,7 @@ yyreduce: { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), EQ); } -#line 2773 "src/parser.c" +#line 2763 "src/parser.c" break; case 33: /* Expr: Expr "!=" Expr */ @@ -2777,7 +2767,7 @@ yyreduce: { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), NEQ); } -#line 2781 "src/parser.c" +#line 2771 "src/parser.c" break; case 34: /* Expr: Expr '<' Expr */ @@ -2785,7 +2775,7 @@ yyreduce: { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '<'); } -#line 2789 "src/parser.c" +#line 2779 "src/parser.c" break; case 35: /* Expr: Expr '>' Expr */ @@ -2793,7 +2783,7 @@ yyreduce: { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '>'); } -#line 2797 "src/parser.c" +#line 2787 "src/parser.c" break; case 36: /* Expr: Expr "<=" Expr */ @@ -2801,7 +2791,7 @@ yyreduce: { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), LESSEQ); } -#line 2805 "src/parser.c" +#line 2795 "src/parser.c" break; case 37: /* Expr: Expr ">=" Expr */ @@ -2809,7 +2799,7 @@ yyreduce: { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), GREATEREQ); } -#line 2813 "src/parser.c" +#line 2803 "src/parser.c" break; case 38: /* Expr: Term */ @@ -2817,7 +2807,7 @@ yyreduce: { (yyval.blk) = (yyvsp[0].blk); } -#line 2821 "src/parser.c" +#line 2811 "src/parser.c" break; case 39: /* Import: ImportWhat ';' */ @@ -2825,7 +2815,7 @@ yyreduce: { (yyval.blk) = (yyvsp[-1].blk); } -#line 2829 "src/parser.c" +#line 2819 "src/parser.c" break; case 40: /* Import: ImportWhat Query ';' */ @@ -2845,7 +2835,7 @@ yyreduce: (yyval.blk) = gen_import_meta((yyvsp[-2].blk), (yyvsp[-1].blk)); } } -#line 2849 "src/parser.c" +#line 2839 "src/parser.c" break; case 41: /* ImportWhat: "import" ImportFrom "as" BINDING */ @@ -2859,7 +2849,7 @@ yyreduce: jv_free((yyvsp[0].literal)); jv_free(v); } -#line 2863 "src/parser.c" +#line 2853 "src/parser.c" break; case 42: /* ImportWhat: "import" ImportFrom "as" IDENT */ @@ -2871,7 +2861,7 @@ yyreduce: jv_free((yyvsp[0].literal)); jv_free(v); } -#line 2875 "src/parser.c" +#line 2865 "src/parser.c" break; case 43: /* ImportWhat: "include" ImportFrom */ @@ -2882,7 +2872,7 @@ yyreduce: block_free((yyvsp[0].blk)); jv_free(v); } -#line 2886 "src/parser.c" +#line 2876 "src/parser.c" break; case 44: /* ImportFrom: String */ @@ -2896,7 +2886,7 @@ yyreduce: (yyval.blk) = (yyvsp[0].blk); } } -#line 2900 "src/parser.c" +#line 2890 "src/parser.c" break; case 45: /* FuncDef: "def" IDENT ':' Query ';' */ @@ -2905,7 +2895,7 @@ yyreduce: (yyval.blk) = gen_function(jv_string_value((yyvsp[-3].literal)), gen_noop(), (yyvsp[-1].blk)); jv_free((yyvsp[-3].literal)); } -#line 2909 "src/parser.c" +#line 2899 "src/parser.c" break; case 46: /* FuncDef: "def" IDENT '(' Params ')' ':' Query ';' */ @@ -2914,7 +2904,7 @@ yyreduce: (yyval.blk) = gen_function(jv_string_value((yyvsp[-6].literal)), (yyvsp[-4].blk), (yyvsp[-1].blk)); jv_free((yyvsp[-6].literal)); } -#line 2918 "src/parser.c" +#line 2908 "src/parser.c" break; case 47: /* Params: Param */ @@ -2922,7 +2912,7 @@ yyreduce: { (yyval.blk) = (yyvsp[0].blk); } -#line 2926 "src/parser.c" +#line 2916 "src/parser.c" break; case 48: /* Params: Params ';' Param */ @@ -2930,7 +2920,7 @@ yyreduce: { (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2934 "src/parser.c" +#line 2924 "src/parser.c" break; case 49: /* Param: BINDING */ @@ -2939,7 +2929,7 @@ yyreduce: (yyval.blk) = gen_param_regular(jv_string_value((yyvsp[0].literal))); jv_free((yyvsp[0].literal)); } -#line 2943 "src/parser.c" +#line 2933 "src/parser.c" break; case 50: /* Param: IDENT */ @@ -2948,7 +2938,7 @@ yyreduce: (yyval.blk) = gen_param(jv_string_value((yyvsp[0].literal))); jv_free((yyvsp[0].literal)); } -#line 2952 "src/parser.c" +#line 2942 "src/parser.c" break; case 51: /* StringStart: FORMAT QQSTRING_START */ @@ -2956,7 +2946,7 @@ yyreduce: { (yyval.literal) = (yyvsp[-1].literal); } -#line 2960 "src/parser.c" +#line 2950 "src/parser.c" break; case 52: /* StringStart: QQSTRING_START */ @@ -2964,7 +2954,7 @@ yyreduce: { (yyval.literal) = jv_string("text"); } -#line 2968 "src/parser.c" +#line 2958 "src/parser.c" break; case 53: /* String: StringStart QQString QQSTRING_END */ @@ -2973,7 +2963,7 @@ yyreduce: (yyval.blk) = (yyvsp[-1].blk); jv_free((yyvsp[-2].literal)); } -#line 2977 "src/parser.c" +#line 2967 "src/parser.c" break; case 54: /* QQString: %empty */ @@ -2981,7 +2971,7 @@ yyreduce: { (yyval.blk) = gen_const(jv_string("")); } -#line 2985 "src/parser.c" +#line 2975 "src/parser.c" break; case 55: /* QQString: QQString QQSTRING_TEXT */ @@ -2989,7 +2979,7 @@ yyreduce: { (yyval.blk) = gen_binop((yyvsp[-1].blk), gen_const((yyvsp[0].literal)), '+'); } -#line 2993 "src/parser.c" +#line 2983 "src/parser.c" break; case 56: /* QQString: QQString QQSTRING_INTERP_START Query QQSTRING_INTERP_END */ @@ -2997,7 +2987,7 @@ yyreduce: { (yyval.blk) = gen_binop((yyvsp[-3].blk), gen_format((yyvsp[-1].blk), jv_copy((yyvsp[-4].literal))), '+'); } -#line 3001 "src/parser.c" +#line 2991 "src/parser.c" break; case 57: /* ElseBody: "elif" Query "then" Query ElseBody */ @@ -3005,7 +2995,7 @@ yyreduce: { (yyval.blk) = gen_cond((yyvsp[-3].blk), (yyvsp[-1].blk), (yyvsp[0].blk)); } -#line 3009 "src/parser.c" +#line 2999 "src/parser.c" break; case 58: /* ElseBody: "else" Query "end" */ @@ -3013,7 +3003,7 @@ yyreduce: { (yyval.blk) = (yyvsp[-1].blk); } -#line 3017 "src/parser.c" +#line 3007 "src/parser.c" break; case 59: /* ElseBody: "end" */ @@ -3021,7 +3011,7 @@ yyreduce: { (yyval.blk) = gen_noop(); } -#line 3025 "src/parser.c" +#line 3015 "src/parser.c" break; case 60: /* Term: '.' */ @@ -3029,7 +3019,7 @@ yyreduce: { (yyval.blk) = gen_noop(); } -#line 3033 "src/parser.c" +#line 3023 "src/parser.c" break; case 61: /* Term: ".." */ @@ -3037,7 +3027,7 @@ yyreduce: { (yyval.blk) = gen_call("recurse", gen_noop()); } -#line 3041 "src/parser.c" +#line 3031 "src/parser.c" break; case 62: /* Term: "break" BINDING */ @@ -3050,7 +3040,7 @@ yyreduce: jv_free(v); jv_free((yyvsp[0].literal)); } -#line 3054 "src/parser.c" +#line 3044 "src/parser.c" break; case 63: /* Term: "break" error */ @@ -3059,7 +3049,7 @@ yyreduce: FAIL((yyloc), "break requires a label to break to"); (yyval.blk) = gen_noop(); } -#line 3063 "src/parser.c" +#line 3053 "src/parser.c" break; case 64: /* Term: Term FIELD '?' */ @@ -3067,7 +3057,7 @@ yyreduce: { (yyval.blk) = gen_index_opt((yyvsp[-2].blk), gen_const((yyvsp[-1].literal))); } -#line 3071 "src/parser.c" +#line 3061 "src/parser.c" break; case 65: /* Term: FIELD '?' */ @@ -3075,7 +3065,7 @@ yyreduce: { (yyval.blk) = gen_index_opt(gen_noop(), gen_const((yyvsp[-1].literal))); } -#line 3079 "src/parser.c" +#line 3069 "src/parser.c" break; case 66: /* Term: Term '.' String '?' */ @@ -3083,7 +3073,7 @@ yyreduce: { (yyval.blk) = gen_index_opt((yyvsp[-3].blk), (yyvsp[-1].blk)); } -#line 3087 "src/parser.c" +#line 3077 "src/parser.c" break; case 67: /* Term: '.' String '?' */ @@ -3091,7 +3081,7 @@ yyreduce: { (yyval.blk) = gen_index_opt(gen_noop(), (yyvsp[-1].blk)); } -#line 3095 "src/parser.c" +#line 3085 "src/parser.c" break; case 68: /* Term: Term FIELD */ @@ -3099,7 +3089,7 @@ yyreduce: { (yyval.blk) = gen_index((yyvsp[-1].blk), gen_const((yyvsp[0].literal))); } -#line 3103 "src/parser.c" +#line 3093 "src/parser.c" break; case 69: /* Term: FIELD */ @@ -3107,7 +3097,7 @@ yyreduce: { (yyval.blk) = gen_index(gen_noop(), gen_const((yyvsp[0].literal))); } -#line 3111 "src/parser.c" +#line 3101 "src/parser.c" break; case 70: /* Term: Term '.' String */ @@ -3115,7 +3105,7 @@ yyreduce: { (yyval.blk) = gen_index((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3119 "src/parser.c" +#line 3109 "src/parser.c" break; case 71: /* Term: '.' String */ @@ -3123,7 +3113,7 @@ yyreduce: { (yyval.blk) = gen_index(gen_noop(), (yyvsp[0].blk)); } -#line 3127 "src/parser.c" +#line 3117 "src/parser.c" break; case 72: /* Term: '.' error */ @@ -3132,7 +3122,7 @@ yyreduce: FAIL((yyloc), "try .[\"field\"] instead of .field for unusually named fields"); (yyval.blk) = gen_noop(); } -#line 3136 "src/parser.c" +#line 3126 "src/parser.c" break; case 73: /* Term: '.' IDENT error */ @@ -3142,7 +3132,7 @@ yyreduce: FAIL((yyloc), "try .[\"field\"] instead of .field for unusually named fields"); (yyval.blk) = gen_noop(); } -#line 3146 "src/parser.c" +#line 3136 "src/parser.c" break; case 74: /* Term: Term '[' Query ']' '?' */ @@ -3150,7 +3140,7 @@ yyreduce: { (yyval.blk) = gen_index_opt((yyvsp[-4].blk), (yyvsp[-2].blk)); } -#line 3154 "src/parser.c" +#line 3144 "src/parser.c" break; case 75: /* Term: Term '[' Query ']' */ @@ -3158,7 +3148,7 @@ yyreduce: { (yyval.blk) = gen_index((yyvsp[-3].blk), (yyvsp[-1].blk)); } -#line 3162 "src/parser.c" +#line 3152 "src/parser.c" break; case 76: /* Term: Term '.' '[' Query ']' '?' */ @@ -3166,7 +3156,7 @@ yyreduce: { (yyval.blk) = gen_index_opt((yyvsp[-5].blk), (yyvsp[-2].blk)); } -#line 3170 "src/parser.c" +#line 3160 "src/parser.c" break; case 77: /* Term: Term '.' '[' Query ']' */ @@ -3174,7 +3164,7 @@ yyreduce: { (yyval.blk) = gen_index((yyvsp[-4].blk), (yyvsp[-1].blk)); } -#line 3178 "src/parser.c" +#line 3168 "src/parser.c" break; case 78: /* Term: Term '[' ']' '?' */ @@ -3182,7 +3172,7 @@ yyreduce: { (yyval.blk) = block_join((yyvsp[-3].blk), gen_op_simple(EACH_OPT)); } -#line 3186 "src/parser.c" +#line 3176 "src/parser.c" break; case 79: /* Term: Term '[' ']' */ @@ -3190,7 +3180,7 @@ yyreduce: { (yyval.blk) = block_join((yyvsp[-2].blk), gen_op_simple(EACH)); } -#line 3194 "src/parser.c" +#line 3184 "src/parser.c" break; case 80: /* Term: Term '.' '[' ']' '?' */ @@ -3198,7 +3188,7 @@ yyreduce: { (yyval.blk) = block_join((yyvsp[-4].blk), gen_op_simple(EACH_OPT)); } -#line 3202 "src/parser.c" +#line 3192 "src/parser.c" break; case 81: /* Term: Term '.' '[' ']' */ @@ -3206,7 +3196,7 @@ yyreduce: { (yyval.blk) = block_join((yyvsp[-3].blk), gen_op_simple(EACH)); } -#line 3210 "src/parser.c" +#line 3200 "src/parser.c" break; case 82: /* Term: Term '[' Query ':' Query ']' '?' */ @@ -3214,7 +3204,7 @@ yyreduce: { (yyval.blk) = gen_slice_index((yyvsp[-6].blk), (yyvsp[-4].blk), (yyvsp[-2].blk), INDEX_OPT); } -#line 3218 "src/parser.c" +#line 3208 "src/parser.c" break; case 83: /* Term: Term '[' Query ':' ']' '?' */ @@ -3222,7 +3212,7 @@ yyreduce: { (yyval.blk) = gen_slice_index((yyvsp[-5].blk), (yyvsp[-3].blk), gen_const(jv_null()), INDEX_OPT); } -#line 3226 "src/parser.c" +#line 3216 "src/parser.c" break; case 84: /* Term: Term '[' ':' Query ']' '?' */ @@ -3230,7 +3220,7 @@ yyreduce: { (yyval.blk) = gen_slice_index((yyvsp[-5].blk), gen_const(jv_null()), (yyvsp[-2].blk), INDEX_OPT); } -#line 3234 "src/parser.c" +#line 3224 "src/parser.c" break; case 85: /* Term: Term '[' Query ':' Query ']' */ @@ -3238,7 +3228,7 @@ yyreduce: { (yyval.blk) = gen_slice_index((yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk), INDEX); } -#line 3242 "src/parser.c" +#line 3232 "src/parser.c" break; case 86: /* Term: Term '[' Query ':' ']' */ @@ -3246,7 +3236,7 @@ yyreduce: { (yyval.blk) = gen_slice_index((yyvsp[-4].blk), (yyvsp[-2].blk), gen_const(jv_null()), INDEX); } -#line 3250 "src/parser.c" +#line 3240 "src/parser.c" break; case 87: /* Term: Term '[' ':' Query ']' */ @@ -3254,7 +3244,7 @@ yyreduce: { (yyval.blk) = gen_slice_index((yyvsp[-4].blk), gen_const(jv_null()), (yyvsp[-1].blk), INDEX); } -#line 3258 "src/parser.c" +#line 3248 "src/parser.c" break; case 88: /* Term: Term '?' */ @@ -3262,7 +3252,7 @@ yyreduce: { (yyval.blk) = gen_try((yyvsp[-1].blk), gen_op_simple(BACKTRACK)); } -#line 3266 "src/parser.c" +#line 3256 "src/parser.c" break; case 89: /* Term: LITERAL */ @@ -3270,7 +3260,7 @@ yyreduce: { (yyval.blk) = gen_const((yyvsp[0].literal)); } -#line 3274 "src/parser.c" +#line 3264 "src/parser.c" break; case 90: /* Term: String */ @@ -3278,7 +3268,7 @@ yyreduce: { (yyval.blk) = (yyvsp[0].blk); } -#line 3282 "src/parser.c" +#line 3272 "src/parser.c" break; case 91: /* Term: FORMAT */ @@ -3286,7 +3276,7 @@ yyreduce: { (yyval.blk) = gen_format(gen_noop(), (yyvsp[0].literal)); } -#line 3290 "src/parser.c" +#line 3280 "src/parser.c" break; case 92: /* Term: '-' Term */ @@ -3294,7 +3284,7 @@ yyreduce: { (yyval.blk) = BLOCK((yyvsp[0].blk), gen_call("_negate", gen_noop())); } -#line 3298 "src/parser.c" +#line 3288 "src/parser.c" break; case 93: /* Term: '(' Query ')' */ @@ -3302,7 +3292,7 @@ yyreduce: { (yyval.blk) = (yyvsp[-1].blk); } -#line 3306 "src/parser.c" +#line 3296 "src/parser.c" break; case 94: /* Term: '[' Query ']' */ @@ -3310,7 +3300,7 @@ yyreduce: { (yyval.blk) = gen_collect((yyvsp[-1].blk)); } -#line 3314 "src/parser.c" +#line 3304 "src/parser.c" break; case 95: /* Term: '[' ']' */ @@ -3318,7 +3308,7 @@ yyreduce: { (yyval.blk) = gen_const(jv_array()); } -#line 3322 "src/parser.c" +#line 3312 "src/parser.c" break; case 96: /* Term: '{' DictPairs '}' */ @@ -3330,7 +3320,7 @@ yyreduce: else (yyval.blk) = BLOCK(gen_subexp(gen_const(jv_object())), (yyvsp[-1].blk), gen_op_simple(POP)); } -#line 3334 "src/parser.c" +#line 3324 "src/parser.c" break; case 97: /* Term: "reduce" Expr "as" Patterns '(' Query ';' Query ')' */ @@ -3338,7 +3328,7 @@ yyreduce: { (yyval.blk) = gen_reduce((yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk)); } -#line 3342 "src/parser.c" +#line 3332 "src/parser.c" break; case 98: /* Term: "foreach" Expr "as" Patterns '(' Query ';' Query ';' Query ')' */ @@ -3346,7 +3336,7 @@ yyreduce: { (yyval.blk) = gen_foreach((yyvsp[-9].blk), (yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk)); } -#line 3350 "src/parser.c" +#line 3340 "src/parser.c" break; case 99: /* Term: "foreach" Expr "as" Patterns '(' Query ';' Query ')' */ @@ -3354,7 +3344,7 @@ yyreduce: { (yyval.blk) = gen_foreach((yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk), gen_noop()); } -#line 3358 "src/parser.c" +#line 3348 "src/parser.c" break; case 100: /* Term: "if" Query "then" Query ElseBody */ @@ -3362,7 +3352,7 @@ yyreduce: { (yyval.blk) = gen_cond((yyvsp[-3].blk), (yyvsp[-1].blk), (yyvsp[0].blk)); } -#line 3366 "src/parser.c" +#line 3356 "src/parser.c" break; case 101: /* Term: "if" Query "then" error */ @@ -3371,7 +3361,7 @@ yyreduce: FAIL((yyloc), "Possibly unterminated 'if' statement"); (yyval.blk) = (yyvsp[-2].blk); } -#line 3375 "src/parser.c" +#line 3365 "src/parser.c" break; case 102: /* Term: "try" Expr "catch" Expr */ @@ -3379,7 +3369,7 @@ yyreduce: { (yyval.blk) = gen_try((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3383 "src/parser.c" +#line 3373 "src/parser.c" break; case 103: /* Term: "try" Expr "catch" error */ @@ -3388,7 +3378,7 @@ yyreduce: FAIL((yyloc), "Possibly unterminated 'try' statement"); (yyval.blk) = (yyvsp[-2].blk); } -#line 3392 "src/parser.c" +#line 3382 "src/parser.c" break; case 104: /* Term: "try" Expr */ @@ -3396,7 +3386,7 @@ yyreduce: { (yyval.blk) = gen_try((yyvsp[0].blk), gen_op_simple(BACKTRACK)); } -#line 3400 "src/parser.c" +#line 3390 "src/parser.c" break; case 105: /* Term: '$' '$' '$' BINDING */ @@ -3405,7 +3395,7 @@ yyreduce: (yyval.blk) = gen_location((yyloc), locations, gen_op_unbound(LOADVN, jv_string_value((yyvsp[0].literal)))); jv_free((yyvsp[0].literal)); } -#line 3409 "src/parser.c" +#line 3399 "src/parser.c" break; case 106: /* Term: BINDING */ @@ -3414,7 +3404,7 @@ yyreduce: (yyval.blk) = gen_location((yyloc), locations, gen_op_unbound(LOADV, jv_string_value((yyvsp[0].literal)))); jv_free((yyvsp[0].literal)); } -#line 3418 "src/parser.c" +#line 3408 "src/parser.c" break; case 107: /* Term: "$__loc__" */ @@ -3422,7 +3412,7 @@ yyreduce: { (yyval.blk) = gen_loc_object(&(yyloc), locations); } -#line 3426 "src/parser.c" +#line 3416 "src/parser.c" break; case 108: /* Term: IDENT */ @@ -3439,7 +3429,7 @@ yyreduce: (yyval.blk) = gen_location((yyloc), locations, gen_call(s, gen_noop())); jv_free((yyvsp[0].literal)); } -#line 3443 "src/parser.c" +#line 3433 "src/parser.c" break; case 109: /* Term: IDENT '(' Args ')' */ @@ -3449,31 +3439,31 @@ yyreduce: (yyval.blk) = gen_location((yylsp[-3]), locations, (yyval.blk)); jv_free((yyvsp[-3].literal)); } -#line 3453 "src/parser.c" +#line 3443 "src/parser.c" break; case 110: /* Term: '(' error ')' */ #line 740 "src/parser.y" { (yyval.blk) = gen_noop(); } -#line 3459 "src/parser.c" +#line 3449 "src/parser.c" break; case 111: /* Term: '[' error ']' */ #line 741 "src/parser.y" { (yyval.blk) = gen_noop(); } -#line 3465 "src/parser.c" +#line 3455 "src/parser.c" break; case 112: /* Term: Term '[' error ']' */ #line 742 "src/parser.y" { (yyval.blk) = (yyvsp[-3].blk); } -#line 3471 "src/parser.c" +#line 3461 "src/parser.c" break; case 113: /* Term: '{' error '}' */ #line 743 "src/parser.y" { (yyval.blk) = gen_noop(); } -#line 3477 "src/parser.c" +#line 3467 "src/parser.c" break; case 114: /* Args: Arg */ @@ -3481,7 +3471,7 @@ yyreduce: { (yyval.blk) = (yyvsp[0].blk); } -#line 3485 "src/parser.c" +#line 3475 "src/parser.c" break; case 115: /* Args: Args ';' Arg */ @@ -3489,7 +3479,7 @@ yyreduce: { (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3493 "src/parser.c" +#line 3483 "src/parser.c" break; case 116: /* Arg: Query */ @@ -3497,7 +3487,7 @@ yyreduce: { (yyval.blk) = gen_lambda((yyvsp[0].blk)); } -#line 3501 "src/parser.c" +#line 3491 "src/parser.c" break; case 117: /* RepPatterns: RepPatterns "?//" Pattern */ @@ -3505,7 +3495,7 @@ yyreduce: { (yyval.blk) = BLOCK((yyvsp[-2].blk), gen_destructure_alt((yyvsp[0].blk))); } -#line 3509 "src/parser.c" +#line 3499 "src/parser.c" break; case 118: /* RepPatterns: Pattern */ @@ -3513,7 +3503,7 @@ yyreduce: { (yyval.blk) = gen_destructure_alt((yyvsp[0].blk)); } -#line 3517 "src/parser.c" +#line 3507 "src/parser.c" break; case 119: /* Patterns: RepPatterns "?//" Pattern */ @@ -3521,7 +3511,7 @@ yyreduce: { (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3525 "src/parser.c" +#line 3515 "src/parser.c" break; case 120: /* Patterns: Pattern */ @@ -3529,7 +3519,7 @@ yyreduce: { (yyval.blk) = (yyvsp[0].blk); } -#line 3533 "src/parser.c" +#line 3523 "src/parser.c" break; case 121: /* Pattern: BINDING */ @@ -3538,7 +3528,7 @@ yyreduce: (yyval.blk) = gen_op_unbound(STOREV, jv_string_value((yyvsp[0].literal))); jv_free((yyvsp[0].literal)); } -#line 3542 "src/parser.c" +#line 3532 "src/parser.c" break; case 122: /* Pattern: '[' ArrayPats ']' */ @@ -3546,7 +3536,7 @@ yyreduce: { (yyval.blk) = BLOCK((yyvsp[-1].blk), gen_op_simple(POP)); } -#line 3550 "src/parser.c" +#line 3540 "src/parser.c" break; case 123: /* Pattern: '{' ObjPats '}' */ @@ -3554,7 +3544,7 @@ yyreduce: { (yyval.blk) = BLOCK((yyvsp[-1].blk), gen_op_simple(POP)); } -#line 3558 "src/parser.c" +#line 3548 "src/parser.c" break; case 124: /* ArrayPats: Pattern */ @@ -3562,7 +3552,7 @@ yyreduce: { (yyval.blk) = gen_array_matcher(gen_noop(), (yyvsp[0].blk)); } -#line 3566 "src/parser.c" +#line 3556 "src/parser.c" break; case 125: /* ArrayPats: ArrayPats ',' Pattern */ @@ -3570,7 +3560,7 @@ yyreduce: { (yyval.blk) = gen_array_matcher((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3574 "src/parser.c" +#line 3564 "src/parser.c" break; case 126: /* ObjPats: ObjPat */ @@ -3578,7 +3568,7 @@ yyreduce: { (yyval.blk) = (yyvsp[0].blk); } -#line 3582 "src/parser.c" +#line 3572 "src/parser.c" break; case 127: /* ObjPats: ObjPats ',' ObjPat */ @@ -3586,7 +3576,7 @@ yyreduce: { (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3590 "src/parser.c" +#line 3580 "src/parser.c" break; case 128: /* ObjPat: BINDING */ @@ -3594,7 +3584,7 @@ yyreduce: { (yyval.blk) = gen_object_matcher(gen_const((yyvsp[0].literal)), gen_op_unbound(STOREV, jv_string_value((yyvsp[0].literal)))); } -#line 3598 "src/parser.c" +#line 3588 "src/parser.c" break; case 129: /* ObjPat: BINDING ':' Pattern */ @@ -3602,7 +3592,7 @@ yyreduce: { (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 3606 "src/parser.c" +#line 3596 "src/parser.c" break; case 130: /* ObjPat: IDENT ':' Pattern */ @@ -3610,7 +3600,7 @@ yyreduce: { (yyval.blk) = gen_object_matcher(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); } -#line 3614 "src/parser.c" +#line 3604 "src/parser.c" break; case 131: /* ObjPat: Keyword ':' Pattern */ @@ -3618,7 +3608,7 @@ yyreduce: { (yyval.blk) = gen_object_matcher(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); } -#line 3622 "src/parser.c" +#line 3612 "src/parser.c" break; case 132: /* ObjPat: String ':' Pattern */ @@ -3626,7 +3616,7 @@ yyreduce: { (yyval.blk) = gen_object_matcher((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3630 "src/parser.c" +#line 3620 "src/parser.c" break; case 133: /* ObjPat: '(' Query ')' ':' Pattern */ @@ -3639,7 +3629,7 @@ yyreduce: jv_free(msg); (yyval.blk) = gen_object_matcher((yyvsp[-3].blk), (yyvsp[0].blk)); } -#line 3643 "src/parser.c" +#line 3633 "src/parser.c" break; case 134: /* ObjPat: error ':' Pattern */ @@ -3648,7 +3638,7 @@ yyreduce: FAIL((yyloc), "May need parentheses around object key expression"); (yyval.blk) = (yyvsp[0].blk); } -#line 3652 "src/parser.c" +#line 3642 "src/parser.c" break; case 135: /* Keyword: "as" */ @@ -3656,7 +3646,7 @@ yyreduce: { (yyval.literal) = jv_string("as"); } -#line 3660 "src/parser.c" +#line 3650 "src/parser.c" break; case 136: /* Keyword: "def" */ @@ -3664,7 +3654,7 @@ yyreduce: { (yyval.literal) = jv_string("def"); } -#line 3668 "src/parser.c" +#line 3658 "src/parser.c" break; case 137: /* Keyword: "module" */ @@ -3672,7 +3662,7 @@ yyreduce: { (yyval.literal) = jv_string("module"); } -#line 3676 "src/parser.c" +#line 3666 "src/parser.c" break; case 138: /* Keyword: "import" */ @@ -3680,7 +3670,7 @@ yyreduce: { (yyval.literal) = jv_string("import"); } -#line 3684 "src/parser.c" +#line 3674 "src/parser.c" break; case 139: /* Keyword: "include" */ @@ -3688,7 +3678,7 @@ yyreduce: { (yyval.literal) = jv_string("include"); } -#line 3692 "src/parser.c" +#line 3682 "src/parser.c" break; case 140: /* Keyword: "if" */ @@ -3696,7 +3686,7 @@ yyreduce: { (yyval.literal) = jv_string("if"); } -#line 3700 "src/parser.c" +#line 3690 "src/parser.c" break; case 141: /* Keyword: "then" */ @@ -3704,7 +3694,7 @@ yyreduce: { (yyval.literal) = jv_string("then"); } -#line 3708 "src/parser.c" +#line 3698 "src/parser.c" break; case 142: /* Keyword: "else" */ @@ -3712,7 +3702,7 @@ yyreduce: { (yyval.literal) = jv_string("else"); } -#line 3716 "src/parser.c" +#line 3706 "src/parser.c" break; case 143: /* Keyword: "elif" */ @@ -3720,7 +3710,7 @@ yyreduce: { (yyval.literal) = jv_string("elif"); } -#line 3724 "src/parser.c" +#line 3714 "src/parser.c" break; case 144: /* Keyword: "reduce" */ @@ -3728,7 +3718,7 @@ yyreduce: { (yyval.literal) = jv_string("reduce"); } -#line 3732 "src/parser.c" +#line 3722 "src/parser.c" break; case 145: /* Keyword: "foreach" */ @@ -3736,7 +3726,7 @@ yyreduce: { (yyval.literal) = jv_string("foreach"); } -#line 3740 "src/parser.c" +#line 3730 "src/parser.c" break; case 146: /* Keyword: "end" */ @@ -3744,7 +3734,7 @@ yyreduce: { (yyval.literal) = jv_string("end"); } -#line 3748 "src/parser.c" +#line 3738 "src/parser.c" break; case 147: /* Keyword: "and" */ @@ -3752,7 +3742,7 @@ yyreduce: { (yyval.literal) = jv_string("and"); } -#line 3756 "src/parser.c" +#line 3746 "src/parser.c" break; case 148: /* Keyword: "or" */ @@ -3760,7 +3750,7 @@ yyreduce: { (yyval.literal) = jv_string("or"); } -#line 3764 "src/parser.c" +#line 3754 "src/parser.c" break; case 149: /* Keyword: "try" */ @@ -3768,7 +3758,7 @@ yyreduce: { (yyval.literal) = jv_string("try"); } -#line 3772 "src/parser.c" +#line 3762 "src/parser.c" break; case 150: /* Keyword: "catch" */ @@ -3776,7 +3766,7 @@ yyreduce: { (yyval.literal) = jv_string("catch"); } -#line 3780 "src/parser.c" +#line 3770 "src/parser.c" break; case 151: /* Keyword: "label" */ @@ -3784,7 +3774,7 @@ yyreduce: { (yyval.literal) = jv_string("label"); } -#line 3788 "src/parser.c" +#line 3778 "src/parser.c" break; case 152: /* Keyword: "break" */ @@ -3792,7 +3782,7 @@ yyreduce: { (yyval.literal) = jv_string("break"); } -#line 3796 "src/parser.c" +#line 3786 "src/parser.c" break; case 153: /* DictPairs: %empty */ @@ -3800,7 +3790,7 @@ yyreduce: { (yyval.blk) = gen_noop(); } -#line 3804 "src/parser.c" +#line 3794 "src/parser.c" break; case 154: /* DictPairs: DictPair */ @@ -3808,7 +3798,7 @@ yyreduce: { (yyval.blk) = (yyvsp[0].blk); } -#line 3812 "src/parser.c" +#line 3802 "src/parser.c" break; case 155: /* DictPairs: DictPair ',' DictPairs */ @@ -3816,7 +3806,7 @@ yyreduce: { (yyval.blk) = block_join((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3820 "src/parser.c" +#line 3810 "src/parser.c" break; case 156: /* DictPair: IDENT ':' DictExpr */ @@ -3824,7 +3814,7 @@ yyreduce: { (yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); } -#line 3828 "src/parser.c" +#line 3818 "src/parser.c" break; case 157: /* DictPair: Keyword ':' DictExpr */ @@ -3832,7 +3822,7 @@ yyreduce: { (yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); } -#line 3836 "src/parser.c" +#line 3826 "src/parser.c" break; case 158: /* DictPair: String ':' DictExpr */ @@ -3840,7 +3830,7 @@ yyreduce: { (yyval.blk) = gen_dictpair((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3844 "src/parser.c" +#line 3834 "src/parser.c" break; case 159: /* DictPair: String */ @@ -3849,7 +3839,7 @@ yyreduce: (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 3853 "src/parser.c" +#line 3843 "src/parser.c" break; case 160: /* DictPair: BINDING ':' DictExpr */ @@ -3859,7 +3849,7 @@ yyreduce: (yyvsp[0].blk)); jv_free((yyvsp[-2].literal)); } -#line 3863 "src/parser.c" +#line 3853 "src/parser.c" break; case 161: /* DictPair: BINDING */ @@ -3868,7 +3858,7 @@ yyreduce: (yyval.blk) = gen_dictpair(gen_const((yyvsp[0].literal)), gen_location((yyloc), locations, gen_op_unbound(LOADV, jv_string_value((yyvsp[0].literal))))); } -#line 3872 "src/parser.c" +#line 3862 "src/parser.c" break; case 162: /* DictPair: IDENT */ @@ -3877,7 +3867,7 @@ yyreduce: (yyval.blk) = gen_dictpair(gen_const(jv_copy((yyvsp[0].literal))), gen_index(gen_noop(), gen_const((yyvsp[0].literal)))); } -#line 3881 "src/parser.c" +#line 3871 "src/parser.c" break; case 163: /* DictPair: "$__loc__" */ @@ -3886,7 +3876,7 @@ yyreduce: (yyval.blk) = gen_dictpair(gen_const(jv_string("__loc__")), gen_loc_object(&(yyloc), locations)); } -#line 3890 "src/parser.c" +#line 3880 "src/parser.c" break; case 164: /* DictPair: Keyword */ @@ -3895,7 +3885,7 @@ yyreduce: (yyval.blk) = gen_dictpair(gen_const(jv_copy((yyvsp[0].literal))), gen_index(gen_noop(), gen_const((yyvsp[0].literal)))); } -#line 3899 "src/parser.c" +#line 3889 "src/parser.c" break; case 165: /* DictPair: '(' Query ')' ':' DictExpr */ @@ -3908,7 +3898,7 @@ yyreduce: jv_free(msg); (yyval.blk) = gen_dictpair((yyvsp[-3].blk), (yyvsp[0].blk)); } -#line 3912 "src/parser.c" +#line 3902 "src/parser.c" break; case 166: /* DictPair: error ':' DictExpr */ @@ -3917,7 +3907,7 @@ yyreduce: FAIL((yylsp[-2]), "May need parentheses around object key expression"); (yyval.blk) = (yyvsp[0].blk); } -#line 3921 "src/parser.c" +#line 3911 "src/parser.c" break; case 167: /* DictExpr: DictExpr '|' DictExpr */ @@ -3925,7 +3915,7 @@ yyreduce: { (yyval.blk) = block_join((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3929 "src/parser.c" +#line 3919 "src/parser.c" break; case 168: /* DictExpr: Expr */ @@ -3933,11 +3923,11 @@ yyreduce: { (yyval.blk) = (yyvsp[0].blk); } -#line 3937 "src/parser.c" +#line 3927 "src/parser.c" break; -#line 3941 "src/parser.c" +#line 3931 "src/parser.c" default: break; } diff --git a/src/parser.y b/src/parser.y index b1674315..bc9803f2 100644 --- a/src/parser.y +++ b/src/parser.y @@ -325,7 +325,7 @@ Query: FuncDef Query %prec FUNCDEF { $$ = block_bind_referenced($1, $2, OP_IS_CALL_PSEUDO); } | -Term "as" Patterns '|' Query { +Expr "as" Patterns '|' Query { $$ = gen_destructure($1, $3, $5); } | "label" BINDING '|' Query { diff --git a/tests/jq.test b/tests/jq.test index 6cfb13e5..73a488ec 100644 --- a/tests/jq.test +++ b/tests/jq.test @@ -513,6 +513,14 @@ null 34324 43 +1 + 2 as $x | -$x +null +-3 + +"x" as $x | "a"+"y" as $y | $x+","+$y +null +"x,ay" + 1 as $x | [$x,$x,$x as $x | $x] null [1,1,1]