"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "parser.c" between
jq-1.5.tar.gz and jq-1.6.tar.gz

About: jq is a lightweight and flexible command-line JSON processor.

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

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)