parser.c (jq-1.5) | : | parser.c (jq-1.6) | ||
---|---|---|---|---|
/* 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 | /* 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 | 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 | it under the terms of the GNU General Public License as published by | |||
the Free Software Foundation, either version 3 of the License, or | the Free Software Foundation, either version 3 of the License, or | |||
(at your option) any later version. | (at your option) any later version. | |||
This program is distributed in the hope that it will be useful, | This program is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
GNU General Public License for more details. | GNU General Public License for more details. | |||
skipping to change at line 47 | skipping to change at line 47 | |||
infringing on user name space. This should be done even for local | infringing on user name space. This should be done even for local | |||
variables, as they might otherwise be expanded by user macros. | variables, as they might otherwise be expanded by user macros. | |||
There are some unavoidable exceptions within include files to | There are some unavoidable exceptions within include files to | |||
define necessary library symbols; they are noted "INFRINGES ON | define necessary library symbols; they are noted "INFRINGES ON | |||
USER NAME SPACE" below. */ | USER NAME SPACE" below. */ | |||
/* Identify Bison output. */ | /* Identify Bison output. */ | |||
#define YYBISON 1 | #define YYBISON 1 | |||
/* Bison version. */ | /* Bison version. */ | |||
#define YYBISON_VERSION "3.0.2" | #define YYBISON_VERSION "3.0.4" | |||
/* Skeleton name. */ | /* Skeleton name. */ | |||
#define YYSKELETON_NAME "yacc.c" | #define YYSKELETON_NAME "yacc.c" | |||
/* Pure parsers. */ | /* Pure parsers. */ | |||
#define YYPURE 1 | #define YYPURE 1 | |||
/* Push parsers. */ | /* Push parsers. */ | |||
#define YYPUSH 0 | #define YYPUSH 0 | |||
/* Pull parsers. */ | /* Pull parsers. */ | |||
#define YYPULL 1 | #define YYPULL 1 | |||
/* Copy the first part of user declarations. */ | /* Copy the first part of user declarations. */ | |||
#line 1 "parser.y" /* yacc.c:339 */ | #line 1 "src/parser.y" /* yacc.c:339 */ | |||
#include <assert.h> | #include <assert.h> | |||
#include <math.h> | #include <math.h> | |||
#include <stdio.h> | #include <stdio.h> | |||
#include <string.h> | #include <string.h> | |||
#include "compile.h" | #include "compile.h" | |||
#include "jv_alloc.h" | #include "jv_alloc.h" | |||
#define YYMALLOC jv_mem_alloc | #define YYMALLOC jv_mem_alloc | |||
#define YYFREE jv_mem_free | #define YYFREE jv_mem_free | |||
#line 77 "parser.c" /* yacc.c:339 */ | #line 77 "src/parser.c" /* yacc.c:339 */ | |||
# ifndef YY_NULLPTR | # ifndef YY_NULLPTR | |||
# if defined __cplusplus && 201103L <= __cplusplus | # if defined __cplusplus && 201103L <= __cplusplus | |||
# define YY_NULLPTR nullptr | # define YY_NULLPTR nullptr | |||
# else | # else | |||
# define YY_NULLPTR 0 | # define YY_NULLPTR 0 | |||
# endif | # endif | |||
# endif | # endif | |||
/* Enabling verbose error messages. */ | /* Enabling verbose error messages. */ | |||
#ifdef YYERROR_VERBOSE | #ifdef YYERROR_VERBOSE | |||
# undef YYERROR_VERBOSE | # undef YYERROR_VERBOSE | |||
# define YYERROR_VERBOSE 1 | # define YYERROR_VERBOSE 1 | |||
#else | #else | |||
# define YYERROR_VERBOSE 1 | # define YYERROR_VERBOSE 1 | |||
#endif | #endif | |||
/* In a future release of Bison, this section will be replaced | /* In a future release of Bison, this section will be replaced | |||
by #include "y.tab.h". */ | by #include "y.tab.h". */ | |||
#ifndef YY_YY_PARSER_H_INCLUDED | #ifndef YY_YY_SRC_PARSER_H_INCLUDED | |||
# define YY_YY_PARSER_H_INCLUDED | # define YY_YY_SRC_PARSER_H_INCLUDED | |||
/* Debug traces. */ | /* Debug traces. */ | |||
#ifndef YYDEBUG | #ifndef YYDEBUG | |||
# define YYDEBUG 0 | # define YYDEBUG 0 | |||
#endif | #endif | |||
#if YYDEBUG | #if YYDEBUG | |||
extern int yydebug; | extern int yydebug; | |||
#endif | #endif | |||
/* "%code requires" blocks. */ | /* "%code requires" blocks. */ | |||
#line 11 "parser.y" /* yacc.c:355 */ | #line 11 "src/parser.y" /* yacc.c:355 */ | |||
#include "locfile.h" | #include "locfile.h" | |||
struct lexer_param; | struct lexer_param; | |||
#define YYLTYPE location | #define YYLTYPE location | |||
#define YYLLOC_DEFAULT(Loc, Rhs, N) \ | #define YYLLOC_DEFAULT(Loc, Rhs, N) \ | |||
do { \ | do { \ | |||
if (N) { \ | if (N) { \ | |||
(Loc).start = YYRHSLOC(Rhs, 1).start; \ | (Loc).start = YYRHSLOC(Rhs, 1).start; \ | |||
(Loc).end = YYRHSLOC(Rhs, N).end; \ | (Loc).end = YYRHSLOC(Rhs, N).end; \ | |||
} else { \ | } else { \ | |||
(Loc).start = YYRHSLOC(Rhs, 0).end; \ | (Loc).start = YYRHSLOC(Rhs, 0).end; \ | |||
(Loc).end = YYRHSLOC(Rhs, 0).end; \ | (Loc).end = YYRHSLOC(Rhs, 0).end; \ | |||
} \ | } \ | |||
} while (0) | } while (0) | |||
#line 124 "parser.c" /* yacc.c:355 */ | #line 124 "src/parser.c" /* yacc.c:355 */ | |||
/* Token type. */ | /* Token type. */ | |||
#ifndef YYTOKENTYPE | #ifndef YYTOKENTYPE | |||
# define YYTOKENTYPE | # define YYTOKENTYPE | |||
enum yytokentype | enum yytokentype | |||
{ | { | |||
INVALID_CHARACTER = 258, | INVALID_CHARACTER = 258, | |||
IDENT = 259, | IDENT = 259, | |||
FIELD = 260, | FIELD = 260, | |||
LITERAL = 261, | LITERAL = 261, | |||
skipping to change at line 164 | skipping to change at line 164 | |||
BREAK = 285, | BREAK = 285, | |||
LOC = 286, | LOC = 286, | |||
SETPIPE = 287, | SETPIPE = 287, | |||
SETPLUS = 288, | SETPLUS = 288, | |||
SETMINUS = 289, | SETMINUS = 289, | |||
SETMULT = 290, | SETMULT = 290, | |||
SETDIV = 291, | SETDIV = 291, | |||
SETDEFINEDOR = 292, | SETDEFINEDOR = 292, | |||
LESSEQ = 293, | LESSEQ = 293, | |||
GREATEREQ = 294, | GREATEREQ = 294, | |||
QQSTRING_START = 295, | ALTERNATION = 295, | |||
QQSTRING_TEXT = 296, | QQSTRING_START = 296, | |||
QQSTRING_INTERP_START = 297, | QQSTRING_TEXT = 297, | |||
QQSTRING_INTERP_END = 298, | QQSTRING_INTERP_START = 298, | |||
QQSTRING_END = 299, | QQSTRING_INTERP_END = 299, | |||
FUNCDEF = 300, | QQSTRING_END = 300, | |||
NONOPT = 301 | FUNCDEF = 301, | |||
NONOPT = 302 | ||||
}; | }; | |||
#endif | #endif | |||
/* Tokens. */ | /* Tokens. */ | |||
#define INVALID_CHARACTER 258 | #define INVALID_CHARACTER 258 | |||
#define IDENT 259 | #define IDENT 259 | |||
#define FIELD 260 | #define FIELD 260 | |||
#define LITERAL 261 | #define LITERAL 261 | |||
#define FORMAT 262 | #define FORMAT 262 | |||
#define REC 263 | #define REC 263 | |||
#define SETMOD 264 | #define SETMOD 264 | |||
skipping to change at line 211 | skipping to change at line 212 | |||
#define BREAK 285 | #define BREAK 285 | |||
#define LOC 286 | #define LOC 286 | |||
#define SETPIPE 287 | #define SETPIPE 287 | |||
#define SETPLUS 288 | #define SETPLUS 288 | |||
#define SETMINUS 289 | #define SETMINUS 289 | |||
#define SETMULT 290 | #define SETMULT 290 | |||
#define SETDIV 291 | #define SETDIV 291 | |||
#define SETDEFINEDOR 292 | #define SETDEFINEDOR 292 | |||
#define LESSEQ 293 | #define LESSEQ 293 | |||
#define GREATEREQ 294 | #define GREATEREQ 294 | |||
#define QQSTRING_START 295 | #define ALTERNATION 295 | |||
#define QQSTRING_TEXT 296 | #define QQSTRING_START 296 | |||
#define QQSTRING_INTERP_START 297 | #define QQSTRING_TEXT 297 | |||
#define QQSTRING_INTERP_END 298 | #define QQSTRING_INTERP_START 298 | |||
#define QQSTRING_END 299 | #define QQSTRING_INTERP_END 299 | |||
#define FUNCDEF 300 | #define QQSTRING_END 300 | |||
#define NONOPT 301 | #define FUNCDEF 301 | |||
#define NONOPT 302 | ||||
/* Value type. */ | /* Value type. */ | |||
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED | #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED | |||
typedef union YYSTYPE YYSTYPE; | ||||
union YYSTYPE | union YYSTYPE | |||
{ | { | |||
#line 31 "parser.y" /* yacc.c:355 */ | #line 31 "src/parser.y" /* yacc.c:355 */ | |||
jv literal; | jv literal; | |||
block blk; | block blk; | |||
#line 233 "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_TRIVIAL 1 | |||
# define YYSTYPE_IS_DECLARED 1 | # define YYSTYPE_IS_DECLARED 1 | |||
#endif | #endif | |||
/* Location type. */ | /* Location type. */ | |||
#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED | #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED | |||
typedef struct YYLTYPE YYLTYPE; | typedef struct YYLTYPE YYLTYPE; | |||
struct YYLTYPE | struct YYLTYPE | |||
{ | { | |||
int first_line; | int first_line; | |||
int first_column; | int first_column; | |||
int last_line; | int last_line; | |||
int last_column; | int last_column; | |||
}; | }; | |||
# define YYLTYPE_IS_DECLARED 1 | # define YYLTYPE_IS_DECLARED 1 | |||
# define YYLTYPE_IS_TRIVIAL 1 | # define YYLTYPE_IS_TRIVIAL 1 | |||
#endif | #endif | |||
int yyparse (block* answer, int* errors, struct locfile* locations, struct lexer _param* lexer_param_ptr); | int yyparse (block* answer, int* errors, struct locfile* locations, struct lexer _param* lexer_param_ptr); | |||
#endif /* !YY_YY_PARSER_H_INCLUDED */ | #endif /* !YY_YY_SRC_PARSER_H_INCLUDED */ | |||
/* Copy the second part of user declarations. */ | /* Copy the second part of user declarations. */ | |||
#line 118 "parser.y" /* yacc.c:358 */ | #line 124 "src/parser.y" /* yacc.c:358 */ | |||
#include "lexer.h" | #include "lexer.h" | |||
struct lexer_param { | struct lexer_param { | |||
yyscan_t lexer; | yyscan_t lexer; | |||
}; | }; | |||
#define FAIL(loc, msg) \ | #define FAIL(loc, msg) \ | |||
do { \ | do { \ | |||
location l = loc; \ | location l = loc; \ | |||
yyerror(&l, answer, errors, locations, lexer_param_ptr, msg); \ | yyerror(&l, answer, errors, locations, lexer_param_ptr, msg); \ | |||
/*YYERROR*/; \ | /*YYERROR*/; \ | |||
skipping to change at line 299 | skipping to change at line 303 | |||
} else { | } else { | |||
FAIL(*yylloc, "Invalid literal"); | FAIL(*yylloc, "Invalid literal"); | |||
} | } | |||
jv_free(msg); | jv_free(msg); | |||
jv_free(yylval->literal); | jv_free(yylval->literal); | |||
yylval->literal = jv_null(); | yylval->literal = jv_null(); | |||
} | } | |||
return tok; | return tok; | |||
} | } | |||
static block gen_dictpair(block k, block v) { | /* Returns string message if the block is a constant that is not valid as an | |||
return BLOCK(gen_subexp(k), gen_subexp(v), gen_op_simple(INSERT)); | * object key. */ | |||
static jv check_object_key(block k) { | ||||
if (block_is_const(k) && block_const_kind(k) != JV_KIND_STRING) { | ||||
char errbuf[15]; | ||||
return jv_string_fmt("Cannot use %s (%s) as object key", | ||||
jv_kind_name(block_const_kind(k)), | ||||
jv_dump_string_trunc(jv_copy(block_const(k)), errbuf, sizeof(errbuf))); | ||||
} | ||||
return jv_invalid(); | ||||
} | } | |||
static block gen_index(block obj, block key) { | static block gen_index(block obj, block key) { | |||
return BLOCK(gen_subexp(key), obj, gen_op_simple(INDEX)); | return BLOCK(gen_subexp(key), obj, gen_op_simple(INDEX)); | |||
} | } | |||
static block gen_index_opt(block obj, block key) { | static block gen_index_opt(block obj, block key) { | |||
return BLOCK(gen_subexp(key), obj, gen_op_simple(INDEX_OPT)); | return BLOCK(gen_subexp(key), obj, gen_op_simple(INDEX_OPT)); | |||
} | } | |||
skipping to change at line 326 | skipping to change at line 338 | |||
gen_subexp(gen_const(jv_string("end"))), | gen_subexp(gen_const(jv_string("end"))), | |||
gen_subexp(end), | gen_subexp(end), | |||
gen_op_simple(INSERT)); | gen_op_simple(INSERT)); | |||
return BLOCK(key, obj, gen_op_simple(idx_op)); | return BLOCK(key, obj, gen_op_simple(idx_op)); | |||
} | } | |||
static block constant_fold(block a, block b, int op) { | static block constant_fold(block a, block b, int op) { | |||
if (!block_is_single(a) || !block_is_const(a) || | if (!block_is_single(a) || !block_is_const(a) || | |||
!block_is_single(b) || !block_is_const(b)) | !block_is_single(b) || !block_is_const(b)) | |||
return gen_noop(); | return gen_noop(); | |||
if (op == '+') { | ||||
if (block_const_kind(a) == JV_KIND_NULL) { | ||||
block_free(a); | ||||
return b; | ||||
} | ||||
if (block_const_kind(b) == JV_KIND_NULL) { | ||||
block_free(b); | ||||
return a; | ||||
} | ||||
} | ||||
if (block_const_kind(a) != block_const_kind(b)) | if (block_const_kind(a) != block_const_kind(b)) | |||
return gen_noop(); | return gen_noop(); | |||
jv res = jv_invalid(); | jv res = jv_invalid(); | |||
if (block_const_kind(a) == JV_KIND_NUMBER) { | if (block_const_kind(a) == JV_KIND_NUMBER) { | |||
double na = jv_number_value(block_const(a)); | double na = jv_number_value(block_const(a)); | |||
double nb = jv_number_value(block_const(b)); | double nb = jv_number_value(block_const(b)); | |||
switch (op) { | switch (op) { | |||
case '+': res = jv_number(na + nb); break; | case '+': res = jv_number(na + nb); break; | |||
skipping to change at line 386 | skipping to change at line 408 | |||
case '>': funcname = "_greater"; break; | case '>': funcname = "_greater"; break; | |||
case LESSEQ: funcname = "_lesseq"; break; | case LESSEQ: funcname = "_lesseq"; break; | |||
case GREATEREQ: funcname = "_greatereq"; break; | case GREATEREQ: funcname = "_greatereq"; break; | |||
} | } | |||
assert(funcname); | assert(funcname); | |||
return gen_call(funcname, BLOCK(gen_lambda(a), gen_lambda(b))); | return gen_call(funcname, BLOCK(gen_lambda(a), gen_lambda(b))); | |||
} | } | |||
static block gen_format(block a, jv fmt) { | static block gen_format(block a, jv fmt) { | |||
return BLOCK(a, gen_call("format", BLOCK(gen_lambda(gen_const(fmt))))); | return BLOCK(a, gen_call("format", gen_lambda(gen_const(fmt)))); | |||
} | } | |||
static block gen_definedor_assign(block object, block val) { | static block gen_definedor_assign(block object, block val) { | |||
block tmp = gen_op_var_fresh(STOREV, "tmp"); | block tmp = gen_op_var_fresh(STOREV, "tmp"); | |||
return BLOCK(gen_op_simple(DUP), | return BLOCK(gen_op_simple(DUP), | |||
val, tmp, | val, tmp, | |||
gen_call("_modify", BLOCK(gen_lambda(object), | gen_call("_modify", BLOCK(gen_lambda(object), | |||
gen_lambda(gen_definedor(gen_noop(), | gen_lambda(gen_definedor(gen_noop(), | |||
gen_op_bound(L OADV, tmp)))))); | gen_op_bound(L OADV, tmp)))))); | |||
} | } | |||
skipping to change at line 409 | skipping to change at line 431 | |||
block tmp = gen_op_var_fresh(STOREV, "tmp"); | block tmp = gen_op_var_fresh(STOREV, "tmp"); | |||
return BLOCK(gen_op_simple(DUP), | return BLOCK(gen_op_simple(DUP), | |||
val, | val, | |||
tmp, | tmp, | |||
gen_call("_modify", BLOCK(gen_lambda(object), | gen_call("_modify", BLOCK(gen_lambda(object), | |||
gen_lambda(gen_binop(gen_noop(), | gen_lambda(gen_binop(gen_noop(), | |||
gen_op_bound(LOADV , tmp), | gen_op_bound(LOADV , tmp), | |||
optype))))); | optype))))); | |||
} | } | |||
#line 416 "parser.c" /* yacc.c:358 */ | #line 438 "src/parser.c" /* yacc.c:358 */ | |||
#ifdef short | #ifdef short | |||
# undef short | # undef short | |||
#endif | #endif | |||
#ifdef YYTYPE_UINT8 | #ifdef YYTYPE_UINT8 | |||
typedef YYTYPE_UINT8 yytype_uint8; | typedef YYTYPE_UINT8 yytype_uint8; | |||
#else | #else | |||
typedef unsigned char yytype_uint8; | typedef unsigned char yytype_uint8; | |||
#endif | #endif | |||
skipping to change at line 651 | skipping to change at line 673 | |||
(Dst)[yyi] = (Src)[yyi]; \ | (Dst)[yyi] = (Src)[yyi]; \ | |||
} \ | } \ | |||
while (0) | while (0) | |||
# endif | # endif | |||
# endif | # endif | |||
#endif /* !YYCOPY_NEEDED */ | #endif /* !YYCOPY_NEEDED */ | |||
/* YYFINAL -- State number of the termination state. */ | /* YYFINAL -- State number of the termination state. */ | |||
#define YYFINAL 27 | #define YYFINAL 27 | |||
/* YYLAST -- Last index in YYTABLE. */ | /* YYLAST -- Last index in YYTABLE. */ | |||
#define YYLAST 2110 | #define YYLAST 1972 | |||
/* YYNTOKENS -- Number of terminals. */ | /* YYNTOKENS -- Number of terminals. */ | |||
#define YYNTOKENS 68 | #define YYNTOKENS 69 | |||
/* YYNNTS -- Number of nonterminals. */ | /* YYNNTS -- Number of nonterminals. */ | |||
#define YYNNTS 26 | #define YYNNTS 30 | |||
/* YYNRULES -- Number of rules. */ | /* YYNRULES -- Number of rules. */ | |||
#define YYNRULES 156 | #define YYNRULES 162 | |||
/* YYNSTATES -- Number of states. */ | /* YYNSTATES -- Number of states. */ | |||
#define YYNSTATES 310 | #define YYNSTATES 313 | |||
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned | /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned | |||
by yylex, with out-of-bounds checking. */ | by yylex, with out-of-bounds checking. */ | |||
#define YYUNDEFTOK 2 | #define YYUNDEFTOK 2 | |||
#define YYMAXUTOK 301 | #define YYMAXUTOK 302 | |||
#define YYTRANSLATE(YYX) \ | #define YYTRANSLATE(YYX) \ | |||
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) | ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) | |||
/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM | /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM | |||
as returned by yylex, without out-of-bounds checking. */ | as returned by yylex, without out-of-bounds checking. */ | |||
static const yytype_uint8 yytranslate[] = | static const yytype_uint8 yytranslate[] = | |||
{ | { | |||
0, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 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, 2, 2, 2, 2, | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |||
2, 2, 2, 2, 2, 2, 61, 55, 2, 2, | 2, 2, 2, 2, 2, 2, 62, 56, 2, 2, | |||
59, 60, 53, 51, 47, 52, 63, 54, 2, 2, | 60, 61, 54, 52, 48, 53, 64, 55, 2, 2, | |||
2, 2, 2, 2, 2, 2, 2, 2, 62, 58, | 2, 2, 2, 2, 2, 2, 2, 2, 63, 59, | |||
49, 48, 50, 57, 2, 2, 2, 2, 2, 2, | 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, 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, 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, | 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, 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, | |||
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, 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, | 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, 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, | |||
2, 2, 2, 2, 2, 2, 1, 2, 3, 4, | 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, | |||
5, 6, 7, 8, 9, 10, 11, 12, 13, 14, | 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, | |||
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, | 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, | |||
25, 26, 27, 28, 29, 30, 31, 32, 33, 34, | 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, | |||
35, 36, 37, 38, 39, 40, 41, 42, 43, 44, | 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, | |||
45, 56 | 45, 46, 57 | |||
}; | }; | |||
#if YYDEBUG | #if YYDEBUG | |||
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ | /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ | |||
static const yytype_uint16 yyrline[] = | static const yytype_uint16 yyrline[] = | |||
{ | { | |||
0, 276, 276, 279, 284, 287, 297, 300, 305, 308, | 0, 300, 300, 303, 308, 311, 322, 325, 330, 333, | |||
313, 317, 321, 325, 329, 333, 336, 341, 345, 349, | 338, 342, 345, 349, 353, 357, 360, 365, 369, 373, | |||
354, 361, 365, 369, 373, 377, 381, 385, 389, 393, | 378, 385, 389, 393, 397, 401, 405, 409, 413, 417, | |||
397, 401, 405, 409, 413, 417, 421, 425, 431, 437, | 421, 425, 429, 433, 437, 441, 445, 449, 455, 461, | |||
441, 445, 449, 453, 457, 461, 465, 469, 474, 483, | 465, 469, 473, 477, 481, 485, 489, 493, 498, 501, | |||
490, 496, 508, 519, 533, 538, 544, 547, 552, 557, | 518, 527, 534, 542, 553, 558, 564, 567, 572, 577, | |||
564, 564, 568, 568, 575, 578, 581, 587, 590, 595, | 584, 584, 588, 588, 595, 598, 601, 607, 610, 615, | |||
598, 601, 607, 610, 613, 621, 625, 628, 631, 634, | 618, 621, 627, 630, 633, 641, 645, 648, 651, 654, | |||
637, 640, 643, 646, 649, 653, 659, 662, 665, 668, | 657, 660, 663, 666, 669, 673, 679, 682, 685, 688, | |||
671, 674, 677, 680, 683, 686, 689, 692, 695, 698, | 691, 694, 697, 700, 703, 706, 709, 712, 715, 718, | |||
701, 704, 707, 714, 718, 722, 734, 739, 740, 741, | 721, 724, 727, 734, 738, 742, 754, 759, 760, 761, | |||
742, 745, 748, 753, 758, 762, 765, 770, 773, 778, | 762, 765, 768, 773, 778, 781, 786, 789, 794, 798, | |||
781, 786, 789, 792, 795, 798, 803, 806, 809, 812, | 801, 806, 809, 814, 817, 822, 825, 828, 831, 834, | |||
815, 818, 821, 824, 827, 830, 833, 836, 839, 842, | 837, 845, 851, 854, 857, 860, 863, 866, 869, 872, | |||
845, 848, 851, 854, 857, 862, 865, 866, 867, 870, | 875, 878, 881, 884, 887, 890, 893, 896, 899, 902, | |||
873, 876, 879, 883, 887, 891, 894 | 905, 910, 913, 914, 915, 918, 921, 924, 927, 931, | |||
935, 939, 947 | ||||
}; | }; | |||
#endif | #endif | |||
#if YYDEBUG || YYERROR_VERBOSE || 1 | #if YYDEBUG || YYERROR_VERBOSE || 1 | |||
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. | /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. | |||
First, the terminals, then, starting at YYNTOKENS, nonterminals. */ | First, the terminals, then, starting at YYNTOKENS, nonterminals. */ | |||
static const char *const yytname[] = | static const char *const yytname[] = | |||
{ | { | |||
"$end", "error", "$undefined", "INVALID_CHARACTER", "IDENT", "FIELD", | "$end", "error", "$undefined", "INVALID_CHARACTER", "IDENT", "FIELD", | |||
"LITERAL", "FORMAT", "\"..\"", "\"%=\"", "\"==\"", "\"!=\"", "\"//\"", | "LITERAL", "FORMAT", "\"..\"", "\"%=\"", "\"==\"", "\"!=\"", "\"//\"", | |||
"\"as\"", "\"def\"", "\"module\"", "\"import\"", "\"include\"", "\"if\"", | "\"as\"", "\"def\"", "\"module\"", "\"import\"", "\"include\"", "\"if\"", | |||
"\"then\"", "\"else\"", "\"elif\"", "\"reduce\"", "\"foreach\"", | "\"then\"", "\"else\"", "\"elif\"", "\"reduce\"", "\"foreach\"", | |||
"\"end\"", "\"and\"", "\"or\"", "\"try\"", "\"catch\"", "\"label\"", | "\"end\"", "\"and\"", "\"or\"", "\"try\"", "\"catch\"", "\"label\"", | |||
"\"break\"", "\"__loc__\"", "\"|=\"", "\"+=\"", "\"-=\"", "\"*=\"", | "\"break\"", "\"__loc__\"", "\"|=\"", "\"+=\"", "\"-=\"", "\"*=\"", | |||
"\"/=\"", "\"//=\"", "\"<=\"", "\">=\"", "QQSTRING_START", | "\"/=\"", "\"//=\"", "\"<=\"", "\">=\"", "\"?//\"", "QQSTRING_START", | |||
"QQSTRING_TEXT", "QQSTRING_INTERP_START", "QQSTRING_INTERP_END", | "QQSTRING_TEXT", "QQSTRING_INTERP_START", "QQSTRING_INTERP_END", | |||
"QQSTRING_END", "FUNCDEF", "'|'", "','", "'='", "'<'", "'>'", "'+'", | "QQSTRING_END", "FUNCDEF", "'|'", "','", "'='", "'<'", "'>'", "'+'", | |||
"'-'", "'*'", "'/'", "'%'", "NONOPT", "'?'", "';'", "'('", "')'", "'$'", | "'-'", "'*'", "'/'", "'%'", "NONOPT", "'?'", "';'", "'('", "')'", "'$'", | |||
"':'", "'.'", "'['", "']'", "'{'", "'}'", "$accept", "TopLevel", | "':'", "'.'", "'['", "']'", "'{'", "'}'", "$accept", "TopLevel", | |||
"Module", "Imports", "FuncDefs", "Exp", "Import", "FuncDef", "Params", | "Module", "Imports", "FuncDefs", "Exp", "Import", "ImportWhat", | |||
"Param", "String", "@1", "@2", "QQString", "ElseBody", "ExpD", "Term", | "ImportFrom", "FuncDef", "Params", "Param", "String", "@1", "@2", | |||
"Args", "Arg", "Pattern", "ArrayPats", "ObjPats", "ObjPat", "Keyword", | "QQString", "ElseBody", "ExpD", "Term", "Args", "Arg", "RepPatterns", | |||
"Patterns", "Pattern", "ArrayPats", "ObjPats", "ObjPat", "Keyword", | ||||
"MkDict", "MkDictPair", YY_NULLPTR | "MkDict", "MkDictPair", YY_NULLPTR | |||
}; | }; | |||
#endif | #endif | |||
# ifdef YYPRINT | # ifdef YYPRINT | |||
/* YYTOKNUM[NUM] -- (External) token number corresponding to the | /* YYTOKNUM[NUM] -- (External) token number corresponding to the | |||
(internal) symbol number NUM (which must be that of a token). */ | (internal) symbol number NUM (which must be that of a token). */ | |||
static const yytype_uint16 yytoknum[] = | static const yytype_uint16 yytoknum[] = | |||
{ | { | |||
0, 256, 257, 258, 259, 260, 261, 262, 263, 264, | 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, | |||
265, 266, 267, 268, 269, 270, 271, 272, 273, 274, | 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, | |||
275, 276, 277, 278, 279, 280, 281, 282, 283, 284, | 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, | |||
285, 286, 287, 288, 289, 290, 291, 292, 293, 294, | 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, | |||
295, 296, 297, 298, 299, 300, 124, 44, 61, 60, | 295, 296, 297, 298, 299, 300, 301, 124, 44, 61, | |||
62, 43, 45, 42, 47, 37, 301, 63, 59, 40, | 60, 62, 43, 45, 42, 47, 37, 302, 63, 59, | |||
41, 36, 58, 46, 91, 93, 123, 125 | 40, 41, 36, 58, 46, 91, 93, 123, 125 | |||
}; | }; | |||
# endif | # endif | |||
#define YYPACT_NINF -152 | #define YYPACT_NINF -158 | |||
#define yypact_value_is_default(Yystate) \ | #define yypact_value_is_default(Yystate) \ | |||
(!!((Yystate) == (-152))) | (!!((Yystate) == (-158))) | |||
#define YYTABLE_NINF -146 | #define YYTABLE_NINF -152 | |||
#define yytable_value_is_error(Yytable_value) \ | #define yytable_value_is_error(Yytable_value) \ | |||
(!!((Yytable_value) == (-146))) | (!!((Yytable_value) == (-152))) | |||
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing | /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing | |||
STATE-NUM. */ | STATE-NUM. */ | |||
static const yytype_int16 yypact[] = | static const yytype_int16 yypact[] = | |||
{ | { | |||
22, 828, 42, 46, 9, -2, -152, 27, -152, 55, | 21, 772, 43, 63, -6, 12, -158, 80, -158, 122, | |||
828, 871, 871, 828, 20, 0, -152, 828, 466, 23, | 772, 193, 193, 772, 74, 5, -158, 772, 522, 10, | |||
276, 439, 341, 1374, 828, -152, 1, -152, 3, 3, | 279, 455, 152, 1290, 772, -158, 8, -158, 3, 3, | |||
828, 46, 828, -152, -152, -18, 1823, 6, 8, 50, | 772, 63, 680, 772, -158, -158, 67, 1646, 58, 130, | |||
107, -152, 109, -152, -8, 57, 1209, -152, -152, -152, | 106, 133, -158, 135, -158, 20, 83, 1120, -158, -158, | |||
114, 27, 65, 61, -152, 1010, -19, 68, -152, -152, | -158, 140, 80, 93, 86, -158, 917, -23, 91, -158, | |||
-152, -152, -152, -152, -152, -152, -152, -152, -152, -152, | -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, | |||
-152, -152, -152, -152, -152, -152, -152, 530, 127, 72, | -158, -158, -158, -158, -158, -158, -158, -158, 772, 151, | |||
74, 71, 92, 828, 828, 828, 828, 828, 828, 828, | 94, 97, 95, 113, 772, 772, 772, 772, 772, 772, | |||
828, 828, 828, 828, 828, 828, 828, 828, 828, 828, | 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, | |||
828, 828, 828, 828, 828, 828, 828, -152, -152, 1987, | 772, 772, 772, 772, 772, 772, 772, 772, -158, -158, | |||
83, -26, 3, 190, 131, 648, -152, 1987, 828, -152, | 1814, 104, -7, 3, 388, 171, -158, -158, -158, 1814, | |||
1987, -7, -152, -152, 18, 828, 557, -26, -26, 621, | 772, -158, -158, 1341, 1814, 59, -158, -158, 7, 772, | |||
99, -152, 16, -152, -152, -152, -152, -152, -152, 397, | 587, -7, -7, 652, 117, -158, 4, -158, -158, -158, | |||
-152, 865, 88, 1242, -152, 865, 865, -152, 397, 2053, | -158, -158, -158, 345, -3, -158, -3, 1154, -158, -3, | |||
336, 336, 2020, 928, 108, 2053, 2053, 2053, 2053, 2053, | -3, -158, 345, 1882, 370, 370, 1848, 436, 1914, 1882, | |||
2053, 336, 336, 1987, 2020, 2053, 336, 336, -8, -8, | 1882, 1882, 1882, 1882, 1882, 370, 370, 1814, 1848, 1882, | |||
93, 93, 93, -152, 145, -26, 929, 105, 96, 89, | 370, 370, 20, 20, 129, 129, 129, -158, 184, -7, | |||
828, 98, 961, 19, -152, 1424, -152, 828, -152, 79, | 834, 149, 143, 156, 134, 136, 772, 145, 867, 47, | |||
-152, 152, 17, -152, 1474, -152, 1774, 110, 111, -152, | -158, -158, 772, -158, 23, -158, 200, 72, -158, 1392, | |||
-152, 828, -152, 828, -152, 117, -152, 865, 120, 10, | -158, 1596, 146, 150, -158, -158, 772, -158, 772, -158, | |||
106, 112, 120, 120, -152, -152, -152, -13, 113, 828, | -11, -158, -3, 162, 51, 162, 148, 162, 162, -158, | |||
163, 115, -11, -152, 116, 828, -152, -152, 1059, -152, | -158, -158, -24, 153, 154, 772, 209, 155, -15, -158, | |||
711, 119, 738, 168, -152, -152, -152, -152, 18, 121, | 158, -7, 772, -158, -158, 967, -158, 744, 157, -158, | |||
-152, 828, 828, -152, 828, 828, 1987, 1856, -152, 865, | 215, -158, -158, -158, 7, 159, -158, 772, 772, -158, | |||
865, 865, -26, -152, -26, 1275, -152, -26, 929, -152, | 772, 772, 1814, 1680, -158, -3, -3, -7, -158, -7, | |||
-26, 1987, 124, 125, 1108, -152, -152, 1524, 801, -152, | -7, 1188, 163, -7, 834, -158, -7, 185, 1814, 169, | |||
828, 1905, 1954, 1574, 1624, -152, 120, 120, 120, -152, | 170, 1017, -158, -158, -158, 772, 1730, 1780, 1443, 1494, | |||
-152, 122, -152, -152, -152, -152, -152, 128, -152, -152, | -158, 162, 162, -158, -158, -158, 166, -7, -158, -158, | |||
1674, 1724, -152, 828, 828, 828, -26, -152, -152, -152, | -158, -158, -158, 172, 1545, -158, 772, 772, 772, -7, | |||
1774, 1308, 1157, -152, -152, -152, 828, -152, 1341, -152 | -158, -158, -158, 1596, 1222, 1067, -158, -158, -158, 772, | |||
-158, 1256, -158 | ||||
}; | }; | |||
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. | /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. | |||
Performed when YYTABLE does not specify something else to do. Zero | Performed when YYTABLE does not specify something else to do. Zero | |||
means the default is an error. */ | means the default is an error. */ | |||
static const yytype_uint8 yydefact[] = | static const yytype_uint8 yydefact[] = | |||
{ | { | |||
4, 0, 0, 6, 105, 81, 96, 98, 73, 0, | 4, 0, 0, 6, 105, 81, 96, 98, 73, 0, | |||
0, 0, 0, 0, 0, 0, 60, 0, 0, 0, | 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, | |||
0, 0, 0, 0, 0, 97, 47, 1, 0, 0, | 0, 0, 0, 0, 0, 97, 47, 1, 0, 0, | |||
8, 6, 0, 77, 62, 0, 0, 0, 0, 18, | 8, 6, 0, 0, 77, 62, 0, 0, 0, 0, | |||
0, 75, 0, 64, 32, 0, 0, 104, 103, 84, | 18, 0, 75, 0, 64, 32, 0, 0, 104, 103, | |||
0, 0, 83, 0, 101, 0, 0, 154, 126, 127, | 84, 0, 0, 83, 0, 101, 0, 0, 160, 132, | |||
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, | 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, | |||
138, 139, 140, 141, 142, 143, 144, 0, 0, 152, | 143, 144, 145, 146, 147, 148, 149, 150, 0, 0, | |||
0, 0, 146, 0, 0, 0, 0, 0, 0, 0, | 158, 0, 0, 152, 0, 0, 0, 0, 0, 0, | |||
0, 0, 0, 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, | 0, 0, 0, 0, 0, 0, 0, 0, 21, 5, | |||
80, 0, 0, 0, 0, 0, 3, 2, 8, 7, | 10, 80, 0, 0, 0, 0, 53, 52, 3, 2, | |||
113, 0, 111, 64, 0, 0, 0, 0, 0, 0, | 8, 7, 48, 0, 113, 0, 111, 64, 0, 0, | |||
0, 74, 0, 107, 99, 85, 79, 108, 100, 0, | 0, 0, 0, 0, 0, 74, 0, 107, 99, 85, | |||
110, 0, 0, 0, 153, 0, 0, 102, 0, 40, | 79, 108, 100, 0, 0, 110, 0, 0, 159, 0, | |||
41, 42, 25, 24, 23, 27, 31, 34, 36, 39, | 0, 102, 0, 40, 41, 42, 25, 24, 23, 27, | |||
26, 45, 46, 28, 29, 22, 43, 44, 30, 33, | 31, 34, 36, 39, 26, 45, 46, 28, 29, 22, | |||
35, 37, 38, 76, 0, 0, 0, 0, 82, 0, | 43, 44, 30, 33, 35, 37, 38, 76, 0, 0, | |||
0, 89, 0, 0, 50, 0, 9, 0, 106, 0, | 0, 0, 0, 117, 82, 0, 0, 89, 0, 0, | |||
59, 0, 0, 56, 0, 16, 0, 0, 0, 19, | 9, 49, 0, 106, 0, 59, 0, 0, 56, 0, | |||
17, 0, 65, 0, 61, 0, 148, 0, 149, 71, | 16, 0, 0, 0, 19, 17, 0, 65, 0, 61, | |||
0, 0, 151, 150, 147, 114, 117, 0, 0, 0, | 0, 154, 0, 162, 71, 155, 0, 157, 156, 153, | |||
0, 0, 0, 119, 0, 0, 78, 109, 0, 88, | 118, 121, 0, 0, 0, 0, 0, 0, 0, 123, | |||
0, 87, 0, 0, 52, 112, 63, 58, 0, 0, | 0, 0, 0, 78, 109, 0, 88, 0, 87, 51, | |||
54, 0, 0, 15, 0, 0, 20, 0, 70, 0, | 0, 112, 63, 58, 0, 0, 54, 0, 0, 15, | |||
0, 0, 0, 115, 0, 0, 121, 0, 0, 116, | 0, 0, 20, 0, 70, 0, 0, 0, 119, 0, | |||
0, 11, 95, 94, 0, 86, 49, 0, 0, 57, | 0, 0, 125, 0, 0, 120, 0, 116, 11, 95, | |||
0, 0, 0, 0, 0, 66, 69, 156, 155, 118, | 94, 0, 86, 50, 57, 0, 0, 0, 0, 0, | |||
122, 0, 124, 120, 123, 92, 91, 93, 51, 48, | 66, 69, 161, 122, 131, 127, 0, 0, 129, 124, | |||
0, 0, 68, 0, 0, 0, 0, 90, 53, 55, | 128, 92, 91, 93, 0, 68, 0, 0, 0, 0, | |||
0, 0, 0, 125, 67, 12, 0, 14, 0, 13 | 126, 90, 55, 0, 0, 0, 130, 67, 12, 0, | |||
14, 0, 13 | ||||
}; | }; | |||
/* YYPGOTO[NTERM-NUM]. */ | /* YYPGOTO[NTERM-NUM]. */ | |||
static const yytype_int16 yypgoto[] = | static const yytype_int16 yypgoto[] = | |||
{ | { | |||
-152, -152, -152, 142, 69, -1, -152, -12, -152, -50, | -158, -158, -158, 201, 115, -1, -158, -158, 204, -8, | |||
4, -152, -152, 66, -110, -141, -4, -152, 5, -125, | -158, -5, 6, -158, -158, 110, -65, -131, -4, -158, | |||
-152, -152, -65, -151, -109, -152 | 48, -158, 16, -149, -158, -158, -22, -157, -104, -158 | |||
}; | }; | |||
/* YYDEFGOTO[NTERM-NUM]. */ | /* YYDEFGOTO[NTERM-NUM]. */ | |||
static const yytype_int16 yydefgoto[] = | static const yytype_int16 yydefgoto[] = | |||
{ | { | |||
-1, 2, 3, 30, 116, 109, 31, 24, 192, 193, | -1, 2, 3, 30, 118, 110, 31, 32, 115, 24, | |||
25, 43, 123, 132, 243, 208, 26, 121, 122, 177, | 197, 198, 25, 44, 127, 136, 249, 213, 26, 125, | |||
217, 222, 223, 80, 81, 82 | 126, 181, 182, 183, 222, 228, 229, 81, 82, 83 | |||
}; | }; | |||
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If | /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If | |||
positive, shift that token. If negative, reduce the rule whose | positive, shift that token. If negative, reduce the rule whose | |||
number is the opposite. If YYTABLE_NINF, syntax error. */ | number is the opposite. If YYTABLE_NINF, syntax error. */ | |||
static const yytype_int16 yytable[] = | static const yytype_int16 yytable[] = | |||
{ | { | |||
23, 41, 197, 198, 212, 213, 110, 37, 38, 36, | 23, 4, 5, 6, 7, 8, 42, 38, 39, 37, | |||
51, 110, 39, 110, 111, 110, 44, 46, 118, 127, | 52, 195, 40, 111, 48, 215, 45, 47, 217, 218, | |||
55, 128, 190, 232, 52, 224, 79, 47, 139, 117, | 56, 112, 120, 230, 257, 143, 53, 15, 80, 119, | |||
206, 120, 114, 115, 252, 174, 258, 1, 175, 214, | 221, 123, 124, 264, 116, 116, 1, 143, 16, 211, | |||
176, 124, 27, 16, 125, 104, 105, 106, 140, 107, | 144, 49, 258, 27, 16, 145, 207, 208, 219, 209, | |||
216, 187, 253, 188, 48, 33, 259, 202, 203, 35, | 212, 239, 144, 265, 33, 178, 111, 18, 179, 19, | |||
204, 42, 28, 29, 112, 113, 248, 34, 32, 112, | 180, 20, 21, 111, 22, 207, 208, 43, 242, 196, | |||
113, 112, 113, 112, 113, 238, 143, 239, 129, 191, | 34, 131, 113, 114, 105, 106, 107, 147, 108, 28, | |||
233, 40, 149, 150, 151, 152, 153, 154, 155, 156, | 29, 254, 267, 153, 154, 155, 156, 157, 158, 159, | |||
157, 158, 159, 160, 161, 162, 163, 164, 165, 166, | 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, | |||
167, 168, 169, 170, 171, 172, 118, 224, 276, 277, | 170, 171, 172, 173, 174, 175, 176, 230, 283, 240, | |||
278, 130, 182, 131, 185, 135, 178, 133, 84, 85, | 284, 285, 120, 188, 288, 113, 114, 290, 192, 184, | |||
202, 203, 136, 236, 194, 196, 137, 279, 200, 280, | 193, 35, 113, 114, 281, 282, 36, 128, 199, 201, | |||
141, 144, 282, 87, 145, 284, 146, 209, 147, 148, | 129, 244, 205, 245, 133, 111, 41, 134, 300, 135, | |||
173, 209, 209, 79, 183, 201, 95, 96, 210, 215, | 214, 139, 214, 132, 137, 214, 214, 202, 203, 80, | |||
107, 225, 79, 226, 227, 229, 237, 100, 101, 102, | 306, 140, 141, 57, 146, 148, 58, 149, 80, 52, | |||
103, 104, 105, 106, 139, 107, 249, 256, 250, 244, | 150, 152, 177, 151, 206, 59, 60, 61, 62, 63, | |||
245, 303, 268, 119, 251, 254, 265, 257, 260, 228, | ||||
221, 285, 286, 270, 296, 297, 120, 186, 269, 189, | ||||
304, 179, 235, 283, 4, 5, 6, 7, 8, 0, | ||||
246, 0, 247, 209, 9, 0, 0, 0, 10, 0, | ||||
0, 0, 11, 12, 0, 0, 0, 13, 255, 14, | ||||
15, 0, 0, 0, 261, 0, 0, 0, 0, 264, | ||||
16, 267, 0, 0, 0, 0, 0, 0, 0, 0, | ||||
271, 272, 17, 273, 274, 209, 209, 209, 0, 18, | ||||
0, 19, 180, 20, 21, 181, 22, 0, 0, 0, | ||||
0, 0, 221, 0, 0, 0, 0, 290, 0, 291, | ||||
0, 0, 0, 0, 0, 0, -72, 49, 0, 0, | ||||
50, -72, 0, 51, 0, -72, -72, -72, -72, -72, | ||||
0, 0, 300, 301, 302, -72, -72, -72, 0, 0, | ||||
-72, -72, -72, 0, -72, 308, 0, 0, -72, -72, | ||||
-72, -72, -72, -72, -72, -72, 16, 0, 0, -72, | ||||
0, 0, -72, -72, -72, -72, -72, -72, -72, -72, | ||||
-72, -72, 0, -72, -72, 0, -72, 0, -72, -72, | ||||
-72, -72, 56, -72, 0, 57, -146, -146, 51, 0, | ||||
0, 0, 0, 0, 58, 59, 60, 61, 62, 63, | ||||
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, | 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, | |||
74, 75, 76, 0, -146, -146, 0, 0, 0, 0, | 74, 75, 76, 77, 189, 235, 227, 108, 220, 231, | |||
0, 16, 0, 0, 0, -146, -146, 102, 103, 104, | 232, 124, 233, 16, 113, 114, -115, 4, 5, 6, | |||
105, 106, 0, 107, 0, 0, 0, 0, 205, 0, | 7, 8, 234, 236, 243, 252, 250, 253, 214, 255, | |||
77, 57, 78, 0, 51, 0, 0, 0, -145, 0, | 251, 256, 78, 262, 79, 272, 259, 260, 263, 273, | |||
58, 59, 60, 61, 62, 63, 64, 65, 66, 67, | -151, 266, 275, 15, 261, -114, 287, 291, 292, 299, | |||
68, 69, 70, 71, 72, 73, 74, 75, 76, 0, | 301, 268, 121, 117, 16, 190, 271, 194, 307, 274, | |||
0, 0, 0, 0, 0, 0, 0, 16, 0, 0, | 241, 0, 289, 0, 0, 0, 276, 277, 0, 278, | |||
53, 0, 0, 4, 5, 6, 7, 8, 0, 0, | 279, 214, 214, 18, 0, 19, 0, 20, 21, 0, | |||
0, 0, 0, 9, 0, 0, 77, 10, 78, 0, | 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
0, 11, 12, 0, -145, 0, 13, 45, 14, 15, | 227, 0, 0, 0, 294, 0, 0, 0, 0, -72, | |||
4, 5, 6, 7, 8, 0, 0, 0, 0, 16, | 50, 0, 0, 51, -72, 0, 52, 0, -72, -72, | |||
9, 0, 0, 0, 10, 0, 0, 0, 11, 12, | -72, -72, -72, 0, 0, 303, 304, 305, -72, -72, | |||
0, 17, 0, 13, 0, 14, 15, 0, 18, 0, | -72, 0, 0, -72, -72, -72, 0, -72, 311, 0, | |||
19, 0, 20, 21, 54, 22, 16, 0, 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, 210, -72, 0, 58, | ||||
0, 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, | ||||
-152, -152, 0, 0, 0, 0, 16, 0, 0, 185, | ||||
0, 0, 4, 5, 6, 7, 8, 0, 0, 0, | ||||
0, 0, 9, 0, 0, 78, 10, 79, -152, -152, | ||||
11, 12, 0, -151, 0, 13, 0, 14, 15, 0, | ||||
-152, -152, 103, 104, 105, 106, 107, 0, 108, 16, | ||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||||
0, 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, 0, 0, 0, 17, 0, | |||
0, 0, 0, 0, 0, 18, 0, 19, 0, 20, | 0, 0, 0, 0, 0, 18, 0, 19, 0, 20, | |||
21, 142, 22, 0, 4, 5, 6, 7, 8, 0, | 21, 55, 22, 46, 0, 0, 4, 5, 6, 7, | |||
0, 0, 0, 0, 9, 0, 0, 0, 10, 0, | 8, 0, 0, 0, 0, 0, 9, 0, 0, 0, | |||
0, 0, 11, 12, 0, 0, 0, 13, 195, 14, | 10, 0, 0, 0, 11, 12, 0, 0, 0, 13, | |||
15, 4, 5, 6, 7, 8, 0, 0, 0, 0, | 0, 14, 15, 0, 0, 0, 0, 0, 0, 0, | |||
16, 9, 0, 0, 0, 10, 0, 0, 0, 11, | 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, | |||
12, 0, 17, 0, 13, 0, 14, 15, 0, 18, | 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, | |||
0, 19, 0, 20, 21, 0, 22, 16, 0, 0, | 0, 0, 18, 0, 19, 0, 20, 21, 200, 22, | |||
0, 0, 0, 0, 0, 0, 0, 0, 0, 17, | 0, 4, 5, 6, 7, 8, 0, 0, 0, 0, | |||
0, 0, 0, 0, 0, 0, 18, 0, 19, 0, | 0, 9, 0, 0, 0, 10, 0, 0, 0, 11, | |||
20, 21, 199, 22, 0, 4, 5, 6, 7, 8, | 12, 0, 0, 0, 13, 0, 14, 15, 0, 0, | |||
0, 0, 0, 0, 0, 9, 0, 0, 0, 10, | 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, | |||
0, 0, 0, 11, 12, 0, 0, 0, 13, 0, | ||||
14, 15, 4, 5, 6, 7, 8, 0, 0, 0, | ||||
0, 16, 9, 0, 0, 0, 10, 0, 0, 0, | ||||
11, 12, 0, 17, 0, 13, 0, 14, 15, 0, | ||||
18, 0, 19, 0, 20, 21, 0, 22, 16, 0, | ||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
17, 0, 0, 0, 0, 0, 184, 18, 0, 19, | ||||
0, 20, 21, 0, 22, 4, 5, 6, 7, 8, | ||||
0, 0, 0, 0, 0, 9, 0, 0, 0, 10, | ||||
0, 0, 0, 11, 12, 0, 0, 0, 13, 0, | ||||
14, 15, 4, 5, 6, 7, 8, 0, 0, 0, | ||||
0, 16, 9, 0, 0, 0, 10, 0, 0, 0, | ||||
11, 12, 0, 17, 0, 13, 0, 14, 15, 0, | ||||
18, 0, 19, 0, 20, 21, 263, 22, 16, 0, | ||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||||
17, 0, 0, 0, 0, 0, 266, 18, 0, 19, | ||||
0, 20, 21, 0, 22, 4, 5, 6, 7, 8, | ||||
0, 0, 0, 0, 0, 9, 0, 0, 0, 10, | ||||
0, 0, 0, 11, 12, 0, 0, 0, 13, 0, | ||||
14, 15, 4, 5, 6, 7, 8, 0, 0, 0, | ||||
0, 16, 9, 0, 0, 0, 10, 0, 0, 0, | ||||
11, 12, 0, 17, 0, 13, 0, 14, 15, 289, | ||||
18, 0, 19, 0, 20, 21, 0, 22, 16, 4, | ||||
5, 6, 7, 8, 0, 4, 5, 6, 7, 8, | ||||
17, 0, 0, 0, 0, 0, 0, 18, 0, 19, | 17, 0, 0, 0, 0, 0, 0, 18, 0, 19, | |||
0, 20, 21, 0, 22, 15, 0, 0, 0, 0, | 0, 20, 21, 204, 22, 0, 4, 5, 6, 7, | |||
0, 15, 0, 0, 0, 16, 0, 0, 0, 0, | 8, 0, 0, 0, 0, 0, 9, 0, 0, 0, | |||
0, 16, 0, 0, 0, 0, 0, 207, 0, 0, | 10, 0, 0, 0, 11, 12, 0, 0, 0, 13, | |||
0, 0, 0, 0, 18, 0, 19, 0, 20, 21, | 0, 14, 15, 0, 4, 5, 6, 7, 8, 0, | |||
18, 22, 19, 218, 20, 21, 51, 22, 84, 85, | 0, 0, 0, 16, 9, 0, 0, 0, 10, 0, | |||
0, 0, 58, 59, 60, 61, 62, 63, 64, 65, | 0, 0, 11, 12, 0, 17, 0, 13, 0, 14, | |||
66, 67, 68, 69, 70, 71, 72, 73, 74, 75, | 15, 0, 18, 0, 19, 0, 20, 21, 0, 22, | |||
76, 0, 0, 0, 0, 0, 95, 96, 0, 16, | 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, | |||
83, 84, 85, 86, 0, 0, 0, 100, 101, 102, | 0, 0, 0, 17, 0, 0, 0, 0, 0, 122, | |||
103, 104, 105, 106, 0, 107, 87, 88, 219, 0, | 18, 0, 19, 0, 20, 21, 0, 22, 4, 5, | |||
220, 0, 0, 89, 90, 91, 92, 93, 94, 95, | 6, 7, 8, 0, 0, 0, 0, 0, 9, 0, | |||
96, 0, 0, 0, 0, 0, 0, 97, 98, 99, | 0, 0, 10, 0, 0, 0, 11, 12, 0, 0, | |||
100, 101, 102, 103, 104, 105, 106, 0, 107, 83, | 0, 13, 0, 14, 15, 0, 4, 5, 6, 7, | |||
84, 85, 86, 230, 0, 0, 231, 0, 0, 0, | 8, 0, 0, 0, 0, 16, 9, 0, 0, 0, | |||
0, 0, 0, 0, 0, 87, 88, 0, 0, 0, | 10, 0, 0, 0, 11, 12, 0, 17, 0, 13, | |||
0, 0, 89, 90, 91, 92, 93, 94, 95, 96, | 0, 14, 15, 0, 18, 0, 19, 0, 20, 21, | |||
0, 0, 0, 0, 0, 0, 97, 98, 99, 100, | 270, 22, 0, 16, 0, 0, 0, 0, 0, 0, | |||
101, 102, 103, 104, 105, 106, 0, 107, 83, 84, | 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, | |||
85, 86, 0, 0, 0, 138, 0, 0, 0, 0, | 0, 0, 18, 0, 19, 223, 20, 21, 224, 22, | |||
0, 0, 0, 0, 87, 88, 0, 0, 0, 0, | 0, 52, 0, 0, 0, 0, 0, 59, 60, 61, | |||
0, 89, 90, 91, 92, 93, 94, 95, 96, 0, | 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, | |||
0, 0, 0, 0, 0, 97, 98, 99, 100, 101, | 72, 73, 74, 75, 76, 77, 0, 0, 0, 0, | |||
102, 103, 104, 105, 106, 0, 107, 83, 84, 85, | 0, 0, 0, 0, 0, 16, 84, 85, 86, 87, | |||
86, 0, 0, 0, 262, 0, 0, 0, 0, 0, | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
0, 0, 0, 87, 88, 0, 0, 0, 0, 0, | 0, 0, 88, 89, 225, 0, 226, 0, 0, 90, | |||
89, 90, 91, 92, 93, 94, 95, 96, 0, 0, | 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, | |||
0, 0, 0, 0, 97, 98, 99, 100, 101, 102, | 0, 0, 0, 0, 98, 99, 100, 101, 102, 103, | |||
103, 104, 105, 106, 0, 107, 83, 84, 85, 86, | 104, 105, 106, 107, 0, 108, 84, 85, 86, 87, | |||
0, 0, 0, 287, 0, 0, 0, 0, 0, 0, | 237, 0, 0, 238, 0, 0, 0, 0, 0, 0, | |||
0, 0, 87, 88, 0, 0, 0, 0, 0, 89, | 0, 0, 88, 89, 0, 0, 0, 0, 0, 90, | |||
90, 91, 92, 93, 94, 95, 96, 0, 0, 0, | 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, | |||
0, 0, 0, 97, 98, 99, 100, 101, 102, 103, | 0, 0, 0, 0, 98, 99, 100, 101, 102, 103, | |||
104, 105, 106, 0, 107, 306, 0, 307, 83, 84, | 104, 105, 106, 107, 0, 108, 84, 85, 86, 87, | |||
85, 86, 0, 0, 0, 0, 0, 0, 0, 0, | 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, | |||
0, 0, 0, 0, 87, 88, 0, 0, 0, 0, | 0, 0, 88, 89, 0, 0, 0, 0, 0, 90, | |||
0, 89, 90, 91, 92, 93, 94, 95, 96, 0, | 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, | |||
0, 83, 84, 85, 86, 97, 98, 99, 100, 101, | 0, 0, 0, 0, 98, 99, 100, 101, 102, 103, | |||
102, 103, 104, 105, 106, 0, 107, 87, 88, 134, | 104, 105, 106, 107, 0, 108, 84, 85, 86, 87, | |||
0, 0, 0, 0, 89, 90, 91, 92, 93, 94, | 0, 0, 0, 269, 0, 0, 0, 0, 0, 0, | |||
95, 96, 0, 0, 83, 84, 85, 86, 97, 98, | 0, 0, 88, 89, 0, 0, 0, 0, 0, 90, | |||
99, 100, 101, 102, 103, 104, 105, 106, 0, 107, | 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, | |||
87, 88, 211, 0, 0, 0, 0, 89, 90, 91, | 0, 0, 0, 0, 98, 99, 100, 101, 102, 103, | |||
92, 93, 94, 95, 96, 0, 0, 83, 84, 85, | 104, 105, 106, 107, 0, 108, 84, 85, 86, 87, | |||
86, 97, 98, 99, 100, 101, 102, 103, 104, 105, | 0, 0, 0, 293, 0, 0, 0, 0, 0, 0, | |||
106, 0, 107, 87, 88, 281, 0, 0, 0, 0, | 0, 0, 88, 89, 0, 0, 0, 0, 0, 90, | |||
89, 90, 91, 92, 93, 94, 95, 96, 0, 0, | 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, | |||
83, 84, 85, 86, 97, 98, 99, 100, 101, 102, | 0, 0, 0, 0, 98, 99, 100, 101, 102, 103, | |||
103, 104, 105, 106, 0, 107, 87, 88, 305, 0, | 104, 105, 106, 107, 0, 108, 309, 0, 310, 84, | |||
0, 0, 0, 89, 90, 91, 92, 93, 94, 95, | 85, 86, 87, 0, 0, 0, 0, 0, 0, 0, | |||
96, 0, 0, 83, 84, 85, 86, 97, 98, 99, | 0, 0, 0, 0, 0, 88, 89, 0, 0, 0, | |||
100, 101, 102, 103, 104, 105, 106, 0, 107, 87, | 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, | |||
88, 309, 0, 0, 0, 0, 89, 90, 91, 92, | 0, 0, 0, 84, 85, 86, 87, 98, 99, 100, | |||
93, 94, 95, 96, 0, 0, 0, 0, 0, 0, | 101, 102, 103, 104, 105, 106, 107, 0, 108, 88, | |||
97, 98, 99, 100, 101, 102, 103, 104, 105, 106, | 89, 138, 0, 0, 0, 0, 90, 91, 92, 93, | |||
0, 107, 108, 83, 84, 85, 86, 0, 0, 0, | 94, 95, 96, 97, 0, 0, 0, 84, 85, 86, | |||
0, 0, 0, 0, 0, 0, 0, 0, 0, 87, | 87, 98, 99, 100, 101, 102, 103, 104, 105, 106, | |||
88, 0, 0, 0, 0, 0, 89, 90, 91, 92, | 107, 0, 108, 88, 89, 216, 0, 0, 0, 0, | |||
93, 94, 95, 96, 0, 0, 0, 0, 0, 0, | 90, 91, 92, 93, 94, 95, 96, 97, 0, 0, | |||
97, 98, 99, 100, 101, 102, 103, 104, 105, 106, | 0, 84, 85, 86, 87, 98, 99, 100, 101, 102, | |||
0, 107, 234, 83, 84, 85, 86, 0, 0, 0, | 103, 104, 105, 106, 107, 0, 108, 88, 89, 286, | |||
0, 0, 0, 0, 0, 0, 0, 0, 0, 87, | 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, | |||
88, 0, 0, 0, 0, 0, 89, 90, 91, 92, | 96, 97, 0, 0, 0, 84, 85, 86, 87, 98, | |||
93, 94, 95, 96, 0, 0, 0, 0, 0, 0, | 99, 100, 101, 102, 103, 104, 105, 106, 107, 0, | |||
97, 98, 99, 100, 101, 102, 103, 104, 105, 106, | 108, 88, 89, 308, 0, 0, 0, 0, 90, 91, | |||
0, 107, 240, 83, 84, 85, 86, 0, 0, 0, | 92, 93, 94, 95, 96, 97, 0, 0, 0, 84, | |||
0, 0, 0, 0, 0, 0, 0, 0, 0, 87, | 85, 86, 87, 98, 99, 100, 101, 102, 103, 104, | |||
88, 0, 0, 0, 0, 0, 89, 90, 91, 92, | 105, 106, 107, 0, 108, 88, 89, 312, 0, 0, | |||
93, 94, 95, 96, 0, 0, 0, 0, 0, 0, | 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, | |||
97, 98, 99, 100, 101, 102, 103, 104, 105, 106, | 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, | |||
0, 107, 288, 83, 84, 85, 86, 0, 0, 0, | 101, 102, 103, 104, 105, 106, 107, 0, 108, 109, | |||
0, 0, 0, 0, 0, 0, 0, 0, 0, 87, | 84, 85, 86, 87, 0, 0, 0, 0, 0, 0, | |||
88, 0, 0, 0, 0, 0, 89, 90, 91, 92, | 0, 0, 0, 0, 0, 0, 88, 89, 0, 0, | |||
93, 94, 95, 96, 0, 0, 0, 0, 0, 0, | 0, 0, 0, 90, 91, 92, 93, 94, 95, 96, | |||
97, 98, 99, 100, 101, 102, 103, 104, 105, 106, | 97, 0, 0, 0, 0, 0, 0, 0, 98, 99, | |||
0, 107, 294, 83, 84, 85, 86, 0, 0, 0, | 100, 101, 102, 103, 104, 105, 106, 107, 0, 108, | |||
0, 0, 0, 0, 0, 0, 0, 0, 0, 87, | 191, 84, 85, 86, 87, 0, 0, 0, 0, 0, | |||
88, 0, 0, 0, 0, 0, 89, 90, 91, 92, | 0, 0, 0, 0, 0, 0, 0, 88, 89, 0, | |||
93, 94, 95, 96, 0, 0, 0, 0, 0, 0, | 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, | |||
97, 98, 99, 100, 101, 102, 103, 104, 105, 106, | 96, 97, 0, 0, 0, 0, 0, 0, 0, 98, | |||
0, 107, 295, 83, 84, 85, 86, 0, 0, 0, | 99, 100, 101, 102, 103, 104, 105, 106, 107, 0, | |||
0, 0, 0, 0, 0, 0, 0, 0, 0, 87, | 108, 246, 84, 85, 86, 87, 0, 0, 0, 0, | |||
88, 0, 0, 0, 0, 0, 89, 90, 91, 92, | 0, 0, 0, 0, 0, 0, 0, 0, 88, 89, | |||
93, 94, 95, 96, 0, 0, 0, 0, 0, 0, | 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, | |||
97, 98, 99, 100, 101, 102, 103, 104, 105, 106, | 95, 96, 97, 0, 0, 0, 0, 0, 0, 0, | |||
0, 107, 298, 83, 84, 85, 86, 0, 0, 0, | 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, | |||
0, 0, 0, 0, 0, 0, 0, 0, 0, 87, | 0, 108, 297, 84, 85, 86, 87, 0, 0, 0, | |||
88, 0, 0, 0, 0, 0, 89, 90, 91, 92, | 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, | |||
93, 94, 95, 96, 0, 0, 0, 0, 0, 0, | 89, 0, 0, 0, 0, 0, 90, 91, 92, 93, | |||
97, 98, 99, 100, 101, 102, 103, 104, 105, 106, | 94, 95, 96, 97, 0, 0, 0, 0, 0, 0, | |||
0, 107, 299, 83, 84, 85, 86, 0, 0, 0, | 0, 98, 99, 100, 101, 102, 103, 104, 105, 106, | |||
0, 0, 0, 0, 241, 242, 0, 0, 0, 87, | 107, 0, 108, 298, 84, 85, 86, 87, 0, 0, | |||
88, 0, 0, 0, 0, 0, 89, 90, 91, 92, | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
93, 94, 95, 96, 0, 0, 0, 0, 0, 0, | 88, 89, 0, 0, 0, 0, 0, 90, 91, 92, | |||
97, 98, 99, 100, 101, 102, 103, 104, 105, 106, | 93, 94, 95, 96, 97, 0, 0, 0, 0, 0, | |||
0, 107, 83, 84, 85, 86, 0, 0, 0, 0, | 0, 0, 98, 99, 100, 101, 102, 103, 104, 105, | |||
0, 0, 126, 0, 0, 0, 0, 0, 87, 88, | 106, 107, 0, 108, 302, 84, 85, 86, 87, 0, | |||
0, 0, 0, 0, 0, 89, 90, 91, 92, 93, | 0, 0, 0, 0, 0, 0, 247, 248, 0, 0, | |||
94, 95, 96, 0, 0, 83, 84, 85, 86, 97, | 0, 88, 89, 0, 0, 0, 0, 0, 90, 91, | |||
98, 99, 100, 101, 102, 103, 104, 105, 106, 0, | 92, 93, 94, 95, 96, 97, 0, 0, 0, 0, | |||
107, 87, 88, 0, 0, 0, 0, 0, 89, 90, | 0, 0, 0, 98, 99, 100, 101, 102, 103, 104, | |||
91, 92, 93, 94, 95, 96, 0, 0, 0, 275, | 105, 106, 107, 0, 108, 84, 85, 86, 87, 0, | |||
0, 0, 97, 98, 99, 100, 101, 102, 103, 104, | 0, 0, 0, 0, 0, 130, 0, 0, 0, 0, | |||
105, 106, 0, 107, 83, 84, 85, 86, 0, 0, | 0, 88, 89, 0, 0, 0, 0, 0, 90, 91, | |||
0, 0, 0, 0, 0, 0, 0, 0, 0, 292, | 92, 93, 94, 95, 96, 97, 0, 0, 0, 84, | |||
87, 88, 0, 0, 0, 0, 0, 89, 90, 91, | 85, 86, 87, 98, 99, 100, 101, 102, 103, 104, | |||
92, 93, 94, 95, 96, 0, 0, 0, 0, 0, | 105, 106, 107, 0, 108, 88, 89, 0, 0, 0, | |||
0, 97, 98, 99, 100, 101, 102, 103, 104, 105, | 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, | |||
106, 0, 107, 83, 84, 85, 86, 0, 0, 0, | 0, 0, 0, 0, 280, 0, 0, 98, 99, 100, | |||
0, 0, 0, 293, 0, 0, 0, 0, 0, 87, | 101, 102, 103, 104, 105, 106, 107, 0, 108, 84, | |||
88, 0, 0, 0, 0, 0, 89, 90, 91, 92, | 85, 86, 87, 0, 0, 0, 0, 0, 0, 0, | |||
93, 94, 95, 96, 0, 0, 83, 84, 85, 86, | 0, 0, 0, 0, 295, 88, 89, 0, 0, 0, | |||
97, 98, 99, 100, 101, 102, 103, 104, 105, 106, | 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, | |||
0, 107, 87, 88, 0, 0, 0, 0, 0, 89, | 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, | |||
90, 91, 92, 93, 94, 95, 96, 0, 0, 83, | 101, 102, 103, 104, 105, 106, 107, 0, 108, 84, | |||
84, 85, 86, 97, 98, 99, 100, 101, 102, 103, | 85, 86, 87, 0, 0, 0, 0, 0, 0, 296, | |||
104, 105, 106, 0, 107, 87, 88, 0, 0, 0, | 0, 0, 0, 0, 0, 88, 89, 0, 0, 0, | |||
0, 0, 89, 90, 91, 92, 93, 94, 95, 96, | 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, | |||
0, 0, -146, 84, 85, 0, 0, 0, 99, 100, | 0, 0, 0, 84, 85, 86, 87, 98, 99, 100, | |||
101, 102, 103, 104, 105, 106, 0, 107, 87, 88, | 101, 102, 103, 104, 105, 106, 107, 0, 108, 88, | |||
0, 0, 0, 0, 0, -146, -146, -146, -146, -146, | 89, 0, 0, 0, 0, 0, 90, 91, 92, 93, | |||
-146, 95, 96, 0, 0, 0, 0, 0, 0, 0, | 94, 95, 96, 97, 0, 0, 0, 84, 85, 86, | |||
0, -146, 100, 101, 102, 103, 104, 105, 106, 0, | 87, 98, 99, 100, 101, 102, 103, 104, 105, 106, | |||
107 | 107, 0, 108, 88, 89, 0, 0, 0, 0, 0, | |||
90, 91, 92, 93, 94, 95, 96, 97, 0, 0, | ||||
0, -152, 85, 86, 0, 0, 0, 100, 101, 102, | ||||
103, 104, 105, 106, 107, 0, 108, 88, 89, 0, | ||||
0, 0, 0, 0, -152, -152, -152, -152, -152, -152, | ||||
96, 97, 0, 0, 85, 86, 0, 0, 0, 0, | ||||
0, -152, 101, 102, 103, 104, 105, 106, 107, 88, | ||||
108, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||||
0, 0, 96, 97, 0, 0, 0, 0, 0, 0, | ||||
0, 0, 0, 0, 101, 102, 103, 104, 105, 106, | ||||
107, 0, 108 | ||||
}; | }; | |||
static const yytype_int16 yycheck[] = | static const yytype_int16 yycheck[] = | |||
{ | { | |||
1, 1, 127, 128, 145, 146, 5, 11, 12, 10, | 1, 4, 5, 6, 7, 8, 1, 11, 12, 10, | |||
7, 5, 13, 5, 13, 5, 17, 18, 30, 13, | 7, 4, 13, 5, 4, 146, 17, 18, 149, 150, | |||
21, 13, 4, 4, 20, 176, 22, 4, 47, 30, | 21, 13, 30, 180, 48, 48, 20, 30, 22, 30, | |||
139, 32, 28, 29, 47, 61, 47, 15, 64, 148, | 179, 32, 33, 48, 28, 29, 15, 48, 41, 143, | |||
66, 59, 0, 40, 62, 53, 54, 55, 67, 57, | 63, 31, 66, 0, 41, 68, 42, 43, 152, 45, | |||
175, 58, 65, 60, 31, 57, 67, 41, 42, 4, | 53, 4, 63, 68, 60, 62, 5, 60, 65, 62, | |||
44, 61, 16, 17, 63, 64, 207, 40, 59, 63, | 67, 64, 65, 5, 67, 42, 43, 62, 45, 62, | |||
64, 63, 64, 63, 64, 58, 77, 60, 28, 61, | 58, 13, 64, 65, 54, 55, 56, 78, 58, 16, | |||
61, 61, 83, 84, 85, 86, 87, 88, 89, 90, | 17, 212, 231, 84, 85, 86, 87, 88, 89, 90, | |||
91, 92, 93, 94, 95, 96, 97, 98, 99, 100, | 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, | |||
101, 102, 103, 104, 105, 106, 118, 258, 249, 250, | 101, 102, 103, 104, 105, 106, 107, 264, 257, 62, | |||
251, 4, 113, 4, 115, 1, 112, 60, 10, 11, | 259, 260, 120, 114, 263, 64, 65, 266, 59, 113, | |||
41, 42, 57, 44, 125, 126, 65, 252, 129, 254, | 61, 41, 64, 65, 255, 256, 4, 60, 129, 130, | |||
62, 4, 257, 25, 62, 260, 62, 141, 67, 47, | 63, 59, 133, 61, 28, 5, 62, 4, 287, 4, | |||
57, 145, 146, 139, 13, 46, 38, 39, 60, 4, | 144, 1, 146, 13, 61, 149, 150, 131, 132, 143, | |||
57, 46, 148, 57, 65, 57, 4, 49, 50, 51, | 299, 58, 66, 1, 63, 4, 4, 63, 152, 7, | |||
52, 53, 54, 55, 47, 57, 46, 4, 62, 59, | 63, 48, 58, 68, 47, 13, 14, 15, 16, 17, | |||
59, 296, 4, 31, 62, 62, 57, 62, 62, 180, | 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, | |||
176, 57, 57, 62, 62, 57, 187, 118, 238, 123, | 28, 29, 30, 31, 13, 186, 180, 58, 4, 40, | |||
300, 1, 187, 258, 4, 5, 6, 7, 8, -1, | 47, 192, 58, 41, 64, 65, 40, 4, 5, 6, | |||
201, -1, 203, 207, 14, -1, -1, -1, 18, -1, | 7, 8, 66, 58, 4, 206, 60, 208, 212, 47, | |||
-1, -1, 22, 23, -1, -1, -1, 27, 219, 29, | 60, 63, 60, 4, 62, 58, 63, 63, 63, 4, | |||
30, -1, -1, -1, 225, -1, -1, -1, -1, 230, | 68, 63, 63, 30, 225, 40, 63, 58, 58, 63, | |||
40, 232, -1, -1, -1, -1, -1, -1, -1, -1, | 58, 232, 31, 29, 41, 120, 237, 127, 303, 244, | |||
241, 242, 52, 244, 245, 249, 250, 251, -1, 59, | 192, -1, 264, -1, -1, -1, 247, 248, -1, 250, | |||
-1, 61, 62, 63, 64, 65, 66, -1, -1, -1, | 251, 255, 256, 60, -1, 62, -1, 64, 65, -1, | |||
-1, -1, 258, -1, -1, -1, -1, 268, -1, 270, | 67, -1, -1, -1, -1, -1, -1, -1, -1, -1, | |||
-1, -1, -1, -1, -1, -1, 0, 1, -1, -1, | 264, -1, -1, -1, 275, -1, -1, -1, -1, 0, | |||
4, 5, -1, 7, -1, 9, 10, 11, 12, 13, | 1, -1, -1, 4, 5, -1, 7, -1, 9, 10, | |||
-1, -1, 293, 294, 295, 19, 20, 21, -1, -1, | 11, 12, 13, -1, -1, 296, 297, 298, 19, 20, | |||
24, 25, 26, -1, 28, 306, -1, -1, 32, 33, | 21, -1, -1, 24, 25, 26, -1, 28, 309, -1, | |||
34, 35, 36, 37, 38, 39, 40, -1, -1, 43, | -1, 32, 33, 34, 35, 36, 37, 38, 39, -1, | |||
-1, -1, 46, 47, 48, 49, 50, 51, 52, 53, | 41, -1, -1, 44, -1, -1, 47, 48, 49, 50, | |||
54, 55, -1, 57, 58, -1, 60, -1, 62, 63, | 51, 52, 53, 54, 55, 56, -1, 58, 59, -1, | |||
64, 65, 1, 67, -1, 4, 10, 11, 7, -1, | 61, -1, 63, 64, 65, 66, 1, 68, -1, 4, | |||
-1, -1, -1, -1, 13, 14, 15, 16, 17, 18, | -1, -1, 7, -1, -1, -1, -1, -1, 13, 14, | |||
19, 20, 21, 22, 23, 24, 25, 26, 27, 28, | 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, | |||
29, 30, 31, -1, 38, 39, -1, -1, -1, -1, | 25, 26, 27, 28, 29, 30, 31, -1, -1, -1, | |||
-1, 40, -1, -1, -1, 49, 50, 51, 52, 53, | 10, 11, -1, -1, -1, -1, 41, -1, -1, 1, | |||
54, 55, -1, 57, -1, -1, -1, -1, 1, -1, | -1, -1, 4, 5, 6, 7, 8, -1, -1, -1, | |||
59, 4, 61, -1, 7, -1, -1, -1, 67, -1, | -1, -1, 14, -1, -1, 60, 18, 62, 38, 39, | |||
13, 14, 15, 16, 17, 18, 19, 20, 21, 22, | 22, 23, -1, 68, -1, 27, -1, 29, 30, -1, | |||
23, 24, 25, 26, 27, 28, 29, 30, 31, -1, | 50, 51, 52, 53, 54, 55, 56, -1, 58, 41, | |||
-1, -1, -1, -1, -1, -1, -1, 40, -1, -1, | -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, | |||
1, -1, -1, 4, 5, 6, 7, 8, -1, -1, | -1, 53, -1, -1, -1, -1, 10, 11, 60, -1, | |||
-1, -1, -1, 14, -1, -1, 59, 18, 61, -1, | 62, 63, 64, 65, 66, 67, 1, -1, -1, 4, | |||
-1, 22, 23, -1, 67, -1, 27, 1, 29, 30, | 5, 6, 7, 8, -1, -1, -1, -1, -1, 14, | |||
4, 5, 6, 7, 8, -1, -1, -1, -1, 40, | -1, -1, -1, 18, 38, 39, -1, 22, 23, -1, | |||
14, -1, -1, -1, 18, -1, -1, -1, 22, 23, | -1, -1, 27, -1, 29, 30, 50, 51, 52, 53, | |||
-1, 52, -1, 27, -1, 29, 30, -1, 59, -1, | 54, 55, 56, -1, 58, -1, 41, -1, -1, -1, | |||
61, -1, 63, 64, 65, 66, 40, -1, -1, -1, | -1, -1, -1, -1, -1, -1, -1, -1, 53, -1, | |||
-1, -1, -1, -1, -1, -1, -1, -1, 52, -1, | -1, -1, -1, -1, -1, 60, -1, 62, -1, 64, | |||
-1, -1, -1, -1, -1, 59, -1, 61, -1, 63, | 65, 66, 67, 1, -1, -1, 4, 5, 6, 7, | |||
64, 1, 66, -1, 4, 5, 6, 7, 8, -1, | 8, -1, -1, -1, -1, -1, 14, -1, -1, -1, | |||
-1, -1, -1, -1, 14, -1, -1, -1, 18, -1, | 18, -1, -1, -1, 22, 23, -1, -1, -1, 27, | |||
-1, -1, 22, 23, -1, -1, -1, 27, 1, 29, | -1, 29, 30, -1, -1, -1, -1, -1, -1, -1, | |||
30, 4, 5, 6, 7, 8, -1, -1, -1, -1, | -1, -1, -1, 41, -1, -1, -1, -1, -1, -1, | |||
40, 14, -1, -1, -1, 18, -1, -1, -1, 22, | -1, -1, -1, -1, -1, 53, -1, -1, -1, -1, | |||
23, -1, 52, -1, 27, -1, 29, 30, -1, 59, | -1, -1, 60, -1, 62, -1, 64, 65, 1, 67, | |||
-1, 61, -1, 63, 64, -1, 66, 40, -1, -1, | -1, 4, 5, 6, 7, 8, -1, -1, -1, -1, | |||
-1, -1, -1, -1, -1, -1, -1, -1, -1, 52, | -1, 14, -1, -1, -1, 18, -1, -1, -1, 22, | |||
-1, -1, -1, -1, -1, -1, 59, -1, 61, -1, | 23, -1, -1, -1, 27, -1, 29, 30, -1, -1, | |||
63, 64, 1, 66, -1, 4, 5, 6, 7, 8, | -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, | |||
-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, | -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, | |||
52, -1, -1, -1, -1, -1, 58, 59, -1, 61, | 53, -1, -1, -1, -1, -1, -1, 60, -1, 62, | |||
-1, 63, 64, -1, 66, 4, 5, 6, 7, 8, | -1, 64, 65, 1, 67, -1, 4, 5, 6, 7, | |||
-1, -1, -1, -1, -1, 14, -1, -1, -1, 18, | 8, -1, -1, -1, -1, -1, 14, -1, -1, -1, | |||
-1, -1, -1, 22, 23, -1, -1, -1, 27, -1, | 18, -1, -1, -1, 22, 23, -1, -1, -1, 27, | |||
29, 30, 4, 5, 6, 7, 8, -1, -1, -1, | -1, 29, 30, -1, 4, 5, 6, 7, 8, -1, | |||
-1, 40, 14, -1, -1, -1, 18, -1, -1, -1, | -1, -1, -1, 41, 14, -1, -1, -1, 18, -1, | |||
22, 23, -1, 52, -1, 27, -1, 29, 30, -1, | -1, -1, 22, 23, -1, 53, -1, 27, -1, 29, | |||
59, -1, 61, -1, 63, 64, 65, 66, 40, -1, | 30, -1, 60, -1, 62, -1, 64, 65, -1, 67, | |||
-1, 41, -1, -1, -1, -1, -1, -1, -1, -1, | ||||
-1, -1, -1, 53, -1, -1, -1, -1, -1, 59, | ||||
60, -1, 62, -1, 64, 65, -1, 67, 4, 5, | ||||
6, 7, 8, -1, -1, -1, -1, -1, 14, -1, | ||||
-1, -1, 18, -1, -1, -1, 22, 23, -1, -1, | ||||
-1, 27, -1, 29, 30, -1, 4, 5, 6, 7, | ||||
8, -1, -1, -1, -1, 41, 14, -1, -1, -1, | ||||
18, -1, -1, -1, 22, 23, -1, 53, -1, 27, | ||||
-1, 29, 30, -1, 60, -1, 62, -1, 64, 65, | ||||
66, 67, -1, 41, -1, -1, -1, -1, -1, -1, | ||||
-1, -1, -1, -1, -1, 53, -1, -1, -1, -1, | ||||
-1, -1, 60, -1, 62, 1, 64, 65, 4, 67, | ||||
-1, 7, -1, -1, -1, -1, -1, 13, 14, 15, | ||||
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, | ||||
26, 27, 28, 29, 30, 31, -1, -1, -1, -1, | ||||
-1, -1, -1, -1, -1, 41, 9, 10, 11, 12, | ||||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, | -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, | |||
52, -1, -1, -1, -1, -1, 58, 59, -1, 61, | -1, -1, 25, 26, 60, -1, 62, -1, -1, 32, | |||
-1, 63, 64, -1, 66, 4, 5, 6, 7, 8, | 33, 34, 35, 36, 37, 38, 39, -1, -1, -1, | |||
-1, -1, -1, -1, -1, 14, -1, -1, -1, 18, | -1, -1, -1, -1, 47, 48, 49, 50, 51, 52, | |||
-1, -1, -1, 22, 23, -1, -1, -1, 27, -1, | 53, 54, 55, 56, -1, 58, 9, 10, 11, 12, | |||
29, 30, 4, 5, 6, 7, 8, -1, -1, -1, | 63, -1, -1, 66, -1, -1, -1, -1, -1, -1, | |||
-1, 40, 14, -1, -1, -1, 18, -1, -1, -1, | -1, -1, 25, 26, -1, -1, -1, -1, -1, 32, | |||
22, 23, -1, 52, -1, 27, -1, 29, 30, 58, | 33, 34, 35, 36, 37, 38, 39, -1, -1, -1, | |||
59, -1, 61, -1, 63, 64, -1, 66, 40, 4, | -1, -1, -1, -1, 47, 48, 49, 50, 51, 52, | |||
5, 6, 7, 8, -1, 4, 5, 6, 7, 8, | 53, 54, 55, 56, -1, 58, 9, 10, 11, 12, | |||
52, -1, -1, -1, -1, -1, -1, 59, -1, 61, | -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, | |||
-1, 63, 64, -1, 66, 30, -1, -1, -1, -1, | -1, -1, 25, 26, -1, -1, -1, -1, -1, 32, | |||
-1, 30, -1, -1, -1, 40, -1, -1, -1, -1, | 33, 34, 35, 36, 37, 38, 39, -1, -1, -1, | |||
-1, 40, -1, -1, -1, -1, -1, 52, -1, -1, | -1, -1, -1, -1, 47, 48, 49, 50, 51, 52, | |||
-1, -1, -1, -1, 59, -1, 61, -1, 63, 64, | 53, 54, 55, 56, -1, 58, 9, 10, 11, 12, | |||
59, 66, 61, 4, 63, 64, 7, 66, 10, 11, | -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, | |||
-1, -1, 13, 14, 15, 16, 17, 18, 19, 20, | -1, -1, 25, 26, -1, -1, -1, -1, -1, 32, | |||
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, | 33, 34, 35, 36, 37, 38, 39, -1, -1, -1, | |||
31, -1, -1, -1, -1, -1, 38, 39, -1, 40, | -1, -1, -1, -1, 47, 48, 49, 50, 51, 52, | |||
9, 10, 11, 12, -1, -1, -1, 49, 50, 51, | 53, 54, 55, 56, -1, 58, 9, 10, 11, 12, | |||
52, 53, 54, 55, -1, 57, 25, 26, 59, -1, | -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, | |||
61, -1, -1, 32, 33, 34, 35, 36, 37, 38, | -1, -1, 25, 26, -1, -1, -1, -1, -1, 32, | |||
39, -1, -1, -1, -1, -1, -1, 46, 47, 48, | 33, 34, 35, 36, 37, 38, 39, -1, -1, -1, | |||
49, 50, 51, 52, 53, 54, 55, -1, 57, 9, | -1, -1, -1, -1, 47, 48, 49, 50, 51, 52, | |||
10, 11, 12, 62, -1, -1, 65, -1, -1, -1, | 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, -1, -1, -1, 25, 26, -1, -1, -1, | |||
-1, -1, 32, 33, 34, 35, 36, 37, 38, 39, | -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, | |||
-1, -1, -1, -1, -1, -1, 46, 47, 48, 49, | -1, -1, -1, 9, 10, 11, 12, 47, 48, 49, | |||
50, 51, 52, 53, 54, 55, -1, 57, 9, 10, | 50, 51, 52, 53, 54, 55, 56, -1, 58, 25, | |||
11, 12, -1, -1, -1, 65, -1, -1, -1, -1, | 26, 61, -1, -1, -1, -1, 32, 33, 34, 35, | |||
-1, -1, -1, -1, 25, 26, -1, -1, -1, -1, | 36, 37, 38, 39, -1, -1, -1, 9, 10, 11, | |||
-1, 32, 33, 34, 35, 36, 37, 38, 39, -1, | 12, 47, 48, 49, 50, 51, 52, 53, 54, 55, | |||
-1, -1, -1, -1, -1, 46, 47, 48, 49, 50, | 56, -1, 58, 25, 26, 61, -1, -1, -1, -1, | |||
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, | 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, | |||
-1, -1, -1, -1, 46, 47, 48, 49, 50, 51, | -1, 9, 10, 11, 12, 47, 48, 49, 50, 51, | |||
52, 53, 54, 55, -1, 57, 9, 10, 11, 12, | 52, 53, 54, 55, 56, -1, 58, 25, 26, 61, | |||
-1, -1, -1, 65, -1, -1, -1, -1, -1, -1, | ||||
-1, -1, 25, 26, -1, -1, -1, -1, -1, 32, | ||||
33, 34, 35, 36, 37, 38, 39, -1, -1, -1, | ||||
-1, -1, -1, 46, 47, 48, 49, 50, 51, 52, | ||||
53, 54, 55, -1, 57, 58, -1, 60, 9, 10, | ||||
11, 12, -1, -1, -1, -1, -1, -1, -1, -1, | ||||
-1, -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, | -1, -1, -1, -1, 32, 33, 34, 35, 36, 37, | |||
38, 39, -1, -1, 9, 10, 11, 12, 46, 47, | 38, 39, -1, -1, -1, 9, 10, 11, 12, 47, | |||
48, 49, 50, 51, 52, 53, 54, 55, -1, 57, | 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, | |||
25, 26, 60, -1, -1, -1, -1, 32, 33, 34, | 58, 25, 26, 61, -1, -1, -1, -1, 32, 33, | |||
35, 36, 37, 38, 39, -1, -1, 9, 10, 11, | 34, 35, 36, 37, 38, 39, -1, -1, -1, 9, | |||
12, 46, 47, 48, 49, 50, 51, 52, 53, 54, | 10, 11, 12, 47, 48, 49, 50, 51, 52, 53, | |||
55, -1, 57, 25, 26, 60, -1, -1, -1, -1, | 54, 55, 56, -1, 58, 25, 26, 61, -1, -1, | |||
32, 33, 34, 35, 36, 37, 38, 39, -1, -1, | -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, | |||
9, 10, 11, 12, 46, 47, 48, 49, 50, 51, | -1, -1, -1, -1, -1, -1, -1, 47, 48, 49, | |||
52, 53, 54, 55, -1, 57, 25, 26, 60, -1, | 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, | -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, | |||
39, -1, -1, 9, 10, 11, 12, 46, 47, 48, | 39, -1, -1, -1, -1, -1, -1, -1, 47, 48, | |||
49, 50, 51, 52, 53, 54, 55, -1, 57, 25, | 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, | |||
26, 60, -1, -1, -1, -1, 32, 33, 34, 35, | 59, 9, 10, 11, 12, -1, -1, -1, -1, -1, | |||
36, 37, 38, 39, -1, -1, -1, -1, -1, -1, | -1, -1, -1, -1, -1, -1, -1, 25, 26, -1, | |||
46, 47, 48, 49, 50, 51, 52, 53, 54, 55, | -1, -1, -1, -1, 32, 33, 34, 35, 36, 37, | |||
-1, 57, 58, 9, 10, 11, 12, -1, -1, -1, | 38, 39, -1, -1, -1, -1, -1, -1, -1, 47, | |||
-1, -1, -1, -1, -1, -1, -1, -1, -1, 25, | 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, | |||
26, -1, -1, -1, -1, -1, 32, 33, 34, 35, | 58, 59, 9, 10, 11, 12, -1, -1, -1, -1, | |||
36, 37, 38, 39, -1, -1, -1, -1, -1, -1, | -1, -1, -1, -1, -1, -1, -1, -1, 25, 26, | |||
46, 47, 48, 49, 50, 51, 52, 53, 54, 55, | -1, -1, -1, -1, -1, 32, 33, 34, 35, 36, | |||
-1, 57, 58, 9, 10, 11, 12, -1, -1, -1, | 37, 38, 39, -1, -1, -1, -1, -1, -1, -1, | |||
-1, -1, -1, -1, -1, -1, -1, -1, -1, 25, | 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, | |||
26, -1, -1, -1, -1, -1, 32, 33, 34, 35, | -1, 58, 59, 9, 10, 11, 12, -1, -1, -1, | |||
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, | -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, | |||
26, -1, -1, -1, -1, -1, 32, 33, 34, 35, | 26, -1, -1, -1, -1, -1, 32, 33, 34, 35, | |||
36, 37, 38, 39, -1, -1, -1, -1, -1, -1, | 36, 37, 38, 39, -1, -1, -1, -1, -1, -1, | |||
46, 47, 48, 49, 50, 51, 52, 53, 54, 55, | -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, | |||
-1, 57, 58, 9, 10, 11, 12, -1, -1, -1, | 56, -1, 58, 59, 9, 10, 11, 12, -1, -1, | |||
-1, -1, -1, -1, 20, 21, -1, -1, -1, 25, | -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, | |||
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, | 25, 26, -1, -1, -1, -1, -1, 32, 33, 34, | |||
35, 36, 37, 38, 39, -1, -1, -1, -1, -1, | 35, 36, 37, 38, 39, -1, -1, -1, -1, -1, | |||
-1, 46, 47, 48, 49, 50, 51, 52, 53, 54, | -1, -1, 47, 48, 49, 50, 51, 52, 53, 54, | |||
55, -1, 57, 9, 10, 11, 12, -1, -1, -1, | 55, 56, -1, 58, 59, 9, 10, 11, 12, -1, | |||
-1, -1, -1, 19, -1, -1, -1, -1, -1, 25, | -1, -1, -1, -1, -1, -1, 20, 21, -1, -1, | |||
26, -1, -1, -1, -1, -1, 32, 33, 34, 35, | -1, 25, 26, -1, -1, -1, -1, -1, 32, 33, | |||
36, 37, 38, 39, -1, -1, 9, 10, 11, 12, | 34, 35, 36, 37, 38, 39, -1, -1, -1, -1, | |||
46, 47, 48, 49, 50, 51, 52, 53, 54, 55, | -1, -1, -1, 47, 48, 49, 50, 51, 52, 53, | |||
-1, 57, 25, 26, -1, -1, -1, -1, -1, 32, | 54, 55, 56, -1, 58, 9, 10, 11, 12, -1, | |||
33, 34, 35, 36, 37, 38, 39, -1, -1, 9, | -1, -1, -1, -1, -1, 19, -1, -1, -1, -1, | |||
10, 11, 12, 46, 47, 48, 49, 50, 51, 52, | -1, 25, 26, -1, -1, -1, -1, -1, 32, 33, | |||
53, 54, 55, -1, 57, 25, 26, -1, -1, -1, | 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, 32, 33, 34, 35, 36, 37, 38, 39, | |||
-1, -1, 9, 10, 11, -1, -1, -1, 48, 49, | -1, -1, -1, -1, 44, -1, -1, 47, 48, 49, | |||
50, 51, 52, 53, 54, 55, -1, 57, 25, 26, | 50, 51, 52, 53, 54, 55, 56, -1, 58, 9, | |||
-1, -1, -1, -1, -1, 32, 33, 34, 35, 36, | 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, | |||
37, 38, 39, -1, -1, -1, -1, -1, -1, -1, | -1, -1, -1, -1, 24, 25, 26, -1, -1, -1, | |||
-1, 48, 49, 50, 51, 52, 53, 54, 55, -1, | -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, | |||
57 | -1, -1, -1, -1, -1, -1, -1, 47, 48, 49, | |||
50, 51, 52, 53, 54, 55, 56, -1, 58, 9, | ||||
10, 11, 12, -1, -1, -1, -1, -1, -1, 19, | ||||
-1, -1, -1, -1, -1, 25, 26, -1, -1, -1, | ||||
-1, -1, 32, 33, 34, 35, 36, 37, 38, 39, | ||||
-1, -1, -1, 9, 10, 11, 12, 47, 48, 49, | ||||
50, 51, 52, 53, 54, 55, 56, -1, 58, 25, | ||||
26, -1, -1, -1, -1, -1, 32, 33, 34, 35, | ||||
36, 37, 38, 39, -1, -1, -1, 9, 10, 11, | ||||
12, 47, 48, 49, 50, 51, 52, 53, 54, 55, | ||||
56, -1, 58, 25, 26, -1, -1, -1, -1, -1, | ||||
32, 33, 34, 35, 36, 37, 38, 39, -1, -1, | ||||
-1, 9, 10, 11, -1, -1, -1, 49, 50, 51, | ||||
52, 53, 54, 55, 56, -1, 58, 25, 26, -1, | ||||
-1, -1, -1, -1, 32, 33, 34, 35, 36, 37, | ||||
38, 39, -1, -1, 10, 11, -1, -1, -1, -1, | ||||
-1, 49, 50, 51, 52, 53, 54, 55, 56, 25, | ||||
58, -1, -1, -1, -1, -1, -1, -1, -1, -1, | ||||
-1, -1, 38, 39, -1, -1, -1, -1, -1, -1, | ||||
-1, -1, -1, -1, 50, 51, 52, 53, 54, 55, | ||||
56, -1, 58 | ||||
}; | }; | |||
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing | /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing | |||
symbol of state STATE-NUM. */ | symbol of state STATE-NUM. */ | |||
static const yytype_uint8 yystos[] = | static const yytype_uint8 yystos[] = | |||
{ | { | |||
0, 15, 69, 70, 4, 5, 6, 7, 8, 14, | 0, 15, 70, 71, 4, 5, 6, 7, 8, 14, | |||
18, 22, 23, 27, 29, 30, 40, 52, 59, 61, | 18, 22, 23, 27, 29, 30, 41, 53, 60, 62, | |||
63, 64, 66, 73, 75, 78, 84, 0, 16, 17, | 64, 65, 67, 74, 78, 81, 87, 0, 16, 17, | |||
71, 74, 59, 57, 40, 4, 73, 84, 84, 73, | 72, 75, 76, 60, 58, 41, 4, 74, 87, 87, | |||
61, 1, 61, 79, 73, 1, 73, 4, 31, 1, | 74, 62, 1, 62, 82, 74, 1, 74, 4, 31, | |||
4, 7, 78, 1, 65, 73, 1, 4, 13, 14, | 1, 4, 7, 81, 1, 66, 74, 1, 4, 13, | |||
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, | 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, | |||
25, 26, 27, 28, 29, 30, 31, 59, 61, 78, | 24, 25, 26, 27, 28, 29, 30, 31, 60, 62, | |||
91, 92, 93, 9, 10, 11, 12, 25, 26, 32, | 81, 96, 97, 98, 9, 10, 11, 12, 25, 26, | |||
33, 34, 35, 36, 37, 38, 39, 46, 47, 48, | 32, 33, 34, 35, 36, 37, 38, 39, 47, 48, | |||
49, 50, 51, 52, 53, 54, 55, 57, 58, 73, | 49, 50, 51, 52, 53, 54, 55, 56, 58, 59, | |||
5, 13, 63, 64, 78, 78, 72, 73, 75, 71, | 74, 5, 13, 64, 65, 77, 81, 77, 73, 74, | |||
73, 85, 86, 80, 59, 62, 19, 13, 13, 28, | 78, 72, 59, 74, 74, 88, 89, 83, 60, 63, | |||
4, 4, 81, 60, 60, 1, 57, 65, 65, 47, | 19, 13, 13, 28, 4, 4, 84, 61, 61, 1, | |||
67, 62, 1, 73, 4, 62, 62, 67, 47, 73, | 58, 66, 66, 48, 63, 68, 63, 74, 4, 63, | |||
73, 73, 73, 73, 73, 73, 73, 73, 73, 73, | 63, 68, 48, 74, 74, 74, 74, 74, 74, 74, | |||
73, 73, 73, 73, 73, 73, 73, 73, 73, 73, | 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, | |||
73, 73, 73, 57, 61, 64, 66, 87, 78, 1, | 74, 74, 74, 74, 74, 74, 74, 58, 62, 65, | |||
62, 65, 73, 13, 58, 73, 72, 58, 60, 81, | 67, 90, 91, 92, 81, 1, 63, 66, 74, 13, | |||
4, 61, 76, 77, 73, 1, 73, 87, 87, 1, | 73, 59, 59, 61, 84, 4, 62, 79, 80, 74, | |||
73, 46, 41, 42, 44, 1, 92, 52, 83, 84, | 1, 74, 91, 91, 1, 74, 47, 42, 43, 45, | |||
60, 60, 83, 83, 92, 4, 87, 88, 4, 59, | 1, 97, 53, 86, 87, 86, 61, 86, 86, 97, | |||
61, 78, 89, 90, 91, 46, 57, 65, 73, 57, | 4, 92, 93, 1, 4, 60, 62, 81, 94, 95, | |||
62, 65, 4, 61, 58, 86, 44, 4, 58, 60, | 96, 40, 47, 58, 66, 74, 58, 63, 66, 4, | |||
58, 20, 21, 82, 59, 59, 73, 73, 83, 46, | 62, 89, 45, 4, 59, 61, 59, 20, 21, 85, | |||
62, 62, 47, 65, 62, 73, 4, 62, 47, 67, | 60, 60, 74, 74, 86, 47, 63, 48, 66, 63, | |||
62, 73, 65, 65, 73, 57, 58, 73, 4, 77, | 63, 74, 4, 63, 48, 68, 63, 92, 74, 66, | |||
62, 73, 73, 73, 73, 43, 83, 83, 83, 87, | 66, 74, 58, 4, 80, 63, 74, 74, 74, 74, | |||
87, 60, 87, 90, 87, 57, 57, 65, 58, 58, | 44, 86, 86, 92, 92, 92, 61, 63, 92, 95, | |||
73, 73, 24, 19, 58, 58, 62, 57, 58, 58, | 92, 58, 58, 66, 74, 24, 19, 59, 59, 63, | |||
73, 73, 73, 87, 82, 60, 58, 60, 73, 60 | 92, 58, 59, 74, 74, 74, 92, 85, 61, 59, | |||
61, 74, 61 | ||||
}; | }; | |||
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ | /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ | |||
static const yytype_uint8 yyr1[] = | static const yytype_uint8 yyr1[] = | |||
{ | { | |||
0, 68, 69, 69, 70, 70, 71, 71, 72, 72, | 0, 69, 70, 70, 71, 71, 72, 72, 73, 73, | |||
73, 73, 73, 73, 73, 73, 73, 73, 73, 73, | 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, | |||
73, 73, 73, 73, 73, 73, 73, 73, 73, 73, | 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, | |||
73, 73, 73, 73, 73, 73, 73, 73, 73, 73, | 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, | |||
73, 73, 73, 73, 73, 73, 73, 73, 74, 74, | 74, 74, 74, 74, 74, 74, 74, 74, 75, 75, | |||
74, 74, 74, 74, 75, 75, 76, 76, 77, 77, | 76, 76, 76, 77, 78, 78, 79, 79, 80, 80, | |||
79, 78, 80, 78, 81, 81, 81, 82, 82, 83, | 82, 81, 83, 81, 84, 84, 84, 85, 85, 86, | |||
83, 83, 84, 84, 84, 84, 84, 84, 84, 84, | 86, 86, 87, 87, 87, 87, 87, 87, 87, 87, | |||
84, 84, 84, 84, 84, 84, 84, 84, 84, 84, | 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, | |||
84, 84, 84, 84, 84, 84, 84, 84, 84, 84, | 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, | |||
84, 84, 84, 84, 84, 84, 84, 84, 84, 84, | 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, | |||
84, 85, 85, 86, 87, 87, 87, 88, 88, 89, | 87, 88, 88, 89, 90, 90, 91, 91, 92, 92, | |||
89, 90, 90, 90, 90, 90, 91, 91, 91, 91, | 92, 93, 93, 94, 94, 95, 95, 95, 95, 95, | |||
91, 91, 91, 91, 91, 91, 91, 91, 91, 91, | 95, 95, 96, 96, 96, 96, 96, 96, 96, 96, | |||
91, 91, 91, 91, 91, 92, 92, 92, 92, 93, | 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, | |||
93, 93, 93, 93, 93, 93, 93 | 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. */ | /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ | |||
static const yytype_uint8 yyr2[] = | static const yytype_uint8 yyr2[] = | |||
{ | { | |||
0, 2, 3, 3, 0, 3, 0, 2, 0, 2, | 0, 2, 3, 3, 0, 3, 0, 2, 0, 2, | |||
2, 5, 9, 11, 9, 5, 4, 4, 2, 4, | 2, 5, 9, 11, 9, 5, 4, 4, 2, 4, | |||
5, 2, 3, 3, 3, 3, 3, 3, 3, 3, | 5, 2, 3, 3, 3, 3, 3, 3, 3, 3, | |||
3, 3, 2, 3, 3, 3, 3, 3, 3, 3, | 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, | |||
3, 3, 3, 3, 3, 3, 3, 1, 6, 5, | 3, 3, 3, 3, 3, 3, 3, 1, 2, 3, | |||
3, 6, 4, 7, 5, 8, 1, 3, 2, 1, | 5, 4, 2, 1, 5, 8, 1, 3, 2, 1, | |||
0, 4, 0, 5, 0, 2, 4, 5, 3, 3, | 0, 4, 0, 5, 0, 2, 4, 5, 3, 3, | |||
2, 1, 1, 1, 3, 2, 3, 2, 4, 3, | 2, 1, 1, 1, 3, 2, 3, 2, 4, 3, | |||
2, 1, 3, 2, 2, 3, 5, 4, 4, 3, | 2, 1, 3, 2, 2, 3, 5, 4, 4, 3, | |||
7, 6, 6, 6, 5, 5, 1, 1, 1, 3, | 7, 6, 6, 6, 5, 5, 1, 1, 1, 3, | |||
3, 2, 3, 2, 2, 1, 4, 3, 3, 4, | 3, 2, 3, 2, 2, 1, 4, 3, 3, 4, | |||
3, 1, 3, 1, 2, 3, 3, 1, 3, 1, | 3, 1, 3, 1, 3, 1, 3, 1, 2, 3, | |||
3, 2, 3, 3, 3, 5, 1, 1, 1, 1, | 3, 1, 3, 1, 3, 2, 4, 3, 3, 3, | |||
5, 3, 1, 1, 1, 1, 1, 1, 1, 1, | ||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |||
1, 1, 1, 1, 1, 0, 1, 3, 3, 3, | 1, 0, 1, 3, 3, 3, 3, 3, 1, 2, | |||
3, 3, 1, 2, 1, 5, 5 | 1, 5, 3 | |||
}; | }; | |||
#define yyerrok (yyerrstatus = 0) | #define yyerrok (yyerrstatus = 0) | |||
#define yyclearin (yychar = YYEMPTY) | #define yyclearin (yychar = YYEMPTY) | |||
#define YYEMPTY (-2) | #define YYEMPTY (-2) | |||
#define YYEOF 0 | #define YYEOF 0 | |||
#define YYACCEPT goto yyacceptlab | #define YYACCEPT goto yyacceptlab | |||
#define YYABORT goto yyabortlab | #define YYABORT goto yyabortlab | |||
#define YYERROR goto yyerrorlab | #define YYERROR goto yyerrorlab | |||
skipping to change at line 1870 | skipping to change at line 1871 | |||
YYUSE (locations); | YYUSE (locations); | |||
YYUSE (lexer_param_ptr); | YYUSE (lexer_param_ptr); | |||
if (!yymsg) | if (!yymsg) | |||
yymsg = "Deleting"; | yymsg = "Deleting"; | |||
YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); | YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); | |||
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN | YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN | |||
switch (yytype) | switch (yytype) | |||
{ | { | |||
case 4: /* IDENT */ | case 4: /* IDENT */ | |||
#line 36 "parser.y" /* yacc.c:1257 */ | #line 36 "src/parser.y" /* yacc.c:1257 */ | |||
{ jv_free(((*yyvaluep).literal)); } | { jv_free(((*yyvaluep).literal)); } | |||
#line 1892 "parser.c" /* yacc.c:1257 */ | #line 1893 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
case 5: /* FIELD */ | case 5: /* FIELD */ | |||
#line 36 "parser.y" /* yacc.c:1257 */ | #line 36 "src/parser.y" /* yacc.c:1257 */ | |||
{ jv_free(((*yyvaluep).literal)); } | { jv_free(((*yyvaluep).literal)); } | |||
#line 1898 "parser.c" /* yacc.c:1257 */ | #line 1899 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
case 6: /* LITERAL */ | case 6: /* LITERAL */ | |||
#line 36 "parser.y" /* yacc.c:1257 */ | #line 36 "src/parser.y" /* yacc.c:1257 */ | |||
{ jv_free(((*yyvaluep).literal)); } | { jv_free(((*yyvaluep).literal)); } | |||
#line 1904 "parser.c" /* yacc.c:1257 */ | #line 1905 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
case 7: /* FORMAT */ | case 7: /* FORMAT */ | |||
#line 36 "parser.y" /* yacc.c:1257 */ | #line 36 "src/parser.y" /* yacc.c:1257 */ | |||
{ jv_free(((*yyvaluep).literal)); } | { jv_free(((*yyvaluep).literal)); } | |||
#line 1910 "parser.c" /* yacc.c:1257 */ | #line 1911 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
case 41: /* QQSTRING_TEXT */ | case 42: /* QQSTRING_TEXT */ | |||
#line 36 "parser.y" /* yacc.c:1257 */ | #line 36 "src/parser.y" /* yacc.c:1257 */ | |||
{ jv_free(((*yyvaluep).literal)); } | { jv_free(((*yyvaluep).literal)); } | |||
#line 1916 "parser.c" /* yacc.c:1257 */ | #line 1917 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
case 70: /* Module */ | case 71: /* Module */ | |||
#line 37 "parser.y" /* yacc.c:1257 */ | #line 37 "src/parser.y" /* yacc.c:1257 */ | |||
{ block_free(((*yyvaluep).blk)); } | { block_free(((*yyvaluep).blk)); } | |||
#line 1922 "parser.c" /* yacc.c:1257 */ | #line 1923 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
case 71: /* Imports */ | case 72: /* Imports */ | |||
#line 37 "parser.y" /* yacc.c:1257 */ | #line 37 "src/parser.y" /* yacc.c:1257 */ | |||
{ block_free(((*yyvaluep).blk)); } | { block_free(((*yyvaluep).blk)); } | |||
#line 1928 "parser.c" /* yacc.c:1257 */ | #line 1929 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
case 72: /* FuncDefs */ | case 73: /* FuncDefs */ | |||
#line 37 "parser.y" /* yacc.c:1257 */ | #line 37 "src/parser.y" /* yacc.c:1257 */ | |||
{ block_free(((*yyvaluep).blk)); } | { block_free(((*yyvaluep).blk)); } | |||
#line 1934 "parser.c" /* yacc.c:1257 */ | #line 1935 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
case 73: /* Exp */ | case 74: /* Exp */ | |||
#line 37 "parser.y" /* yacc.c:1257 */ | #line 37 "src/parser.y" /* yacc.c:1257 */ | |||
{ block_free(((*yyvaluep).blk)); } | { block_free(((*yyvaluep).blk)); } | |||
#line 1940 "parser.c" /* yacc.c:1257 */ | #line 1941 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
case 74: /* Import */ | case 75: /* Import */ | |||
#line 37 "parser.y" /* yacc.c:1257 */ | #line 37 "src/parser.y" /* yacc.c:1257 */ | |||
{ block_free(((*yyvaluep).blk)); } | { block_free(((*yyvaluep).blk)); } | |||
#line 1946 "parser.c" /* yacc.c:1257 */ | #line 1947 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
case 75: /* FuncDef */ | case 76: /* ImportWhat */ | |||
#line 37 "parser.y" /* yacc.c:1257 */ | #line 37 "src/parser.y" /* yacc.c:1257 */ | |||
{ block_free(((*yyvaluep).blk)); } | { block_free(((*yyvaluep).blk)); } | |||
#line 1952 "parser.c" /* yacc.c:1257 */ | #line 1953 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
case 76: /* Params */ | case 77: /* ImportFrom */ | |||
#line 37 "parser.y" /* yacc.c:1257 */ | #line 37 "src/parser.y" /* yacc.c:1257 */ | |||
{ block_free(((*yyvaluep).blk)); } | { block_free(((*yyvaluep).blk)); } | |||
#line 1958 "parser.c" /* yacc.c:1257 */ | #line 1959 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
case 77: /* Param */ | case 78: /* FuncDef */ | |||
#line 37 "parser.y" /* yacc.c:1257 */ | #line 37 "src/parser.y" /* yacc.c:1257 */ | |||
{ block_free(((*yyvaluep).blk)); } | { block_free(((*yyvaluep).blk)); } | |||
#line 1964 "parser.c" /* yacc.c:1257 */ | #line 1965 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
case 78: /* String */ | case 79: /* Params */ | |||
#line 37 "parser.y" /* yacc.c:1257 */ | #line 37 "src/parser.y" /* yacc.c:1257 */ | |||
{ block_free(((*yyvaluep).blk)); } | { block_free(((*yyvaluep).blk)); } | |||
#line 1970 "parser.c" /* yacc.c:1257 */ | #line 1971 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
case 81: /* QQString */ | case 80: /* Param */ | |||
#line 37 "parser.y" /* yacc.c:1257 */ | #line 37 "src/parser.y" /* yacc.c:1257 */ | |||
{ block_free(((*yyvaluep).blk)); } | { block_free(((*yyvaluep).blk)); } | |||
#line 1976 "parser.c" /* yacc.c:1257 */ | #line 1977 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
case 82: /* ElseBody */ | case 81: /* String */ | |||
#line 37 "parser.y" /* yacc.c:1257 */ | #line 37 "src/parser.y" /* yacc.c:1257 */ | |||
{ block_free(((*yyvaluep).blk)); } | { block_free(((*yyvaluep).blk)); } | |||
#line 1982 "parser.c" /* yacc.c:1257 */ | #line 1983 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
case 83: /* ExpD */ | case 84: /* QQString */ | |||
#line 37 "parser.y" /* yacc.c:1257 */ | #line 37 "src/parser.y" /* yacc.c:1257 */ | |||
{ block_free(((*yyvaluep).blk)); } | { block_free(((*yyvaluep).blk)); } | |||
#line 1988 "parser.c" /* yacc.c:1257 */ | #line 1989 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
case 84: /* Term */ | case 85: /* ElseBody */ | |||
#line 37 "parser.y" /* yacc.c:1257 */ | #line 37 "src/parser.y" /* yacc.c:1257 */ | |||
{ block_free(((*yyvaluep).blk)); } | { block_free(((*yyvaluep).blk)); } | |||
#line 1994 "parser.c" /* yacc.c:1257 */ | #line 1995 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
case 85: /* Args */ | case 86: /* ExpD */ | |||
#line 37 "parser.y" /* yacc.c:1257 */ | #line 37 "src/parser.y" /* yacc.c:1257 */ | |||
{ block_free(((*yyvaluep).blk)); } | { block_free(((*yyvaluep).blk)); } | |||
#line 2000 "parser.c" /* yacc.c:1257 */ | #line 2001 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
case 86: /* Arg */ | case 87: /* Term */ | |||
#line 37 "parser.y" /* yacc.c:1257 */ | #line 37 "src/parser.y" /* yacc.c:1257 */ | |||
{ block_free(((*yyvaluep).blk)); } | { block_free(((*yyvaluep).blk)); } | |||
#line 2006 "parser.c" /* yacc.c:1257 */ | #line 2007 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
case 87: /* Pattern */ | case 88: /* Args */ | |||
#line 37 "parser.y" /* yacc.c:1257 */ | #line 37 "src/parser.y" /* yacc.c:1257 */ | |||
{ block_free(((*yyvaluep).blk)); } | { block_free(((*yyvaluep).blk)); } | |||
#line 2012 "parser.c" /* yacc.c:1257 */ | #line 2013 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
case 88: /* ArrayPats */ | case 89: /* Arg */ | |||
#line 37 "parser.y" /* yacc.c:1257 */ | #line 37 "src/parser.y" /* yacc.c:1257 */ | |||
{ block_free(((*yyvaluep).blk)); } | { block_free(((*yyvaluep).blk)); } | |||
#line 2018 "parser.c" /* yacc.c:1257 */ | #line 2019 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
case 89: /* ObjPats */ | case 90: /* RepPatterns */ | |||
#line 37 "parser.y" /* yacc.c:1257 */ | #line 37 "src/parser.y" /* yacc.c:1257 */ | |||
{ block_free(((*yyvaluep).blk)); } | { block_free(((*yyvaluep).blk)); } | |||
#line 2024 "parser.c" /* yacc.c:1257 */ | #line 2025 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
case 90: /* ObjPat */ | case 91: /* Patterns */ | |||
#line 37 "parser.y" /* yacc.c:1257 */ | #line 37 "src/parser.y" /* yacc.c:1257 */ | |||
{ block_free(((*yyvaluep).blk)); } | { block_free(((*yyvaluep).blk)); } | |||
#line 2030 "parser.c" /* yacc.c:1257 */ | #line 2031 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
case 91: /* Keyword */ | case 92: /* Pattern */ | |||
#line 36 "parser.y" /* yacc.c:1257 */ | #line 37 "src/parser.y" /* yacc.c:1257 */ | |||
{ block_free(((*yyvaluep).blk)); } | ||||
#line 2037 "src/parser.c" /* yacc.c:1257 */ | ||||
break; | ||||
case 93: /* ArrayPats */ | ||||
#line 37 "src/parser.y" /* yacc.c:1257 */ | ||||
{ block_free(((*yyvaluep).blk)); } | ||||
#line 2043 "src/parser.c" /* yacc.c:1257 */ | ||||
break; | ||||
case 94: /* ObjPats */ | ||||
#line 37 "src/parser.y" /* yacc.c:1257 */ | ||||
{ block_free(((*yyvaluep).blk)); } | ||||
#line 2049 "src/parser.c" /* yacc.c:1257 */ | ||||
break; | ||||
case 95: /* ObjPat */ | ||||
#line 37 "src/parser.y" /* yacc.c:1257 */ | ||||
{ block_free(((*yyvaluep).blk)); } | ||||
#line 2055 "src/parser.c" /* yacc.c:1257 */ | ||||
break; | ||||
case 96: /* Keyword */ | ||||
#line 36 "src/parser.y" /* yacc.c:1257 */ | ||||
{ jv_free(((*yyvaluep).literal)); } | { jv_free(((*yyvaluep).literal)); } | |||
#line 2036 "parser.c" /* yacc.c:1257 */ | #line 2061 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
case 92: /* MkDict */ | case 97: /* MkDict */ | |||
#line 37 "parser.y" /* yacc.c:1257 */ | #line 37 "src/parser.y" /* yacc.c:1257 */ | |||
{ block_free(((*yyvaluep).blk)); } | { block_free(((*yyvaluep).blk)); } | |||
#line 2042 "parser.c" /* yacc.c:1257 */ | #line 2067 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
case 93: /* MkDictPair */ | case 98: /* MkDictPair */ | |||
#line 37 "parser.y" /* yacc.c:1257 */ | #line 37 "src/parser.y" /* yacc.c:1257 */ | |||
{ block_free(((*yyvaluep).blk)); } | { block_free(((*yyvaluep).blk)); } | |||
#line 2048 "parser.c" /* yacc.c:1257 */ | #line 2073 "src/parser.c" /* yacc.c:1257 */ | |||
break; | break; | |||
default: | default: | |||
break; | break; | |||
} | } | |||
YY_IGNORE_MAYBE_UNINITIALIZED_END | YY_IGNORE_MAYBE_UNINITIALIZED_END | |||
} | } | |||
/*----------. | /*----------. | |||
| yyparse. | | | yyparse. | | |||
skipping to change at line 2313 | skipping to change at line 2338 | |||
unconditionally makes the parser a bit smaller, and it avoids a | unconditionally makes the parser a bit smaller, and it avoids a | |||
GCC warning that YYVAL may be used uninitialized. */ | GCC warning that YYVAL may be used uninitialized. */ | |||
yyval = yyvsp[1-yylen]; | yyval = yyvsp[1-yylen]; | |||
/* Default location. */ | /* Default location. */ | |||
YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); | YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); | |||
YY_REDUCE_PRINT (yyn); | YY_REDUCE_PRINT (yyn); | |||
switch (yyn) | switch (yyn) | |||
{ | { | |||
case 2: | case 2: | |||
#line 276 "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)); | *answer = BLOCK((yyvsp[-2].blk), (yyvsp[-1].blk), gen_op_simple(TOP), (yyvsp[0 ].blk)); | |||
} | } | |||
#line 2344 "parser.c" /* yacc.c:1646 */ | #line 2369 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 3: | case 3: | |||
#line 279 "parser.y" /* yacc.c:1646 */ | #line 303 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
*answer = BLOCK((yyvsp[-2].blk), (yyvsp[-1].blk), (yyvsp[0].blk)); | *answer = BLOCK((yyvsp[-2].blk), (yyvsp[-1].blk), (yyvsp[0].blk)); | |||
} | } | |||
#line 2352 "parser.c" /* yacc.c:1646 */ | #line 2377 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 4: | case 4: | |||
#line 284 "parser.y" /* yacc.c:1646 */ | #line 308 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_noop(); | (yyval.blk) = gen_noop(); | |||
} | } | |||
#line 2360 "parser.c" /* yacc.c:1646 */ | #line 2385 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 5: | case 5: | |||
#line 287 "parser.y" /* yacc.c:1646 */ | #line 311 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
if (!block_is_const((yyvsp[-1].blk))) { | if (!block_is_const((yyvsp[-1].blk))) { | |||
FAIL((yyloc), "Module metadata must be constant."); | FAIL((yyloc), "Module metadata must be constant"); | |||
(yyval.blk) = gen_noop(); | (yyval.blk) = gen_noop(); | |||
block_free((yyvsp[-1].blk)); | ||||
} else { | } else { | |||
(yyval.blk) = gen_module((yyvsp[-1].blk)); | (yyval.blk) = gen_module((yyvsp[-1].blk)); | |||
} | } | |||
} | } | |||
#line 2373 "parser.c" /* yacc.c:1646 */ | #line 2399 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 6: | case 6: | |||
#line 297 "parser.y" /* yacc.c:1646 */ | #line 322 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_noop(); | (yyval.blk) = gen_noop(); | |||
} | } | |||
#line 2381 "parser.c" /* yacc.c:1646 */ | #line 2407 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 7: | case 7: | |||
#line 300 "parser.y" /* yacc.c:1646 */ | #line 325 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = BLOCK((yyvsp[-1].blk), (yyvsp[0].blk)); | (yyval.blk) = BLOCK((yyvsp[-1].blk), (yyvsp[0].blk)); | |||
} | } | |||
#line 2389 "parser.c" /* yacc.c:1646 */ | #line 2415 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 8: | case 8: | |||
#line 305 "parser.y" /* yacc.c:1646 */ | #line 330 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_noop(); | (yyval.blk) = gen_noop(); | |||
} | } | |||
#line 2397 "parser.c" /* yacc.c:1646 */ | #line 2423 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 9: | case 9: | |||
#line 308 "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); | (yyval.blk) = block_bind((yyvsp[-1].blk), (yyvsp[0].blk), OP_IS_CALL_PSEUDO); | |||
} | } | |||
#line 2405 "parser.c" /* yacc.c:1646 */ | #line 2431 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 10: | case 10: | |||
#line 313 "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_CAL L_PSEUDO); | (yyval.blk) = block_bind_referenced((yyvsp[-1].blk), (yyvsp[0].blk), OP_IS_CAL L_PSEUDO); | |||
} | } | |||
#line 2413 "parser.c" /* yacc.c:1646 */ | #line 2439 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 11: | case 11: | |||
#line 317 "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) ); | (yyval.blk) = gen_destructure((yyvsp[-4].blk), (yyvsp[-2].blk), (yyvsp[0].blk) ); | |||
} | } | |||
#line 2421 "parser.c" /* yacc.c:1646 */ | #line 2447 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 12: | case 12: | |||
#line 321 "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), (y yvsp[-1].blk)); | (yyval.blk) = gen_reduce((yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (y yvsp[-1].blk)); | |||
} | } | |||
#line 2429 "parser.c" /* yacc.c:1646 */ | #line 2455 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 13: | case 13: | |||
#line 325 "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)); | (yyval.blk) = gen_foreach((yyvsp[-9].blk), (yyvsp[-7].blk), (yyvsp[-5].blk), ( yyvsp[-3].blk), (yyvsp[-1].blk)); | |||
} | } | |||
#line 2437 "parser.c" /* yacc.c:1646 */ | #line 2463 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 14: | case 14: | |||
#line 329 "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()); | (yyval.blk) = gen_foreach((yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), ( yyvsp[-1].blk), gen_noop()); | |||
} | } | |||
#line 2445 "parser.c" /* yacc.c:1646 */ | #line 2471 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 15: | case 15: | |||
#line 333 "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)); | (yyval.blk) = gen_cond((yyvsp[-3].blk), (yyvsp[-1].blk), (yyvsp[0].blk)); | |||
} | } | |||
#line 2453 "parser.c" /* yacc.c:1646 */ | #line 2479 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 16: | case 16: | |||
#line 336 "parser.y" /* yacc.c:1646 */ | #line 360 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
FAIL((yyloc), "Possibly unterminated 'if' statement"); | FAIL((yyloc), "Possibly unterminated 'if' statement"); | |||
(yyval.blk) = (yyvsp[-2].blk); | (yyval.blk) = (yyvsp[-2].blk); | |||
} | } | |||
#line 2462 "parser.c" /* yacc.c:1646 */ | #line 2488 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 17: | case 17: | |||
#line 341 "parser.y" /* yacc.c:1646 */ | #line 365 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
//$$ = BLOCK(gen_op_target(FORK_OPT, $2), $2, $4); | //$$ = BLOCK(gen_op_target(FORK_OPT, $2), $2, $4); | |||
(yyval.blk) = gen_try((yyvsp[-2].blk), gen_try_handler((yyvsp[0].blk))); | (yyval.blk) = gen_try((yyvsp[-2].blk), gen_try_handler((yyvsp[0].blk))); | |||
} | } | |||
#line 2471 "parser.c" /* yacc.c:1646 */ | #line 2497 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 18: | case 18: | |||
#line 345 "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)); | //$$ = BLOCK(gen_op_target(FORK_OPT, $2), $2, gen_op_simple(BACKTRACK)); | |||
(yyval.blk) = gen_try((yyvsp[0].blk), gen_op_simple(BACKTRACK)); | (yyval.blk) = gen_try((yyvsp[0].blk), gen_op_simple(BACKTRACK)); | |||
} | } | |||
#line 2480 "parser.c" /* yacc.c:1646 */ | #line 2506 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 19: | case 19: | |||
#line 349 "parser.y" /* yacc.c:1646 */ | #line 373 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
FAIL((yyloc), "Possibly unterminated 'try' statement"); | FAIL((yyloc), "Possibly unterminated 'try' statement"); | |||
(yyval.blk) = (yyvsp[-2].blk); | (yyval.blk) = (yyvsp[-2].blk); | |||
} | } | |||
#line 2489 "parser.c" /* yacc.c:1646 */ | #line 2515 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 20: | case 20: | |||
#line 354 "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))); | 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))); | (yyval.blk) = gen_location((yyloc), locations, gen_label(jv_string_value(v), ( yyvsp[0].blk))); | |||
jv_free((yyvsp[-2].literal)); | jv_free((yyvsp[-2].literal)); | |||
jv_free(v); | jv_free(v); | |||
} | } | |||
#line 2500 "parser.c" /* yacc.c:1646 */ | #line 2526 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 21: | case 21: | |||
#line 361 "parser.y" /* yacc.c:1646 */ | #line 385 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_try((yyvsp[-1].blk), gen_op_simple(BACKTRACK)); | (yyval.blk) = gen_try((yyvsp[-1].blk), gen_op_simple(BACKTRACK)); | |||
} | } | |||
#line 2508 "parser.c" /* yacc.c:1646 */ | #line 2534 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 22: | case 22: | |||
#line 365 "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_lambd a((yyvsp[0].blk)))); | (yyval.blk) = gen_call("_assign", BLOCK(gen_lambda((yyvsp[-2].blk)), gen_lambd a((yyvsp[0].blk)))); | |||
} | } | |||
#line 2516 "parser.c" /* yacc.c:1646 */ | #line 2542 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 23: | case 23: | |||
#line 369 "parser.y" /* yacc.c:1646 */ | #line 393 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_or((yyvsp[-2].blk), (yyvsp[0].blk)); | (yyval.blk) = gen_or((yyvsp[-2].blk), (yyvsp[0].blk)); | |||
} | } | |||
#line 2524 "parser.c" /* yacc.c:1646 */ | #line 2550 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 24: | case 24: | |||
#line 373 "parser.y" /* yacc.c:1646 */ | #line 397 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_and((yyvsp[-2].blk), (yyvsp[0].blk)); | (yyval.blk) = gen_and((yyvsp[-2].blk), (yyvsp[0].blk)); | |||
} | } | |||
#line 2532 "parser.c" /* yacc.c:1646 */ | #line 2558 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 25: | case 25: | |||
#line 377 "parser.y" /* yacc.c:1646 */ | #line 401 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_definedor((yyvsp[-2].blk), (yyvsp[0].blk)); | (yyval.blk) = gen_definedor((yyvsp[-2].blk), (yyvsp[0].blk)); | |||
} | } | |||
#line 2540 "parser.c" /* yacc.c:1646 */ | #line 2566 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 26: | case 26: | |||
#line 381 "parser.y" /* yacc.c:1646 */ | #line 405 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_definedor_assign((yyvsp[-2].blk), (yyvsp[0].blk)); | (yyval.blk) = gen_definedor_assign((yyvsp[-2].blk), (yyvsp[0].blk)); | |||
} | } | |||
#line 2548 "parser.c" /* yacc.c:1646 */ | #line 2574 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 27: | case 27: | |||
#line 385 "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_lambd a((yyvsp[0].blk)))); | (yyval.blk) = gen_call("_modify", BLOCK(gen_lambda((yyvsp[-2].blk)), gen_lambd a((yyvsp[0].blk)))); | |||
} | } | |||
#line 2556 "parser.c" /* yacc.c:1646 */ | #line 2582 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 28: | case 28: | |||
#line 389 "parser.y" /* yacc.c:1646 */ | #line 413 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = block_join((yyvsp[-2].blk), (yyvsp[0].blk)); | (yyval.blk) = block_join((yyvsp[-2].blk), (yyvsp[0].blk)); | |||
} | } | |||
#line 2564 "parser.c" /* yacc.c:1646 */ | #line 2590 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 29: | case 29: | |||
#line 393 "parser.y" /* yacc.c:1646 */ | #line 417 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_both((yyvsp[-2].blk), (yyvsp[0].blk)); | (yyval.blk) = gen_both((yyvsp[-2].blk), (yyvsp[0].blk)); | |||
} | } | |||
#line 2572 "parser.c" /* yacc.c:1646 */ | #line 2598 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 30: | case 30: | |||
#line 397 "parser.y" /* yacc.c:1646 */ | #line 421 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '+'); | (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '+'); | |||
} | } | |||
#line 2580 "parser.c" /* yacc.c:1646 */ | #line 2606 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 31: | case 31: | |||
#line 401 "parser.y" /* yacc.c:1646 */ | #line 425 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '+'); | (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '+'); | |||
} | } | |||
#line 2588 "parser.c" /* yacc.c:1646 */ | #line 2614 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 32: | case 32: | |||
#line 405 "parser.y" /* yacc.c:1646 */ | #line 429 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = BLOCK((yyvsp[0].blk), gen_call("_negate", gen_noop())); | (yyval.blk) = BLOCK((yyvsp[0].blk), gen_call("_negate", gen_noop())); | |||
} | } | |||
#line 2596 "parser.c" /* yacc.c:1646 */ | #line 2622 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 33: | case 33: | |||
#line 409 "parser.y" /* yacc.c:1646 */ | #line 433 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '-'); | (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '-'); | |||
} | } | |||
#line 2604 "parser.c" /* yacc.c:1646 */ | #line 2630 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 34: | case 34: | |||
#line 413 "parser.y" /* yacc.c:1646 */ | #line 437 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '-'); | (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '-'); | |||
} | } | |||
#line 2612 "parser.c" /* yacc.c:1646 */ | #line 2638 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 35: | case 35: | |||
#line 417 "parser.y" /* yacc.c:1646 */ | #line 441 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '*'); | (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '*'); | |||
} | } | |||
#line 2620 "parser.c" /* yacc.c:1646 */ | #line 2646 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 36: | case 36: | |||
#line 421 "parser.y" /* yacc.c:1646 */ | #line 445 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '*'); | (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '*'); | |||
} | } | |||
#line 2628 "parser.c" /* yacc.c:1646 */ | #line 2654 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 37: | case 37: | |||
#line 425 "parser.y" /* yacc.c:1646 */ | #line 449 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '/'); | (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '/'); | |||
if (block_is_const_inf((yyval.blk))) | if (block_is_const_inf((yyval.blk))) | |||
FAIL((yyloc), "Division by zero?"); | FAIL((yyloc), "Division by zero?"); | |||
} | } | |||
#line 2638 "parser.c" /* yacc.c:1646 */ | #line 2664 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 38: | case 38: | |||
#line 431 "parser.y" /* yacc.c:1646 */ | #line 455 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '%'); | (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '%'); | |||
if (block_is_const_inf((yyval.blk))) | if (block_is_const_inf((yyval.blk))) | |||
FAIL((yyloc), "Remainder by zero?"); | FAIL((yyloc), "Remainder by zero?"); | |||
} | } | |||
#line 2648 "parser.c" /* yacc.c:1646 */ | #line 2674 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 39: | case 39: | |||
#line 437 "parser.y" /* yacc.c:1646 */ | #line 461 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '/'); | (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '/'); | |||
} | } | |||
#line 2656 "parser.c" /* yacc.c:1646 */ | #line 2682 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 40: | case 40: | |||
#line 441 "parser.y" /* yacc.c:1646 */ | #line 465 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '%'); | (yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '%'); | |||
} | } | |||
#line 2664 "parser.c" /* yacc.c:1646 */ | #line 2690 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 41: | case 41: | |||
#line 445 "parser.y" /* yacc.c:1646 */ | #line 469 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), EQ); | (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), EQ); | |||
} | } | |||
#line 2672 "parser.c" /* yacc.c:1646 */ | #line 2698 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 42: | case 42: | |||
#line 449 "parser.y" /* yacc.c:1646 */ | #line 473 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), NEQ); | (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), NEQ); | |||
} | } | |||
#line 2680 "parser.c" /* yacc.c:1646 */ | #line 2706 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 43: | case 43: | |||
#line 453 "parser.y" /* yacc.c:1646 */ | #line 477 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '<'); | (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '<'); | |||
} | } | |||
#line 2688 "parser.c" /* yacc.c:1646 */ | #line 2714 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 44: | case 44: | |||
#line 457 "parser.y" /* yacc.c:1646 */ | #line 481 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '>'); | (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '>'); | |||
} | } | |||
#line 2696 "parser.c" /* yacc.c:1646 */ | #line 2722 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 45: | case 45: | |||
#line 461 "parser.y" /* yacc.c:1646 */ | #line 485 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), LESSEQ); | (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), LESSEQ); | |||
} | } | |||
#line 2704 "parser.c" /* yacc.c:1646 */ | #line 2730 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 46: | case 46: | |||
#line 465 "parser.y" /* yacc.c:1646 */ | #line 489 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), GREATEREQ); | (yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), GREATEREQ); | |||
} | } | |||
#line 2712 "parser.c" /* yacc.c:1646 */ | #line 2738 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 47: | case 47: | |||
#line 469 "parser.y" /* yacc.c:1646 */ | #line 493 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = (yyvsp[0].blk); | (yyval.blk) = (yyvsp[0].blk); | |||
} | } | |||
#line 2720 "parser.c" /* yacc.c:1646 */ | #line 2746 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 48: | case 48: | |||
#line 474 "parser.y" /* yacc.c:1646 */ | #line 498 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
jv v = block_const((yyvsp[-4].blk)); | (yyval.blk) = (yyvsp[-1].blk); | |||
// XXX Make gen_import take only blocks and the int is_data so we | ||||
// don't have to free so much stuff here | ||||
(yyval.blk) = gen_import(jv_string_value(v), gen_noop(), jv_string_value((yyvs | ||||
p[-1].literal)), 1); | ||||
block_free((yyvsp[-4].blk)); | ||||
jv_free((yyvsp[-1].literal)); | ||||
jv_free(v); | ||||
} | } | |||
#line 2734 "parser.c" /* yacc.c:1646 */ | #line 2754 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 49: | case 49: | |||
#line 483 "parser.y" /* yacc.c:1646 */ | #line 501 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
jv v = block_const((yyvsp[-3].blk)); | if (!block_is_const((yyvsp[-1].blk))) { | |||
(yyval.blk) = gen_import(jv_string_value(v), gen_noop(), jv_string_value((yyvs | FAIL((yyloc), "Module metadata must be constant"); | |||
p[-1].literal)), 0); | (yyval.blk) = gen_noop(); | |||
block_free((yyvsp[-3].blk)); | block_free((yyvsp[-2].blk)); | |||
jv_free((yyvsp[-1].literal)); | block_free((yyvsp[-1].blk)); | |||
jv_free(v); | } else if (block_const_kind((yyvsp[-1].blk)) != JV_KIND_OBJECT) { | |||
FAIL((yyloc), "Module metadata must be an object"); | ||||
(yyval.blk) = gen_noop(); | ||||
block_free((yyvsp[-2].blk)); | ||||
block_free((yyvsp[-1].blk)); | ||||
} else { | ||||
(yyval.blk) = gen_import_meta((yyvsp[-2].blk), (yyvsp[-1].blk)); | ||||
} | ||||
} | } | |||
#line 2746 "parser.c" /* yacc.c:1646 */ | #line 2774 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 50: | case 50: | |||
#line 490 "parser.y" /* yacc.c:1646 */ | #line 518 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
jv v = block_const((yyvsp[-1].blk)); | jv v = block_const((yyvsp[-3].blk)); | |||
(yyval.blk) = gen_import(jv_string_value(v), gen_noop(), NULL, 0); | // XXX Make gen_import take only blocks and the int is_data so we | |||
block_free((yyvsp[-1].blk)); | // don't have to free so much stuff here | |||
(yyval.blk) = gen_import(jv_string_value(v), jv_string_value((yyvsp[0].literal | ||||
)), 1); | ||||
block_free((yyvsp[-3].blk)); | ||||
jv_free((yyvsp[0].literal)); | ||||
jv_free(v); | jv_free(v); | |||
} | } | |||
#line 2757 "parser.c" /* yacc.c:1646 */ | #line 2788 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 51: | case 51: | |||
#line 496 "parser.y" /* yacc.c:1646 */ | #line 527 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
if (!block_is_const((yyvsp[-1].blk))) { | jv v = block_const((yyvsp[-2].blk)); | |||
FAIL((yyloc), "Module metadata must be constant."); | (yyval.blk) = gen_import(jv_string_value(v), jv_string_value((yyvsp[0].literal | |||
(yyval.blk) = gen_noop(); | )), 0); | |||
} else { | block_free((yyvsp[-2].blk)); | |||
jv v = block_const((yyvsp[-4].blk)); | jv_free((yyvsp[0].literal)); | |||
(yyval.blk) = gen_import(jv_string_value(v), (yyvsp[-1].blk), jv_string_valu | jv_free(v); | |||
e((yyvsp[-2].literal)), 0); | ||||
jv_free(v); | ||||
} | ||||
block_free((yyvsp[-4].blk)); | ||||
jv_free((yyvsp[-2].literal)); | ||||
} | } | |||
#line 2774 "parser.c" /* yacc.c:1646 */ | #line 2800 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 52: | case 52: | |||
#line 508 "parser.y" /* yacc.c:1646 */ | #line 534 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
if (!block_is_const((yyvsp[-1].blk))) { | jv v = block_const((yyvsp[0].blk)); | |||
FAIL((yyloc), "Module metadata must be constant."); | (yyval.blk) = gen_import(jv_string_value(v), NULL, 0); | |||
(yyval.blk) = gen_noop(); | block_free((yyvsp[0].blk)); | |||
} else { | jv_free(v); | |||
jv v = block_const((yyvsp[-2].blk)); | ||||
(yyval.blk) = gen_import(jv_string_value(v), (yyvsp[-1].blk), NULL, 0); | ||||
jv_free(v); | ||||
} | ||||
block_free((yyvsp[-2].blk)); | ||||
} | } | |||
#line 2790 "parser.c" /* yacc.c:1646 */ | #line 2811 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 53: | case 53: | |||
#line 519 "parser.y" /* yacc.c:1646 */ | #line 542 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
if (!block_is_const((yyvsp[-1].blk))) { | if (!block_is_const((yyvsp[0].blk))) { | |||
FAIL((yyloc), "Module metadata must be constant."); | FAIL((yyloc), "Import path must be constant"); | |||
(yyval.blk) = gen_noop(); | (yyval.blk) = gen_const(jv_string("")); | |||
block_free((yyvsp[0].blk)); | ||||
} else { | } else { | |||
jv v = block_const((yyvsp[-5].blk)); | (yyval.blk) = (yyvsp[0].blk); | |||
(yyval.blk) = gen_import(jv_string_value(v), (yyvsp[-1].blk), jv_string_valu | ||||
e((yyvsp[-2].literal)), 1); | ||||
jv_free(v); | ||||
} | } | |||
block_free((yyvsp[-5].blk)); | ||||
jv_free((yyvsp[-2].literal)); | ||||
} | } | |||
#line 2807 "parser.c" /* yacc.c:1646 */ | #line 2825 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 54: | case 54: | |||
#line 533 "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)); | (yyval.blk) = gen_function(jv_string_value((yyvsp[-3].literal)), gen_noop(), ( yyvsp[-1].blk)); | |||
jv_free((yyvsp[-3].literal)); | jv_free((yyvsp[-3].literal)); | |||
} | } | |||
#line 2816 "parser.c" /* yacc.c:1646 */ | #line 2834 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 55: | case 55: | |||
#line 538 "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].bl k), (yyvsp[-1].blk)); | (yyval.blk) = gen_function(jv_string_value((yyvsp[-6].literal)), (yyvsp[-4].bl k), (yyvsp[-1].blk)); | |||
jv_free((yyvsp[-6].literal)); | jv_free((yyvsp[-6].literal)); | |||
} | } | |||
#line 2825 "parser.c" /* yacc.c:1646 */ | #line 2843 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 56: | case 56: | |||
#line 544 "parser.y" /* yacc.c:1646 */ | #line 564 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = (yyvsp[0].blk); | (yyval.blk) = (yyvsp[0].blk); | |||
} | } | |||
#line 2833 "parser.c" /* yacc.c:1646 */ | #line 2851 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 57: | case 57: | |||
#line 547 "parser.y" /* yacc.c:1646 */ | #line 567 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk)); | (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk)); | |||
} | } | |||
#line 2841 "parser.c" /* yacc.c:1646 */ | #line 2859 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 58: | case 58: | |||
#line 552 "parser.y" /* yacc.c:1646 */ | #line 572 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_param_regular(jv_string_value((yyvsp[0].literal))); | (yyval.blk) = gen_param_regular(jv_string_value((yyvsp[0].literal))); | |||
jv_free((yyvsp[0].literal)); | jv_free((yyvsp[0].literal)); | |||
} | } | |||
#line 2850 "parser.c" /* yacc.c:1646 */ | #line 2868 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 59: | case 59: | |||
#line 557 "parser.y" /* yacc.c:1646 */ | #line 577 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_param(jv_string_value((yyvsp[0].literal))); | (yyval.blk) = gen_param(jv_string_value((yyvsp[0].literal))); | |||
jv_free((yyvsp[0].literal)); | jv_free((yyvsp[0].literal)); | |||
} | } | |||
#line 2859 "parser.c" /* yacc.c:1646 */ | #line 2877 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 60: | case 60: | |||
#line 564 "parser.y" /* yacc.c:1646 */ | #line 584 "src/parser.y" /* yacc.c:1646 */ | |||
{ (yyval.literal) = jv_string("text"); } | { (yyval.literal) = jv_string("text"); } | |||
#line 2865 "parser.c" /* yacc.c:1646 */ | #line 2883 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 61: | case 61: | |||
#line 564 "parser.y" /* yacc.c:1646 */ | #line 584 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = (yyvsp[-1].blk); | (yyval.blk) = (yyvsp[-1].blk); | |||
jv_free((yyvsp[-2].literal)); | jv_free((yyvsp[-2].literal)); | |||
} | } | |||
#line 2874 "parser.c" /* yacc.c:1646 */ | #line 2892 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 62: | case 62: | |||
#line 568 "parser.y" /* yacc.c:1646 */ | #line 588 "src/parser.y" /* yacc.c:1646 */ | |||
{ (yyval.literal) = (yyvsp[-1].literal); } | { (yyval.literal) = (yyvsp[-1].literal); } | |||
#line 2880 "parser.c" /* yacc.c:1646 */ | #line 2898 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 63: | case 63: | |||
#line 568 "parser.y" /* yacc.c:1646 */ | #line 588 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = (yyvsp[-1].blk); | (yyval.blk) = (yyvsp[-1].blk); | |||
jv_free((yyvsp[-2].literal)); | jv_free((yyvsp[-2].literal)); | |||
} | } | |||
#line 2889 "parser.c" /* yacc.c:1646 */ | #line 2907 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 64: | case 64: | |||
#line 575 "parser.y" /* yacc.c:1646 */ | #line 595 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_const(jv_string("")); | (yyval.blk) = gen_const(jv_string("")); | |||
} | } | |||
#line 2897 "parser.c" /* yacc.c:1646 */ | #line 2915 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 65: | case 65: | |||
#line 578 "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)), '+'); | (yyval.blk) = gen_binop((yyvsp[-1].blk), gen_const((yyvsp[0].literal)), '+'); | |||
} | } | |||
#line 2905 "parser.c" /* yacc.c:1646 */ | #line 2923 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 66: | case 66: | |||
#line 581 "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))), '+'); | (yyval.blk) = gen_binop((yyvsp[-3].blk), gen_format((yyvsp[-1].blk), jv_copy(( yyvsp[-4].literal))), '+'); | |||
} | } | |||
#line 2913 "parser.c" /* yacc.c:1646 */ | #line 2931 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 67: | case 67: | |||
#line 587 "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)); | (yyval.blk) = gen_cond((yyvsp[-3].blk), (yyvsp[-1].blk), (yyvsp[0].blk)); | |||
} | } | |||
#line 2921 "parser.c" /* yacc.c:1646 */ | #line 2939 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 68: | case 68: | |||
#line 590 "parser.y" /* yacc.c:1646 */ | #line 610 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = (yyvsp[-1].blk); | (yyval.blk) = (yyvsp[-1].blk); | |||
} | } | |||
#line 2929 "parser.c" /* yacc.c:1646 */ | #line 2947 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 69: | case 69: | |||
#line 595 "parser.y" /* yacc.c:1646 */ | #line 615 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = block_join((yyvsp[-2].blk), (yyvsp[0].blk)); | (yyval.blk) = block_join((yyvsp[-2].blk), (yyvsp[0].blk)); | |||
} | } | |||
#line 2937 "parser.c" /* yacc.c:1646 */ | #line 2955 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 70: | case 70: | |||
#line 598 "parser.y" /* yacc.c:1646 */ | #line 618 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = BLOCK((yyvsp[0].blk), gen_call("_negate", gen_noop())); | (yyval.blk) = BLOCK((yyvsp[0].blk), gen_call("_negate", gen_noop())); | |||
} | } | |||
#line 2945 "parser.c" /* yacc.c:1646 */ | #line 2963 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 71: | case 71: | |||
#line 601 "parser.y" /* yacc.c:1646 */ | #line 621 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = (yyvsp[0].blk); | (yyval.blk) = (yyvsp[0].blk); | |||
} | } | |||
#line 2953 "parser.c" /* yacc.c:1646 */ | #line 2971 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 72: | case 72: | |||
#line 607 "parser.y" /* yacc.c:1646 */ | #line 627 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_noop(); | (yyval.blk) = gen_noop(); | |||
} | } | |||
#line 2961 "parser.c" /* yacc.c:1646 */ | #line 2979 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 73: | case 73: | |||
#line 610 "parser.y" /* yacc.c:1646 */ | #line 630 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_call("recurse", gen_noop()); | (yyval.blk) = gen_call("recurse", gen_noop()); | |||
} | } | |||
#line 2969 "parser.c" /* yacc.c:1646 */ | #line 2987 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 74: | case 74: | |||
#line 613 "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 | jv v = jv_string_fmt("*label-%s", jv_string_value((yyvsp[0].literal))); // impossible symbol | |||
(yyval.blk) = gen_location((yyloc), locations, | (yyval.blk) = gen_location((yyloc), locations, | |||
BLOCK(gen_op_unbound(LOADV, jv_string_value(v)), | BLOCK(gen_op_unbound(LOADV, jv_string_value(v)), | |||
gen_call("error", gen_noop()))); | gen_call("error", gen_noop()))); | |||
jv_free(v); | jv_free(v); | |||
jv_free((yyvsp[0].literal)); | jv_free((yyvsp[0].literal)); | |||
} | } | |||
#line 2982 "parser.c" /* yacc.c:1646 */ | #line 3000 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 75: | case 75: | |||
#line 621 "parser.y" /* yacc.c:1646 */ | #line 641 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
FAIL((yyloc), "break requires a label to break to"); | FAIL((yyloc), "break requires a label to break to"); | |||
(yyval.blk) = gen_noop(); | (yyval.blk) = gen_noop(); | |||
} | } | |||
#line 2991 "parser.c" /* yacc.c:1646 */ | #line 3009 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 76: | case 76: | |||
#line 625 "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))); | (yyval.blk) = gen_index_opt((yyvsp[-2].blk), gen_const((yyvsp[-1].literal))); | |||
} | } | |||
#line 2999 "parser.c" /* yacc.c:1646 */ | #line 3017 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 77: | case 77: | |||
#line 628 "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))); | (yyval.blk) = gen_index_opt(gen_noop(), gen_const((yyvsp[-1].literal))); | |||
} | } | |||
#line 3007 "parser.c" /* yacc.c:1646 */ | #line 3025 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 78: | case 78: | |||
#line 631 "parser.y" /* yacc.c:1646 */ | #line 651 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_index_opt((yyvsp[-3].blk), (yyvsp[-1].blk)); | (yyval.blk) = gen_index_opt((yyvsp[-3].blk), (yyvsp[-1].blk)); | |||
} | } | |||
#line 3015 "parser.c" /* yacc.c:1646 */ | #line 3033 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 79: | case 79: | |||
#line 634 "parser.y" /* yacc.c:1646 */ | #line 654 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_index_opt(gen_noop(), (yyvsp[-1].blk)); | (yyval.blk) = gen_index_opt(gen_noop(), (yyvsp[-1].blk)); | |||
} | } | |||
#line 3023 "parser.c" /* yacc.c:1646 */ | #line 3041 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 80: | case 80: | |||
#line 637 "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))); | (yyval.blk) = gen_index((yyvsp[-1].blk), gen_const((yyvsp[0].literal))); | |||
} | } | |||
#line 3031 "parser.c" /* yacc.c:1646 */ | #line 3049 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 81: | case 81: | |||
#line 640 "parser.y" /* yacc.c:1646 */ | #line 660 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_index(gen_noop(), gen_const((yyvsp[0].literal))); | (yyval.blk) = gen_index(gen_noop(), gen_const((yyvsp[0].literal))); | |||
} | } | |||
#line 3039 "parser.c" /* yacc.c:1646 */ | #line 3057 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 82: | case 82: | |||
#line 643 "parser.y" /* yacc.c:1646 */ | #line 663 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_index((yyvsp[-2].blk), (yyvsp[0].blk)); | (yyval.blk) = gen_index((yyvsp[-2].blk), (yyvsp[0].blk)); | |||
} | } | |||
#line 3047 "parser.c" /* yacc.c:1646 */ | #line 3065 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 83: | case 83: | |||
#line 646 "parser.y" /* yacc.c:1646 */ | #line 666 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_index(gen_noop(), (yyvsp[0].blk)); | (yyval.blk) = gen_index(gen_noop(), (yyvsp[0].blk)); | |||
} | } | |||
#line 3055 "parser.c" /* yacc.c:1646 */ | #line 3073 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 84: | case 84: | |||
#line 649 "parser.y" /* yacc.c:1646 */ | #line 669 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
FAIL((yyloc), "try .[\"field\"] instead of .field for unusually named fields") ; | FAIL((yyloc), "try .[\"field\"] instead of .field for unusually named fields") ; | |||
(yyval.blk) = gen_noop(); | (yyval.blk) = gen_noop(); | |||
} | } | |||
#line 3064 "parser.c" /* yacc.c:1646 */ | #line 3082 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 85: | case 85: | |||
#line 653 "parser.y" /* yacc.c:1646 */ | #line 673 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
jv_free((yyvsp[-1].literal)); | jv_free((yyvsp[-1].literal)); | |||
FAIL((yyloc), "try .[\"field\"] instead of .field for unusually named fields") ; | FAIL((yyloc), "try .[\"field\"] instead of .field for unusually named fields") ; | |||
(yyval.blk) = gen_noop(); | (yyval.blk) = gen_noop(); | |||
} | } | |||
#line 3074 "parser.c" /* yacc.c:1646 */ | #line 3092 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 86: | case 86: | |||
#line 659 "parser.y" /* yacc.c:1646 */ | #line 679 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_index_opt((yyvsp[-4].blk), (yyvsp[-2].blk)); | (yyval.blk) = gen_index_opt((yyvsp[-4].blk), (yyvsp[-2].blk)); | |||
} | } | |||
#line 3082 "parser.c" /* yacc.c:1646 */ | #line 3100 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 87: | case 87: | |||
#line 662 "parser.y" /* yacc.c:1646 */ | #line 682 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_index((yyvsp[-3].blk), (yyvsp[-1].blk)); | (yyval.blk) = gen_index((yyvsp[-3].blk), (yyvsp[-1].blk)); | |||
} | } | |||
#line 3090 "parser.c" /* yacc.c:1646 */ | #line 3108 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 88: | case 88: | |||
#line 665 "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)); | (yyval.blk) = block_join((yyvsp[-3].blk), gen_op_simple(EACH_OPT)); | |||
} | } | |||
#line 3098 "parser.c" /* yacc.c:1646 */ | #line 3116 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 89: | case 89: | |||
#line 668 "parser.y" /* yacc.c:1646 */ | #line 688 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = block_join((yyvsp[-2].blk), gen_op_simple(EACH)); | (yyval.blk) = block_join((yyvsp[-2].blk), gen_op_simple(EACH)); | |||
} | } | |||
#line 3106 "parser.c" /* yacc.c:1646 */ | #line 3124 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 90: | case 90: | |||
#line 671 "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); | (yyval.blk) = gen_slice_index((yyvsp[-6].blk), (yyvsp[-4].blk), (yyvsp[-2].blk ), INDEX_OPT); | |||
} | } | |||
#line 3114 "parser.c" /* yacc.c:1646 */ | #line 3132 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 91: | case 91: | |||
#line 674 "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_n ull()), INDEX_OPT); | (yyval.blk) = gen_slice_index((yyvsp[-5].blk), (yyvsp[-3].blk), gen_const(jv_n ull()), INDEX_OPT); | |||
} | } | |||
#line 3122 "parser.c" /* yacc.c:1646 */ | #line 3140 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 92: | case 92: | |||
#line 677 "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); | (yyval.blk) = gen_slice_index((yyvsp[-5].blk), gen_const(jv_null()), (yyvsp[-2 ].blk), INDEX_OPT); | |||
} | } | |||
#line 3130 "parser.c" /* yacc.c:1646 */ | #line 3148 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 93: | case 93: | |||
#line 680 "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); | (yyval.blk) = gen_slice_index((yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk ), INDEX); | |||
} | } | |||
#line 3138 "parser.c" /* yacc.c:1646 */ | #line 3156 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 94: | case 94: | |||
#line 683 "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_n ull()), INDEX); | (yyval.blk) = gen_slice_index((yyvsp[-4].blk), (yyvsp[-2].blk), gen_const(jv_n ull()), INDEX); | |||
} | } | |||
#line 3146 "parser.c" /* yacc.c:1646 */ | #line 3164 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 95: | case 95: | |||
#line 686 "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); | (yyval.blk) = gen_slice_index((yyvsp[-4].blk), gen_const(jv_null()), (yyvsp[-1 ].blk), INDEX); | |||
} | } | |||
#line 3154 "parser.c" /* yacc.c:1646 */ | #line 3172 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 96: | case 96: | |||
#line 689 "parser.y" /* yacc.c:1646 */ | #line 709 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_const((yyvsp[0].literal)); | (yyval.blk) = gen_const((yyvsp[0].literal)); | |||
} | } | |||
#line 3162 "parser.c" /* yacc.c:1646 */ | #line 3180 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 97: | case 97: | |||
#line 692 "parser.y" /* yacc.c:1646 */ | #line 712 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = (yyvsp[0].blk); | (yyval.blk) = (yyvsp[0].blk); | |||
} | } | |||
#line 3170 "parser.c" /* yacc.c:1646 */ | #line 3188 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 98: | case 98: | |||
#line 695 "parser.y" /* yacc.c:1646 */ | #line 715 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_format(gen_noop(), (yyvsp[0].literal)); | (yyval.blk) = gen_format(gen_noop(), (yyvsp[0].literal)); | |||
} | } | |||
#line 3178 "parser.c" /* yacc.c:1646 */ | #line 3196 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 99: | case 99: | |||
#line 698 "parser.y" /* yacc.c:1646 */ | #line 718 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = (yyvsp[-1].blk); | (yyval.blk) = (yyvsp[-1].blk); | |||
} | } | |||
#line 3186 "parser.c" /* yacc.c:1646 */ | #line 3204 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 100: | case 100: | |||
#line 701 "parser.y" /* yacc.c:1646 */ | #line 721 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_collect((yyvsp[-1].blk)); | (yyval.blk) = gen_collect((yyvsp[-1].blk)); | |||
} | } | |||
#line 3194 "parser.c" /* yacc.c:1646 */ | #line 3212 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 101: | case 101: | |||
#line 704 "parser.y" /* yacc.c:1646 */ | #line 724 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_const(jv_array()); | (yyval.blk) = gen_const(jv_array()); | |||
} | } | |||
#line 3202 "parser.c" /* yacc.c:1646 */ | #line 3220 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 102: | case 102: | |||
#line 707 "parser.y" /* yacc.c:1646 */ | #line 727 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
block o = gen_const_object((yyvsp[-1].blk)); | block o = gen_const_object((yyvsp[-1].blk)); | |||
if (o.first != NULL) | if (o.first != NULL) | |||
(yyval.blk) = o; | (yyval.blk) = o; | |||
else | else | |||
(yyval.blk) = BLOCK(gen_subexp(gen_const(jv_object())), (yyvsp[-1].blk), gen _op_simple(POP)); | (yyval.blk) = BLOCK(gen_subexp(gen_const(jv_object())), (yyvsp[-1].blk), gen _op_simple(POP)); | |||
} | } | |||
#line 3214 "parser.c" /* yacc.c:1646 */ | #line 3232 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 103: | case 103: | |||
#line 714 "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) , | (yyval.blk) = gen_const(JV_OBJECT(jv_string("file"), jv_copy(locations->fname) , | |||
jv_string("line"), jv_number(locfile_get_line(locatio ns, (yyloc).start) + 1))); | jv_string("line"), jv_number(locfile_get_line(locatio ns, (yyloc).start) + 1))); | |||
} | } | |||
#line 3223 "parser.c" /* yacc.c:1646 */ | #line 3241 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 104: | case 104: | |||
#line 718 "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)))); | (yyval.blk) = gen_location((yyloc), locations, gen_op_unbound(LOADV, jv_string _value((yyvsp[0].literal)))); | |||
jv_free((yyvsp[0].literal)); | jv_free((yyvsp[0].literal)); | |||
} | } | |||
#line 3232 "parser.c" /* yacc.c:1646 */ | #line 3250 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 105: | case 105: | |||
#line 722 "parser.y" /* yacc.c:1646 */ | #line 742 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
const char *s = jv_string_value((yyvsp[0].literal)); | const char *s = jv_string_value((yyvsp[0].literal)); | |||
if (strcmp(s, "false") == 0) | if (strcmp(s, "false") == 0) | |||
(yyval.blk) = gen_const(jv_false()); | (yyval.blk) = gen_const(jv_false()); | |||
else if (strcmp(s, "true") == 0) | else if (strcmp(s, "true") == 0) | |||
(yyval.blk) = gen_const(jv_true()); | (yyval.blk) = gen_const(jv_true()); | |||
else if (strcmp(s, "null") == 0) | else if (strcmp(s, "null") == 0) | |||
(yyval.blk) = gen_const(jv_null()); | (yyval.blk) = gen_const(jv_null()); | |||
else | else | |||
(yyval.blk) = gen_location((yyloc), locations, gen_call(s, gen_noop())); | (yyval.blk) = gen_location((yyloc), locations, gen_call(s, gen_noop())); | |||
jv_free((yyvsp[0].literal)); | jv_free((yyvsp[0].literal)); | |||
} | } | |||
#line 3249 "parser.c" /* yacc.c:1646 */ | #line 3267 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 106: | case 106: | |||
#line 734 "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_call(jv_string_value((yyvsp[-3].literal)), (yyvsp[-1].blk)); | |||
(yyval.blk) = gen_location((yylsp[-3]), locations, (yyval.blk)); | (yyval.blk) = gen_location((yylsp[-3]), locations, (yyval.blk)); | |||
jv_free((yyvsp[-3].literal)); | jv_free((yyvsp[-3].literal)); | |||
} | } | |||
#line 3259 "parser.c" /* yacc.c:1646 */ | #line 3277 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 107: | case 107: | |||
#line 739 "parser.y" /* yacc.c:1646 */ | #line 759 "src/parser.y" /* yacc.c:1646 */ | |||
{ (yyval.blk) = gen_noop(); } | { (yyval.blk) = gen_noop(); } | |||
#line 3265 "parser.c" /* yacc.c:1646 */ | #line 3283 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 108: | case 108: | |||
#line 740 "parser.y" /* yacc.c:1646 */ | #line 760 "src/parser.y" /* yacc.c:1646 */ | |||
{ (yyval.blk) = gen_noop(); } | { (yyval.blk) = gen_noop(); } | |||
#line 3271 "parser.c" /* yacc.c:1646 */ | #line 3289 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 109: | case 109: | |||
#line 741 "parser.y" /* yacc.c:1646 */ | #line 761 "src/parser.y" /* yacc.c:1646 */ | |||
{ (yyval.blk) = (yyvsp[-3].blk); } | { (yyval.blk) = (yyvsp[-3].blk); } | |||
#line 3277 "parser.c" /* yacc.c:1646 */ | #line 3295 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 110: | case 110: | |||
#line 742 "parser.y" /* yacc.c:1646 */ | #line 762 "src/parser.y" /* yacc.c:1646 */ | |||
{ (yyval.blk) = gen_noop(); } | { (yyval.blk) = gen_noop(); } | |||
#line 3283 "parser.c" /* yacc.c:1646 */ | #line 3301 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 111: | case 111: | |||
#line 745 "parser.y" /* yacc.c:1646 */ | #line 765 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = (yyvsp[0].blk); | (yyval.blk) = (yyvsp[0].blk); | |||
} | } | |||
#line 3291 "parser.c" /* yacc.c:1646 */ | #line 3309 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 112: | case 112: | |||
#line 748 "parser.y" /* yacc.c:1646 */ | #line 768 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk)); | (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk)); | |||
} | } | |||
#line 3299 "parser.c" /* yacc.c:1646 */ | #line 3317 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 113: | case 113: | |||
#line 753 "parser.y" /* yacc.c:1646 */ | #line 773 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_lambda((yyvsp[0].blk)); | (yyval.blk) = gen_lambda((yyvsp[0].blk)); | |||
} | } | |||
#line 3307 "parser.c" /* yacc.c:1646 */ | #line 3325 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 114: | case 114: | |||
#line 758 "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 3333 "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 3341 "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 3349 "src/parser.c" /* yacc.c:1646 */ | ||||
break; | ||||
case 117: | ||||
#line 789 "src/parser.y" /* yacc.c:1646 */ | ||||
{ | ||||
(yyval.blk) = (yyvsp[0].blk); | ||||
} | ||||
#line 3357 "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))); | (yyval.blk) = gen_op_unbound(STOREV, jv_string_value((yyvsp[0].literal))); | |||
jv_free((yyvsp[0].literal)); | jv_free((yyvsp[0].literal)); | |||
} | } | |||
#line 3316 "parser.c" /* yacc.c:1646 */ | #line 3366 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 115: | case 119: | |||
#line 762 "parser.y" /* yacc.c:1646 */ | #line 798 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = BLOCK((yyvsp[-1].blk), gen_op_simple(POP)); | (yyval.blk) = BLOCK((yyvsp[-1].blk), gen_op_simple(POP)); | |||
} | } | |||
#line 3324 "parser.c" /* yacc.c:1646 */ | #line 3374 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 116: | case 120: | |||
#line 765 "parser.y" /* yacc.c:1646 */ | #line 801 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = BLOCK((yyvsp[-1].blk), gen_op_simple(POP)); | (yyval.blk) = BLOCK((yyvsp[-1].blk), gen_op_simple(POP)); | |||
} | } | |||
#line 3332 "parser.c" /* yacc.c:1646 */ | #line 3382 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 117: | case 121: | |||
#line 770 "parser.y" /* yacc.c:1646 */ | #line 806 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_array_matcher(gen_noop(), (yyvsp[0].blk)); | (yyval.blk) = gen_array_matcher(gen_noop(), (yyvsp[0].blk)); | |||
} | } | |||
#line 3340 "parser.c" /* yacc.c:1646 */ | #line 3390 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 118: | case 122: | |||
#line 773 "parser.y" /* yacc.c:1646 */ | #line 809 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_array_matcher((yyvsp[-2].blk), (yyvsp[0].blk)); | (yyval.blk) = gen_array_matcher((yyvsp[-2].blk), (yyvsp[0].blk)); | |||
} | } | |||
#line 3348 "parser.c" /* yacc.c:1646 */ | #line 3398 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 119: | case 123: | |||
#line 778 "parser.y" /* yacc.c:1646 */ | #line 814 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = (yyvsp[0].blk); | (yyval.blk) = (yyvsp[0].blk); | |||
} | } | |||
#line 3356 "parser.c" /* yacc.c:1646 */ | #line 3406 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 120: | case 124: | |||
#line 781 "parser.y" /* yacc.c:1646 */ | #line 817 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk)); | (yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk)); | |||
} | } | |||
#line 3364 "parser.c" /* yacc.c:1646 */ | #line 3414 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 121: | case 125: | |||
#line 786 "parser.y" /* yacc.c:1646 */ | #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)))); | (yyval.blk) = gen_object_matcher(gen_const((yyvsp[0].literal)), gen_op_unbound (STOREV, jv_string_value((yyvsp[0].literal)))); | |||
} | } | |||
#line 3372 "parser.c" /* yacc.c:1646 */ | #line 3422 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 122: | case 126: | |||
#line 789 "parser.y" /* yacc.c:1646 */ | #line 825 "src/parser.y" /* yacc.c:1646 */ | |||
{ | ||||
(yyval.blk) = gen_object_matcher(gen_const((yyvsp[-2].literal)), BLOCK(gen_op_ | ||||
simple(DUP), gen_op_unbound(STOREV, jv_string_value((yyvsp[-2].literal))), (yyvs | ||||
p[0].blk))); | ||||
} | ||||
#line 3430 "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 )); | (yyval.blk) = gen_object_matcher(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk )); | |||
} | } | |||
#line 3380 "parser.c" /* yacc.c:1646 */ | #line 3438 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 123: | case 128: | |||
#line 792 "parser.y" /* yacc.c:1646 */ | #line 831 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_object_matcher(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk )); | (yyval.blk) = gen_object_matcher(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk )); | |||
} | } | |||
#line 3388 "parser.c" /* yacc.c:1646 */ | #line 3446 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 124: | case 129: | |||
#line 795 "parser.y" /* yacc.c:1646 */ | #line 834 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_object_matcher((yyvsp[-2].blk), (yyvsp[0].blk)); | (yyval.blk) = gen_object_matcher((yyvsp[-2].blk), (yyvsp[0].blk)); | |||
} | } | |||
#line 3396 "parser.c" /* yacc.c:1646 */ | #line 3454 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 125: | case 130: | |||
#line 798 "parser.y" /* yacc.c:1646 */ | #line 837 "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)); | ||||
} | ||||
jv_free(msg); | ||||
(yyval.blk) = gen_object_matcher((yyvsp[-3].blk), (yyvsp[0].blk)); | (yyval.blk) = gen_object_matcher((yyvsp[-3].blk), (yyvsp[0].blk)); | |||
} | } | |||
#line 3404 "parser.c" /* yacc.c:1646 */ | #line 3467 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 126: | case 131: | |||
#line 803 "parser.y" /* yacc.c:1646 */ | #line 845 "src/parser.y" /* yacc.c:1646 */ | |||
{ | ||||
FAIL((yyloc), "May need parentheses around object key expression"); | ||||
(yyval.blk) = (yyvsp[0].blk); | ||||
} | ||||
#line 3476 "src/parser.c" /* yacc.c:1646 */ | ||||
break; | ||||
case 132: | ||||
#line 851 "src/parser.y" /* yacc.c:1646 */ | ||||
{ | { | |||
(yyval.literal) = jv_string("as"); | (yyval.literal) = jv_string("as"); | |||
} | } | |||
#line 3412 "parser.c" /* yacc.c:1646 */ | #line 3484 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 127: | case 133: | |||
#line 806 "parser.y" /* yacc.c:1646 */ | #line 854 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.literal) = jv_string("def"); | (yyval.literal) = jv_string("def"); | |||
} | } | |||
#line 3420 "parser.c" /* yacc.c:1646 */ | #line 3492 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 128: | case 134: | |||
#line 809 "parser.y" /* yacc.c:1646 */ | #line 857 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.literal) = jv_string("module"); | (yyval.literal) = jv_string("module"); | |||
} | } | |||
#line 3428 "parser.c" /* yacc.c:1646 */ | #line 3500 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 129: | case 135: | |||
#line 812 "parser.y" /* yacc.c:1646 */ | #line 860 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.literal) = jv_string("import"); | (yyval.literal) = jv_string("import"); | |||
} | } | |||
#line 3436 "parser.c" /* yacc.c:1646 */ | #line 3508 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 130: | case 136: | |||
#line 815 "parser.y" /* yacc.c:1646 */ | #line 863 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.literal) = jv_string("include"); | (yyval.literal) = jv_string("include"); | |||
} | } | |||
#line 3444 "parser.c" /* yacc.c:1646 */ | #line 3516 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 131: | case 137: | |||
#line 818 "parser.y" /* yacc.c:1646 */ | #line 866 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.literal) = jv_string("if"); | (yyval.literal) = jv_string("if"); | |||
} | } | |||
#line 3452 "parser.c" /* yacc.c:1646 */ | #line 3524 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 132: | case 138: | |||
#line 821 "parser.y" /* yacc.c:1646 */ | #line 869 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.literal) = jv_string("then"); | (yyval.literal) = jv_string("then"); | |||
} | } | |||
#line 3460 "parser.c" /* yacc.c:1646 */ | #line 3532 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 133: | case 139: | |||
#line 824 "parser.y" /* yacc.c:1646 */ | #line 872 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.literal) = jv_string("else"); | (yyval.literal) = jv_string("else"); | |||
} | } | |||
#line 3468 "parser.c" /* yacc.c:1646 */ | #line 3540 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 134: | case 140: | |||
#line 827 "parser.y" /* yacc.c:1646 */ | #line 875 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.literal) = jv_string("elif"); | (yyval.literal) = jv_string("elif"); | |||
} | } | |||
#line 3476 "parser.c" /* yacc.c:1646 */ | #line 3548 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 135: | case 141: | |||
#line 830 "parser.y" /* yacc.c:1646 */ | #line 878 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.literal) = jv_string("reduce"); | (yyval.literal) = jv_string("reduce"); | |||
} | } | |||
#line 3484 "parser.c" /* yacc.c:1646 */ | #line 3556 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 136: | case 142: | |||
#line 833 "parser.y" /* yacc.c:1646 */ | #line 881 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.literal) = jv_string("foreach"); | (yyval.literal) = jv_string("foreach"); | |||
} | } | |||
#line 3492 "parser.c" /* yacc.c:1646 */ | #line 3564 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 137: | case 143: | |||
#line 836 "parser.y" /* yacc.c:1646 */ | #line 884 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.literal) = jv_string("end"); | (yyval.literal) = jv_string("end"); | |||
} | } | |||
#line 3500 "parser.c" /* yacc.c:1646 */ | #line 3572 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 138: | case 144: | |||
#line 839 "parser.y" /* yacc.c:1646 */ | #line 887 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.literal) = jv_string("and"); | (yyval.literal) = jv_string("and"); | |||
} | } | |||
#line 3508 "parser.c" /* yacc.c:1646 */ | #line 3580 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 139: | case 145: | |||
#line 842 "parser.y" /* yacc.c:1646 */ | #line 890 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.literal) = jv_string("or"); | (yyval.literal) = jv_string("or"); | |||
} | } | |||
#line 3516 "parser.c" /* yacc.c:1646 */ | #line 3588 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 140: | case 146: | |||
#line 845 "parser.y" /* yacc.c:1646 */ | #line 893 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.literal) = jv_string("try"); | (yyval.literal) = jv_string("try"); | |||
} | } | |||
#line 3524 "parser.c" /* yacc.c:1646 */ | #line 3596 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 141: | case 147: | |||
#line 848 "parser.y" /* yacc.c:1646 */ | #line 896 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.literal) = jv_string("catch"); | (yyval.literal) = jv_string("catch"); | |||
} | } | |||
#line 3532 "parser.c" /* yacc.c:1646 */ | #line 3604 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 142: | case 148: | |||
#line 851 "parser.y" /* yacc.c:1646 */ | #line 899 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.literal) = jv_string("label"); | (yyval.literal) = jv_string("label"); | |||
} | } | |||
#line 3540 "parser.c" /* yacc.c:1646 */ | #line 3612 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 143: | case 149: | |||
#line 854 "parser.y" /* yacc.c:1646 */ | #line 902 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.literal) = jv_string("break"); | (yyval.literal) = jv_string("break"); | |||
} | } | |||
#line 3548 "parser.c" /* yacc.c:1646 */ | #line 3620 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 144: | case 150: | |||
#line 857 "parser.y" /* yacc.c:1646 */ | #line 905 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.literal) = jv_string("__loc__"); | (yyval.literal) = jv_string("__loc__"); | |||
} | } | |||
#line 3556 "parser.c" /* yacc.c:1646 */ | #line 3628 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 145: | case 151: | |||
#line 862 "parser.y" /* yacc.c:1646 */ | #line 910 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk)=gen_noop(); | (yyval.blk)=gen_noop(); | |||
} | } | |||
#line 3564 "parser.c" /* yacc.c:1646 */ | #line 3636 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 146: | case 152: | |||
#line 865 "parser.y" /* yacc.c:1646 */ | #line 913 "src/parser.y" /* yacc.c:1646 */ | |||
{ (yyval.blk) = (yyvsp[0].blk); } | { (yyval.blk) = (yyvsp[0].blk); } | |||
#line 3570 "parser.c" /* yacc.c:1646 */ | #line 3642 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 147: | case 153: | |||
#line 866 "parser.y" /* yacc.c:1646 */ | #line 914 "src/parser.y" /* yacc.c:1646 */ | |||
{ (yyval.blk)=block_join((yyvsp[-2].blk), (yyvsp[0].blk)); } | { (yyval.blk)=block_join((yyvsp[-2].blk), (yyvsp[0].blk)); } | |||
#line 3576 "parser.c" /* yacc.c:1646 */ | #line 3648 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 148: | case 154: | |||
#line 867 "parser.y" /* yacc.c:1646 */ | #line 915 "src/parser.y" /* yacc.c:1646 */ | |||
{ (yyval.blk) = (yyvsp[0].blk); } | { (yyval.blk) = (yyvsp[0].blk); } | |||
#line 3582 "parser.c" /* yacc.c:1646 */ | #line 3654 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 149: | case 155: | |||
#line 870 "parser.y" /* yacc.c:1646 */ | #line 918 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); | (yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); | |||
} | } | |||
#line 3590 "parser.c" /* yacc.c:1646 */ | #line 3662 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 150: | case 156: | |||
#line 873 "parser.y" /* yacc.c:1646 */ | #line 921 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); | (yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk)); | |||
} | } | |||
#line 3598 "parser.c" /* yacc.c:1646 */ | #line 3670 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 151: | case 157: | |||
#line 876 "parser.y" /* yacc.c:1646 */ | #line 924 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_dictpair((yyvsp[-2].blk), (yyvsp[0].blk)); | (yyval.blk) = gen_dictpair((yyvsp[-2].blk), (yyvsp[0].blk)); | |||
} | } | |||
#line 3606 "parser.c" /* yacc.c:1646 */ | #line 3678 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 152: | case 158: | |||
#line 879 "parser.y" /* yacc.c:1646 */ | #line 927 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_dictpair((yyvsp[0].blk), BLOCK(gen_op_simple(POP), gen_op_si mple(DUP2), | (yyval.blk) = gen_dictpair((yyvsp[0].blk), BLOCK(gen_op_simple(POP), gen_op_si mple(DUP2), | |||
gen_op_simple(DUP2), gen_op_simple(INDEX))); | gen_op_simple(DUP2), gen_op_simple(INDEX))); | |||
} | } | |||
#line 3615 "parser.c" /* yacc.c:1646 */ | #line 3687 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 153: | case 159: | |||
#line 883 "parser.y" /* yacc.c:1646 */ | #line 931 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_dictpair(gen_const((yyvsp[0].literal)), | (yyval.blk) = gen_dictpair(gen_const((yyvsp[0].literal)), | |||
gen_location((yyloc), locations, gen_op_unbound(LOADV, jv_st ring_value((yyvsp[0].literal))))); | gen_location((yyloc), locations, gen_op_unbound(LOADV, jv_st ring_value((yyvsp[0].literal))))); | |||
} | } | |||
#line 3624 "parser.c" /* yacc.c:1646 */ | #line 3696 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 154: | case 160: | |||
#line 887 "parser.y" /* yacc.c:1646 */ | #line 935 "src/parser.y" /* yacc.c:1646 */ | |||
{ | { | |||
(yyval.blk) = gen_dictpair(gen_const(jv_copy((yyvsp[0].literal))), | (yyval.blk) = gen_dictpair(gen_const(jv_copy((yyvsp[0].literal))), | |||
gen_index(gen_noop(), gen_const((yyvsp[0].literal)))); | gen_index(gen_noop(), gen_const((yyvsp[0].literal)))); | |||
} | } | |||
#line 3633 "parser.c" /* yacc.c:1646 */ | #line 3705 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 155: | case 161: | |||
#line 891 "parser.y" /* yacc.c:1646 */ | #line 939 "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)); | ||||
} | ||||
jv_free(msg); | ||||
(yyval.blk) = gen_dictpair((yyvsp[-3].blk), (yyvsp[0].blk)); | (yyval.blk) = gen_dictpair((yyvsp[-3].blk), (yyvsp[0].blk)); | |||
} | } | |||
#line 3641 "parser.c" /* yacc.c:1646 */ | #line 3718 "src/parser.c" /* yacc.c:1646 */ | |||
break; | break; | |||
case 156: | case 162: | |||
#line 894 "parser.y" /* yacc.c:1646 */ | #line 947 "src/parser.y" /* yacc.c:1646 */ | |||
{ (yyval.blk) = (yyvsp[0].blk); } | { | |||
#line 3647 "parser.c" /* yacc.c:1646 */ | FAIL((yyloc), "May need parentheses around object key expression"); | |||
(yyval.blk) = (yyvsp[0].blk); | ||||
} | ||||
#line 3727 "src/parser.c" /* yacc.c:1646 */ | ||||
break; | break; | |||
#line 3651 "parser.c" /* yacc.c:1646 */ | #line 3731 "src/parser.c" /* yacc.c:1646 */ | |||
default: break; | default: break; | |||
} | } | |||
/* User semantic actions sometimes alter yychar, and that requires | /* User semantic actions sometimes alter yychar, and that requires | |||
that yytoken be updated with the new translation. We take the | that yytoken be updated with the new translation. We take the | |||
approach of translating immediately before every use of yytoken. | approach of translating immediately before every use of yytoken. | |||
One alternative is translating here after every semantic action, | One alternative is translating here after every semantic action, | |||
but that translation would be missed if the semantic action invokes | but that translation would be missed if the semantic action invokes | |||
YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or | YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or | |||
if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an | if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an | |||
incorrect destructor might then be invoked immediately. In the | incorrect destructor might then be invoked immediately. In the | |||
skipping to change at line 3854 | skipping to change at line 3934 | |||
#ifndef yyoverflow | #ifndef yyoverflow | |||
if (yyss != yyssa) | if (yyss != yyssa) | |||
YYSTACK_FREE (yyss); | YYSTACK_FREE (yyss); | |||
#endif | #endif | |||
#if YYERROR_VERBOSE | #if YYERROR_VERBOSE | |||
if (yymsg != yymsgbuf) | if (yymsg != yymsgbuf) | |||
YYSTACK_FREE (yymsg); | YYSTACK_FREE (yymsg); | |||
#endif | #endif | |||
return yyresult; | return yyresult; | |||
} | } | |||
#line 895 "parser.y" /* yacc.c:1906 */ | #line 951 "src/parser.y" /* yacc.c:1906 */ | |||
int jq_parse(struct locfile* locations, block* answer) { | int jq_parse(struct locfile* locations, block* answer) { | |||
struct lexer_param scanner; | struct lexer_param scanner; | |||
YY_BUFFER_STATE buf; | YY_BUFFER_STATE buf; | |||
jq_yylex_init_extra(0, &scanner.lexer); | jq_yylex_init_extra(0, &scanner.lexer); | |||
buf = jq_yy_scan_bytes(locations->data, locations->length, scanner.lexer); | buf = jq_yy_scan_bytes(locations->data, locations->length, scanner.lexer); | |||
int errors = 0; | int errors = 0; | |||
*answer = gen_noop(); | *answer = gen_noop(); | |||
yyparse(answer, &errors, locations, &scanner); | yyparse(answer, &errors, locations, &scanner); | |||
jq_yy_delete_buffer(buf, scanner.lexer); | jq_yy_delete_buffer(buf, scanner.lexer); | |||
End of changes. 441 change blocks. | ||||
1073 lines changed or deleted | 1153 lines changed or added |