diff --git a/src/lexer.c b/src/lexer.c index c369898b..b9baf3ab 100644 --- a/src/lexer.c +++ b/src/lexer.c @@ -1,6 +1,6 @@ -#line 2 "lexer.c" +#line 2 "src/lexer.c" -#line 4 "lexer.c" +#line 4 "src/lexer.c" #define YY_INT_ALIGNED short int @@ -8,8 +8,8 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 0 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -179,11 +179,17 @@ typedef void* yyscan_t; typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ @@ -201,11 +207,6 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE; #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) -#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef size_t yy_size_t; -#endif - #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state @@ -302,7 +303,7 @@ static void jq_yy_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner YY_BUFFER_STATE jq_yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); YY_BUFFER_STATE jq_yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); -YY_BUFFER_STATE jq_yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); +YY_BUFFER_STATE jq_yy_scan_bytes (yyconst char *bytes,yy_size_t len ,yyscan_t yyscanner ); void *jq_yyalloc (yy_size_t ,yyscan_t yyscanner ); void *jq_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner ); @@ -334,7 +335,7 @@ void jq_yyfree (void * ,yyscan_t yyscanner ); /* Begin user sect3 */ -#define jq_yywrap(n) 1 +#define jq_yywrap(yyscanner) (/*CONSTCOND*/1) #define YY_SKIP_YYWRAP typedef unsigned char YY_CHAR; @@ -346,6 +347,9 @@ typedef int yy_state_type; static yy_state_type yy_get_previous_state (yyscan_t yyscanner ); static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner); static int yy_get_next_buffer (yyscan_t yyscanner ); +#if defined(__GNUC__) && __GNUC__ >= 3 +__attribute__((__noreturn__)) +#endif static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); /* Done after the current pattern has been matched and before the @@ -358,8 +362,8 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); *yy_cp = '\0'; \ yyg->yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 49 -#define YY_END_OF_BUFFER 50 +#define YY_NUM_RULES 50 +#define YY_END_OF_BUFFER 51 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -367,28 +371,28 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[154] = +static yyconst flex_int16_t yy_accept[157] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 50, 48, 47, 47, 48, 39, 1, 34, - 34, 35, 36, 34, 34, 34, 34, 34, 38, 34, - 34, 34, 48, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 34, 43, 43, - 41, 44, 47, 2, 1, 29, 27, 25, 26, 33, - 38, 46, 46, 18, 28, 0, 31, 3, 32, 37, - 45, 0, 45, 45, 4, 45, 45, 45, 45, 45, - 45, 9, 45, 45, 45, 45, 14, 45, 45, 45, - 24, 43, 42, 40, 42, 46, 0, 38, 30, 38, + 0, 0, 51, 49, 48, 48, 49, 40, 1, 35, + 35, 36, 37, 35, 35, 35, 35, 35, 39, 35, + 35, 35, 35, 49, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 35, 44, + 44, 42, 45, 48, 2, 1, 29, 27, 25, 26, + 33, 39, 47, 47, 18, 28, 0, 31, 3, 32, + 0, 38, 46, 0, 46, 46, 4, 46, 46, 46, + 46, 46, 46, 9, 46, 46, 46, 46, 14, 46, + 46, 46, 24, 44, 43, 41, 43, 47, 0, 39, - 0, 45, 13, 45, 45, 8, 45, 45, 15, 45, - 45, 45, 45, 45, 45, 45, 19, 0, 42, 45, - 45, 45, 45, 12, 11, 45, 45, 45, 45, 45, - 45, 10, 42, 45, 22, 20, 45, 45, 45, 21, - 45, 45, 42, 45, 45, 5, 45, 7, 16, 23, - 17, 6, 0 + 30, 39, 34, 0, 46, 13, 46, 46, 8, 46, + 46, 15, 46, 46, 46, 46, 46, 46, 46, 19, + 0, 43, 46, 46, 46, 46, 12, 11, 46, 46, + 46, 46, 46, 46, 10, 43, 46, 22, 20, 46, + 46, 46, 21, 46, 46, 43, 46, 46, 5, 46, + 7, 16, 23, 17, 6, 0 } ; -static yyconst flex_int32_t yy_ec[256] = +static yyconst YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, @@ -420,7 +424,7 @@ static yyconst flex_int32_t yy_ec[256] = 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[54] = +static yyconst YY_CHAR yy_meta[54] = { 0, 1, 1, 2, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 5, 6, 1, @@ -430,138 +434,138 @@ static yyconst flex_int32_t yy_meta[54] = 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[167] = +static yyconst flex_uint16_t yy_base[170] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 51, 52, 318, 319, 57, 59, 295, 319, 0, 319, - 294, 319, 319, 293, 292, 291, 47, 47, 50, 290, - 289, 288, 0, 290, 48, 51, 53, 52, 37, 59, - 57, 66, 56, 63, 68, 70, 72, 286, 0, 0, - 319, 80, 90, 319, 0, 319, 319, 319, 319, 95, - 99, 0, 106, 285, 319, 110, 319, 319, 319, 0, - 285, 281, 86, 77, 277, 97, 101, 111, 113, 115, - 117, 274, 119, 120, 118, 121, 270, 122, 123, 124, - 319, 0, 257, 319, 255, 0, 254, 249, 319, 245, + 51, 52, 320, 321, 57, 59, 297, 321, 0, 321, + 296, 321, 321, 295, 294, 293, 47, 47, 50, 292, + 291, 290, 294, 0, 291, 48, 51, 53, 52, 37, + 59, 57, 66, 56, 63, 68, 70, 72, 287, 0, + 0, 321, 80, 90, 321, 0, 321, 321, 321, 321, + 95, 99, 0, 106, 286, 321, 110, 321, 321, 321, + 290, 0, 285, 281, 86, 77, 277, 97, 101, 111, + 113, 115, 117, 274, 119, 120, 118, 121, 270, 122, + 123, 124, 321, 0, 257, 321, 255, 0, 254, 249, - 0, 125, 239, 126, 127, 237, 128, 134, 234, 136, - 143, 147, 148, 149, 152, 154, 232, 165, 212, 210, - 157, 159, 158, 209, 208, 160, 161, 162, 163, 164, - 166, 207, 196, 171, 205, 204, 174, 167, 175, 201, - 170, 176, 190, 190, 184, 199, 194, 198, 197, 85, - 78, 76, 319, 230, 239, 245, 250, 255, 264, 273, - 278, 283, 285, 290, 294, 298 + 321, 245, 321, 0, 125, 239, 126, 127, 237, 128, + 134, 234, 136, 143, 147, 148, 149, 152, 154, 232, + 165, 212, 210, 157, 159, 158, 209, 208, 160, 161, + 162, 163, 164, 166, 207, 196, 171, 205, 204, 174, + 167, 175, 201, 170, 176, 190, 190, 184, 199, 194, + 198, 197, 85, 78, 76, 321, 230, 239, 245, 250, + 255, 264, 273, 278, 283, 285, 290, 294, 298 } ; -static yyconst flex_int16_t yy_def[167] = +static yyconst flex_int16_t yy_def[170] = { 0, - 153, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 154, 154, 153, 153, 153, 153, 153, 153, 155, 153, - 153, 153, 153, 153, 153, 153, 156, 153, 153, 153, - 153, 153, 157, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 153, 159, 159, - 153, 160, 153, 153, 155, 153, 153, 153, 153, 153, - 153, 161, 161, 153, 153, 153, 153, 153, 153, 157, - 158, 153, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 153, 159, 153, 153, 162, 161, 153, 161, 153, 153, + 156, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 157, 157, 156, 156, 156, 156, 156, 156, 158, 156, + 156, 156, 156, 156, 156, 156, 159, 156, 156, 156, + 156, 156, 156, 160, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 156, 162, + 162, 156, 163, 156, 156, 158, 156, 156, 156, 156, + 156, 156, 164, 164, 156, 156, 156, 156, 156, 156, + 156, 160, 161, 156, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 156, 162, 156, 156, 165, 164, 156, 164, - 163, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 160, 164, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 165, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 166, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 0, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153 + 156, 156, 156, 166, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 163, 167, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 168, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 169, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 0, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 156 } ; -static yyconst flex_int16_t yy_nxt[373] = +static yyconst flex_uint16_t yy_nxt[375] = { 0, 14, 15, 16, 14, 17, 18, 19, 20, 21, 22, 23, 24, 25, 20, 26, 27, 28, 29, 20, 20, - 30, 31, 32, 20, 33, 34, 34, 22, 14, 23, - 35, 36, 37, 38, 39, 40, 41, 34, 42, 34, - 43, 44, 34, 45, 34, 46, 34, 47, 34, 34, - 22, 48, 23, 50, 50, 72, 51, 51, 53, 53, - 53, 53, 60, 64, 61, 61, 72, 61, 65, 72, - 72, 72, 78, 63, 72, 72, 66, 72, 73, 52, - 52, 72, 63, 77, 72, 66, 72, 85, 72, 94, - 72, 53, 53, 74, 72, 72, 72, 75, 76, 79, + 30, 31, 32, 33, 34, 35, 35, 22, 14, 23, + 36, 37, 38, 39, 40, 41, 42, 35, 43, 35, + 44, 45, 35, 46, 35, 47, 35, 48, 35, 35, + 22, 49, 23, 51, 51, 74, 52, 52, 54, 54, + 54, 54, 61, 65, 62, 62, 74, 62, 66, 74, + 74, 74, 80, 64, 74, 74, 67, 74, 75, 53, + 53, 74, 64, 79, 74, 67, 74, 87, 74, 96, + 74, 54, 54, 76, 74, 74, 74, 77, 78, 81, - 81, 80, 82, 72, 72, 88, 86, 83, 84, 89, - 61, 103, 61, 87, 61, 72, 61, 90, 97, 72, - 97, 66, 97, 98, 97, 66, 102, 100, 95, 72, - 66, 72, 104, 72, 66, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 106, 105, 109, - 113, 107, 72, 112, 72, 114, 115, 122, 116, 108, - 123, 72, 110, 111, 124, 72, 72, 72, 121, 125, - 72, 126, 72, 117, 153, 72, 72, 72, 72, 72, - 72, 72, 72, 129, 72, 72, 127, 128, 72, 72, - 134, 137, 72, 72, 72, 136, 132, 130, 135, 142, + 83, 82, 84, 74, 74, 90, 88, 85, 86, 91, + 62, 106, 62, 89, 62, 74, 62, 92, 99, 74, + 99, 67, 99, 100, 99, 67, 105, 102, 97, 74, + 67, 74, 107, 74, 67, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 109, 108, 112, + 116, 110, 74, 115, 74, 117, 118, 125, 119, 111, + 126, 74, 113, 114, 127, 74, 74, 74, 124, 128, + 74, 129, 74, 120, 156, 74, 74, 74, 74, 74, + 74, 74, 74, 132, 74, 74, 130, 131, 74, 74, + 137, 140, 74, 74, 74, 139, 135, 133, 138, 145, - 131, 144, 72, 140, 141, 148, 138, 145, 72, 147, - 139, 149, 72, 95, 146, 72, 72, 72, 118, 72, - 150, 151, 72, 72, 118, 72, 72, 72, 72, 152, - 49, 49, 49, 49, 49, 49, 49, 49, 49, 55, - 118, 55, 55, 55, 55, 55, 55, 55, 62, 62, - 72, 62, 72, 62, 70, 72, 70, 72, 70, 71, - 71, 71, 100, 71, 92, 92, 98, 92, 92, 92, - 92, 100, 92, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 96, 118, 96, 118, 96, 119, 72, 119, - 119, 120, 72, 120, 133, 72, 133, 133, 143, 101, + 134, 147, 74, 143, 144, 151, 141, 148, 74, 150, + 142, 152, 74, 97, 149, 74, 74, 74, 121, 74, + 153, 154, 74, 74, 121, 74, 74, 74, 74, 155, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 56, + 121, 56, 56, 56, 56, 56, 56, 56, 63, 63, + 74, 63, 74, 63, 72, 74, 72, 74, 72, 73, + 73, 73, 102, 73, 94, 94, 100, 94, 94, 94, + 94, 102, 94, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 98, 121, 98, 121, 98, 122, 74, 122, + 122, 123, 74, 123, 136, 74, 136, 136, 146, 104, - 143, 143, 93, 72, 93, 93, 99, 91, 72, 69, - 68, 67, 59, 58, 57, 56, 54, 153, 13, 153, - 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153 + 146, 146, 95, 74, 95, 95, 103, 101, 93, 74, + 71, 70, 69, 68, 60, 59, 58, 57, 55, 156, + 13, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156 } ; -static yyconst flex_int16_t yy_chk[373] = +static yyconst flex_int16_t yy_chk[375] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 11, 12, 39, 11, 12, 15, 15, - 16, 16, 27, 28, 27, 29, 35, 29, 28, 36, - 38, 37, 39, 27, 43, 41, 29, 40, 35, 11, - 12, 44, 27, 38, 42, 29, 45, 43, 46, 52, - 47, 53, 53, 36, 152, 74, 151, 36, 37, 40, + 1, 1, 1, 11, 12, 40, 11, 12, 15, 15, + 16, 16, 27, 28, 27, 29, 36, 29, 28, 37, + 39, 38, 40, 27, 44, 42, 29, 41, 36, 11, + 12, 45, 27, 39, 43, 29, 46, 44, 47, 53, + 48, 54, 54, 37, 155, 76, 154, 37, 38, 41, - 41, 40, 42, 150, 73, 46, 44, 42, 42, 47, - 60, 74, 60, 45, 61, 76, 61, 47, 63, 77, - 63, 60, 66, 63, 66, 61, 73, 66, 52, 78, - 60, 79, 76, 80, 61, 81, 85, 83, 84, 86, - 88, 89, 90, 102, 104, 105, 107, 78, 77, 80, - 85, 79, 108, 84, 110, 86, 88, 104, 89, 79, - 105, 111, 81, 83, 107, 112, 113, 114, 102, 108, - 115, 110, 116, 90, 118, 121, 123, 122, 126, 127, - 128, 129, 130, 113, 131, 138, 111, 112, 141, 134, - 121, 126, 137, 139, 142, 123, 116, 114, 122, 131, + 42, 41, 43, 153, 75, 47, 45, 43, 43, 48, + 61, 76, 61, 46, 62, 78, 62, 48, 64, 79, + 64, 61, 67, 64, 67, 62, 75, 67, 53, 80, + 61, 81, 78, 82, 62, 83, 87, 85, 86, 88, + 90, 91, 92, 105, 107, 108, 110, 80, 79, 82, + 87, 81, 111, 86, 113, 88, 90, 107, 91, 81, + 108, 114, 83, 85, 110, 115, 116, 117, 105, 111, + 118, 113, 119, 92, 121, 124, 126, 125, 129, 130, + 131, 132, 133, 116, 134, 141, 114, 115, 144, 137, + 124, 129, 140, 142, 145, 126, 119, 117, 125, 134, - 115, 134, 145, 129, 130, 141, 127, 137, 144, 139, - 128, 142, 147, 118, 138, 149, 148, 146, 143, 140, - 144, 145, 136, 135, 133, 132, 125, 124, 120, 147, - 154, 154, 154, 154, 154, 154, 154, 154, 154, 155, - 119, 155, 155, 155, 155, 155, 155, 155, 156, 156, - 117, 156, 109, 156, 157, 106, 157, 103, 157, 158, - 158, 158, 100, 158, 159, 159, 98, 159, 159, 159, - 159, 97, 159, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 161, 95, 161, 93, 161, 162, 87, 162, - 162, 163, 82, 163, 164, 75, 164, 164, 165, 72, + 118, 137, 148, 132, 133, 144, 130, 140, 147, 142, + 131, 145, 150, 121, 141, 152, 151, 149, 146, 143, + 147, 148, 139, 138, 136, 135, 128, 127, 123, 150, + 157, 157, 157, 157, 157, 157, 157, 157, 157, 158, + 122, 158, 158, 158, 158, 158, 158, 158, 159, 159, + 120, 159, 112, 159, 160, 109, 160, 106, 160, 161, + 161, 161, 102, 161, 162, 162, 100, 162, 162, 162, + 162, 99, 162, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 164, 97, 164, 95, 164, 165, 89, 165, + 165, 166, 84, 166, 167, 77, 167, 167, 168, 74, - 165, 165, 166, 71, 166, 166, 64, 48, 34, 32, - 31, 30, 26, 25, 24, 21, 17, 13, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153 + 168, 168, 169, 73, 169, 169, 71, 65, 49, 35, + 33, 32, 31, 30, 26, 25, 24, 21, 17, 13, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156 } ; /* The intent behind this definition is that it'll catch @@ -571,8 +575,8 @@ static yyconst flex_int16_t yy_chk[373] = #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET -#line 1 "lexer.l" -#line 2 "lexer.l" +#line 1 "src/lexer.l" +#line 2 "src/lexer.l" #include #include "jv_alloc.h" #include "compile.h" @@ -593,11 +597,11 @@ struct lexer_param; -#line 25 "lexer.l" +#line 25 "src/lexer.l" static int enter(int opening, int state, yyscan_t yyscanner); static int try_exit(int closing, int state, yyscan_t yyscanner); #define YY_NO_INPUT 1 -#line 601 "lexer.c" +#line 605 "src/lexer.c" #define INITIAL 0 #define IN_PAREN 1 @@ -630,7 +634,7 @@ struct yyguts_t YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */ char yy_hold_char; int yy_n_chars; - int yyleng_r; + yy_size_t yyleng_r; char *yy_c_buf_p; int yy_init; int yy_start; @@ -681,19 +685,23 @@ void jq_yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner ); FILE *jq_yyget_in (yyscan_t yyscanner ); -void jq_yyset_in (FILE * in_str ,yyscan_t yyscanner ); +void jq_yyset_in (FILE * _in_str ,yyscan_t yyscanner ); FILE *jq_yyget_out (yyscan_t yyscanner ); -void jq_yyset_out (FILE * out_str ,yyscan_t yyscanner ); +void jq_yyset_out (FILE * _out_str ,yyscan_t yyscanner ); -int jq_yyget_leng (yyscan_t yyscanner ); +yy_size_t jq_yyget_leng (yyscan_t yyscanner ); char *jq_yyget_text (yyscan_t yyscanner ); int jq_yyget_lineno (yyscan_t yyscanner ); -void jq_yyset_lineno (int line_number ,yyscan_t yyscanner ); +void jq_yyset_lineno (int _line_number ,yyscan_t yyscanner ); + +int jq_yyget_column (yyscan_t yyscanner ); + +void jq_yyset_column (int _column_no ,yyscan_t yyscanner ); YYSTYPE * jq_yyget_lval (yyscan_t yyscanner ); @@ -715,6 +723,10 @@ extern int jq_yywrap (yyscan_t yyscanner ); #endif #endif +#ifndef YY_NO_UNPUT + +#endif + #ifndef yytext_ptr static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner); #endif @@ -733,7 +745,7 @@ static int input (yyscan_t yyscanner ); #endif - static void yy_push_state (int new_state ,yyscan_t yyscanner); + static void yy_push_state (int _new_state ,yyscan_t yyscanner); static void yy_pop_state (yyscan_t yyscanner ); @@ -835,7 +847,7 @@ extern int jq_yylex \ /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK break; +#define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ @@ -845,16 +857,11 @@ extern int jq_yylex \ */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; -#line 38 "lexer.l" - - -#line 857 "lexer.c" - yylval = yylval_param; yylloc = yylloc_param; @@ -885,7 +892,13 @@ YY_DECL jq_yy_load_buffer_state(yyscanner ); } - while ( 1 ) /* loops until end-of-file is reached */ + { +#line 38 "src/lexer.l" + + +#line 900 "src/lexer.c" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = yyg->yy_c_buf_p; @@ -901,7 +914,7 @@ YY_DECL yy_match: do { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { yyg->yy_last_accepting_state = yy_current_state; @@ -910,13 +923,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 154 ) + if ( yy_current_state >= 157 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 319 ); + while ( yy_base[yy_current_state] != 321 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -942,230 +955,235 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 40 "lexer.l" +#line 40 "src/lexer.l" { /* comments */ } YY_BREAK case 2: YY_RULE_SETUP -#line 42 "lexer.l" +#line 42 "src/lexer.l" { return NEQ; } YY_BREAK case 3: YY_RULE_SETUP -#line 43 "lexer.l" +#line 43 "src/lexer.l" { return EQ; } YY_BREAK case 4: YY_RULE_SETUP -#line 44 "lexer.l" +#line 44 "src/lexer.l" { return AS; } YY_BREAK case 5: YY_RULE_SETUP -#line 45 "lexer.l" +#line 45 "src/lexer.l" { return IMPORT; } YY_BREAK case 6: YY_RULE_SETUP -#line 46 "lexer.l" +#line 46 "src/lexer.l" { return INCLUDE; } YY_BREAK case 7: YY_RULE_SETUP -#line 47 "lexer.l" +#line 47 "src/lexer.l" { return MODULE; } YY_BREAK case 8: YY_RULE_SETUP -#line 48 "lexer.l" +#line 48 "src/lexer.l" { return DEF; } YY_BREAK case 9: YY_RULE_SETUP -#line 49 "lexer.l" +#line 49 "src/lexer.l" { return IF; } YY_BREAK case 10: YY_RULE_SETUP -#line 50 "lexer.l" +#line 50 "src/lexer.l" { return THEN; } YY_BREAK case 11: YY_RULE_SETUP -#line 51 "lexer.l" +#line 51 "src/lexer.l" { return ELSE; } YY_BREAK case 12: YY_RULE_SETUP -#line 52 "lexer.l" +#line 52 "src/lexer.l" { return ELSE_IF; } YY_BREAK case 13: YY_RULE_SETUP -#line 53 "lexer.l" +#line 53 "src/lexer.l" { return AND; } YY_BREAK case 14: YY_RULE_SETUP -#line 54 "lexer.l" +#line 54 "src/lexer.l" { return OR; } YY_BREAK case 15: YY_RULE_SETUP -#line 55 "lexer.l" +#line 55 "src/lexer.l" { return END; } YY_BREAK case 16: YY_RULE_SETUP -#line 56 "lexer.l" +#line 56 "src/lexer.l" { return REDUCE; } YY_BREAK case 17: YY_RULE_SETUP -#line 57 "lexer.l" +#line 57 "src/lexer.l" { return FOREACH; } YY_BREAK case 18: YY_RULE_SETUP -#line 58 "lexer.l" +#line 58 "src/lexer.l" { return DEFINEDOR; } YY_BREAK case 19: YY_RULE_SETUP -#line 59 "lexer.l" +#line 59 "src/lexer.l" { return TRY; } YY_BREAK case 20: YY_RULE_SETUP -#line 60 "lexer.l" +#line 60 "src/lexer.l" { return CATCH; } YY_BREAK case 21: YY_RULE_SETUP -#line 61 "lexer.l" +#line 61 "src/lexer.l" { return LABEL; } YY_BREAK case 22: YY_RULE_SETUP -#line 62 "lexer.l" +#line 62 "src/lexer.l" { return BREAK; } YY_BREAK case 23: YY_RULE_SETUP -#line 63 "lexer.l" +#line 63 "src/lexer.l" { return LOC; } YY_BREAK case 24: YY_RULE_SETUP -#line 64 "lexer.l" +#line 64 "src/lexer.l" { return SETPIPE; } YY_BREAK case 25: YY_RULE_SETUP -#line 65 "lexer.l" +#line 65 "src/lexer.l" { return SETPLUS; } YY_BREAK case 26: YY_RULE_SETUP -#line 66 "lexer.l" +#line 66 "src/lexer.l" { return SETMINUS; } YY_BREAK case 27: YY_RULE_SETUP -#line 67 "lexer.l" +#line 67 "src/lexer.l" { return SETMULT; } YY_BREAK case 28: YY_RULE_SETUP -#line 68 "lexer.l" +#line 68 "src/lexer.l" { return SETDIV; } YY_BREAK case 29: YY_RULE_SETUP -#line 69 "lexer.l" +#line 69 "src/lexer.l" { return SETMOD; } YY_BREAK case 30: YY_RULE_SETUP -#line 70 "lexer.l" +#line 70 "src/lexer.l" { return SETDEFINEDOR; } YY_BREAK case 31: YY_RULE_SETUP -#line 71 "lexer.l" +#line 71 "src/lexer.l" { return LESSEQ; } YY_BREAK case 32: YY_RULE_SETUP -#line 72 "lexer.l" +#line 72 "src/lexer.l" { return GREATEREQ; } YY_BREAK case 33: YY_RULE_SETUP -#line 73 "lexer.l" +#line 73 "src/lexer.l" { return REC; } YY_BREAK case 34: YY_RULE_SETUP -#line 74 "lexer.l" -{ return yytext[0];} +#line 74 "src/lexer.l" +{ return ALTERNATION; } YY_BREAK case 35: YY_RULE_SETUP -#line 76 "lexer.l" +#line 75 "src/lexer.l" +{ return yytext[0];} + YY_BREAK +case 36: +YY_RULE_SETUP +#line 77 "src/lexer.l" { return enter(yytext[0], YY_START, yyscanner); } YY_BREAK -case 36: +case 37: YY_RULE_SETUP -#line 80 "lexer.l" +#line 81 "src/lexer.l" { return try_exit(yytext[0], YY_START, yyscanner); } YY_BREAK -case 37: +case 38: YY_RULE_SETUP -#line 84 "lexer.l" +#line 85 "src/lexer.l" { yylval->literal = jv_string_sized(yytext + 1, yyleng - 1); return FORMAT; } YY_BREAK -case 38: +case 39: YY_RULE_SETUP -#line 88 "lexer.l" +#line 89 "src/lexer.l" { yylval->literal = jv_parse_sized(yytext, yyleng); return LITERAL; } YY_BREAK -case 39: +case 40: YY_RULE_SETUP -#line 92 "lexer.l" +#line 93 "src/lexer.l" { yy_push_state(IN_QQSTRING, yyscanner); return QQSTRING_START; } YY_BREAK -case 40: +case 41: YY_RULE_SETUP -#line 98 "lexer.l" +#line 99 "src/lexer.l" { return enter(QQSTRING_INTERP_START, YY_START, yyscanner); } YY_BREAK -case 41: +case 42: YY_RULE_SETUP -#line 101 "lexer.l" +#line 102 "src/lexer.l" { yy_pop_state(yyscanner); return QQSTRING_END; } YY_BREAK -case 42: -/* rule 42 can match eol */ +case 43: +/* rule 43 can match eol */ YY_RULE_SETUP -#line 105 "lexer.l" +#line 106 "src/lexer.l" { /* pass escapes to the json parser */ jv escapes = jv_string_fmt("\"%.*s\"", (int)yyleng, yytext); @@ -1174,50 +1192,50 @@ YY_RULE_SETUP return QQSTRING_TEXT; } YY_BREAK -case 43: -/* rule 43 can match eol */ +case 44: +/* rule 44 can match eol */ YY_RULE_SETUP -#line 112 "lexer.l" +#line 113 "src/lexer.l" { yylval->literal = jv_string_sized(yytext, yyleng); return QQSTRING_TEXT; } YY_BREAK -case 44: +case 45: YY_RULE_SETUP -#line 116 "lexer.l" +#line 117 "src/lexer.l" { return INVALID_CHARACTER; } YY_BREAK -case 45: -YY_RULE_SETUP -#line 122 "lexer.l" -{ yylval->literal = jv_string(yytext); return IDENT;} - YY_BREAK case 46: YY_RULE_SETUP -#line 123 "lexer.l" -{ yylval->literal = jv_string(yytext+1); return FIELD;} +#line 123 "src/lexer.l" +{ yylval->literal = jv_string(yytext); return IDENT;} YY_BREAK case 47: -/* rule 47 can match eol */ YY_RULE_SETUP -#line 125 "lexer.l" -{} +#line 124 "src/lexer.l" +{ yylval->literal = jv_string(yytext+1); return FIELD;} YY_BREAK case 48: +/* rule 48 can match eol */ YY_RULE_SETUP -#line 127 "lexer.l" -{ return INVALID_CHARACTER; } +#line 126 "src/lexer.l" +{} YY_BREAK case 49: YY_RULE_SETUP -#line 129 "lexer.l" +#line 128 "src/lexer.l" +{ return INVALID_CHARACTER; } + YY_BREAK +case 50: +YY_RULE_SETUP +#line 130 "src/lexer.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK -#line 1221 "lexer.c" +#line 1239 "src/lexer.c" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(IN_PAREN): case YY_STATE_EOF(IN_BRACKET): @@ -1353,6 +1371,7 @@ case YY_STATE_EOF(IN_QQSTRING): "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ + } /* end of user's declarations */ } /* end of jq_yylex */ /* yy_get_next_buffer - try to read in a new buffer @@ -1365,9 +1384,9 @@ case YY_STATE_EOF(IN_QQSTRING): static int yy_get_next_buffer (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = yyg->yytext_ptr; - register int number_to_move, i; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = yyg->yytext_ptr; + yy_size_t number_to_move, i; int ret_val; if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] ) @@ -1396,7 +1415,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; + number_to_move = (yy_size_t) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -1409,21 +1428,21 @@ static int yy_get_next_buffer (yyscan_t yyscanner) else { - int num_to_read = + yy_size_t num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) (yyg->yy_c_buf_p - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { - int new_size = b->yy_buf_size * 2; + yy_size_t new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; @@ -1454,7 +1473,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - yyg->yy_n_chars, (size_t) num_to_read ); + yyg->yy_n_chars, num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } @@ -1478,9 +1497,9 @@ static int yy_get_next_buffer (yyscan_t yyscanner) else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if ((int) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ - yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); + int new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) jq_yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); @@ -1499,15 +1518,15 @@ static int yy_get_next_buffer (yyscan_t yyscanner) static yy_state_type yy_get_previous_state (yyscan_t yyscanner) { - register yy_state_type yy_current_state; - register char *yy_cp; + yy_state_type yy_current_state; + char *yy_cp; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yy_current_state = yyg->yy_start; for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp ) { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { yyg->yy_last_accepting_state = yy_current_state; @@ -1516,7 +1535,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 154 ) + if ( yy_current_state >= 157 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -1532,11 +1551,11 @@ static int yy_get_next_buffer (yyscan_t yyscanner) */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner) { - register int yy_is_jam; + int yy_is_jam; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */ - register char *yy_cp = yyg->yy_c_buf_p; + char *yy_cp = yyg->yy_c_buf_p; - register YY_CHAR yy_c = 1; + YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { yyg->yy_last_accepting_state = yy_current_state; @@ -1545,15 +1564,20 @@ static int yy_get_next_buffer (yyscan_t yyscanner) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 154 ) + if ( yy_current_state >= 157 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 153); + yy_is_jam = (yy_current_state == 156); + (void)yyg; return yy_is_jam ? 0 : yy_current_state; } +#ifndef YY_NO_UNPUT + +#endif + #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (yyscan_t yyscanner) @@ -1579,7 +1603,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) else { /* need more input */ - int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; + yy_size_t offset = yyg->yy_c_buf_p - yyg->yytext_ptr; ++yyg->yy_c_buf_p; switch ( yy_get_next_buffer( yyscanner ) ) @@ -1707,7 +1731,7 @@ static void jq_yy_load_buffer_state (yyscan_t yyscanner) if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in jq_yy_create_buffer()" ); - b->yy_buf_size = size; + b->yy_buf_size = (yy_size_t)size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. @@ -1743,10 +1767,6 @@ static void jq_yy_load_buffer_state (yyscan_t yyscanner) jq_yyfree((void *) b ,yyscanner ); } -#ifndef __cplusplus -extern int isatty (int ); -#endif /* __cplusplus */ - /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a jq_yyrestart() or at EOF. @@ -1863,7 +1883,7 @@ void jq_yypop_buffer_state (yyscan_t yyscanner) */ static void jq_yyensure_buffer_stack (yyscan_t yyscanner) { - int num_to_alloc; + yy_size_t num_to_alloc; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if (!yyg->yy_buffer_stack) { @@ -1872,7 +1892,7 @@ static void jq_yyensure_buffer_stack (yyscan_t yyscanner) * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ yyg->yy_buffer_stack = (struct yy_buffer_state**)jq_yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) , yyscanner); @@ -1889,7 +1909,7 @@ static void jq_yyensure_buffer_stack (yyscan_t yyscanner) if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){ /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; + yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = yyg->yy_buffer_stack_max + grow_size; yyg->yy_buffer_stack = (struct yy_buffer_state**)jq_yyrealloc @@ -1961,12 +1981,12 @@ YY_BUFFER_STATE jq_yy_scan_string (yyconst char * yystr , yyscan_t yyscanner) * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE jq_yy_scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner) +YY_BUFFER_STATE jq_yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len , yyscan_t yyscanner) { YY_BUFFER_STATE b; char *buf; yy_size_t n; - int i; + yy_size_t i; /* Get memory for full buffer, including space for trailing EOB's. */ n = _yybytes_len + 2; @@ -1991,7 +2011,7 @@ YY_BUFFER_STATE jq_yy_scan_bytes (yyconst char * yybytes, int _yybytes_len , y return b; } - static void yy_push_state (int new_state , yyscan_t yyscanner) + static void yy_push_state (int _new_state , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if ( yyg->yy_start_stack_ptr >= yyg->yy_start_stack_depth ) @@ -2013,7 +2033,7 @@ YY_BUFFER_STATE jq_yy_scan_bytes (yyconst char * yybytes, int _yybytes_len , y yyg->yy_start_stack[yyg->yy_start_stack_ptr++] = YY_START; - BEGIN(new_state); + BEGIN(_new_state); } static void yy_pop_state (yyscan_t yyscanner) @@ -2037,7 +2057,9 @@ YY_BUFFER_STATE jq_yy_scan_bytes (yyconst char * yybytes, int _yybytes_len , y static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner) { - (void) fprintf( stderr, "%s\n", msg ); + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + (void)yyg; + (void) fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } @@ -2116,7 +2138,7 @@ FILE *jq_yyget_out (yyscan_t yyscanner) /** Get the length of the current token. * @param yyscanner The scanner object. */ -int jq_yyget_leng (yyscan_t yyscanner) +yy_size_t jq_yyget_leng (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yyleng; @@ -2143,51 +2165,51 @@ void jq_yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner) } /** Set the current line number. - * @param line_number + * @param _line_number line number * @param yyscanner The scanner object. */ -void jq_yyset_lineno (int line_number , yyscan_t yyscanner) +void jq_yyset_lineno (int _line_number , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* lineno is only valid if an input buffer exists. */ if (! YY_CURRENT_BUFFER ) - yy_fatal_error( "jq_yyset_lineno called with no buffer" , yyscanner); + YY_FATAL_ERROR( "jq_yyset_lineno called with no buffer" ); - yylineno = line_number; + yylineno = _line_number; } /** Set the current column. - * @param line_number + * @param _column_no column number * @param yyscanner The scanner object. */ -void jq_yyset_column (int column_no , yyscan_t yyscanner) +void jq_yyset_column (int _column_no , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* column is only valid if an input buffer exists. */ if (! YY_CURRENT_BUFFER ) - yy_fatal_error( "jq_yyset_column called with no buffer" , yyscanner); + YY_FATAL_ERROR( "jq_yyset_column called with no buffer" ); - yycolumn = column_no; + yycolumn = _column_no; } /** Set the input stream. This does not discard the current * input buffer. - * @param in_str A readable stream. + * @param _in_str A readable stream. * @param yyscanner The scanner object. * @see jq_yy_switch_to_buffer */ -void jq_yyset_in (FILE * in_str , yyscan_t yyscanner) +void jq_yyset_in (FILE * _in_str , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yyin = in_str ; + yyin = _in_str ; } -void jq_yyset_out (FILE * out_str , yyscan_t yyscanner) +void jq_yyset_out (FILE * _out_str , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yyout = out_str ; + yyout = _out_str ; } int jq_yyget_debug (yyscan_t yyscanner) @@ -2196,10 +2218,10 @@ int jq_yyget_debug (yyscan_t yyscanner) return yy_flex_debug; } -void jq_yyset_debug (int bdebug , yyscan_t yyscanner) +void jq_yyset_debug (int _bdebug , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; - yy_flex_debug = bdebug ; + yy_flex_debug = _bdebug ; } /* Accessor methods for yylval and yylloc */ @@ -2362,7 +2384,10 @@ int jq_yylex_destroy (yyscan_t yyscanner) #ifndef yytext_ptr static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner) { - register int i; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + (void)yyg; + + int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } @@ -2371,7 +2396,7 @@ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yysca #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner) { - register int n; + int n; for ( n = 0; s[n]; ++n ) ; @@ -2381,7 +2406,7 @@ static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner) #define YYTABLES_NAME "yytables" -#line 129 "lexer.l" +#line 130 "src/lexer.l" /* perhaps these should be calls... */ diff --git a/src/lexer.h b/src/lexer.h index 0eb85067..e095b106 100644 --- a/src/lexer.h +++ b/src/lexer.h @@ -2,9 +2,9 @@ #define jq_yyHEADER_H 1 #define jq_yyIN_HEADER 1 -#line 6 "lexer.h" +#line 6 "src/lexer.h" -#line 8 "lexer.h" +#line 8 "src/lexer.h" #define YY_INT_ALIGNED short int @@ -12,8 +12,8 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 0 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -214,7 +214,7 @@ void jq_yypop_buffer_state (yyscan_t yyscanner ); YY_BUFFER_STATE jq_yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); YY_BUFFER_STATE jq_yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); -YY_BUFFER_STATE jq_yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); +YY_BUFFER_STATE jq_yy_scan_bytes (yyconst char *bytes,yy_size_t len ,yyscan_t yyscanner ); void *jq_yyalloc (yy_size_t ,yyscan_t yyscanner ); void *jq_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner ); @@ -222,7 +222,7 @@ void jq_yyfree (void * ,yyscan_t yyscanner ); /* Begin user sect3 */ -#define jq_yywrap(n) 1 +#define jq_yywrap(yyscanner) (/*CONSTCOND*/1) #define YY_SKIP_YYWRAP #define yytext_ptr yytext_r @@ -266,19 +266,23 @@ void jq_yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner ); FILE *jq_yyget_in (yyscan_t yyscanner ); -void jq_yyset_in (FILE * in_str ,yyscan_t yyscanner ); +void jq_yyset_in (FILE * _in_str ,yyscan_t yyscanner ); FILE *jq_yyget_out (yyscan_t yyscanner ); -void jq_yyset_out (FILE * out_str ,yyscan_t yyscanner ); +void jq_yyset_out (FILE * _out_str ,yyscan_t yyscanner ); -int jq_yyget_leng (yyscan_t yyscanner ); +yy_size_t jq_yyget_leng (yyscan_t yyscanner ); char *jq_yyget_text (yyscan_t yyscanner ); int jq_yyget_lineno (yyscan_t yyscanner ); -void jq_yyset_lineno (int line_number ,yyscan_t yyscanner ); +void jq_yyset_lineno (int _line_number ,yyscan_t yyscanner ); + +int jq_yyget_column (yyscan_t yyscanner ); + +void jq_yyset_column (int _column_no ,yyscan_t yyscanner ); YYSTYPE * jq_yyget_lval (yyscan_t yyscanner ); @@ -354,9 +358,9 @@ extern int jq_yylex \ #undef YY_DECL #endif -#line 129 "lexer.l" +#line 130 "src/lexer.l" -#line 361 "lexer.h" +#line 365 "src/lexer.h" #undef jq_yyIN_HEADER #endif /* jq_yyHEADER_H */ diff --git a/src/parser.c b/src/parser.c index 80de8738..7491326b 100644 --- a/src/parser.c +++ b/src/parser.c @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.0.2. */ +/* A Bison parser, made by GNU Bison 3.0.4. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2015 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 @@ -44,7 +44,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "3.0.2" +#define YYBISON_VERSION "3.0.4" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -164,13 +164,14 @@ struct lexer_param; SETDEFINEDOR = 292, LESSEQ = 293, GREATEREQ = 294, - QQSTRING_START = 295, - QQSTRING_TEXT = 296, - QQSTRING_INTERP_START = 297, - QQSTRING_INTERP_END = 298, - QQSTRING_END = 299, - FUNCDEF = 300, - NONOPT = 301 + ALTERNATION = 295, + QQSTRING_START = 296, + QQSTRING_TEXT = 297, + QQSTRING_INTERP_START = 298, + QQSTRING_INTERP_END = 299, + QQSTRING_END = 300, + FUNCDEF = 301, + NONOPT = 302 }; #endif /* Tokens. */ @@ -211,17 +212,18 @@ struct lexer_param; #define SETDEFINEDOR 292 #define LESSEQ 293 #define GREATEREQ 294 -#define QQSTRING_START 295 -#define QQSTRING_TEXT 296 -#define QQSTRING_INTERP_START 297 -#define QQSTRING_INTERP_END 298 -#define QQSTRING_END 299 -#define FUNCDEF 300 -#define NONOPT 301 +#define ALTERNATION 295 +#define QQSTRING_START 296 +#define QQSTRING_TEXT 297 +#define QQSTRING_INTERP_START 298 +#define QQSTRING_INTERP_END 299 +#define QQSTRING_END 300 +#define FUNCDEF 301 +#define NONOPT 302 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE YYSTYPE; + union YYSTYPE { #line 31 "src/parser.y" /* yacc.c:355 */ @@ -229,8 +231,10 @@ union YYSTYPE jv literal; block blk; -#line 233 "src/parser.c" /* yacc.c:355 */ +#line 235 "src/parser.c" /* yacc.c:355 */ }; + +typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 #endif @@ -256,7 +260,7 @@ int yyparse (block* answer, int* errors, struct locfile* locations, struct lexer #endif /* !YY_YY_SRC_PARSER_H_INCLUDED */ /* Copy the second part of user declarations. */ -#line 123 "src/parser.y" /* yacc.c:358 */ +#line 124 "src/parser.y" /* yacc.c:358 */ #include "lexer.h" struct lexer_param { @@ -313,10 +317,6 @@ static jv check_object_key(block k) { return jv_invalid(); } -static block gen_dictpair(block k, block v) { - return BLOCK(gen_subexp(k), gen_subexp(v), gen_op_simple(INSERT)); -} - static block gen_index(block obj, block key) { return BLOCK(gen_subexp(key), obj, gen_op_simple(INDEX)); } @@ -678,21 +678,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 27 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1871 +#define YYLAST 1964 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 68 +#define YYNTOKENS 69 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 28 +#define YYNNTS 30 /* YYNRULES -- Number of rules. */ -#define YYNRULES 157 +#define YYNRULES 161 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 307 +#define YYNSTATES 311 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 301 +#define YYMAXUTOK 302 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -704,16 +704,16 @@ static const yytype_uint8 yytranslate[] = 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 61, 55, 2, 2, - 59, 60, 53, 51, 47, 52, 63, 54, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 62, 58, - 49, 48, 50, 57, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 62, 56, 2, 2, + 60, 61, 54, 52, 48, 53, 64, 55, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 63, 59, + 50, 49, 51, 58, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 64, 2, 65, 2, 2, 2, 2, 2, 2, + 2, 65, 2, 66, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 66, 46, 67, 2, 2, 2, 2, + 2, 2, 2, 67, 47, 68, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -731,29 +731,30 @@ static const yytype_uint8 yytranslate[] = 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 56 + 45, 46, 57 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 303, 303, 306, 311, 314, 325, 328, 333, 336, - 341, 345, 349, 353, 357, 361, 364, 369, 373, 377, - 382, 389, 393, 397, 401, 405, 409, 413, 417, 421, - 425, 429, 433, 437, 441, 445, 449, 453, 459, 465, - 469, 473, 477, 481, 485, 489, 493, 497, 502, 505, - 522, 531, 538, 546, 557, 562, 568, 571, 576, 581, - 588, 588, 592, 592, 599, 602, 605, 611, 614, 619, - 622, 625, 631, 634, 637, 645, 649, 652, 655, 658, - 661, 664, 667, 670, 673, 677, 683, 686, 689, 692, - 695, 698, 701, 704, 707, 710, 713, 716, 719, 722, - 725, 728, 731, 738, 742, 746, 758, 763, 764, 765, - 766, 769, 772, 777, 782, 786, 789, 794, 797, 802, - 805, 810, 813, 816, 819, 822, 830, 836, 839, 842, - 845, 848, 851, 854, 857, 860, 863, 866, 869, 872, - 875, 878, 881, 884, 887, 890, 895, 898, 899, 900, - 903, 906, 909, 912, 916, 920, 924, 932 + 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, + 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, + 842, 848, 851, 854, 857, 860, 863, 866, 869, 872, + 875, 878, 881, 884, 887, 890, 893, 896, 899, 902, + 907, 910, 911, 912, 915, 918, 921, 924, 928, 932, + 936, 944 }; #endif @@ -768,15 +769,16 @@ static const char *const yytname[] = "\"then\"", "\"else\"", "\"elif\"", "\"reduce\"", "\"foreach\"", "\"end\"", "\"and\"", "\"or\"", "\"try\"", "\"catch\"", "\"label\"", "\"break\"", "\"__loc__\"", "\"|=\"", "\"+=\"", "\"-=\"", "\"*=\"", - "\"/=\"", "\"//=\"", "\"<=\"", "\">=\"", "QQSTRING_START", + "\"/=\"", "\"//=\"", "\"<=\"", "\">=\"", "\"?//\"", "QQSTRING_START", "QQSTRING_TEXT", "QQSTRING_INTERP_START", "QQSTRING_INTERP_END", "QQSTRING_END", "FUNCDEF", "'|'", "','", "'='", "'<'", "'>'", "'+'", "'-'", "'*'", "'/'", "'%'", "NONOPT", "'?'", "';'", "'('", "')'", "'$'", "':'", "'.'", "'['", "']'", "'{'", "'}'", "$accept", "TopLevel", "Module", "Imports", "FuncDefs", "Exp", "Import", "ImportWhat", "ImportFrom", "FuncDef", "Params", "Param", "String", "@1", "@2", - "QQString", "ElseBody", "ExpD", "Term", "Args", "Arg", "Pattern", - "ArrayPats", "ObjPats", "ObjPat", "Keyword", "MkDict", "MkDictPair", YY_NULLPTR + "QQString", "ElseBody", "ExpD", "Term", "Args", "Arg", "RepPatterns", + "Patterns", "Pattern", "ArrayPats", "ObjPats", "ObjPat", "Keyword", + "MkDict", "MkDictPair", YY_NULLPTR }; #endif @@ -789,57 +791,58 @@ static const yytype_uint16 yytoknum[] = 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 124, 44, 61, 60, - 62, 43, 45, 42, 47, 37, 301, 63, 59, 40, - 41, 36, 58, 46, 91, 93, 123, 125 + 295, 296, 297, 298, 299, 300, 301, 124, 44, 61, + 60, 62, 43, 45, 42, 47, 37, 302, 63, 59, + 40, 41, 36, 58, 46, 91, 93, 123, 125 }; # endif -#define YYPACT_NINF -155 +#define YYPACT_NINF -158 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-155))) + (!!((Yystate) == (-158))) -#define YYTABLE_NINF -147 +#define YYTABLE_NINF -151 #define yytable_value_is_error(Yytable_value) \ - (!!((Yytable_value) == (-147))) + (!!((Yytable_value) == (-151))) /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int16 yypact[] = { - 20, 709, 42, 50, 14, -3, -155, 7, -155, 58, - 709, 191, 191, 709, 18, 2, -155, 709, 465, 19, - 275, 438, 340, 1215, 709, -155, 6, -155, -2, -2, - 709, 50, 619, 709, -155, -155, 9, 1564, 17, 46, - 54, 111, -155, 116, -155, 3, 62, 1050, -155, -155, - -155, 122, 7, 68, 66, -155, 851, -26, 72, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, 709, 131, - 74, 75, 71, 92, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, -155, -155, - 1728, 84, -21, -2, 148, 130, -155, -155, -155, 1728, - 709, -155, -155, 1265, 1728, -5, -155, -155, 0, 709, - 529, -21, -21, 556, 98, -155, 34, -155, -155, -155, - -155, -155, -155, 396, 689, -155, 689, 1083, -155, 689, - 689, -155, 396, 1794, 335, 335, 1761, 768, 1814, 1794, - 1794, 1794, 1794, 1794, 1794, 335, 335, 1728, 1761, 1794, - 335, 335, 3, 3, 90, 90, 90, -155, 146, -21, - 770, 105, 101, 94, 709, 103, 802, 11, -155, -155, - 709, -155, 70, -155, 157, 61, -155, 1315, -155, 1515, - 104, 106, -155, -155, 709, -155, 709, -155, -10, -155, - 689, 121, 1, 121, 107, 121, 121, -155, -155, -155, - -19, 110, 112, 709, 164, 114, -23, -155, 117, 709, - -155, -155, 900, -155, 646, 123, -155, 169, -155, -155, - -155, 0, 119, -155, 709, 709, -155, 709, 709, 1728, - 1597, -155, 689, 689, -21, -155, -21, -21, 1116, -155, - -21, 770, -155, -21, 1728, 125, 127, 949, -155, -155, - -155, 709, 1646, 1695, 1365, 1415, -155, 121, 121, -155, - -155, -155, 124, -155, -155, -155, -155, -155, 133, 1465, - -155, 709, 709, 709, -21, -155, -155, 1515, 1149, 998, - -155, -155, -155, 709, -155, 1182, -155 + 21, 764, 3, 59, -45, -8, -158, 7, -158, 56, + 764, 193, 193, 764, 18, 1, -158, 764, 165, 10, + 279, 512, 345, 1282, 764, -158, 8, -158, 4, 4, + 764, 59, 672, 764, -158, -158, 11, 1638, 14, 17, + 34, 113, -158, 116, -158, 60, 62, 1112, -158, -158, + -158, 123, 7, 67, 61, -158, 909, -24, 63, -158, + -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, + -158, -158, -158, -158, -158, -158, -158, -158, 764, 126, + 68, 70, 66, 88, 764, 764, 764, 764, 764, 764, + 764, 764, 764, 764, 764, 764, 764, 764, 764, 764, + 764, 764, 764, 764, 764, 764, 764, 764, -158, -158, + 1806, 81, -16, 4, 445, 130, -158, -158, -158, 1806, + 764, -158, -158, 1333, 1806, -19, -158, -158, 2, 764, + 579, -16, -16, 644, 100, -158, 13, -158, -158, -158, + -158, -158, -158, 402, 430, -158, 430, 1146, -158, 430, + 430, -158, 402, 1874, 340, 340, 1840, 493, 1906, 1874, + 1874, 1874, 1874, 1874, 1874, 340, 340, 1806, 1840, 1874, + 340, 340, 60, 60, 90, 90, 90, -158, 146, -16, + 826, 111, 105, 114, 95, 89, 764, 98, 859, 50, + -158, -158, 764, -158, 23, -158, 153, 0, -158, 1384, + -158, 1588, 99, 101, -158, -158, 764, -158, 764, -158, + -11, -158, 430, 115, 5, 115, 97, 115, 115, -158, + -158, -158, -23, 102, 104, 764, 159, 112, -15, -158, + 117, -16, 764, -158, -158, 959, -158, 736, 106, -158, + 164, -158, -158, -158, 2, 118, -158, 764, 764, -158, + 764, 764, 1806, 1672, -158, 430, 430, -16, -158, -16, + -16, 1180, -158, -16, 826, -158, -16, 134, 1806, 119, + 120, 1009, -158, -158, -158, 764, 1722, 1772, 1435, 1486, + -158, 115, 115, -158, -158, -158, 121, -158, -158, -158, + -158, -158, 124, 1537, -158, 764, 764, 764, -16, -158, + -158, 1588, 1214, 1059, -158, -158, -158, 764, -158, 1248, + -158 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -852,48 +855,49 @@ static const yytype_uint8 yydefact[] = 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, 155, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 0, 0, - 153, 0, 0, 147, 0, 0, 0, 0, 0, 0, + 84, 0, 0, 83, 0, 101, 0, 0, 159, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 0, 0, + 157, 0, 0, 151, 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, 154, 0, + 79, 108, 100, 0, 0, 110, 0, 0, 158, 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, 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, 149, - 0, 157, 71, 150, 0, 152, 151, 148, 114, 117, - 0, 0, 0, 0, 0, 0, 0, 119, 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, 0, 115, 0, 0, 0, 121, - 0, 0, 116, 0, 11, 95, 94, 0, 86, 50, - 57, 0, 0, 0, 0, 0, 66, 69, 156, 118, - 126, 122, 0, 124, 120, 123, 92, 91, 93, 0, - 68, 0, 0, 0, 0, 90, 55, 0, 0, 0, - 125, 67, 12, 0, 14, 0, 13 + 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, 153, 0, 161, 71, 154, 0, 156, 155, 152, + 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, 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, 160, 122, 130, 126, 0, 128, 124, 127, + 92, 91, 93, 0, 68, 0, 0, 0, 0, 90, + 55, 0, 0, 0, 129, 67, 12, 0, 14, 0, + 13 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -155, -155, -155, 156, 73, -1, -155, -155, 162, -12, - -155, -49, 5, -155, -155, 67, -96, -136, -4, -155, - 12, -130, -155, -155, -57, -154, -104, -155 + -158, -158, -158, 158, 73, -1, -158, -158, 161, -12, + -158, -48, 6, -158, -158, 75, -98, -145, -4, -158, + 12, -158, -10, -122, -158, -158, -55, -157, -105, -158 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 2, 3, 30, 118, 110, 31, 32, 115, 24, - 195, 196, 25, 44, 127, 136, 246, 211, 26, 125, - 126, 181, 220, 226, 227, 81, 82, 83 + 197, 198, 25, 44, 127, 136, 249, 213, 26, 125, + 126, 181, 182, 183, 222, 228, 229, 81, 82, 83 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -901,444 +905,464 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 23, 200, 201, 42, 193, 52, 111, 38, 39, 37, - 213, 111, 40, 215, 216, 236, 45, 47, 120, 112, - 56, 143, 111, 48, 261, 53, 228, 80, 254, 119, - 131, 123, 124, 116, 116, 1, 144, 143, 16, 209, - 178, 145, 27, 179, 262, 180, 255, 35, 217, 219, - 49, 111, 144, 190, 34, 191, 105, 106, 107, 132, - 108, 194, 36, 43, 113, 114, 28, 29, 128, 113, - 114, 129, 237, 33, 251, 205, 206, 147, 207, 41, - 113, 114, 133, 153, 154, 155, 156, 157, 158, 159, + 23, 215, 42, 27, 217, 218, 195, 38, 39, 37, + 111, 52, 40, 111, 48, 33, 45, 47, 120, 111, + 56, 112, 111, 230, 143, 257, 53, 131, 80, 119, + 132, 123, 124, 264, 116, 116, 1, 143, 211, 144, + 192, 49, 193, 258, 145, 16, 178, 219, 35, 179, + 34, 180, 144, 265, 239, 207, 208, 221, 209, 244, + 36, 245, 133, 43, 196, 207, 208, 254, 242, 113, + 114, 128, 113, 114, 129, 28, 29, 147, 113, 114, + 41, 113, 114, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 228, 120, 113, - 114, 205, 206, 186, 239, 134, 277, 278, 182, 241, - 135, 242, 137, 139, 279, 140, 280, 281, 197, 199, - 283, 141, 203, 285, 146, 148, 149, 150, 151, 152, - 212, 177, 212, 187, 204, 212, 212, 108, 80, 183, - 218, 229, 4, 5, 6, 7, 8, 80, 230, 231, - 233, 240, 9, 247, 300, 248, 10, 252, 259, 253, - 11, 12, 256, 269, 257, 13, 260, 14, 15, 263, - 268, 271, 286, 232, 287, 225, 294, 121, 16, 124, - 295, 117, 270, 188, 192, 4, 5, 6, 7, 8, - 17, 301, 238, 249, 284, 250, 212, 18, 0, 19, - 184, 20, 21, 185, 22, 0, 0, 0, 0, 0, - 0, 15, 258, 0, 0, 0, 0, 0, 264, 0, - 0, 16, 0, 267, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 272, 273, 0, 274, 275, 212, 212, - 18, 0, 19, 0, 20, 21, 0, 22, 0, 0, - 0, 0, 0, 0, 0, 0, 225, 0, 0, 0, - 289, 0, 0, 0, 0, -72, 50, 0, 0, 51, - -72, 0, 52, 0, -72, -72, -72, -72, -72, 0, - 297, 298, 299, 0, -72, -72, -72, 0, 0, -72, - -72, -72, 305, -72, 0, 0, 0, -72, -72, -72, - -72, -72, -72, -72, -72, 16, 0, 0, -72, 0, - 0, -72, -72, -72, -72, -72, -72, -72, -72, -72, - -72, 0, -72, -72, 0, -72, 0, -72, -72, -72, - -72, 57, -72, 0, 58, -147, -147, 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, -147, -147, 0, 0, 0, 0, 0, - 16, 0, 0, 0, -147, -147, 103, 104, 105, 106, - 107, 0, 108, 0, 0, 0, 0, 208, 0, 78, - 58, 79, 0, 52, 0, 0, 0, -146, 0, 59, + 170, 171, 172, 173, 174, 175, 176, 230, 120, 267, + 281, 282, 240, 188, 105, 106, 107, 134, 108, 184, + 135, 202, 203, 137, 139, 140, 146, 141, 199, 201, + 148, 149, 205, 150, 151, 283, 152, 284, 285, 177, + 214, 287, 214, 189, 289, 214, 214, 206, 108, 80, + 220, 231, 232, 233, -115, 234, 236, 243, 80, 250, + 256, 251, 255, 262, 272, 259, 46, 260, 273, 4, + 5, 6, 7, 8, -114, 263, 304, 290, 291, 9, + 266, 275, 299, 10, 298, 235, 227, 11, 12, 121, + 117, 124, 13, 190, 14, 15, 274, 4, 5, 6, + 7, 8, 194, 305, 241, 252, 16, 253, 214, 288, + 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, + 0, 0, 0, 15, 261, 18, 0, 19, 0, 20, + 21, 268, 22, 0, 16, 0, 271, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 276, 277, 0, 278, + 279, 214, 214, 18, 0, 19, 0, 20, 21, 0, + 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 227, 0, 0, 0, 293, 0, 0, 0, 0, -72, + 50, 0, 0, 51, -72, 0, 52, 0, -72, -72, + -72, -72, -72, 0, 301, 302, 303, 0, -72, -72, + -72, 0, 0, -72, -72, -72, 309, -72, 0, 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, + -151, -151, 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, -151, -151, + 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, + -151, -151, 103, 104, 105, 106, 107, 0, 108, 0, + 0, 0, 0, 210, 0, 78, 58, 79, 0, 52, + 0, 0, 0, -150, 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, + -150, 16, 13, 0, 14, 15, 0, 0, 0, 0, + 0, 0, 0, 212, 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, 54, 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, 55, 22, + 200, 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, 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, 270, 22, 0, 16, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, + 0, 0, 0, 0, 18, 0, 19, 223, 20, 21, + 224, 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, 16, 0, 0, 54, - 0, 0, 4, 5, 6, 7, 8, 0, 0, 0, - 0, 0, 9, 0, 0, 78, 10, 79, 0, 0, - 11, 12, 0, -146, 0, 13, 46, 14, 15, 4, - 5, 6, 7, 8, 0, 0, 0, 0, 16, 9, - 0, 0, 0, 10, 0, 0, 0, 11, 12, 0, - 17, 0, 13, 0, 14, 15, 0, 18, 0, 19, - 0, 20, 21, 55, 22, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, - 0, 0, 0, 0, 18, 0, 19, 0, 20, 21, - 198, 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, 202, 14, 15, - 4, 5, 6, 7, 8, 0, 0, 0, 0, 16, - 9, 0, 0, 0, 10, 0, 0, 0, 11, 12, - 0, 17, 0, 13, 0, 14, 15, 0, 18, 0, - 19, 0, 20, 21, 0, 22, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, - 0, 0, 0, 0, 0, 18, 0, 19, 0, 20, - 21, 0, 22, 4, 5, 6, 7, 8, 0, 0, - 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, - 0, 11, 12, 0, 0, 0, 13, 0, 14, 15, - 4, 5, 6, 7, 8, 0, 0, 0, 0, 16, - 9, 0, 0, 0, 10, 0, 0, 0, 11, 12, - 0, 17, 0, 13, 0, 14, 15, 122, 18, 0, - 19, 0, 20, 21, 0, 22, 16, 0, 0, 0, - 0, 0, 0, 4, 5, 6, 7, 8, 17, 0, - 0, 0, 0, 0, 0, 18, 0, 19, 0, 20, - 21, 266, 22, 4, 5, 6, 7, 8, 0, 15, - 0, 0, 0, 9, 0, 0, 0, 10, 0, 16, - 0, 11, 12, 0, 0, 0, 13, 0, 14, 15, - 0, 210, 0, 0, 0, 0, 0, 0, 18, 16, - 19, 0, 20, 21, 0, 22, 0, 0, 0, 0, - 0, 17, 0, 0, 0, 0, 0, 0, 18, 0, - 19, 221, 20, 21, 222, 22, 0, 52, 85, 86, - 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, 96, 97, 0, 0, - 16, 84, 85, 86, 87, 0, 0, 101, 102, 103, - 104, 105, 106, 107, 0, 108, 0, 88, 89, 223, - 0, 224, 0, 0, 90, 91, 92, 93, 94, 95, - 96, 97, 0, 0, 0, 0, 0, 0, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 0, 108, - 84, 85, 86, 87, 234, 0, 0, 235, 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, 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, 16, 84, 85, + 86, 87, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 88, 89, 225, 0, 226, 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, 265, 0, 0, 0, 0, + 86, 87, 237, 0, 0, 238, 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, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 0, 108, 84, 85, 86, - 87, 0, 0, 0, 288, 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, 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, 269, 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, 292, 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, 307, 0, + 308, 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, 286, 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, 306, 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, 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, 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, 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, 246, 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, 296, 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, 297, 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, 300, 84, 85, 86, + 87, 0, 0, 0, 0, 0, 0, 0, 247, 248, 0, 0, 0, 88, 89, 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, 0, - 0, 0, 0, 0, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 0, 108, 303, 0, 304, 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, 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, 84, 85, 86, 87, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 0, - 108, 88, 89, 214, 0, 0, 0, 0, 90, 91, - 92, 93, 94, 95, 96, 97, 0, 0, 84, 85, - 86, 87, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 0, 108, 88, 89, 282, 0, 0, 0, - 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, - 0, 84, 85, 86, 87, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 0, 108, 88, 89, 302, - 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, - 96, 97, 0, 0, 84, 85, 86, 87, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 0, 108, - 88, 89, 306, 0, 0, 0, 0, 90, 91, 92, - 93, 94, 95, 96, 97, 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, 0, - 88, 89, 0, 0, 0, 0, 0, 90, 91, 92, - 93, 94, 95, 96, 97, 0, 0, 0, 0, 0, - 0, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 0, 108, 189, 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, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 0, 108, 243, 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, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 0, 108, 292, 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, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 0, 108, 293, 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, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 0, 108, 296, 84, 85, 86, 87, 0, 0, - 0, 0, 0, 0, 0, 244, 245, 0, 0, 0, - 88, 89, 0, 0, 0, 0, 0, 90, 91, 92, - 93, 94, 95, 96, 97, 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, 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, - 276, 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, - 290, 88, 89, 0, 0, 0, 0, 0, 90, 91, - 92, 93, 94, 95, 96, 97, 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, 291, 0, 0, 0, 0, 0, - 88, 89, 0, 0, 0, 0, 0, 90, 91, 92, - 93, 94, 95, 96, 97, 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, + 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, - 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, -147, 85, 86, 0, 0, 0, 100, + 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, 280, 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, 294, 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, 295, 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, -151, 85, 86, 0, 0, 0, 100, 101, 102, 103, 104, 105, 106, 107, 0, 108, 88, - 89, 0, 0, 0, 85, 86, -147, -147, -147, -147, - -147, -147, 96, 97, 0, 0, 0, 0, 0, 88, - 0, 0, -147, 101, 102, 103, 104, 105, 106, 107, - 0, 108, 96, 97, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 101, 102, 103, 104, 105, 106, 107, - 0, 108 + 89, 0, 0, 0, 0, 0, -151, -151, -151, -151, + -151, -151, 96, 97, 0, 0, 85, 86, 0, 0, + 0, 0, 0, -151, 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, 131, 132, 1, 4, 7, 5, 11, 12, 10, - 146, 5, 13, 149, 150, 4, 17, 18, 30, 13, - 21, 47, 5, 4, 47, 20, 180, 22, 47, 30, - 13, 32, 33, 28, 29, 15, 62, 47, 40, 143, - 61, 67, 0, 64, 67, 66, 65, 40, 152, 179, - 31, 5, 62, 58, 57, 60, 53, 54, 55, 13, - 57, 61, 4, 61, 63, 64, 16, 17, 59, 63, - 64, 62, 61, 59, 210, 41, 42, 78, 44, 61, - 63, 64, 28, 84, 85, 86, 87, 88, 89, 90, + 1, 146, 1, 0, 149, 150, 4, 11, 12, 10, + 5, 7, 13, 5, 4, 60, 17, 18, 30, 5, + 21, 13, 5, 180, 48, 48, 20, 13, 22, 30, + 13, 32, 33, 48, 28, 29, 15, 48, 143, 63, + 59, 31, 61, 66, 68, 41, 62, 152, 41, 65, + 58, 67, 63, 68, 4, 42, 43, 179, 45, 59, + 4, 61, 28, 62, 62, 42, 43, 212, 45, 64, + 65, 60, 64, 65, 63, 16, 17, 78, 64, 65, + 62, 64, 65, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 261, 120, 63, - 64, 41, 42, 114, 44, 4, 252, 253, 113, 58, - 4, 60, 60, 1, 254, 57, 256, 257, 129, 130, - 260, 65, 133, 263, 62, 4, 62, 62, 67, 47, - 144, 57, 146, 13, 46, 149, 150, 57, 143, 1, - 4, 46, 4, 5, 6, 7, 8, 152, 57, 65, - 57, 4, 14, 59, 294, 59, 18, 46, 4, 62, - 22, 23, 62, 4, 62, 27, 62, 29, 30, 62, - 57, 62, 57, 184, 57, 180, 62, 31, 40, 190, - 57, 29, 241, 120, 127, 4, 5, 6, 7, 8, - 52, 297, 190, 204, 261, 206, 210, 59, -1, 61, - 62, 63, 64, 65, 66, -1, -1, -1, -1, -1, - -1, 30, 223, -1, -1, -1, -1, -1, 229, -1, - -1, 40, -1, 234, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 244, 245, -1, 247, 248, 252, 253, - 59, -1, 61, -1, 63, 64, -1, 66, -1, -1, - -1, -1, -1, -1, -1, -1, 261, -1, -1, -1, - 271, -1, -1, -1, -1, 0, 1, -1, -1, 4, - 5, -1, 7, -1, 9, 10, 11, 12, 13, -1, - 291, 292, 293, -1, 19, 20, 21, -1, -1, 24, - 25, 26, 303, 28, -1, -1, -1, 32, 33, 34, - 35, 36, 37, 38, 39, 40, -1, -1, 43, -1, - -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, -1, 57, 58, -1, 60, -1, 62, 63, 64, - 65, 1, 67, -1, 4, 10, 11, 7, -1, -1, - -1, -1, -1, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, -1, 38, 39, -1, -1, -1, -1, -1, - 40, -1, -1, -1, 49, 50, 51, 52, 53, 54, - 55, -1, 57, -1, -1, -1, -1, 1, -1, 59, - 4, 61, -1, 7, -1, -1, -1, 67, -1, 13, + 101, 102, 103, 104, 105, 106, 107, 264, 120, 231, + 255, 256, 62, 114, 54, 55, 56, 4, 58, 113, + 4, 131, 132, 61, 1, 58, 63, 66, 129, 130, + 4, 63, 133, 63, 68, 257, 48, 259, 260, 58, + 144, 263, 146, 13, 266, 149, 150, 47, 58, 143, + 4, 40, 47, 58, 40, 66, 58, 4, 152, 60, + 63, 60, 47, 4, 58, 63, 1, 63, 4, 4, + 5, 6, 7, 8, 40, 63, 298, 58, 58, 14, + 63, 63, 58, 18, 63, 186, 180, 22, 23, 31, + 29, 192, 27, 120, 29, 30, 244, 4, 5, 6, + 7, 8, 127, 301, 192, 206, 41, 208, 212, 264, + -1, -1, -1, -1, -1, -1, -1, -1, 53, -1, + -1, -1, -1, 30, 225, 60, -1, 62, -1, 64, + 65, 232, 67, -1, 41, -1, 237, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 247, 248, -1, 250, + 251, 255, 256, 60, -1, 62, -1, 64, 65, -1, + 67, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 264, -1, -1, -1, 275, -1, -1, -1, -1, 0, + 1, -1, -1, 4, 5, -1, 7, -1, 9, 10, + 11, 12, 13, -1, 295, 296, 297, -1, 19, 20, + 21, -1, -1, 24, 25, 26, 307, 28, -1, -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, 53, -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, 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, 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, 40, -1, -1, 1, - -1, -1, 4, 5, 6, 7, 8, -1, -1, -1, - -1, -1, 14, -1, -1, 59, 18, 61, -1, -1, - 22, 23, -1, 67, -1, 27, 1, 29, 30, 4, - 5, 6, 7, 8, -1, -1, -1, -1, 40, 14, - -1, -1, -1, 18, -1, -1, -1, 22, 23, -1, - 52, -1, 27, -1, 29, 30, -1, 59, -1, 61, - -1, 63, 64, 65, 66, 40, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 52, -1, -1, - -1, -1, -1, -1, 59, -1, 61, -1, 63, 64, - 1, 66, -1, 4, 5, 6, 7, 8, -1, -1, - -1, -1, -1, 14, -1, -1, -1, 18, -1, -1, - -1, 22, 23, -1, -1, -1, 27, 1, 29, 30, - 4, 5, 6, 7, 8, -1, -1, -1, -1, 40, - 14, -1, -1, -1, 18, -1, -1, -1, 22, 23, - -1, 52, -1, 27, -1, 29, 30, -1, 59, -1, - 61, -1, 63, 64, -1, 66, 40, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 52, -1, - -1, -1, -1, -1, -1, 59, -1, 61, -1, 63, - 64, -1, 66, 4, 5, 6, 7, 8, -1, -1, - -1, -1, -1, 14, -1, -1, -1, 18, -1, -1, - -1, 22, 23, -1, -1, -1, 27, -1, 29, 30, - 4, 5, 6, 7, 8, -1, -1, -1, -1, 40, - 14, -1, -1, -1, 18, -1, -1, -1, 22, 23, - -1, 52, -1, 27, -1, 29, 30, 58, 59, -1, - 61, -1, 63, 64, -1, 66, 40, -1, -1, -1, - -1, -1, -1, 4, 5, 6, 7, 8, 52, -1, - -1, -1, -1, -1, -1, 59, -1, 61, -1, 63, - 64, 65, 66, 4, 5, 6, 7, 8, -1, 30, - -1, -1, -1, 14, -1, -1, -1, 18, -1, 40, - -1, 22, 23, -1, -1, -1, 27, -1, 29, 30, - -1, 52, -1, -1, -1, -1, -1, -1, 59, 40, - 61, -1, 63, 64, -1, 66, -1, -1, -1, -1, - -1, 52, -1, -1, -1, -1, -1, -1, 59, -1, - 61, 1, 63, 64, 4, 66, -1, 7, 10, 11, - -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, 38, 39, -1, -1, - 40, 9, 10, 11, 12, -1, -1, 49, 50, 51, - 52, 53, 54, 55, -1, 57, -1, 25, 26, 59, - -1, 61, -1, -1, 32, 33, 34, 35, 36, 37, - 38, 39, -1, -1, -1, -1, -1, -1, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, -1, 57, - 9, 10, 11, 12, 62, -1, -1, 65, -1, -1, - -1, -1, -1, -1, -1, -1, 25, 26, -1, -1, - -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, - 39, -1, -1, -1, -1, -1, -1, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, -1, 57, 9, - 10, 11, 12, -1, -1, -1, 65, -1, -1, -1, - -1, -1, -1, -1, -1, 25, 26, -1, -1, -1, - -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, - -1, -1, -1, -1, -1, -1, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, -1, 57, 9, 10, - 11, 12, -1, -1, -1, 65, -1, -1, -1, -1, + -1, -1, -1, -1, -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, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, -1, 57, 9, 10, 11, - 12, -1, -1, -1, 65, -1, -1, -1, -1, -1, + -1, -1, -1, -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, -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, 59, 9, 10, 11, 12, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, + 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, + 36, 37, 38, 39, -1, -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, -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, 9, 10, 11, 12, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 25, 26, -1, -1, -1, -1, -1, 32, 33, + 34, 35, 36, 37, 38, 39, -1, -1, -1, -1, + -1, -1, -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, -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, 9, 10, 11, + 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, -1, -1, -1, 25, 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, - -1, -1, -1, -1, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, -1, 57, 58, -1, 60, 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, 9, 10, 11, 12, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, -1, 57, 25, 26, - 60, -1, -1, -1, -1, 32, 33, 34, 35, 36, - 37, 38, 39, -1, -1, 9, 10, 11, 12, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, -1, - 57, 25, 26, 60, -1, -1, -1, -1, 32, 33, - 34, 35, 36, 37, 38, 39, -1, -1, 9, 10, - 11, 12, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, -1, 57, 25, 26, 60, -1, -1, -1, - -1, 32, 33, 34, 35, 36, 37, 38, 39, -1, - -1, 9, 10, 11, 12, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, -1, 57, 25, 26, 60, - -1, -1, -1, -1, 32, 33, 34, 35, 36, 37, - 38, 39, -1, -1, 9, 10, 11, 12, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, -1, 57, - 25, 26, 60, -1, -1, -1, -1, 32, 33, 34, - 35, 36, 37, 38, 39, -1, -1, -1, -1, -1, - -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, -1, 57, 58, 9, 10, 11, 12, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 25, 26, -1, -1, -1, -1, -1, 32, 33, 34, - 35, 36, 37, 38, 39, -1, -1, -1, -1, -1, - -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, -1, 57, 58, 9, 10, 11, 12, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 25, 26, -1, -1, -1, -1, -1, 32, 33, 34, - 35, 36, 37, 38, 39, -1, -1, -1, -1, -1, - -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, -1, 57, 58, 9, 10, 11, 12, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 25, 26, -1, -1, -1, -1, -1, 32, 33, 34, - 35, 36, 37, 38, 39, -1, -1, -1, -1, -1, - -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, -1, 57, 58, 9, 10, 11, 12, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 25, 26, -1, -1, -1, -1, -1, 32, 33, 34, - 35, 36, 37, 38, 39, -1, -1, -1, -1, -1, - -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, -1, 57, 58, 9, 10, 11, 12, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 25, 26, -1, -1, -1, -1, -1, 32, 33, 34, - 35, 36, 37, 38, 39, -1, -1, -1, -1, -1, - -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, -1, 57, 58, 9, 10, 11, 12, -1, -1, - -1, -1, -1, -1, -1, 20, 21, -1, -1, -1, - 25, 26, -1, -1, -1, -1, -1, 32, 33, 34, - 35, 36, 37, 38, 39, -1, -1, -1, -1, -1, - -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, -1, 57, 9, 10, 11, 12, -1, -1, -1, - -1, -1, -1, 19, -1, -1, -1, -1, -1, 25, - 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, - 36, 37, 38, 39, -1, -1, 9, 10, 11, 12, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - -1, 57, 25, 26, -1, -1, -1, -1, -1, 32, - 33, 34, 35, 36, 37, 38, 39, -1, -1, -1, - 43, -1, -1, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, -1, 57, 9, 10, 11, 12, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 24, 25, 26, -1, -1, -1, -1, -1, 32, 33, - 34, 35, 36, 37, 38, 39, -1, -1, -1, -1, - -1, -1, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, -1, 57, 9, 10, 11, 12, -1, -1, - -1, -1, -1, -1, 19, -1, -1, -1, -1, -1, - 25, 26, -1, -1, -1, -1, -1, 32, 33, 34, - 35, 36, 37, 38, 39, -1, -1, 9, 10, 11, - 12, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, -1, 57, 25, 26, -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, -1, -1, -1, -1, -1, -1, 19, -1, -1, + -1, -1, -1, 25, 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, - 9, 10, 11, 12, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, -1, 57, 25, 26, -1, -1, - -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, - 39, -1, -1, 9, 10, 11, -1, -1, -1, 48, - 49, 50, 51, 52, 53, 54, 55, -1, 57, 25, - 26, -1, -1, -1, 10, 11, 32, 33, 34, 35, - 36, 37, 38, 39, -1, -1, -1, -1, -1, 25, - -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, - -1, 57, 38, 39, -1, -1, -1, -1, -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, - -1, 57 + 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 symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 15, 69, 70, 4, 5, 6, 7, 8, 14, - 18, 22, 23, 27, 29, 30, 40, 52, 59, 61, - 63, 64, 66, 73, 77, 80, 86, 0, 16, 17, - 71, 74, 75, 59, 57, 40, 4, 73, 86, 86, - 73, 61, 1, 61, 81, 73, 1, 73, 4, 31, - 1, 4, 7, 80, 1, 65, 73, 1, 4, 13, + 0, 15, 70, 71, 4, 5, 6, 7, 8, 14, + 18, 22, 23, 27, 29, 30, 41, 53, 60, 62, + 64, 65, 67, 74, 78, 81, 87, 0, 16, 17, + 72, 75, 76, 60, 58, 41, 4, 74, 87, 87, + 74, 62, 1, 62, 82, 74, 1, 74, 4, 31, + 1, 4, 7, 81, 1, 66, 74, 1, 4, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 59, 61, - 80, 93, 94, 95, 9, 10, 11, 12, 25, 26, - 32, 33, 34, 35, 36, 37, 38, 39, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 57, 58, - 73, 5, 13, 63, 64, 76, 80, 76, 72, 73, - 77, 71, 58, 73, 73, 87, 88, 82, 59, 62, - 19, 13, 13, 28, 4, 4, 83, 60, 60, 1, - 57, 65, 65, 47, 62, 67, 62, 73, 4, 62, - 62, 67, 47, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 57, 61, 64, - 66, 89, 80, 1, 62, 65, 73, 13, 72, 58, - 58, 60, 83, 4, 61, 78, 79, 73, 1, 73, - 89, 89, 1, 73, 46, 41, 42, 44, 1, 94, - 52, 85, 86, 85, 60, 85, 85, 94, 4, 89, - 90, 1, 4, 59, 61, 80, 91, 92, 93, 46, - 57, 65, 73, 57, 62, 65, 4, 61, 88, 44, - 4, 58, 60, 58, 20, 21, 84, 59, 59, 73, - 73, 85, 46, 62, 47, 65, 62, 62, 73, 4, - 62, 47, 67, 62, 73, 65, 65, 73, 57, 4, - 79, 62, 73, 73, 73, 73, 43, 85, 85, 89, - 89, 89, 60, 89, 92, 89, 57, 57, 65, 73, - 24, 19, 58, 58, 62, 57, 58, 73, 73, 73, - 89, 84, 60, 58, 60, 73, 60 + 24, 25, 26, 27, 28, 29, 30, 31, 60, 62, + 81, 96, 97, 98, 9, 10, 11, 12, 25, 26, + 32, 33, 34, 35, 36, 37, 38, 39, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 58, 59, + 74, 5, 13, 64, 65, 77, 81, 77, 73, 74, + 78, 72, 59, 74, 74, 88, 89, 83, 60, 63, + 19, 13, 13, 28, 4, 4, 84, 61, 61, 1, + 58, 66, 66, 48, 63, 68, 63, 74, 4, 63, + 63, 68, 48, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 58, 62, 65, + 67, 90, 91, 92, 81, 1, 63, 66, 74, 13, + 73, 59, 59, 61, 84, 4, 62, 79, 80, 74, + 1, 74, 91, 91, 1, 74, 47, 42, 43, 45, + 1, 97, 53, 86, 87, 86, 61, 86, 86, 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, 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, 92, 95, 92, + 58, 58, 66, 74, 24, 19, 59, 59, 63, 58, + 59, 74, 74, 74, 92, 85, 61, 59, 61, 74, + 61 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 68, 69, 69, 70, 70, 71, 71, 72, 72, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, - 73, 73, 73, 73, 73, 73, 73, 73, 74, 74, - 75, 75, 75, 76, 77, 77, 78, 78, 79, 79, - 81, 80, 82, 80, 83, 83, 83, 84, 84, 85, - 85, 85, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 87, 87, 88, 89, 89, 89, 90, 90, 91, - 91, 92, 92, 92, 92, 92, 92, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 94, 94, 94, 94, - 95, 95, 95, 95, 95, 95, 95, 95 + 0, 69, 70, 70, 71, 71, 72, 72, 73, 73, + 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, + 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, 96, 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 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1355,11 +1379,12 @@ static const yytype_uint8 yyr2[] = 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, 2, 3, 3, 1, 3, 1, - 3, 2, 3, 3, 3, 5, 3, 1, 1, 1, + 3, 1, 3, 1, 3, 1, 3, 1, 2, 3, + 3, 1, 3, 1, 3, 2, 3, 3, 3, 5, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 1, 3, 3, - 3, 3, 3, 1, 2, 1, 5, 3 + 0, 1, 3, 3, 3, 3, 3, 1, 2, 1, + 5, 3 }; @@ -1862,175 +1887,187 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio case 4: /* IDENT */ #line 36 "src/parser.y" /* yacc.c:1257 */ { jv_free(((*yyvaluep).literal)); } -#line 1866 "src/parser.c" /* yacc.c:1257 */ +#line 1891 "src/parser.c" /* yacc.c:1257 */ break; case 5: /* FIELD */ #line 36 "src/parser.y" /* yacc.c:1257 */ { jv_free(((*yyvaluep).literal)); } -#line 1872 "src/parser.c" /* yacc.c:1257 */ +#line 1897 "src/parser.c" /* yacc.c:1257 */ break; case 6: /* LITERAL */ #line 36 "src/parser.y" /* yacc.c:1257 */ { jv_free(((*yyvaluep).literal)); } -#line 1878 "src/parser.c" /* yacc.c:1257 */ +#line 1903 "src/parser.c" /* yacc.c:1257 */ break; case 7: /* FORMAT */ #line 36 "src/parser.y" /* yacc.c:1257 */ { jv_free(((*yyvaluep).literal)); } -#line 1884 "src/parser.c" /* yacc.c:1257 */ +#line 1909 "src/parser.c" /* yacc.c:1257 */ break; - case 41: /* QQSTRING_TEXT */ + case 42: /* QQSTRING_TEXT */ #line 36 "src/parser.y" /* yacc.c:1257 */ { jv_free(((*yyvaluep).literal)); } -#line 1890 "src/parser.c" /* yacc.c:1257 */ +#line 1915 "src/parser.c" /* yacc.c:1257 */ break; - case 70: /* Module */ + case 71: /* Module */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1896 "src/parser.c" /* yacc.c:1257 */ +#line 1921 "src/parser.c" /* yacc.c:1257 */ break; - case 71: /* Imports */ + case 72: /* Imports */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1902 "src/parser.c" /* yacc.c:1257 */ +#line 1927 "src/parser.c" /* yacc.c:1257 */ break; - case 72: /* FuncDefs */ + case 73: /* FuncDefs */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1908 "src/parser.c" /* yacc.c:1257 */ +#line 1933 "src/parser.c" /* yacc.c:1257 */ break; - case 73: /* Exp */ + case 74: /* Exp */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1914 "src/parser.c" /* yacc.c:1257 */ +#line 1939 "src/parser.c" /* yacc.c:1257 */ break; - case 74: /* Import */ + case 75: /* Import */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1920 "src/parser.c" /* yacc.c:1257 */ +#line 1945 "src/parser.c" /* yacc.c:1257 */ break; - case 75: /* ImportWhat */ + case 76: /* ImportWhat */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1926 "src/parser.c" /* yacc.c:1257 */ +#line 1951 "src/parser.c" /* yacc.c:1257 */ break; - case 76: /* ImportFrom */ + case 77: /* ImportFrom */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1932 "src/parser.c" /* yacc.c:1257 */ +#line 1957 "src/parser.c" /* yacc.c:1257 */ break; - case 77: /* FuncDef */ + case 78: /* FuncDef */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1938 "src/parser.c" /* yacc.c:1257 */ +#line 1963 "src/parser.c" /* yacc.c:1257 */ break; - case 78: /* Params */ + case 79: /* Params */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1944 "src/parser.c" /* yacc.c:1257 */ +#line 1969 "src/parser.c" /* yacc.c:1257 */ break; - case 79: /* Param */ + case 80: /* Param */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1950 "src/parser.c" /* yacc.c:1257 */ +#line 1975 "src/parser.c" /* yacc.c:1257 */ break; - case 80: /* String */ + case 81: /* String */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1956 "src/parser.c" /* yacc.c:1257 */ +#line 1981 "src/parser.c" /* yacc.c:1257 */ break; - case 83: /* QQString */ + case 84: /* QQString */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1962 "src/parser.c" /* yacc.c:1257 */ +#line 1987 "src/parser.c" /* yacc.c:1257 */ break; - case 84: /* ElseBody */ + case 85: /* ElseBody */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1968 "src/parser.c" /* yacc.c:1257 */ +#line 1993 "src/parser.c" /* yacc.c:1257 */ break; - case 85: /* ExpD */ + case 86: /* ExpD */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1974 "src/parser.c" /* yacc.c:1257 */ +#line 1999 "src/parser.c" /* yacc.c:1257 */ break; - case 86: /* Term */ + case 87: /* Term */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1980 "src/parser.c" /* yacc.c:1257 */ +#line 2005 "src/parser.c" /* yacc.c:1257 */ break; - case 87: /* Args */ + case 88: /* Args */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1986 "src/parser.c" /* yacc.c:1257 */ +#line 2011 "src/parser.c" /* yacc.c:1257 */ break; - case 88: /* Arg */ + case 89: /* Arg */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1992 "src/parser.c" /* yacc.c:1257 */ +#line 2017 "src/parser.c" /* yacc.c:1257 */ break; - case 89: /* Pattern */ + case 90: /* RepPatterns */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1998 "src/parser.c" /* yacc.c:1257 */ +#line 2023 "src/parser.c" /* yacc.c:1257 */ break; - case 90: /* ArrayPats */ + case 91: /* Patterns */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 2004 "src/parser.c" /* yacc.c:1257 */ +#line 2029 "src/parser.c" /* yacc.c:1257 */ break; - case 91: /* ObjPats */ + case 92: /* Pattern */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 2010 "src/parser.c" /* yacc.c:1257 */ +#line 2035 "src/parser.c" /* yacc.c:1257 */ break; - case 92: /* ObjPat */ + case 93: /* ArrayPats */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 2016 "src/parser.c" /* yacc.c:1257 */ +#line 2041 "src/parser.c" /* yacc.c:1257 */ break; - case 93: /* Keyword */ + case 94: /* ObjPats */ +#line 37 "src/parser.y" /* yacc.c:1257 */ + { block_free(((*yyvaluep).blk)); } +#line 2047 "src/parser.c" /* yacc.c:1257 */ + break; + + case 95: /* ObjPat */ +#line 37 "src/parser.y" /* yacc.c:1257 */ + { block_free(((*yyvaluep).blk)); } +#line 2053 "src/parser.c" /* yacc.c:1257 */ + break; + + case 96: /* Keyword */ #line 36 "src/parser.y" /* yacc.c:1257 */ { jv_free(((*yyvaluep).literal)); } -#line 2022 "src/parser.c" /* yacc.c:1257 */ +#line 2059 "src/parser.c" /* yacc.c:1257 */ break; - case 94: /* MkDict */ + case 97: /* MkDict */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 2028 "src/parser.c" /* yacc.c:1257 */ +#line 2065 "src/parser.c" /* yacc.c:1257 */ break; - case 95: /* MkDictPair */ + case 98: /* MkDictPair */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 2034 "src/parser.c" /* yacc.c:1257 */ +#line 2071 "src/parser.c" /* yacc.c:1257 */ break; @@ -2322,31 +2359,31 @@ yyreduce: switch (yyn) { case 2: -#line 303 "src/parser.y" /* yacc.c:1646 */ +#line 300 "src/parser.y" /* yacc.c:1646 */ { *answer = BLOCK((yyvsp[-2].blk), (yyvsp[-1].blk), gen_op_simple(TOP), (yyvsp[0].blk)); } -#line 2330 "src/parser.c" /* yacc.c:1646 */ +#line 2367 "src/parser.c" /* yacc.c:1646 */ break; case 3: -#line 306 "src/parser.y" /* yacc.c:1646 */ +#line 303 "src/parser.y" /* yacc.c:1646 */ { *answer = BLOCK((yyvsp[-2].blk), (yyvsp[-1].blk), (yyvsp[0].blk)); } -#line 2338 "src/parser.c" /* yacc.c:1646 */ +#line 2375 "src/parser.c" /* yacc.c:1646 */ break; case 4: -#line 311 "src/parser.y" /* yacc.c:1646 */ +#line 308 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_noop(); } -#line 2346 "src/parser.c" /* yacc.c:1646 */ +#line 2383 "src/parser.c" /* yacc.c:1646 */ break; case 5: -#line 314 "src/parser.y" /* yacc.c:1646 */ +#line 311 "src/parser.y" /* yacc.c:1646 */ { if (!block_is_const((yyvsp[-1].blk))) { FAIL((yyloc), "Module metadata must be constant"); @@ -2356,366 +2393,366 @@ yyreduce: (yyval.blk) = gen_module((yyvsp[-1].blk)); } } -#line 2360 "src/parser.c" /* yacc.c:1646 */ +#line 2397 "src/parser.c" /* yacc.c:1646 */ break; case 6: -#line 325 "src/parser.y" /* yacc.c:1646 */ +#line 322 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_noop(); } -#line 2368 "src/parser.c" /* yacc.c:1646 */ +#line 2405 "src/parser.c" /* yacc.c:1646 */ break; case 7: -#line 328 "src/parser.y" /* yacc.c:1646 */ +#line 325 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = BLOCK((yyvsp[-1].blk), (yyvsp[0].blk)); } -#line 2376 "src/parser.c" /* yacc.c:1646 */ +#line 2413 "src/parser.c" /* yacc.c:1646 */ break; case 8: -#line 333 "src/parser.y" /* yacc.c:1646 */ +#line 330 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_noop(); } -#line 2384 "src/parser.c" /* yacc.c:1646 */ +#line 2421 "src/parser.c" /* yacc.c:1646 */ break; case 9: -#line 336 "src/parser.y" /* yacc.c:1646 */ +#line 333 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = block_bind((yyvsp[-1].blk), (yyvsp[0].blk), OP_IS_CALL_PSEUDO); } -#line 2392 "src/parser.c" /* yacc.c:1646 */ +#line 2429 "src/parser.c" /* yacc.c:1646 */ break; case 10: -#line 341 "src/parser.y" /* yacc.c:1646 */ +#line 338 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = block_bind_referenced((yyvsp[-1].blk), (yyvsp[0].blk), OP_IS_CALL_PSEUDO); } -#line 2400 "src/parser.c" /* yacc.c:1646 */ +#line 2437 "src/parser.c" /* yacc.c:1646 */ break; case 11: -#line 345 "src/parser.y" /* yacc.c:1646 */ +#line 342 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_destructure((yyvsp[-4].blk), (yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2408 "src/parser.c" /* yacc.c:1646 */ +#line 2445 "src/parser.c" /* yacc.c:1646 */ break; case 12: -#line 349 "src/parser.y" /* yacc.c:1646 */ +#line 345 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_reduce((yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk)); } -#line 2416 "src/parser.c" /* yacc.c:1646 */ +#line 2453 "src/parser.c" /* yacc.c:1646 */ break; case 13: -#line 353 "src/parser.y" /* yacc.c:1646 */ +#line 349 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_foreach((yyvsp[-9].blk), (yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk)); } -#line 2424 "src/parser.c" /* yacc.c:1646 */ +#line 2461 "src/parser.c" /* yacc.c:1646 */ break; case 14: -#line 357 "src/parser.y" /* yacc.c:1646 */ +#line 353 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_foreach((yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk), gen_noop()); } -#line 2432 "src/parser.c" /* yacc.c:1646 */ +#line 2469 "src/parser.c" /* yacc.c:1646 */ break; case 15: -#line 361 "src/parser.y" /* yacc.c:1646 */ +#line 357 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_cond((yyvsp[-3].blk), (yyvsp[-1].blk), (yyvsp[0].blk)); } -#line 2440 "src/parser.c" /* yacc.c:1646 */ +#line 2477 "src/parser.c" /* yacc.c:1646 */ break; case 16: -#line 364 "src/parser.y" /* yacc.c:1646 */ +#line 360 "src/parser.y" /* yacc.c:1646 */ { FAIL((yyloc), "Possibly unterminated 'if' statement"); (yyval.blk) = (yyvsp[-2].blk); } -#line 2449 "src/parser.c" /* yacc.c:1646 */ +#line 2486 "src/parser.c" /* yacc.c:1646 */ break; case 17: -#line 369 "src/parser.y" /* yacc.c:1646 */ +#line 365 "src/parser.y" /* yacc.c:1646 */ { //$$ = BLOCK(gen_op_target(FORK_OPT, $2), $2, $4); (yyval.blk) = gen_try((yyvsp[-2].blk), gen_try_handler((yyvsp[0].blk))); } -#line 2458 "src/parser.c" /* yacc.c:1646 */ +#line 2495 "src/parser.c" /* yacc.c:1646 */ break; case 18: -#line 373 "src/parser.y" /* yacc.c:1646 */ +#line 369 "src/parser.y" /* yacc.c:1646 */ { //$$ = BLOCK(gen_op_target(FORK_OPT, $2), $2, gen_op_simple(BACKTRACK)); (yyval.blk) = gen_try((yyvsp[0].blk), gen_op_simple(BACKTRACK)); } -#line 2467 "src/parser.c" /* yacc.c:1646 */ +#line 2504 "src/parser.c" /* yacc.c:1646 */ break; case 19: -#line 377 "src/parser.y" /* yacc.c:1646 */ +#line 373 "src/parser.y" /* yacc.c:1646 */ { FAIL((yyloc), "Possibly unterminated 'try' statement"); (yyval.blk) = (yyvsp[-2].blk); } -#line 2476 "src/parser.c" /* yacc.c:1646 */ +#line 2513 "src/parser.c" /* yacc.c:1646 */ break; case 20: -#line 382 "src/parser.y" /* yacc.c:1646 */ +#line 378 "src/parser.y" /* yacc.c:1646 */ { jv v = jv_string_fmt("*label-%s", jv_string_value((yyvsp[-2].literal))); (yyval.blk) = gen_location((yyloc), locations, gen_label(jv_string_value(v), (yyvsp[0].blk))); jv_free((yyvsp[-2].literal)); jv_free(v); } -#line 2487 "src/parser.c" /* yacc.c:1646 */ +#line 2524 "src/parser.c" /* yacc.c:1646 */ break; case 21: -#line 389 "src/parser.y" /* yacc.c:1646 */ +#line 385 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_try((yyvsp[-1].blk), gen_op_simple(BACKTRACK)); } -#line 2495 "src/parser.c" /* yacc.c:1646 */ +#line 2532 "src/parser.c" /* yacc.c:1646 */ break; case 22: -#line 393 "src/parser.y" /* yacc.c:1646 */ +#line 389 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_call("_assign", BLOCK(gen_lambda((yyvsp[-2].blk)), gen_lambda((yyvsp[0].blk)))); } -#line 2503 "src/parser.c" /* yacc.c:1646 */ +#line 2540 "src/parser.c" /* yacc.c:1646 */ break; case 23: -#line 397 "src/parser.y" /* yacc.c:1646 */ +#line 393 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_or((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2511 "src/parser.c" /* yacc.c:1646 */ +#line 2548 "src/parser.c" /* yacc.c:1646 */ break; case 24: -#line 401 "src/parser.y" /* yacc.c:1646 */ +#line 397 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_and((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2519 "src/parser.c" /* yacc.c:1646 */ +#line 2556 "src/parser.c" /* yacc.c:1646 */ break; case 25: -#line 405 "src/parser.y" /* yacc.c:1646 */ +#line 401 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_definedor((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2527 "src/parser.c" /* yacc.c:1646 */ +#line 2564 "src/parser.c" /* yacc.c:1646 */ break; case 26: -#line 409 "src/parser.y" /* yacc.c:1646 */ +#line 405 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_definedor_assign((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2535 "src/parser.c" /* yacc.c:1646 */ +#line 2572 "src/parser.c" /* yacc.c:1646 */ break; case 27: -#line 413 "src/parser.y" /* yacc.c:1646 */ +#line 409 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_call("_modify", BLOCK(gen_lambda((yyvsp[-2].blk)), gen_lambda((yyvsp[0].blk)))); } -#line 2543 "src/parser.c" /* yacc.c:1646 */ +#line 2580 "src/parser.c" /* yacc.c:1646 */ break; case 28: -#line 417 "src/parser.y" /* yacc.c:1646 */ +#line 413 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = block_join((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2551 "src/parser.c" /* yacc.c:1646 */ +#line 2588 "src/parser.c" /* yacc.c:1646 */ break; case 29: -#line 421 "src/parser.y" /* yacc.c:1646 */ +#line 417 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_both((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2559 "src/parser.c" /* yacc.c:1646 */ +#line 2596 "src/parser.c" /* yacc.c:1646 */ break; case 30: -#line 425 "src/parser.y" /* yacc.c:1646 */ +#line 421 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '+'); } -#line 2567 "src/parser.c" /* yacc.c:1646 */ +#line 2604 "src/parser.c" /* yacc.c:1646 */ break; case 31: -#line 429 "src/parser.y" /* yacc.c:1646 */ +#line 425 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '+'); } -#line 2575 "src/parser.c" /* yacc.c:1646 */ +#line 2612 "src/parser.c" /* yacc.c:1646 */ break; case 32: -#line 433 "src/parser.y" /* yacc.c:1646 */ +#line 429 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = BLOCK((yyvsp[0].blk), gen_call("_negate", gen_noop())); } -#line 2583 "src/parser.c" /* yacc.c:1646 */ +#line 2620 "src/parser.c" /* yacc.c:1646 */ break; case 33: -#line 437 "src/parser.y" /* yacc.c:1646 */ +#line 433 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '-'); } -#line 2591 "src/parser.c" /* yacc.c:1646 */ +#line 2628 "src/parser.c" /* yacc.c:1646 */ break; case 34: -#line 441 "src/parser.y" /* yacc.c:1646 */ +#line 437 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '-'); } -#line 2599 "src/parser.c" /* yacc.c:1646 */ +#line 2636 "src/parser.c" /* yacc.c:1646 */ break; case 35: -#line 445 "src/parser.y" /* yacc.c:1646 */ +#line 441 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '*'); } -#line 2607 "src/parser.c" /* yacc.c:1646 */ +#line 2644 "src/parser.c" /* yacc.c:1646 */ break; case 36: -#line 449 "src/parser.y" /* yacc.c:1646 */ +#line 445 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '*'); } -#line 2615 "src/parser.c" /* yacc.c:1646 */ +#line 2652 "src/parser.c" /* yacc.c:1646 */ break; case 37: -#line 453 "src/parser.y" /* yacc.c:1646 */ +#line 449 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '/'); if (block_is_const_inf((yyval.blk))) FAIL((yyloc), "Division by zero?"); } -#line 2625 "src/parser.c" /* yacc.c:1646 */ +#line 2662 "src/parser.c" /* yacc.c:1646 */ break; case 38: -#line 459 "src/parser.y" /* yacc.c:1646 */ +#line 455 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '%'); if (block_is_const_inf((yyval.blk))) FAIL((yyloc), "Remainder by zero?"); } -#line 2635 "src/parser.c" /* yacc.c:1646 */ +#line 2672 "src/parser.c" /* yacc.c:1646 */ break; case 39: -#line 465 "src/parser.y" /* yacc.c:1646 */ +#line 461 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '/'); } -#line 2643 "src/parser.c" /* yacc.c:1646 */ +#line 2680 "src/parser.c" /* yacc.c:1646 */ break; case 40: -#line 469 "src/parser.y" /* yacc.c:1646 */ +#line 465 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '%'); } -#line 2651 "src/parser.c" /* yacc.c:1646 */ +#line 2688 "src/parser.c" /* yacc.c:1646 */ break; case 41: -#line 473 "src/parser.y" /* yacc.c:1646 */ +#line 469 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), EQ); } -#line 2659 "src/parser.c" /* yacc.c:1646 */ +#line 2696 "src/parser.c" /* yacc.c:1646 */ break; case 42: -#line 477 "src/parser.y" /* yacc.c:1646 */ +#line 473 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), NEQ); } -#line 2667 "src/parser.c" /* yacc.c:1646 */ +#line 2704 "src/parser.c" /* yacc.c:1646 */ break; case 43: -#line 481 "src/parser.y" /* yacc.c:1646 */ +#line 477 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '<'); } -#line 2675 "src/parser.c" /* yacc.c:1646 */ +#line 2712 "src/parser.c" /* yacc.c:1646 */ break; case 44: -#line 485 "src/parser.y" /* yacc.c:1646 */ +#line 481 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '>'); } -#line 2683 "src/parser.c" /* yacc.c:1646 */ +#line 2720 "src/parser.c" /* yacc.c:1646 */ break; case 45: -#line 489 "src/parser.y" /* yacc.c:1646 */ +#line 485 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), LESSEQ); } -#line 2691 "src/parser.c" /* yacc.c:1646 */ +#line 2728 "src/parser.c" /* yacc.c:1646 */ break; case 46: -#line 493 "src/parser.y" /* yacc.c:1646 */ +#line 489 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), GREATEREQ); } -#line 2699 "src/parser.c" /* yacc.c:1646 */ +#line 2736 "src/parser.c" /* yacc.c:1646 */ break; case 47: -#line 497 "src/parser.y" /* yacc.c:1646 */ +#line 493 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[0].blk); } -#line 2707 "src/parser.c" /* yacc.c:1646 */ +#line 2744 "src/parser.c" /* yacc.c:1646 */ break; case 48: -#line 502 "src/parser.y" /* yacc.c:1646 */ +#line 498 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[-1].blk); } -#line 2715 "src/parser.c" /* yacc.c:1646 */ +#line 2752 "src/parser.c" /* yacc.c:1646 */ break; case 49: -#line 505 "src/parser.y" /* yacc.c:1646 */ +#line 501 "src/parser.y" /* yacc.c:1646 */ { if (!block_is_const((yyvsp[-1].blk))) { FAIL((yyloc), "Module metadata must be constant"); @@ -2731,11 +2768,11 @@ yyreduce: (yyval.blk) = gen_import_meta((yyvsp[-2].blk), (yyvsp[-1].blk)); } } -#line 2735 "src/parser.c" /* yacc.c:1646 */ +#line 2772 "src/parser.c" /* yacc.c:1646 */ break; case 50: -#line 522 "src/parser.y" /* yacc.c:1646 */ +#line 518 "src/parser.y" /* yacc.c:1646 */ { jv v = block_const((yyvsp[-3].blk)); // XXX Make gen_import take only blocks and the int is_data so we @@ -2745,11 +2782,11 @@ yyreduce: jv_free((yyvsp[0].literal)); jv_free(v); } -#line 2749 "src/parser.c" /* yacc.c:1646 */ +#line 2786 "src/parser.c" /* yacc.c:1646 */ break; case 51: -#line 531 "src/parser.y" /* yacc.c:1646 */ +#line 527 "src/parser.y" /* yacc.c:1646 */ { jv v = block_const((yyvsp[-2].blk)); (yyval.blk) = gen_import(jv_string_value(v), jv_string_value((yyvsp[0].literal)), 0); @@ -2757,22 +2794,22 @@ yyreduce: jv_free((yyvsp[0].literal)); jv_free(v); } -#line 2761 "src/parser.c" /* yacc.c:1646 */ +#line 2798 "src/parser.c" /* yacc.c:1646 */ break; case 52: -#line 538 "src/parser.y" /* yacc.c:1646 */ +#line 534 "src/parser.y" /* yacc.c:1646 */ { 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 2772 "src/parser.c" /* yacc.c:1646 */ +#line 2809 "src/parser.c" /* yacc.c:1646 */ break; case 53: -#line 546 "src/parser.y" /* yacc.c:1646 */ +#line 542 "src/parser.y" /* yacc.c:1646 */ { if (!block_is_const((yyvsp[0].blk))) { FAIL((yyloc), "Import path must be constant"); @@ -2782,173 +2819,173 @@ yyreduce: (yyval.blk) = (yyvsp[0].blk); } } -#line 2786 "src/parser.c" /* yacc.c:1646 */ +#line 2823 "src/parser.c" /* yacc.c:1646 */ break; case 54: -#line 557 "src/parser.y" /* yacc.c:1646 */ +#line 553 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_function(jv_string_value((yyvsp[-3].literal)), gen_noop(), (yyvsp[-1].blk)); jv_free((yyvsp[-3].literal)); } -#line 2795 "src/parser.c" /* yacc.c:1646 */ +#line 2832 "src/parser.c" /* yacc.c:1646 */ break; case 55: -#line 562 "src/parser.y" /* yacc.c:1646 */ +#line 558 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_function(jv_string_value((yyvsp[-6].literal)), (yyvsp[-4].blk), (yyvsp[-1].blk)); jv_free((yyvsp[-6].literal)); } -#line 2804 "src/parser.c" /* yacc.c:1646 */ +#line 2841 "src/parser.c" /* yacc.c:1646 */ break; case 56: -#line 568 "src/parser.y" /* yacc.c:1646 */ +#line 564 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[0].blk); } -#line 2812 "src/parser.c" /* yacc.c:1646 */ +#line 2849 "src/parser.c" /* yacc.c:1646 */ break; case 57: -#line 571 "src/parser.y" /* yacc.c:1646 */ +#line 567 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2820 "src/parser.c" /* yacc.c:1646 */ +#line 2857 "src/parser.c" /* yacc.c:1646 */ break; case 58: -#line 576 "src/parser.y" /* yacc.c:1646 */ +#line 572 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_param_regular(jv_string_value((yyvsp[0].literal))); jv_free((yyvsp[0].literal)); } -#line 2829 "src/parser.c" /* yacc.c:1646 */ +#line 2866 "src/parser.c" /* yacc.c:1646 */ break; case 59: -#line 581 "src/parser.y" /* yacc.c:1646 */ +#line 577 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_param(jv_string_value((yyvsp[0].literal))); jv_free((yyvsp[0].literal)); } -#line 2838 "src/parser.c" /* yacc.c:1646 */ +#line 2875 "src/parser.c" /* yacc.c:1646 */ break; case 60: -#line 588 "src/parser.y" /* yacc.c:1646 */ +#line 584 "src/parser.y" /* yacc.c:1646 */ { (yyval.literal) = jv_string("text"); } -#line 2844 "src/parser.c" /* yacc.c:1646 */ +#line 2881 "src/parser.c" /* yacc.c:1646 */ break; case 61: +#line 584 "src/parser.y" /* yacc.c:1646 */ + { + (yyval.blk) = (yyvsp[-1].blk); + jv_free((yyvsp[-2].literal)); +} +#line 2890 "src/parser.c" /* yacc.c:1646 */ + break; + + case 62: +#line 588 "src/parser.y" /* yacc.c:1646 */ + { (yyval.literal) = (yyvsp[-1].literal); } +#line 2896 "src/parser.c" /* yacc.c:1646 */ + break; + + case 63: #line 588 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[-1].blk); jv_free((yyvsp[-2].literal)); } -#line 2853 "src/parser.c" /* yacc.c:1646 */ - break; - - case 62: -#line 592 "src/parser.y" /* yacc.c:1646 */ - { (yyval.literal) = (yyvsp[-1].literal); } -#line 2859 "src/parser.c" /* yacc.c:1646 */ - break; - - case 63: -#line 592 "src/parser.y" /* yacc.c:1646 */ - { - (yyval.blk) = (yyvsp[-1].blk); - jv_free((yyvsp[-2].literal)); -} -#line 2868 "src/parser.c" /* yacc.c:1646 */ +#line 2905 "src/parser.c" /* yacc.c:1646 */ break; case 64: -#line 599 "src/parser.y" /* yacc.c:1646 */ +#line 595 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_const(jv_string("")); } -#line 2876 "src/parser.c" /* yacc.c:1646 */ +#line 2913 "src/parser.c" /* yacc.c:1646 */ break; case 65: -#line 602 "src/parser.y" /* yacc.c:1646 */ +#line 598 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-1].blk), gen_const((yyvsp[0].literal)), '+'); } -#line 2884 "src/parser.c" /* yacc.c:1646 */ +#line 2921 "src/parser.c" /* yacc.c:1646 */ break; case 66: -#line 605 "src/parser.y" /* yacc.c:1646 */ +#line 601 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_binop((yyvsp[-3].blk), gen_format((yyvsp[-1].blk), jv_copy((yyvsp[-4].literal))), '+'); } -#line 2892 "src/parser.c" /* yacc.c:1646 */ +#line 2929 "src/parser.c" /* yacc.c:1646 */ break; case 67: -#line 611 "src/parser.y" /* yacc.c:1646 */ +#line 607 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_cond((yyvsp[-3].blk), (yyvsp[-1].blk), (yyvsp[0].blk)); } -#line 2900 "src/parser.c" /* yacc.c:1646 */ +#line 2937 "src/parser.c" /* yacc.c:1646 */ break; case 68: -#line 614 "src/parser.y" /* yacc.c:1646 */ +#line 610 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[-1].blk); } -#line 2908 "src/parser.c" /* yacc.c:1646 */ +#line 2945 "src/parser.c" /* yacc.c:1646 */ break; case 69: -#line 619 "src/parser.y" /* yacc.c:1646 */ +#line 615 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = block_join((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 2916 "src/parser.c" /* yacc.c:1646 */ +#line 2953 "src/parser.c" /* yacc.c:1646 */ break; case 70: -#line 622 "src/parser.y" /* yacc.c:1646 */ +#line 618 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = BLOCK((yyvsp[0].blk), gen_call("_negate", gen_noop())); } -#line 2924 "src/parser.c" /* yacc.c:1646 */ +#line 2961 "src/parser.c" /* yacc.c:1646 */ break; case 71: -#line 625 "src/parser.y" /* yacc.c:1646 */ +#line 621 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[0].blk); } -#line 2932 "src/parser.c" /* yacc.c:1646 */ +#line 2969 "src/parser.c" /* yacc.c:1646 */ break; case 72: -#line 631 "src/parser.y" /* yacc.c:1646 */ +#line 627 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_noop(); } -#line 2940 "src/parser.c" /* yacc.c:1646 */ +#line 2977 "src/parser.c" /* yacc.c:1646 */ break; case 73: -#line 634 "src/parser.y" /* yacc.c:1646 */ +#line 630 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_call("recurse", gen_noop()); } -#line 2948 "src/parser.c" /* yacc.c:1646 */ +#line 2985 "src/parser.c" /* yacc.c:1646 */ break; case 74: -#line 637 "src/parser.y" /* yacc.c:1646 */ +#line 633 "src/parser.y" /* yacc.c:1646 */ { jv v = jv_string_fmt("*label-%s", jv_string_value((yyvsp[0].literal))); // impossible symbol (yyval.blk) = gen_location((yyloc), locations, @@ -2957,231 +2994,231 @@ yyreduce: jv_free(v); jv_free((yyvsp[0].literal)); } -#line 2961 "src/parser.c" /* yacc.c:1646 */ +#line 2998 "src/parser.c" /* yacc.c:1646 */ break; case 75: -#line 645 "src/parser.y" /* yacc.c:1646 */ +#line 641 "src/parser.y" /* yacc.c:1646 */ { FAIL((yyloc), "break requires a label to break to"); (yyval.blk) = gen_noop(); } -#line 2970 "src/parser.c" /* yacc.c:1646 */ +#line 3007 "src/parser.c" /* yacc.c:1646 */ break; case 76: -#line 649 "src/parser.y" /* yacc.c:1646 */ +#line 645 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index_opt((yyvsp[-2].blk), gen_const((yyvsp[-1].literal))); } -#line 2978 "src/parser.c" /* yacc.c:1646 */ +#line 3015 "src/parser.c" /* yacc.c:1646 */ break; case 77: -#line 652 "src/parser.y" /* yacc.c:1646 */ +#line 648 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index_opt(gen_noop(), gen_const((yyvsp[-1].literal))); } -#line 2986 "src/parser.c" /* yacc.c:1646 */ +#line 3023 "src/parser.c" /* yacc.c:1646 */ break; case 78: -#line 655 "src/parser.y" /* yacc.c:1646 */ +#line 651 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index_opt((yyvsp[-3].blk), (yyvsp[-1].blk)); } -#line 2994 "src/parser.c" /* yacc.c:1646 */ +#line 3031 "src/parser.c" /* yacc.c:1646 */ break; case 79: -#line 658 "src/parser.y" /* yacc.c:1646 */ +#line 654 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index_opt(gen_noop(), (yyvsp[-1].blk)); } -#line 3002 "src/parser.c" /* yacc.c:1646 */ +#line 3039 "src/parser.c" /* yacc.c:1646 */ break; case 80: -#line 661 "src/parser.y" /* yacc.c:1646 */ +#line 657 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index((yyvsp[-1].blk), gen_const((yyvsp[0].literal))); } -#line 3010 "src/parser.c" /* yacc.c:1646 */ +#line 3047 "src/parser.c" /* yacc.c:1646 */ break; case 81: -#line 664 "src/parser.y" /* yacc.c:1646 */ +#line 660 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index(gen_noop(), gen_const((yyvsp[0].literal))); } -#line 3018 "src/parser.c" /* yacc.c:1646 */ +#line 3055 "src/parser.c" /* yacc.c:1646 */ break; case 82: -#line 667 "src/parser.y" /* yacc.c:1646 */ +#line 663 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3026 "src/parser.c" /* yacc.c:1646 */ +#line 3063 "src/parser.c" /* yacc.c:1646 */ break; case 83: -#line 670 "src/parser.y" /* yacc.c:1646 */ +#line 666 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index(gen_noop(), (yyvsp[0].blk)); } -#line 3034 "src/parser.c" /* yacc.c:1646 */ +#line 3071 "src/parser.c" /* yacc.c:1646 */ break; case 84: -#line 673 "src/parser.y" /* yacc.c:1646 */ +#line 669 "src/parser.y" /* yacc.c:1646 */ { FAIL((yyloc), "try .[\"field\"] instead of .field for unusually named fields"); (yyval.blk) = gen_noop(); } -#line 3043 "src/parser.c" /* yacc.c:1646 */ +#line 3080 "src/parser.c" /* yacc.c:1646 */ break; case 85: -#line 677 "src/parser.y" /* yacc.c:1646 */ +#line 673 "src/parser.y" /* yacc.c:1646 */ { jv_free((yyvsp[-1].literal)); FAIL((yyloc), "try .[\"field\"] instead of .field for unusually named fields"); (yyval.blk) = gen_noop(); } -#line 3053 "src/parser.c" /* yacc.c:1646 */ +#line 3090 "src/parser.c" /* yacc.c:1646 */ break; case 86: -#line 683 "src/parser.y" /* yacc.c:1646 */ +#line 679 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index_opt((yyvsp[-4].blk), (yyvsp[-2].blk)); } -#line 3061 "src/parser.c" /* yacc.c:1646 */ +#line 3098 "src/parser.c" /* yacc.c:1646 */ break; case 87: -#line 686 "src/parser.y" /* yacc.c:1646 */ +#line 682 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_index((yyvsp[-3].blk), (yyvsp[-1].blk)); } -#line 3069 "src/parser.c" /* yacc.c:1646 */ +#line 3106 "src/parser.c" /* yacc.c:1646 */ break; case 88: -#line 689 "src/parser.y" /* yacc.c:1646 */ +#line 685 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = block_join((yyvsp[-3].blk), gen_op_simple(EACH_OPT)); } -#line 3077 "src/parser.c" /* yacc.c:1646 */ +#line 3114 "src/parser.c" /* yacc.c:1646 */ break; case 89: -#line 692 "src/parser.y" /* yacc.c:1646 */ +#line 688 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = block_join((yyvsp[-2].blk), gen_op_simple(EACH)); } -#line 3085 "src/parser.c" /* yacc.c:1646 */ +#line 3122 "src/parser.c" /* yacc.c:1646 */ break; case 90: -#line 695 "src/parser.y" /* yacc.c:1646 */ +#line 691 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_slice_index((yyvsp[-6].blk), (yyvsp[-4].blk), (yyvsp[-2].blk), INDEX_OPT); } -#line 3093 "src/parser.c" /* yacc.c:1646 */ +#line 3130 "src/parser.c" /* yacc.c:1646 */ break; case 91: -#line 698 "src/parser.y" /* yacc.c:1646 */ +#line 694 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_slice_index((yyvsp[-5].blk), (yyvsp[-3].blk), gen_const(jv_null()), INDEX_OPT); } -#line 3101 "src/parser.c" /* yacc.c:1646 */ +#line 3138 "src/parser.c" /* yacc.c:1646 */ break; case 92: -#line 701 "src/parser.y" /* yacc.c:1646 */ +#line 697 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_slice_index((yyvsp[-5].blk), gen_const(jv_null()), (yyvsp[-2].blk), INDEX_OPT); } -#line 3109 "src/parser.c" /* yacc.c:1646 */ +#line 3146 "src/parser.c" /* yacc.c:1646 */ break; case 93: -#line 704 "src/parser.y" /* yacc.c:1646 */ +#line 700 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_slice_index((yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk), INDEX); } -#line 3117 "src/parser.c" /* yacc.c:1646 */ +#line 3154 "src/parser.c" /* yacc.c:1646 */ break; case 94: -#line 707 "src/parser.y" /* yacc.c:1646 */ +#line 703 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_slice_index((yyvsp[-4].blk), (yyvsp[-2].blk), gen_const(jv_null()), INDEX); } -#line 3125 "src/parser.c" /* yacc.c:1646 */ +#line 3162 "src/parser.c" /* yacc.c:1646 */ break; case 95: -#line 710 "src/parser.y" /* yacc.c:1646 */ +#line 706 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_slice_index((yyvsp[-4].blk), gen_const(jv_null()), (yyvsp[-1].blk), INDEX); } -#line 3133 "src/parser.c" /* yacc.c:1646 */ +#line 3170 "src/parser.c" /* yacc.c:1646 */ break; case 96: -#line 713 "src/parser.y" /* yacc.c:1646 */ +#line 709 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_const((yyvsp[0].literal)); } -#line 3141 "src/parser.c" /* yacc.c:1646 */ +#line 3178 "src/parser.c" /* yacc.c:1646 */ break; case 97: -#line 716 "src/parser.y" /* yacc.c:1646 */ +#line 712 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[0].blk); } -#line 3149 "src/parser.c" /* yacc.c:1646 */ +#line 3186 "src/parser.c" /* yacc.c:1646 */ break; case 98: -#line 719 "src/parser.y" /* yacc.c:1646 */ +#line 715 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_format(gen_noop(), (yyvsp[0].literal)); } -#line 3157 "src/parser.c" /* yacc.c:1646 */ +#line 3194 "src/parser.c" /* yacc.c:1646 */ break; case 99: -#line 722 "src/parser.y" /* yacc.c:1646 */ +#line 718 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[-1].blk); } -#line 3165 "src/parser.c" /* yacc.c:1646 */ +#line 3202 "src/parser.c" /* yacc.c:1646 */ break; case 100: -#line 725 "src/parser.y" /* yacc.c:1646 */ +#line 721 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_collect((yyvsp[-1].blk)); } -#line 3173 "src/parser.c" /* yacc.c:1646 */ +#line 3210 "src/parser.c" /* yacc.c:1646 */ break; case 101: -#line 728 "src/parser.y" /* yacc.c:1646 */ +#line 724 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_const(jv_array()); } -#line 3181 "src/parser.c" /* yacc.c:1646 */ +#line 3218 "src/parser.c" /* yacc.c:1646 */ break; case 102: -#line 731 "src/parser.y" /* yacc.c:1646 */ +#line 727 "src/parser.y" /* yacc.c:1646 */ { block o = gen_const_object((yyvsp[-1].blk)); if (o.first != NULL) @@ -3189,29 +3226,29 @@ yyreduce: else (yyval.blk) = BLOCK(gen_subexp(gen_const(jv_object())), (yyvsp[-1].blk), gen_op_simple(POP)); } -#line 3193 "src/parser.c" /* yacc.c:1646 */ +#line 3230 "src/parser.c" /* yacc.c:1646 */ break; case 103: -#line 738 "src/parser.y" /* yacc.c:1646 */ +#line 734 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_const(JV_OBJECT(jv_string("file"), jv_copy(locations->fname), jv_string("line"), jv_number(locfile_get_line(locations, (yyloc).start) + 1))); } -#line 3202 "src/parser.c" /* yacc.c:1646 */ +#line 3239 "src/parser.c" /* yacc.c:1646 */ break; case 104: -#line 742 "src/parser.y" /* yacc.c:1646 */ +#line 738 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_location((yyloc), locations, gen_op_unbound(LOADV, jv_string_value((yyvsp[0].literal)))); jv_free((yyvsp[0].literal)); } -#line 3211 "src/parser.c" /* yacc.c:1646 */ +#line 3248 "src/parser.c" /* yacc.c:1646 */ break; case 105: -#line 746 "src/parser.y" /* yacc.c:1646 */ +#line 742 "src/parser.y" /* yacc.c:1646 */ { const char *s = jv_string_value((yyvsp[0].literal)); if (strcmp(s, "false") == 0) @@ -3224,159 +3261,191 @@ yyreduce: (yyval.blk) = gen_location((yyloc), locations, gen_call(s, gen_noop())); jv_free((yyvsp[0].literal)); } -#line 3228 "src/parser.c" /* yacc.c:1646 */ +#line 3265 "src/parser.c" /* yacc.c:1646 */ break; case 106: -#line 758 "src/parser.y" /* yacc.c:1646 */ +#line 754 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_call(jv_string_value((yyvsp[-3].literal)), (yyvsp[-1].blk)); (yyval.blk) = gen_location((yylsp[-3]), locations, (yyval.blk)); jv_free((yyvsp[-3].literal)); } -#line 3238 "src/parser.c" /* yacc.c:1646 */ +#line 3275 "src/parser.c" /* yacc.c:1646 */ break; case 107: -#line 763 "src/parser.y" /* yacc.c:1646 */ +#line 759 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_noop(); } -#line 3244 "src/parser.c" /* yacc.c:1646 */ +#line 3281 "src/parser.c" /* yacc.c:1646 */ break; case 108: -#line 764 "src/parser.y" /* yacc.c:1646 */ +#line 760 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_noop(); } -#line 3250 "src/parser.c" /* yacc.c:1646 */ +#line 3287 "src/parser.c" /* yacc.c:1646 */ break; case 109: -#line 765 "src/parser.y" /* yacc.c:1646 */ +#line 761 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[-3].blk); } -#line 3256 "src/parser.c" /* yacc.c:1646 */ +#line 3293 "src/parser.c" /* yacc.c:1646 */ break; case 110: -#line 766 "src/parser.y" /* yacc.c:1646 */ +#line 762 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_noop(); } -#line 3262 "src/parser.c" /* yacc.c:1646 */ +#line 3299 "src/parser.c" /* yacc.c:1646 */ break; case 111: -#line 769 "src/parser.y" /* yacc.c:1646 */ +#line 765 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = (yyvsp[0].blk); } -#line 3270 "src/parser.c" /* yacc.c:1646 */ +#line 3307 "src/parser.c" /* yacc.c:1646 */ break; case 112: -#line 772 "src/parser.y" /* yacc.c:1646 */ +#line 768 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3278 "src/parser.c" /* yacc.c:1646 */ +#line 3315 "src/parser.c" /* yacc.c:1646 */ break; case 113: -#line 777 "src/parser.y" /* yacc.c:1646 */ +#line 773 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_lambda((yyvsp[0].blk)); } -#line 3286 "src/parser.c" /* yacc.c:1646 */ +#line 3323 "src/parser.c" /* yacc.c:1646 */ break; case 114: -#line 782 "src/parser.y" /* yacc.c:1646 */ +#line 778 "src/parser.y" /* yacc.c:1646 */ + { + (yyval.blk) = BLOCK((yyvsp[-2].blk), gen_destructure_alt((yyvsp[0].blk))); +} +#line 3331 "src/parser.c" /* yacc.c:1646 */ + break; + + case 115: +#line 781 "src/parser.y" /* yacc.c:1646 */ + { + (yyval.blk) = gen_destructure_alt((yyvsp[0].blk)); +} +#line 3339 "src/parser.c" /* yacc.c:1646 */ + break; + + case 116: +#line 786 "src/parser.y" /* yacc.c:1646 */ + { + (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk)); +} +#line 3347 "src/parser.c" /* yacc.c:1646 */ + break; + + case 117: +#line 789 "src/parser.y" /* yacc.c:1646 */ + { + (yyval.blk) = (yyvsp[0].blk); +} +#line 3355 "src/parser.c" /* yacc.c:1646 */ + break; + + case 118: +#line 794 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_op_unbound(STOREV, jv_string_value((yyvsp[0].literal))); jv_free((yyvsp[0].literal)); } -#line 3295 "src/parser.c" /* yacc.c:1646 */ - break; - - case 115: -#line 786 "src/parser.y" /* yacc.c:1646 */ - { - (yyval.blk) = BLOCK((yyvsp[-1].blk), gen_op_simple(POP)); -} -#line 3303 "src/parser.c" /* yacc.c:1646 */ - break; - - case 116: -#line 789 "src/parser.y" /* yacc.c:1646 */ - { - (yyval.blk) = BLOCK((yyvsp[-1].blk), gen_op_simple(POP)); -} -#line 3311 "src/parser.c" /* yacc.c:1646 */ - break; - - case 117: -#line 794 "src/parser.y" /* yacc.c:1646 */ - { - (yyval.blk) = gen_array_matcher(gen_noop(), (yyvsp[0].blk)); -} -#line 3319 "src/parser.c" /* yacc.c:1646 */ - break; - - case 118: -#line 797 "src/parser.y" /* yacc.c:1646 */ - { - (yyval.blk) = gen_array_matcher((yyvsp[-2].blk), (yyvsp[0].blk)); -} -#line 3327 "src/parser.c" /* yacc.c:1646 */ +#line 3364 "src/parser.c" /* yacc.c:1646 */ break; case 119: -#line 802 "src/parser.y" /* yacc.c:1646 */ +#line 798 "src/parser.y" /* yacc.c:1646 */ { - (yyval.blk) = (yyvsp[0].blk); + (yyval.blk) = BLOCK((yyvsp[-1].blk), gen_op_simple(POP)); } -#line 3335 "src/parser.c" /* yacc.c:1646 */ +#line 3372 "src/parser.c" /* yacc.c:1646 */ break; case 120: -#line 805 "src/parser.y" /* yacc.c:1646 */ +#line 801 "src/parser.y" /* yacc.c:1646 */ { - (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk)); + (yyval.blk) = BLOCK((yyvsp[-1].blk), gen_op_simple(POP)); } -#line 3343 "src/parser.c" /* yacc.c:1646 */ +#line 3380 "src/parser.c" /* yacc.c:1646 */ break; case 121: -#line 810 "src/parser.y" /* yacc.c:1646 */ +#line 806 "src/parser.y" /* yacc.c:1646 */ { - (yyval.blk) = gen_object_matcher(gen_const((yyvsp[0].literal)), gen_op_unbound(STOREV, jv_string_value((yyvsp[0].literal)))); + (yyval.blk) = gen_array_matcher(gen_noop(), (yyvsp[0].blk)); } -#line 3351 "src/parser.c" /* yacc.c:1646 */ +#line 3388 "src/parser.c" /* yacc.c:1646 */ break; case 122: -#line 813 "src/parser.y" /* yacc.c:1646 */ +#line 809 "src/parser.y" /* yacc.c:1646 */ { - (yyval.blk) = gen_object_matcher(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); + (yyval.blk) = gen_array_matcher((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3359 "src/parser.c" /* yacc.c:1646 */ +#line 3396 "src/parser.c" /* yacc.c:1646 */ break; case 123: -#line 816 "src/parser.y" /* yacc.c:1646 */ +#line 814 "src/parser.y" /* yacc.c:1646 */ { - (yyval.blk) = gen_object_matcher(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); + (yyval.blk) = (yyvsp[0].blk); } -#line 3367 "src/parser.c" /* yacc.c:1646 */ +#line 3404 "src/parser.c" /* yacc.c:1646 */ break; case 124: -#line 819 "src/parser.y" /* yacc.c:1646 */ +#line 817 "src/parser.y" /* yacc.c:1646 */ { - (yyval.blk) = gen_object_matcher((yyvsp[-2].blk), (yyvsp[0].blk)); + (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3375 "src/parser.c" /* yacc.c:1646 */ +#line 3412 "src/parser.c" /* yacc.c:1646 */ break; case 125: #line 822 "src/parser.y" /* yacc.c:1646 */ { + (yyval.blk) = gen_object_matcher(gen_const((yyvsp[0].literal)), gen_op_unbound(STOREV, jv_string_value((yyvsp[0].literal)))); +} +#line 3420 "src/parser.c" /* yacc.c:1646 */ + break; + + case 126: +#line 825 "src/parser.y" /* yacc.c:1646 */ + { + (yyval.blk) = gen_object_matcher(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); +} +#line 3428 "src/parser.c" /* yacc.c:1646 */ + break; + + case 127: +#line 828 "src/parser.y" /* yacc.c:1646 */ + { + (yyval.blk) = gen_object_matcher(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); +} +#line 3436 "src/parser.c" /* yacc.c:1646 */ + break; + + case 128: +#line 831 "src/parser.y" /* yacc.c:1646 */ + { + (yyval.blk) = gen_object_matcher((yyvsp[-2].blk), (yyvsp[0].blk)); +} +#line 3444 "src/parser.c" /* yacc.c:1646 */ + break; + + case 129: +#line 834 "src/parser.y" /* yacc.c:1646 */ + { jv msg = check_object_key((yyvsp[-3].blk)); if (jv_is_valid(msg)) { FAIL((yyloc), jv_string_value(msg)); @@ -3384,249 +3453,249 @@ yyreduce: jv_free(msg); (yyval.blk) = gen_object_matcher((yyvsp[-3].blk), (yyvsp[0].blk)); } -#line 3388 "src/parser.c" /* yacc.c:1646 */ +#line 3457 "src/parser.c" /* yacc.c:1646 */ break; - case 126: -#line 830 "src/parser.y" /* yacc.c:1646 */ + case 130: +#line 842 "src/parser.y" /* yacc.c:1646 */ { FAIL((yyloc), "May need parentheses around object key expression"); (yyval.blk) = (yyvsp[0].blk); } -#line 3397 "src/parser.c" /* yacc.c:1646 */ - break; - - case 127: -#line 836 "src/parser.y" /* yacc.c:1646 */ - { - (yyval.literal) = jv_string("as"); -} -#line 3405 "src/parser.c" /* yacc.c:1646 */ - break; - - case 128: -#line 839 "src/parser.y" /* yacc.c:1646 */ - { - (yyval.literal) = jv_string("def"); -} -#line 3413 "src/parser.c" /* yacc.c:1646 */ - break; - - case 129: -#line 842 "src/parser.y" /* yacc.c:1646 */ - { - (yyval.literal) = jv_string("module"); -} -#line 3421 "src/parser.c" /* yacc.c:1646 */ - break; - - case 130: -#line 845 "src/parser.y" /* yacc.c:1646 */ - { - (yyval.literal) = jv_string("import"); -} -#line 3429 "src/parser.c" /* yacc.c:1646 */ +#line 3466 "src/parser.c" /* yacc.c:1646 */ break; case 131: #line 848 "src/parser.y" /* yacc.c:1646 */ { - (yyval.literal) = jv_string("include"); + (yyval.literal) = jv_string("as"); } -#line 3437 "src/parser.c" /* yacc.c:1646 */ +#line 3474 "src/parser.c" /* yacc.c:1646 */ break; case 132: #line 851 "src/parser.y" /* yacc.c:1646 */ { - (yyval.literal) = jv_string("if"); + (yyval.literal) = jv_string("def"); } -#line 3445 "src/parser.c" /* yacc.c:1646 */ +#line 3482 "src/parser.c" /* yacc.c:1646 */ break; case 133: #line 854 "src/parser.y" /* yacc.c:1646 */ { - (yyval.literal) = jv_string("then"); + (yyval.literal) = jv_string("module"); } -#line 3453 "src/parser.c" /* yacc.c:1646 */ +#line 3490 "src/parser.c" /* yacc.c:1646 */ break; case 134: #line 857 "src/parser.y" /* yacc.c:1646 */ { - (yyval.literal) = jv_string("else"); + (yyval.literal) = jv_string("import"); } -#line 3461 "src/parser.c" /* yacc.c:1646 */ +#line 3498 "src/parser.c" /* yacc.c:1646 */ break; case 135: #line 860 "src/parser.y" /* yacc.c:1646 */ { - (yyval.literal) = jv_string("elif"); + (yyval.literal) = jv_string("include"); } -#line 3469 "src/parser.c" /* yacc.c:1646 */ +#line 3506 "src/parser.c" /* yacc.c:1646 */ break; case 136: #line 863 "src/parser.y" /* yacc.c:1646 */ { - (yyval.literal) = jv_string("reduce"); + (yyval.literal) = jv_string("if"); } -#line 3477 "src/parser.c" /* yacc.c:1646 */ +#line 3514 "src/parser.c" /* yacc.c:1646 */ break; case 137: #line 866 "src/parser.y" /* yacc.c:1646 */ { - (yyval.literal) = jv_string("foreach"); + (yyval.literal) = jv_string("then"); } -#line 3485 "src/parser.c" /* yacc.c:1646 */ +#line 3522 "src/parser.c" /* yacc.c:1646 */ break; case 138: #line 869 "src/parser.y" /* yacc.c:1646 */ { - (yyval.literal) = jv_string("end"); + (yyval.literal) = jv_string("else"); } -#line 3493 "src/parser.c" /* yacc.c:1646 */ +#line 3530 "src/parser.c" /* yacc.c:1646 */ break; case 139: #line 872 "src/parser.y" /* yacc.c:1646 */ { - (yyval.literal) = jv_string("and"); + (yyval.literal) = jv_string("elif"); } -#line 3501 "src/parser.c" /* yacc.c:1646 */ +#line 3538 "src/parser.c" /* yacc.c:1646 */ break; case 140: #line 875 "src/parser.y" /* yacc.c:1646 */ { - (yyval.literal) = jv_string("or"); + (yyval.literal) = jv_string("reduce"); } -#line 3509 "src/parser.c" /* yacc.c:1646 */ +#line 3546 "src/parser.c" /* yacc.c:1646 */ break; case 141: #line 878 "src/parser.y" /* yacc.c:1646 */ { - (yyval.literal) = jv_string("try"); + (yyval.literal) = jv_string("foreach"); } -#line 3517 "src/parser.c" /* yacc.c:1646 */ +#line 3554 "src/parser.c" /* yacc.c:1646 */ break; case 142: #line 881 "src/parser.y" /* yacc.c:1646 */ { - (yyval.literal) = jv_string("catch"); + (yyval.literal) = jv_string("end"); } -#line 3525 "src/parser.c" /* yacc.c:1646 */ +#line 3562 "src/parser.c" /* yacc.c:1646 */ break; case 143: #line 884 "src/parser.y" /* yacc.c:1646 */ { - (yyval.literal) = jv_string("label"); + (yyval.literal) = jv_string("and"); } -#line 3533 "src/parser.c" /* yacc.c:1646 */ +#line 3570 "src/parser.c" /* yacc.c:1646 */ break; case 144: #line 887 "src/parser.y" /* yacc.c:1646 */ { - (yyval.literal) = jv_string("break"); + (yyval.literal) = jv_string("or"); } -#line 3541 "src/parser.c" /* yacc.c:1646 */ +#line 3578 "src/parser.c" /* yacc.c:1646 */ break; case 145: #line 890 "src/parser.y" /* yacc.c:1646 */ { - (yyval.literal) = jv_string("__loc__"); + (yyval.literal) = jv_string("try"); } -#line 3549 "src/parser.c" /* yacc.c:1646 */ +#line 3586 "src/parser.c" /* yacc.c:1646 */ break; case 146: -#line 895 "src/parser.y" /* yacc.c:1646 */ +#line 893 "src/parser.y" /* yacc.c:1646 */ { - (yyval.blk)=gen_noop(); + (yyval.literal) = jv_string("catch"); } -#line 3557 "src/parser.c" /* yacc.c:1646 */ +#line 3594 "src/parser.c" /* yacc.c:1646 */ break; case 147: -#line 898 "src/parser.y" /* yacc.c:1646 */ - { (yyval.blk) = (yyvsp[0].blk); } -#line 3563 "src/parser.c" /* yacc.c:1646 */ +#line 896 "src/parser.y" /* yacc.c:1646 */ + { + (yyval.literal) = jv_string("label"); +} +#line 3602 "src/parser.c" /* yacc.c:1646 */ break; case 148: #line 899 "src/parser.y" /* yacc.c:1646 */ - { (yyval.blk)=block_join((yyvsp[-2].blk), (yyvsp[0].blk)); } -#line 3569 "src/parser.c" /* yacc.c:1646 */ + { + (yyval.literal) = jv_string("break"); +} +#line 3610 "src/parser.c" /* yacc.c:1646 */ break; case 149: -#line 900 "src/parser.y" /* yacc.c:1646 */ - { (yyval.blk) = (yyvsp[0].blk); } -#line 3575 "src/parser.c" /* yacc.c:1646 */ +#line 902 "src/parser.y" /* yacc.c:1646 */ + { + (yyval.literal) = jv_string("__loc__"); +} +#line 3618 "src/parser.c" /* yacc.c:1646 */ break; case 150: -#line 903 "src/parser.y" /* yacc.c:1646 */ +#line 907 "src/parser.y" /* yacc.c:1646 */ { - (yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); - } -#line 3583 "src/parser.c" /* yacc.c:1646 */ + (yyval.blk)=gen_noop(); +} +#line 3626 "src/parser.c" /* yacc.c:1646 */ break; case 151: -#line 906 "src/parser.y" /* yacc.c:1646 */ - { - (yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); - } -#line 3591 "src/parser.c" /* yacc.c:1646 */ +#line 910 "src/parser.y" /* yacc.c:1646 */ + { (yyval.blk) = (yyvsp[0].blk); } +#line 3632 "src/parser.c" /* yacc.c:1646 */ break; case 152: -#line 909 "src/parser.y" /* yacc.c:1646 */ - { - (yyval.blk) = gen_dictpair((yyvsp[-2].blk), (yyvsp[0].blk)); - } -#line 3599 "src/parser.c" /* yacc.c:1646 */ +#line 911 "src/parser.y" /* yacc.c:1646 */ + { (yyval.blk)=block_join((yyvsp[-2].blk), (yyvsp[0].blk)); } +#line 3638 "src/parser.c" /* yacc.c:1646 */ break; case 153: #line 912 "src/parser.y" /* yacc.c:1646 */ + { (yyval.blk) = (yyvsp[0].blk); } +#line 3644 "src/parser.c" /* yacc.c:1646 */ + break; + + case 154: +#line 915 "src/parser.y" /* yacc.c:1646 */ + { + (yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); + } +#line 3652 "src/parser.c" /* yacc.c:1646 */ + break; + + case 155: +#line 918 "src/parser.y" /* yacc.c:1646 */ + { + (yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); + } +#line 3660 "src/parser.c" /* yacc.c:1646 */ + break; + + case 156: +#line 921 "src/parser.y" /* yacc.c:1646 */ + { + (yyval.blk) = gen_dictpair((yyvsp[-2].blk), (yyvsp[0].blk)); + } +#line 3668 "src/parser.c" /* yacc.c:1646 */ + break; + + case 157: +#line 924 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_dictpair((yyvsp[0].blk), BLOCK(gen_op_simple(POP), gen_op_simple(DUP2), gen_op_simple(DUP2), gen_op_simple(INDEX))); } -#line 3608 "src/parser.c" /* yacc.c:1646 */ +#line 3677 "src/parser.c" /* yacc.c:1646 */ break; - case 154: -#line 916 "src/parser.y" /* yacc.c:1646 */ + case 158: +#line 928 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_dictpair(gen_const((yyvsp[0].literal)), gen_location((yyloc), locations, gen_op_unbound(LOADV, jv_string_value((yyvsp[0].literal))))); } -#line 3617 "src/parser.c" /* yacc.c:1646 */ +#line 3686 "src/parser.c" /* yacc.c:1646 */ break; - case 155: -#line 920 "src/parser.y" /* yacc.c:1646 */ + case 159: +#line 932 "src/parser.y" /* yacc.c:1646 */ { (yyval.blk) = gen_dictpair(gen_const(jv_copy((yyvsp[0].literal))), gen_index(gen_noop(), gen_const((yyvsp[0].literal)))); } -#line 3626 "src/parser.c" /* yacc.c:1646 */ +#line 3695 "src/parser.c" /* yacc.c:1646 */ break; - case 156: -#line 924 "src/parser.y" /* yacc.c:1646 */ + case 160: +#line 936 "src/parser.y" /* yacc.c:1646 */ { jv msg = check_object_key((yyvsp[-3].blk)); if (jv_is_valid(msg)) { @@ -3635,20 +3704,20 @@ yyreduce: jv_free(msg); (yyval.blk) = gen_dictpair((yyvsp[-3].blk), (yyvsp[0].blk)); } -#line 3639 "src/parser.c" /* yacc.c:1646 */ +#line 3708 "src/parser.c" /* yacc.c:1646 */ break; - case 157: -#line 932 "src/parser.y" /* yacc.c:1646 */ + case 161: +#line 944 "src/parser.y" /* yacc.c:1646 */ { FAIL((yyloc), "May need parentheses around object key expression"); (yyval.blk) = (yyvsp[0].blk); } -#line 3648 "src/parser.c" /* yacc.c:1646 */ +#line 3717 "src/parser.c" /* yacc.c:1646 */ break; -#line 3652 "src/parser.c" /* yacc.c:1646 */ +#line 3721 "src/parser.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -3883,7 +3952,7 @@ yyreturn: #endif return yyresult; } -#line 936 "src/parser.y" /* yacc.c:1906 */ +#line 948 "src/parser.y" /* yacc.c:1906 */ int jq_parse(struct locfile* locations, block* answer) { diff --git a/src/parser.h b/src/parser.h index 6facfcce..b15c53aa 100644 --- a/src/parser.h +++ b/src/parser.h @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.0.2. */ +/* A Bison parser, made by GNU Bison 3.0.4. */ /* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2015 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 @@ -101,13 +101,14 @@ struct lexer_param; SETDEFINEDOR = 292, LESSEQ = 293, GREATEREQ = 294, - QQSTRING_START = 295, - QQSTRING_TEXT = 296, - QQSTRING_INTERP_START = 297, - QQSTRING_INTERP_END = 298, - QQSTRING_END = 299, - FUNCDEF = 300, - NONOPT = 301 + ALTERNATION = 295, + QQSTRING_START = 296, + QQSTRING_TEXT = 297, + QQSTRING_INTERP_START = 298, + QQSTRING_INTERP_END = 299, + QQSTRING_END = 300, + FUNCDEF = 301, + NONOPT = 302 }; #endif /* Tokens. */ @@ -148,17 +149,18 @@ struct lexer_param; #define SETDEFINEDOR 292 #define LESSEQ 293 #define GREATEREQ 294 -#define QQSTRING_START 295 -#define QQSTRING_TEXT 296 -#define QQSTRING_INTERP_START 297 -#define QQSTRING_INTERP_END 298 -#define QQSTRING_END 299 -#define FUNCDEF 300 -#define NONOPT 301 +#define ALTERNATION 295 +#define QQSTRING_START 296 +#define QQSTRING_TEXT 297 +#define QQSTRING_INTERP_START 298 +#define QQSTRING_INTERP_END 299 +#define QQSTRING_END 300 +#define FUNCDEF 301 +#define NONOPT 302 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE YYSTYPE; + union YYSTYPE { #line 31 "src/parser.y" /* yacc.c:1909 */ @@ -166,8 +168,10 @@ union YYSTYPE jv literal; block blk; -#line 170 "src/parser.h" /* yacc.c:1909 */ +#line 172 "src/parser.h" /* yacc.c:1909 */ }; + +typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 #endif