summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2021-07-29 11:24:49 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2021-07-29 11:24:49 +0900
commit63a983c4d7925fe82d84cece2530c44bd0f89655 (patch)
tree17c251ba02a2b2771f08c8372f5ddef9423f72a8
parent5cde5983d98fbfe9d2dcc7a45a0da6fa8011aded (diff)
downloadmruby-63a983c4d7925fe82d84cece2530c44bd0f89655.tar.gz
mruby-63a983c4d7925fe82d84cece2530c44bd0f89655.zip
y.tab.c: remove auto generated `y.tab.c` from repository.
It used to be generated in the build, but `bison` required to generation was too hard to install correctly on MacOS and Windows (version mismatch and package maneger issues). This is retry.
-rw-r--r--.github/workflows/build.yml3
-rw-r--r--.gitignore1
-rw-r--r--appveyor.yml2
-rw-r--r--mrbgems/mruby-compiler/core/y.tab.c13961
4 files changed, 5 insertions, 13962 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 6ee80eefd..bc44b563e 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -123,7 +123,7 @@ jobs:
--only-site --site http://mirrors.kernel.org/sourceware/cygwin/
--root ${{ env.cygwin-root }}
--local-package-dir ${{ env.package-dir }}
- --packages gcc-core,gcc-g++,ruby
+ --packages gcc-core,gcc-g++,ruby,bison
- name: Set PATH for Cygwin
run: |
echo '::set-env name=PATH::${{ env.cygwin-root }}\bin;${{ env.cygwin-root }}\usr\bin'
@@ -151,5 +151,6 @@ jobs:
- name: Build and test
shell: cmd
run: |
+ choco install winflexbison3
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
rake -m test:build && rake test:run
diff --git a/.gitignore b/.gitignore
index 6a0e7e46b..1472ca0e5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,6 +23,7 @@ compile_commands.json
cscope.files
cscope.out
tags
+y.tab.c
/.git
/bin
diff --git a/appveyor.yml b/appveyor.yml
index 8782f59aa..f2fa54a89 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -38,6 +38,8 @@ init:
- set PATH=C:\Ruby26-x64\bin;%PATH%
- ruby --version
+install:
+ - choco install winflexbison3
build_script:
- set MRUBY_CONFIG=ci/msvc
diff --git a/mrbgems/mruby-compiler/core/y.tab.c b/mrbgems/mruby-compiler/core/y.tab.c
deleted file mode 100644
index 63f458e48..000000000
--- a/mrbgems/mruby-compiler/core/y.tab.c
+++ /dev/null
@@ -1,13961 +0,0 @@
-/* A Bison parser, made by GNU Bison 3.5.1. */
-
-/* Bison implementation for Yacc-like parsers in C
-
- Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
- Inc.
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-/* As a special exception, you may create a larger work that contains
- part or all of the Bison parser skeleton and distribute that work
- under terms of your choice, so long as that work isn't itself a
- parser generator using the skeleton or a modified version thereof
- as a parser skeleton. Alternatively, if you modify or redistribute
- the parser skeleton itself, you may (at your option) remove this
- special exception, which will cause the skeleton and the resulting
- Bison output files to be licensed under the GNU General Public
- License without this special exception.
-
- This special exception was added by the Free Software Foundation in
- version 2.2 of Bison. */
-
-/* C LALR(1) parser skeleton written by Richard Stallman, by
- simplifying the original so-called "semantic" parser. */
-
-/* All symbols defined below should begin with yy or YY, to avoid
- infringing on user name space. This should be done even for local
- variables, as they might otherwise be expanded by user macros.
- There are some unavoidable exceptions within include files to
- define necessary library symbols; they are noted "INFRINGES ON
- USER NAME SPACE" below. */
-
-/* Undocumented macros, especially those whose name start with YY_,
- are private implementation details. Do not rely on them. */
-
-/* Identify Bison output. */
-#define YYBISON 1
-
-/* Bison version. */
-#define YYBISON_VERSION "3.5.1"
-
-/* Skeleton name. */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers. */
-#define YYPURE 1
-
-/* Push parsers. */
-#define YYPUSH 0
-
-/* Pull parsers. */
-#define YYPULL 1
-
-
-
-
-/* First part of user prologue. */
-#line 7 "mrbgems/mruby-compiler/core/parse.y"
-
-#undef PARSER_DEBUG
-#ifdef PARSER_DEBUG
-# define YYDEBUG 1
-#endif
-#define YYSTACK_USE_ALLOCA 1
-
-#include <ctype.h>
-#include <errno.h>
-#include <string.h>
-#include <mruby.h>
-#include <mruby/compile.h>
-#include <mruby/proc.h>
-#include <mruby/error.h>
-#include <mruby/throw.h>
-#include <mruby/string.h>
-#include <mruby/dump.h>
-#include <mruby/presym.h>
-#include "node.h"
-
-#define YYLEX_PARAM p
-
-typedef mrb_ast_node node;
-typedef struct mrb_parser_state parser_state;
-typedef struct mrb_parser_heredoc_info parser_heredoc_info;
-
-static int yyparse(parser_state *p);
-static int yylex(void *lval, parser_state *p);
-static void yyerror(parser_state *p, const char *s);
-static void yywarning(parser_state *p, const char *s);
-static void backref_error(parser_state *p, node *n);
-static void void_expr_error(parser_state *p, node *n);
-static void tokadd(parser_state *p, int32_t c);
-
-#define identchar(c) (ISALNUM(c) || (c) == '_' || !ISASCII(c))
-
-typedef unsigned int stack_type;
-
-#define BITSTACK_PUSH(stack, n) ((stack) = ((stack)<<1)|((n)&1))
-#define BITSTACK_POP(stack) ((stack) = (stack) >> 1)
-#define BITSTACK_LEXPOP(stack) ((stack) = ((stack) >> 1) | ((stack) & 1))
-#define BITSTACK_SET_P(stack) ((stack)&1)
-
-#define COND_PUSH(n) BITSTACK_PUSH(p->cond_stack, (n))
-#define COND_POP() BITSTACK_POP(p->cond_stack)
-#define COND_LEXPOP() BITSTACK_LEXPOP(p->cond_stack)
-#define COND_P() BITSTACK_SET_P(p->cond_stack)
-
-#define CMDARG_PUSH(n) BITSTACK_PUSH(p->cmdarg_stack, (n))
-#define CMDARG_POP() BITSTACK_POP(p->cmdarg_stack)
-#define CMDARG_LEXPOP() BITSTACK_LEXPOP(p->cmdarg_stack)
-#define CMDARG_P() BITSTACK_SET_P(p->cmdarg_stack)
-
-#define SET_LINENO(c,n) ((c)->lineno = (n))
-#define NODE_LINENO(c,n) do {\
- if (n) {\
- (c)->filename_index = (n)->filename_index;\
- (c)->lineno = (n)->lineno;\
- }\
-} while (0)
-
-#define sym(x) ((mrb_sym)(intptr_t)(x))
-#define nsym(x) ((node*)(intptr_t)(x))
-#define nint(x) ((node*)(intptr_t)(x))
-#define intn(x) ((int)(intptr_t)(x))
-#define typen(x) ((enum node_type)(intptr_t)(x))
-
-#define NUM_SUFFIX_R (1<<0)
-#define NUM_SUFFIX_I (1<<1)
-
-static inline mrb_sym
-intern_cstr_gen(parser_state *p, const char *s)
-{
- return mrb_intern_cstr(p->mrb, s);
-}
-#define intern_cstr(s) intern_cstr_gen(p,(s))
-
-static inline mrb_sym
-intern_gen(parser_state *p, const char *s, size_t len)
-{
- return mrb_intern(p->mrb, s, len);
-}
-#define intern(s,len) intern_gen(p,(s),(len))
-
-#define intern_op(op) MRB_OPSYM_2(p->mrb, op)
-
-static void
-cons_free_gen(parser_state *p, node *cons)
-{
- cons->cdr = p->cells;
- p->cells = cons;
-}
-#define cons_free(c) cons_free_gen(p, (c))
-
-static void*
-parser_palloc(parser_state *p, size_t size)
-{
- void *m = mrb_pool_alloc(p->pool, size);
-
- if (!m) {
- MRB_THROW(p->jmp);
- }
- return m;
-}
-
-static node*
-cons_gen(parser_state *p, node *car, node *cdr)
-{
- node *c;
-
- if (p->cells) {
- c = p->cells;
- p->cells = p->cells->cdr;
- }
- else {
- c = (node *)parser_palloc(p, sizeof(mrb_ast_node));
- }
-
- c->car = car;
- c->cdr = cdr;
- c->lineno = p->lineno;
- c->filename_index = p->current_filename_index;
- /* beginning of next partial file; need to point the previous file */
- if (p->lineno == 0 && p->current_filename_index > 0) {
- c->filename_index-- ;
- }
- return c;
-}
-#define cons(a,b) cons_gen(p,(a),(b))
-
-static node*
-list1_gen(parser_state *p, node *a)
-{
- return cons(a, 0);
-}
-#define list1(a) list1_gen(p, (a))
-
-static node*
-list2_gen(parser_state *p, node *a, node *b)
-{
- return cons(a, cons(b,0));
-}
-#define list2(a,b) list2_gen(p, (a),(b))
-
-static node*
-list3_gen(parser_state *p, node *a, node *b, node *c)
-{
- return cons(a, cons(b, cons(c,0)));
-}
-#define list3(a,b,c) list3_gen(p, (a),(b),(c))
-
-static node*
-list4_gen(parser_state *p, node *a, node *b, node *c, node *d)
-{
- return cons(a, cons(b, cons(c, cons(d, 0))));
-}
-#define list4(a,b,c,d) list4_gen(p, (a),(b),(c),(d))
-
-static node*
-list5_gen(parser_state *p, node *a, node *b, node *c, node *d, node *e)
-{
- return cons(a, cons(b, cons(c, cons(d, cons(e, 0)))));
-}
-#define list5(a,b,c,d,e) list5_gen(p, (a),(b),(c),(d),(e))
-
-static node*
-list6_gen(parser_state *p, node *a, node *b, node *c, node *d, node *e, node *f)
-{
- return cons(a, cons(b, cons(c, cons(d, cons(e, cons(f, 0))))));
-}
-#define list6(a,b,c,d,e,f) list6_gen(p, (a),(b),(c),(d),(e),(f))
-
-static node*
-append_gen(parser_state *p, node *a, node *b)
-{
- node *c = a;
-
- if (!a) return b;
- if (!b) return a;
- while (c->cdr) {
- c = c->cdr;
- }
- c->cdr = b;
- return a;
-}
-#define append(a,b) append_gen(p,(a),(b))
-#define push(a,b) append_gen(p,(a),list1(b))
-
-static char*
-parser_strndup(parser_state *p, const char *s, size_t len)
-{
- char *b = (char *)parser_palloc(p, len+1);
-
- memcpy(b, s, len);
- b[len] = '\0';
- return b;
-}
-#undef strndup
-#define strndup(s,len) parser_strndup(p, s, len)
-
-static char*
-parser_strdup(parser_state *p, const char *s)
-{
- return parser_strndup(p, s, strlen(s));
-}
-#undef strdup
-#define strdup(s) parser_strdup(p, s)
-
-static void
-dump_int(uint16_t i, char *s)
-{
- char *p = s;
- char *t = s;
-
- while (i > 0) {
- *p++ = (i % 10)+'0';
- i /= 10;
- }
- if (p == s) *p++ = '0';
- *p = 0;
- p--; /* point the last char */
- while (t < p) {
- char c = *t;
- *t++ = *p;
- *p-- = c;
- }
-}
-
-/* xxx ----------------------------- */
-
-static node*
-local_switch(parser_state *p)
-{
- node *prev = p->locals;
-
- p->locals = cons(0, 0);
- return prev;
-}
-
-static void
-local_resume(parser_state *p, node *prev)
-{
- p->locals = prev;
-}
-
-static void
-local_nest(parser_state *p)
-{
- p->locals = cons(0, p->locals);
-}
-
-static void
-local_unnest(parser_state *p)
-{
- if (p->locals) {
- p->locals = p->locals->cdr;
- }
-}
-
-static mrb_bool
-local_var_p(parser_state *p, mrb_sym sym)
-{
- const struct RProc *u;
- node *l = p->locals;
-
- while (l) {
- node *n = l->car;
- while (n) {
- if (sym(n->car) == sym) return TRUE;
- n = n->cdr;
- }
- l = l->cdr;
- }
-
- u = p->upper;
- while (u && !MRB_PROC_CFUNC_P(u)) {
- const struct mrb_irep *ir = u->body.irep;
- const mrb_sym *v = ir->lv;
- int i;
-
- if (v) {
- for (i=0; i+1 < ir->nlocals; i++) {
- if (v[i] == sym) return TRUE;
- }
- }
- if (MRB_PROC_SCOPE_P(u)) break;
- u = u->upper;
- }
- return FALSE;
-}
-
-static void
-local_add_f(parser_state *p, mrb_sym sym)
-{
- if (p->locals) {
- p->locals->car = push(p->locals->car, nsym(sym));
- }
-}
-
-static void
-local_add(parser_state *p, mrb_sym sym)
-{
- if (!local_var_p(p, sym)) {
- local_add_f(p, sym);
- }
-}
-
-static void
-local_add_blk(parser_state *p, mrb_sym blk)
-{
- /* allocate register for block */
- local_add_f(p, blk ? blk : intern_op(and));
-}
-
-static void
-local_add_kw(parser_state *p, mrb_sym kwd)
-{
- /* allocate register for keywords hash */
- local_add_f(p, kwd ? kwd : intern_op(pow));
-}
-
-static node*
-locals_node(parser_state *p)
-{
- return p->locals ? p->locals->car : NULL;
-}
-
-static void
-nvars_nest(parser_state *p)
-{
- p->nvars = cons(nint(0), p->nvars);
-}
-
-static void
-nvars_block(parser_state *p)
-{
- p->nvars = cons(nint(-2), p->nvars);
-}
-
-static void
-nvars_unnest(parser_state *p)
-{
- p->nvars = p->nvars->cdr;
-}
-
-/* (:scope (vars..) (prog...)) */
-static node*
-new_scope(parser_state *p, node *body)
-{
- return cons((node*)NODE_SCOPE, cons(locals_node(p), body));
-}
-
-/* (:begin prog...) */
-static node*
-new_begin(parser_state *p, node *body)
-{
- if (body) {
- return list2((node*)NODE_BEGIN, body);
- }
- return cons((node*)NODE_BEGIN, 0);
-}
-
-#define newline_node(n) (n)
-
-/* (:rescue body rescue else) */
-static node*
-new_rescue(parser_state *p, node *body, node *resq, node *els)
-{
- return list4((node*)NODE_RESCUE, body, resq, els);
-}
-
-static node*
-new_mod_rescue(parser_state *p, node *body, node *resq)
-{
- return new_rescue(p, body, list1(list3(0, 0, resq)), 0);
-}
-
-/* (:ensure body ensure) */
-static node*
-new_ensure(parser_state *p, node *a, node *b)
-{
- return cons((node*)NODE_ENSURE, cons(a, cons(0, b)));
-}
-
-/* (:nil) */
-static node*
-new_nil(parser_state *p)
-{
- return list1((node*)NODE_NIL);
-}
-
-/* (:true) */
-static node*
-new_true(parser_state *p)
-{
- return list1((node*)NODE_TRUE);
-}
-
-/* (:false) */
-static node*
-new_false(parser_state *p)
-{
- return list1((node*)NODE_FALSE);
-}
-
-/* (:alias new old) */
-static node*
-new_alias(parser_state *p, mrb_sym a, mrb_sym b)
-{
- return cons((node*)NODE_ALIAS, cons(nsym(a), nsym(b)));
-}
-
-/* (:if cond then else) */
-static node*
-new_if(parser_state *p, node *a, node *b, node *c)
-{
- void_expr_error(p, a);
- return list4((node*)NODE_IF, a, b, c);
-}
-
-/* (:unless cond then else) */
-static node*
-new_unless(parser_state *p, node *a, node *b, node *c)
-{
- void_expr_error(p, a);
- return list4((node*)NODE_IF, a, c, b);
-}
-
-/* (:while cond body) */
-static node*
-new_while(parser_state *p, node *a, node *b)
-{
- void_expr_error(p, a);
- return cons((node*)NODE_WHILE, cons(a, b));
-}
-
-/* (:until cond body) */
-static node*
-new_until(parser_state *p, node *a, node *b)
-{
- void_expr_error(p, a);
- return cons((node*)NODE_UNTIL, cons(a, b));
-}
-
-/* (:for var obj body) */
-static node*
-new_for(parser_state *p, node *v, node *o, node *b)
-{
- void_expr_error(p, o);
- return list4((node*)NODE_FOR, v, o, b);
-}
-
-/* (:case a ((when ...) body) ((when...) body)) */
-static node*
-new_case(parser_state *p, node *a, node *b)
-{
- node *n = list2((node*)NODE_CASE, a);
- node *n2 = n;
-
- void_expr_error(p, a);
- while (n2->cdr) {
- n2 = n2->cdr;
- }
- n2->cdr = b;
- return n;
-}
-
-/* (:postexe a) */
-static node*
-new_postexe(parser_state *p, node *a)
-{
- return cons((node*)NODE_POSTEXE, a);
-}
-
-/* (:self) */
-static node*
-new_self(parser_state *p)
-{
- return list1((node*)NODE_SELF);
-}
-
-/* (:call a b c) */
-static node*
-new_call(parser_state *p, node *a, mrb_sym b, node *c, int pass)
-{
- node *n = list4(nint(pass?NODE_CALL:NODE_SCALL), a, nsym(b), c);
- void_expr_error(p, a);
- NODE_LINENO(n, a);
- return n;
-}
-
-/* (:fcall self mid args) */
-static node*
-new_fcall(parser_state *p, mrb_sym b, node *c)
-{
- node *n = new_self(p);
- NODE_LINENO(n, c);
- n = list4((node*)NODE_FCALL, n, nsym(b), c);
- NODE_LINENO(n, c);
- return n;
-}
-
-/* (:super . c) */
-static node*
-new_super(parser_state *p, node *c)
-{
- return cons((node*)NODE_SUPER, c);
-}
-
-/* (:zsuper) */
-static node*
-new_zsuper(parser_state *p)
-{
- return list1((node*)NODE_ZSUPER);
-}
-
-/* (:yield . c) */
-static node*
-new_yield(parser_state *p, node *c)
-{
- if (c) {
- if (c->cdr) {
- yyerror(p, "both block arg and actual block given");
- }
- return cons((node*)NODE_YIELD, c->car);
- }
- return cons((node*)NODE_YIELD, 0);
-}
-
-/* (:return . c) */
-static node*
-new_return(parser_state *p, node *c)
-{
- return cons((node*)NODE_RETURN, c);
-}
-
-/* (:break . c) */
-static node*
-new_break(parser_state *p, node *c)
-{
- return cons((node*)NODE_BREAK, c);
-}
-
-/* (:next . c) */
-static node*
-new_next(parser_state *p, node *c)
-{
- return cons((node*)NODE_NEXT, c);
-}
-
-/* (:redo) */
-static node*
-new_redo(parser_state *p)
-{
- return list1((node*)NODE_REDO);
-}
-
-/* (:retry) */
-static node*
-new_retry(parser_state *p)
-{
- return list1((node*)NODE_RETRY);
-}
-
-/* (:dot2 a b) */
-static node*
-new_dot2(parser_state *p, node *a, node *b)
-{
- return cons((node*)NODE_DOT2, cons(a, b));
-}
-
-/* (:dot3 a b) */
-static node*
-new_dot3(parser_state *p, node *a, node *b)
-{
- return cons((node*)NODE_DOT3, cons(a, b));
-}
-
-/* (:colon2 b c) */
-static node*
-new_colon2(parser_state *p, node *b, mrb_sym c)
-{
- void_expr_error(p, b);
- return cons((node*)NODE_COLON2, cons(b, nsym(c)));
-}
-
-/* (:colon3 . c) */
-static node*
-new_colon3(parser_state *p, mrb_sym c)
-{
- return cons((node*)NODE_COLON3, nsym(c));
-}
-
-/* (:and a b) */
-static node*
-new_and(parser_state *p, node *a, node *b)
-{
- return cons((node*)NODE_AND, cons(a, b));
-}
-
-/* (:or a b) */
-static node*
-new_or(parser_state *p, node *a, node *b)
-{
- return cons((node*)NODE_OR, cons(a, b));
-}
-
-/* (:array a...) */
-static node*
-new_array(parser_state *p, node *a)
-{
- return cons((node*)NODE_ARRAY, a);
-}
-
-/* (:splat . a) */
-static node*
-new_splat(parser_state *p, node *a)
-{
- return cons((node*)NODE_SPLAT, a);
-}
-
-/* (:hash (k . v) (k . v)...) */
-static node*
-new_hash(parser_state *p, node *a)
-{
- return cons((node*)NODE_HASH, a);
-}
-
-/* (:kw_hash (k . v) (k . v)...) */
-static node*
-new_kw_hash(parser_state *p, node *a)
-{
- return cons((node*)NODE_KW_HASH, a);
-}
-
-/* (:sym . a) */
-static node*
-new_sym(parser_state *p, mrb_sym sym)
-{
- return cons((node*)NODE_SYM, nsym(sym));
-}
-
-static mrb_sym
-new_strsym(parser_state *p, node* str)
-{
- const char *s = (const char*)str->cdr->car;
- size_t len = (size_t)str->cdr->cdr;
-
- return mrb_intern(p->mrb, s, len);
-}
-
-/* (:lvar . a) */
-static node*
-new_lvar(parser_state *p, mrb_sym sym)
-{
- return cons((node*)NODE_LVAR, nsym(sym));
-}
-
-/* (:gvar . a) */
-static node*
-new_gvar(parser_state *p, mrb_sym sym)
-{
- return cons((node*)NODE_GVAR, nsym(sym));
-}
-
-/* (:ivar . a) */
-static node*
-new_ivar(parser_state *p, mrb_sym sym)
-{
- return cons((node*)NODE_IVAR, nsym(sym));
-}
-
-/* (:cvar . a) */
-static node*
-new_cvar(parser_state *p, mrb_sym sym)
-{
- return cons((node*)NODE_CVAR, nsym(sym));
-}
-
-/* (:nvar . a) */
-static node*
-new_nvar(parser_state *p, int num)
-{
- int nvars = intn(p->nvars->car);
-
- p->nvars->car = nint(nvars > num ? nvars : num);
- return cons((node*)NODE_NVAR, nint(num));
-}
-
-/* (:const . a) */
-static node*
-new_const(parser_state *p, mrb_sym sym)
-{
- return cons((node*)NODE_CONST, nsym(sym));
-}
-
-/* (:undef a...) */
-static node*
-new_undef(parser_state *p, mrb_sym sym)
-{
- return list2((node*)NODE_UNDEF, nsym(sym));
-}
-
-/* (:class class super body) */
-static node*
-new_class(parser_state *p, node *c, node *s, node *b)
-{
- void_expr_error(p, s);
- return list4((node*)NODE_CLASS, c, s, cons(locals_node(p), b));
-}
-
-/* (:sclass obj body) */
-static node*
-new_sclass(parser_state *p, node *o, node *b)
-{
- void_expr_error(p, o);
- return list3((node*)NODE_SCLASS, o, cons(locals_node(p), b));
-}
-
-/* (:module module body) */
-static node*
-new_module(parser_state *p, node *m, node *b)
-{
- return list3((node*)NODE_MODULE, m, cons(locals_node(p), b));
-}
-
-/* (:def m lv (arg . body)) */
-static node*
-new_def(parser_state *p, mrb_sym m, node *a, node *b)
-{
- return list5((node*)NODE_DEF, nsym(m), 0, a, b);
-}
-
-static void
-defn_setup(parser_state *p, node *d, node *a, node *b)
-{
- node *n = d->cdr->cdr;
-
- n->car = locals_node(p);
- p->cmdarg_stack = intn(n->cdr->car);
- n->cdr->car = a;
- local_resume(p, n->cdr->cdr->car);
- n->cdr->cdr->car = b;
-}
-
-/* (:sdef obj m lv (arg . body)) */
-static node*
-new_sdef(parser_state *p, node *o, mrb_sym m, node *a, node *b)
-{
- void_expr_error(p, o);
- return list6((node*)NODE_SDEF, o, nsym(m), 0, a, b);
-}
-
-static void
-defs_setup(parser_state *p, node *d, node *a, node *b)
-{
- node *n = d->cdr->cdr->cdr;
-
- n->car = locals_node(p);
- p->cmdarg_stack = intn(n->cdr->car);
- n->cdr->car = a;
- local_resume(p, n->cdr->cdr->car);
- n->cdr->cdr->car = b;
-}
-
-/* (:arg . sym) */
-static node*
-new_arg(parser_state *p, mrb_sym sym)
-{
- return cons((node*)NODE_ARG, nsym(sym));
-}
-
-static void
-local_add_margs(parser_state *p, node *n)
-{
- while (n) {
- if (typen(n->car->car) == NODE_MASGN) {
- node *t = n->car->cdr->cdr;
-
- n->car->cdr->cdr = NULL;
- while (t) {
- local_add_f(p, sym(t->car));
- t = t->cdr;
- }
- local_add_margs(p, n->car->cdr->car->car);
- local_add_margs(p, n->car->cdr->car->cdr->cdr->car);
- }
- n = n->cdr;
- }
-}
-
-static void
-local_add_lv(parser_state *p, node *lv)
-{
- while (lv) {
- local_add_f(p, sym(lv->car));
- lv = lv->cdr;
- }
-}
-
-/* (m o r m2 tail) */
-/* m: (a b c) */
-/* o: ((a . e1) (b . e2)) */
-/* r: a */
-/* m2: (a b c) */
-/* b: a */
-static node*
-new_args(parser_state *p, node *m, node *opt, mrb_sym rest, node *m2, node *tail)
-{
- node *n;
-
- local_add_margs(p, m);
- local_add_margs(p, m2);
- n = cons(m2, tail);
- n = cons(nsym(rest), n);
- n = cons(opt, n);
- while (opt) {
- /* opt: (sym . (opt . lv)) -> (sym . opt) */
- local_add_lv(p, opt->car->cdr->cdr);
- opt->car->cdr = opt->car->cdr->car;
- opt = opt->cdr;
- }
- return cons(m, n);
-}
-
-/* (:args_tail keywords rest_keywords_sym block_sym) */
-static node*
-new_args_tail(parser_state *p, node *kws, node *kwrest, mrb_sym blk)
-{
- node *k;
-
- if (kws || kwrest) {
- local_add_kw(p, (kwrest && kwrest->cdr)? sym(kwrest->cdr) : 0);
- }
-
- local_add_blk(p, blk);
-
- /* allocate register for keywords arguments */
- /* order is for Proc#parameters */
- for (k = kws; k; k = k->cdr) {
- if (!k->car->cdr->cdr->car) { /* allocate required keywords */
- local_add_f(p, sym(k->car->cdr->car));
- }
- }
- for (k = kws; k; k = k->cdr) {
- if (k->car->cdr->cdr->car) { /* allocate keywords with default */
- local_add_lv(p, k->car->cdr->cdr->car->cdr);
- k->car->cdr->cdr->car = k->car->cdr->cdr->car->car;
- local_add_f(p, sym(k->car->cdr->car));
- }
- }
-
- return list4((node*)NODE_ARGS_TAIL, kws, kwrest, nsym(blk));
-}
-
-/* (:kw_arg kw_sym def_arg) */
-static node*
-new_kw_arg(parser_state *p, mrb_sym kw, node *def_arg)
-{
- mrb_assert(kw);
- return list3((node*)NODE_KW_ARG, nsym(kw), def_arg);
-}
-
-/* (:kw_rest_args . a) */
-static node*
-new_kw_rest_args(parser_state *p, node *a)
-{
- return cons((node*)NODE_KW_REST_ARGS, a);
-}
-
-/* (:block_arg . a) */
-static node*
-new_block_arg(parser_state *p, node *a)
-{
- return cons((node*)NODE_BLOCK_ARG, a);
-}
-
-static node*
-setup_numparams(parser_state *p, node *a)
-{
- int nvars = intn(p->nvars->car);
- if (nvars > 0) {
- int i;
- mrb_sym sym;
- // m || opt || rest || tail
- if (a && (a->car || (a->cdr && a->cdr->car) || (a->cdr->cdr && a->cdr->cdr->car) || (a->cdr->cdr->cdr->cdr && a->cdr->cdr->cdr->cdr->car))) {
- yyerror(p, "ordinary parameter is defined");
- }
- else if (p->locals) {
- /* p->locals should not be NULL unless error happens before the point */
- node* args = 0;
- for (i = nvars; i > 0; i--) {
- char buf[3];
-
- buf[0] = '_';
- buf[1] = i+'0';
- buf[2] = '\0';
- sym = intern_cstr(buf);
- args = cons(new_arg(p, sym), args);
- p->locals->car = cons(nsym(sym), p->locals->car);
- }
- a = new_args(p, args, 0, 0, 0, 0);
- }
- }
- return a;
-}
-
-/* (:block arg body) */
-static node*
-new_block(parser_state *p, node *a, node *b)
-{
- a = setup_numparams(p, a);
- return list4((node*)NODE_BLOCK, locals_node(p), a, b);
-}
-
-/* (:lambda arg body) */
-static node*
-new_lambda(parser_state *p, node *a, node *b)
-{
- return list4((node*)NODE_LAMBDA, locals_node(p), a, b);
-}
-
-/* (:asgn lhs rhs) */
-static node*
-new_asgn(parser_state *p, node *a, node *b)
-{
- void_expr_error(p, b);
- return cons((node*)NODE_ASGN, cons(a, b));
-}
-
-/* (:masgn mlhs=(pre rest post) mrhs) */
-static node*
-new_masgn(parser_state *p, node *a, node *b)
-{
- void_expr_error(p, b);
- return cons((node*)NODE_MASGN, cons(a, b));
-}
-
-/* (:masgn mlhs mrhs) no check */
-static node*
-new_masgn_param(parser_state *p, node *a, node *b)
-{
- return cons((node*)NODE_MASGN, cons(a, b));
-}
-
-/* (:asgn lhs rhs) */
-static node*
-new_op_asgn(parser_state *p, node *a, mrb_sym op, node *b)
-{
- void_expr_error(p, b);
- return list4((node*)NODE_OP_ASGN, a, nsym(op), b);
-}
-
-static node*
-new_imaginary(parser_state *p, node *imaginary)
-{
- return new_call(p, new_const(p, MRB_SYM_2(p->mrb, Kernel)), MRB_SYM_2(p->mrb, Complex), list1(list2(list3((node*)NODE_INT, (node*)strdup("0"), nint(10)), imaginary)), 1);
-}
-
-static node*
-new_rational(parser_state *p, node *rational)
-{
- return new_call(p, new_const(p, MRB_SYM_2(p->mrb, Kernel)), MRB_SYM_2(p->mrb, Rational), list1(list1(rational)), 1);
-}
-
-/* (:int . i) */
-static node*
-new_int(parser_state *p, const char *s, int base, int suffix)
-{
- node* result = list3((node*)NODE_INT, (node*)strdup(s), nint(base));
- if (suffix & NUM_SUFFIX_R) {
- result = new_rational(p, result);
- }
- if (suffix & NUM_SUFFIX_I) {
- result = new_imaginary(p, result);
- }
- return result;
-}
-
-#ifndef MRB_NO_FLOAT
-/* (:float . i) */
-static node*
-new_float(parser_state *p, const char *s, int suffix)
-{
- node* result = cons((node*)NODE_FLOAT, (node*)strdup(s));
- if (suffix & NUM_SUFFIX_R) {
- result = new_rational(p, result);
- }
- if (suffix & NUM_SUFFIX_I) {
- result = new_imaginary(p, result);
- }
- return result;
-}
-#endif
-
-/* (:str . (s . len)) */
-static node*
-new_str(parser_state *p, const char *s, size_t len)
-{
- return cons((node*)NODE_STR, cons((node*)strndup(s, len), nint(len)));
-}
-
-/* (:dstr . a) */
-static node*
-new_dstr(parser_state *p, node *a)
-{
- return cons((node*)NODE_DSTR, a);
-}
-
-static int
-string_node_p(node *n)
-{
- return (int)(typen(n->car) == NODE_STR);
-}
-
-static node*
-composite_string_node(parser_state *p, node *a, node *b)
-{
- size_t newlen = (size_t)a->cdr + (size_t)b->cdr;
- char *str = (char*)mrb_pool_realloc(p->pool, a->car, (size_t)a->cdr + 1, newlen + 1);
- memcpy(str + (size_t)a->cdr, b->car, (size_t)b->cdr);
- str[newlen] = '\0';
- a->car = (node*)str;
- a->cdr = (node*)newlen;
- cons_free(b);
- return a;
-}
-
-static node*
-concat_string(parser_state *p, node *a, node *b)
-{
- if (string_node_p(a)) {
- if (string_node_p(b)) {
- /* a == NODE_STR && b == NODE_STR */
- composite_string_node(p, a->cdr, b->cdr);
- cons_free(b);
- return a;
- }
- else {
- /* a == NODE_STR && b == NODE_DSTR */
-
- if (string_node_p(b->cdr->car)) {
- /* a == NODE_STR && b->[NODE_STR, ...] */
- composite_string_node(p, a->cdr, b->cdr->car->cdr);
- cons_free(b->cdr->car);
- b->cdr->car = a;
- return b;
- }
- }
- }
- else {
- node *c; /* last node of a */
- for (c = a; c->cdr != NULL; c = c->cdr) ;
-
- if (string_node_p(b)) {
- /* a == NODE_DSTR && b == NODE_STR */
- if (string_node_p(c->car)) {
- /* a->[..., NODE_STR] && b == NODE_STR */
- composite_string_node(p, c->car->cdr, b->cdr);
- cons_free(b);
- return a;
- }
-
- push(a, b);
- return a;
- }
- else {
- /* a == NODE_DSTR && b == NODE_DSTR */
- if (string_node_p(c->car) && string_node_p(b->cdr->car)) {
- /* a->[..., NODE_STR] && b->[NODE_STR, ...] */
- node *d = b->cdr;
- cons_free(b);
- composite_string_node(p, c->car->cdr, d->car->cdr);
- cons_free(d->car);
- c->cdr = d->cdr;
- cons_free(d);
- return a;
- }
- else {
- c->cdr = b->cdr;
- cons_free(b);
- return a;
- }
- }
- }
-
- return new_dstr(p, list2(a, b));
-}
-
-/* (:str . (s . len)) */
-static node*
-new_xstr(parser_state *p, const char *s, int len)
-{
- return cons((node*)NODE_XSTR, cons((node*)strndup(s, len), nint(len)));
-}
-
-/* (:xstr . a) */
-static node*
-new_dxstr(parser_state *p, node *a)
-{
- return cons((node*)NODE_DXSTR, a);
-}
-
-/* (:dsym . a) */
-static node*
-new_dsym(parser_state *p, node *a)
-{
- return cons((node*)NODE_DSYM, a);
-}
-
-/* (:regx . (s . (opt . enc))) */
-static node*
-new_regx(parser_state *p, const char *p1, const char* p2, const char* p3)
-{
- return cons((node*)NODE_REGX, cons((node*)p1, cons((node*)p2, (node*)p3)));
-}
-
-/* (:dregx . (a . b)) */
-static node*
-new_dregx(parser_state *p, node *a, node *b)
-{
- return cons((node*)NODE_DREGX, cons(a, b));
-}
-
-/* (:backref . n) */
-static node*
-new_back_ref(parser_state *p, int n)
-{
- return cons((node*)NODE_BACK_REF, nint(n));
-}
-
-/* (:nthref . n) */
-static node*
-new_nth_ref(parser_state *p, int n)
-{
- return cons((node*)NODE_NTH_REF, nint(n));
-}
-
-/* (:heredoc . a) */
-static node*
-new_heredoc(parser_state *p)
-{
- parser_heredoc_info *inf = (parser_heredoc_info *)parser_palloc(p, sizeof(parser_heredoc_info));
- return cons((node*)NODE_HEREDOC, (node*)inf);
-}
-
-static void
-new_bv(parser_state *p, mrb_sym id)
-{
-}
-
-static node*
-new_literal_delim(parser_state *p)
-{
- return cons((node*)NODE_LITERAL_DELIM, 0);
-}
-
-/* (:words . a) */
-static node*
-new_words(parser_state *p, node *a)
-{
- return cons((node*)NODE_WORDS, a);
-}
-
-/* (:symbols . a) */
-static node*
-new_symbols(parser_state *p, node *a)
-{
- return cons((node*)NODE_SYMBOLS, a);
-}
-
-/* xxx ----------------------------- */
-
-/* (:call a op) */
-static node*
-call_uni_op(parser_state *p, node *recv, const char *m)
-{
- void_expr_error(p, recv);
- return new_call(p, recv, intern_cstr(m), 0, 1);
-}
-
-/* (:call a op b) */
-static node*
-call_bin_op(parser_state *p, node *recv, const char *m, node *arg1)
-{
- return new_call(p, recv, intern_cstr(m), list1(list1(arg1)), 1);
-}
-
-static void
-args_with_block(parser_state *p, node *a, node *b)
-{
- if (b) {
- if (a->cdr) {
- yyerror(p, "both block arg and actual block given");
- }
- a->cdr = b;
- }
-}
-
-static void
-endless_method_name(parser_state *p, node *defn)
-{
- mrb_sym sym = sym(defn->cdr->car);
- mrb_int len;
- const char *name = mrb_sym_name_len(p->mrb, sym, &len);
-
- if (len > 1 && name[len-1] == '=') {
- for (int i=0; i<len-1; i++) {
- if (!identchar(name[i])) return;
- }
- yyerror(p, "setter method cannot be defined by endless method definition");
- }
-}
-
-static void
-call_with_block(parser_state *p, node *a, node *b)
-{
- node *n;
-
- switch (typen(a->car)) {
- case NODE_SUPER:
- case NODE_ZSUPER:
- if (!a->cdr) a->cdr = cons(0, b);
- else {
- args_with_block(p, a->cdr, b);
- }
- break;
- case NODE_CALL:
- case NODE_FCALL:
- case NODE_SCALL:
- n = a->cdr->cdr->cdr;
- if (!n->car) n->car = cons(0, b);
- else {
- args_with_block(p, n->car, b);
- }
- break;
- default:
- break;
- }
-}
-
-static node*
-new_negate(parser_state *p, node *n)
-{
- return cons((node*)NODE_NEGATE, n);
-}
-
-static node*
-cond(node *n)
-{
- return n;
-}
-
-static node*
-ret_args(parser_state *p, node *n)
-{
- if (n->cdr) {
- yyerror(p, "block argument should not be given");
- return NULL;
- }
- if (!n->car->cdr) return n->car->car;
- return new_array(p, n->car);
-}
-
-static void
-assignable(parser_state *p, node *lhs)
-{
- if (intn(lhs->car) == NODE_LVAR) {
- local_add(p, sym(lhs->cdr));
- }
-}
-
-static node*
-var_reference(parser_state *p, node *lhs)
-{
- node *n;
-
- if (intn(lhs->car) == NODE_LVAR) {
- if (!local_var_p(p, sym(lhs->cdr))) {
- n = new_fcall(p, sym(lhs->cdr), 0);
- cons_free(lhs);
- return n;
- }
- }
-
- return lhs;
-}
-
-typedef enum mrb_string_type string_type;
-
-static node*
-new_strterm(parser_state *p, string_type type, int term, int paren)
-{
- return cons(nint(type), cons(nint(0), cons(nint(paren), nint(term))));
-}
-
-static void
-end_strterm(parser_state *p)
-{
- cons_free(p->lex_strterm->cdr->cdr);
- cons_free(p->lex_strterm->cdr);
- cons_free(p->lex_strterm);
- p->lex_strterm = NULL;
-}
-
-static parser_heredoc_info *
-parsing_heredoc_inf(parser_state *p)
-{
- node *nd = p->parsing_heredoc;
- if (nd == NULL)
- return NULL;
- /* mrb_assert(nd->car->car == NODE_HEREDOC); */
- return (parser_heredoc_info*)nd->car->cdr;
-}
-
-static void
-heredoc_treat_nextline(parser_state *p)
-{
- if (p->heredocs_from_nextline == NULL)
- return;
- if (p->parsing_heredoc == NULL) {
- node *n;
- p->parsing_heredoc = p->heredocs_from_nextline;
- p->lex_strterm_before_heredoc = p->lex_strterm;
- p->lex_strterm = new_strterm(p, parsing_heredoc_inf(p)->type, 0, 0);
- n = p->all_heredocs;
- if (n) {
- while (n->cdr)
- n = n->cdr;
- n->cdr = p->parsing_heredoc;
- }
- else {
- p->all_heredocs = p->parsing_heredoc;
- }
- }
- else {
- node *n, *m;
- m = p->heredocs_from_nextline;
- while (m->cdr)
- m = m->cdr;
- n = p->all_heredocs;
- mrb_assert(n != NULL);
- if (n == p->parsing_heredoc) {
- m->cdr = n;
- p->all_heredocs = p->heredocs_from_nextline;
- p->parsing_heredoc = p->heredocs_from_nextline;
- }
- else {
- while (n->cdr != p->parsing_heredoc) {
- n = n->cdr;
- mrb_assert(n != NULL);
- }
- m->cdr = n->cdr;
- n->cdr = p->heredocs_from_nextline;
- p->parsing_heredoc = p->heredocs_from_nextline;
- }
- }
- p->heredocs_from_nextline = NULL;
-}
-
-static void
-heredoc_end(parser_state *p)
-{
- p->parsing_heredoc = p->parsing_heredoc->cdr;
- if (p->parsing_heredoc == NULL) {
- p->lstate = EXPR_BEG;
- end_strterm(p);
- p->lex_strterm = p->lex_strterm_before_heredoc;
- p->lex_strterm_before_heredoc = NULL;
- }
- else {
- /* next heredoc */
- p->lex_strterm->car = nint(parsing_heredoc_inf(p)->type);
- }
-}
-#define is_strterm_type(p,str_func) (intn((p)->lex_strterm->car) & (str_func))
-
-/* xxx ----------------------------- */
-
-
-#line 1451 "mrbgems/mruby-compiler/core/y.tab.c"
-
-# ifndef YY_CAST
-# ifdef __cplusplus
-# define YY_CAST(Type, Val) static_cast<Type> (Val)
-# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
-# else
-# define YY_CAST(Type, Val) ((Type) (Val))
-# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
-# endif
-# endif
-# ifndef YY_NULLPTR
-# if defined __cplusplus
-# if 201103L <= __cplusplus
-# define YY_NULLPTR nullptr
-# else
-# define YY_NULLPTR 0
-# endif
-# else
-# define YY_NULLPTR ((void*)0)
-# endif
-# endif
-
-/* Enabling verbose error messages. */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 1
-#endif
-
-
-/* Debug traces. */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-#if YYDEBUG
-extern int yydebug;
-#endif
-
-/* Token type. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- enum yytokentype
- {
- keyword_class = 258,
- keyword_module = 259,
- keyword_def = 260,
- keyword_begin = 261,
- keyword_if = 262,
- keyword_unless = 263,
- keyword_while = 264,
- keyword_until = 265,
- keyword_for = 266,
- keyword_undef = 267,
- keyword_rescue = 268,
- keyword_ensure = 269,
- keyword_end = 270,
- keyword_then = 271,
- keyword_elsif = 272,
- keyword_else = 273,
- keyword_case = 274,
- keyword_when = 275,
- keyword_break = 276,
- keyword_next = 277,
- keyword_redo = 278,
- keyword_retry = 279,
- keyword_in = 280,
- keyword_do = 281,
- keyword_do_cond = 282,
- keyword_do_block = 283,
- keyword_do_LAMBDA = 284,
- keyword_return = 285,
- keyword_yield = 286,
- keyword_super = 287,
- keyword_self = 288,
- keyword_nil = 289,
- keyword_true = 290,
- keyword_false = 291,
- keyword_and = 292,
- keyword_or = 293,
- keyword_not = 294,
- modifier_if = 295,
- modifier_unless = 296,
- modifier_while = 297,
- modifier_until = 298,
- modifier_rescue = 299,
- keyword_alias = 300,
- keyword_BEGIN = 301,
- keyword_END = 302,
- keyword__LINE__ = 303,
- keyword__FILE__ = 304,
- keyword__ENCODING__ = 305,
- tIDENTIFIER = 306,
- tFID = 307,
- tGVAR = 308,
- tIVAR = 309,
- tCONSTANT = 310,
- tCVAR = 311,
- tLABEL_TAG = 312,
- tINTEGER = 313,
- tFLOAT = 314,
- tCHAR = 315,
- tXSTRING = 316,
- tREGEXP = 317,
- tSTRING = 318,
- tSTRING_PART = 319,
- tSTRING_MID = 320,
- tNTH_REF = 321,
- tBACK_REF = 322,
- tREGEXP_END = 323,
- tNUMPARAM = 324,
- tUPLUS = 325,
- tUMINUS = 326,
- tCMP = 327,
- tEQ = 328,
- tEQQ = 329,
- tNEQ = 330,
- tGEQ = 331,
- tLEQ = 332,
- tANDOP = 333,
- tOROP = 334,
- tMATCH = 335,
- tNMATCH = 336,
- tDOT2 = 337,
- tDOT3 = 338,
- tBDOT2 = 339,
- tBDOT3 = 340,
- tAREF = 341,
- tASET = 342,
- tLSHFT = 343,
- tRSHFT = 344,
- tCOLON2 = 345,
- tCOLON3 = 346,
- tOP_ASGN = 347,
- tASSOC = 348,
- tLPAREN = 349,
- tLPAREN_ARG = 350,
- tRPAREN = 351,
- tLBRACK = 352,
- tLBRACE = 353,
- tLBRACE_ARG = 354,
- tSTAR = 355,
- tPOW = 356,
- tDSTAR = 357,
- tAMPER = 358,
- tLAMBDA = 359,
- tANDDOT = 360,
- tSYMBEG = 361,
- tSTRING_BEG = 362,
- tXSTRING_BEG = 363,
- tSTRING_DVAR = 364,
- tREGEXP_BEG = 365,
- tWORDS_BEG = 366,
- tSYMBOLS_BEG = 367,
- tLAMBEG = 368,
- tHEREDOC_BEG = 369,
- tHEREDOC_END = 370,
- tLITERAL_DELIM = 371,
- tHD_LITERAL_DELIM = 372,
- tHD_STRING_PART = 373,
- tHD_STRING_MID = 374,
- tLOWEST = 375,
- tUMINUS_NUM = 376,
- tLAST_TOKEN = 377
- };
-#endif
-
-/* Value type. */
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-union YYSTYPE
-{
-#line 1393 "mrbgems/mruby-compiler/core/parse.y"
-
- node *nd;
- mrb_sym id;
- int num;
- stack_type stack;
- const struct vtable *vars;
-
-#line 1631 "mrbgems/mruby-compiler/core/y.tab.c"
-
-};
-typedef union YYSTYPE YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
-# define YYSTYPE_IS_DECLARED 1
-#endif
-
-
-
-int yyparse (parser_state *p);
-
-
-
-
-
-#ifdef short
-# undef short
-#endif
-
-/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
- <limits.h> and (if available) <stdint.h> are included
- so that the code can choose integer types of a good width. */
-
-#ifndef __PTRDIFF_MAX__
-# include <limits.h> /* INFRINGES ON USER NAME SPACE */
-# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
-# include <stdint.h> /* INFRINGES ON USER NAME SPACE */
-# define YY_STDINT_H
-# endif
-#endif
-
-/* Narrow types that promote to a signed type and that can represent a
- signed or unsigned integer of at least N bits. In tables they can
- save space and decrease cache pressure. Promoting to a signed type
- helps avoid bugs in integer arithmetic. */
-
-#ifdef __INT_LEAST8_MAX__
-typedef __INT_LEAST8_TYPE__ yytype_int8;
-#elif defined YY_STDINT_H
-typedef int_least8_t yytype_int8;
-#else
-typedef signed char yytype_int8;
-#endif
-
-#ifdef __INT_LEAST16_MAX__
-typedef __INT_LEAST16_TYPE__ yytype_int16;
-#elif defined YY_STDINT_H
-typedef int_least16_t yytype_int16;
-#else
-typedef short yytype_int16;
-#endif
-
-#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
-typedef __UINT_LEAST8_TYPE__ yytype_uint8;
-#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
- && UINT_LEAST8_MAX <= INT_MAX)
-typedef uint_least8_t yytype_uint8;
-#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
-typedef unsigned char yytype_uint8;
-#else
-typedef short yytype_uint8;
-#endif
-
-#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
-typedef __UINT_LEAST16_TYPE__ yytype_uint16;
-#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
- && UINT_LEAST16_MAX <= INT_MAX)
-typedef uint_least16_t yytype_uint16;
-#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
-typedef unsigned short yytype_uint16;
-#else
-typedef int yytype_uint16;
-#endif
-
-#ifndef YYPTRDIFF_T
-# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
-# define YYPTRDIFF_T __PTRDIFF_TYPE__
-# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
-# elif defined PTRDIFF_MAX
-# ifndef ptrdiff_t
-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-# endif
-# define YYPTRDIFF_T ptrdiff_t
-# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
-# else
-# define YYPTRDIFF_T long
-# define YYPTRDIFF_MAXIMUM LONG_MAX
-# endif
-#endif
-
-#ifndef YYSIZE_T
-# ifdef __SIZE_TYPE__
-# define YYSIZE_T __SIZE_TYPE__
-# elif defined size_t
-# define YYSIZE_T size_t
-# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
-# else
-# define YYSIZE_T unsigned
-# endif
-#endif
-
-#define YYSIZE_MAXIMUM \
- YY_CAST (YYPTRDIFF_T, \
- (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
- ? YYPTRDIFF_MAXIMUM \
- : YY_CAST (YYSIZE_T, -1)))
-
-#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
-
-/* Stored state numbers (used for stacks). */
-typedef yytype_int16 yy_state_t;
-
-/* State numbers in computations. */
-typedef int yy_state_fast_t;
-
-#ifndef YY_
-# if defined YYENABLE_NLS && YYENABLE_NLS
-# if ENABLE_NLS
-# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-# define YY_(Msgid) dgettext ("bison-runtime", Msgid)
-# endif
-# endif
-# ifndef YY_
-# define YY_(Msgid) Msgid
-# endif
-#endif
-
-#ifndef YY_ATTRIBUTE_PURE
-# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
-# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
-# else
-# define YY_ATTRIBUTE_PURE
-# endif
-#endif
-
-#ifndef YY_ATTRIBUTE_UNUSED
-# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
-# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
-# else
-# define YY_ATTRIBUTE_UNUSED
-# endif
-#endif
-
-/* Suppress unused-variable warnings by "using" E. */
-#if ! defined lint || defined __GNUC__
-# define YYUSE(E) ((void) (E))
-#else
-# define YYUSE(E) /* empty */
-#endif
-
-#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
-/* Suppress an incorrect diagnostic about yylval being uninitialized. */
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
- _Pragma ("GCC diagnostic push") \
- _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
- _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
- _Pragma ("GCC diagnostic pop")
-#else
-# define YY_INITIAL_VALUE(Value) Value
-#endif
-#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END
-#endif
-#ifndef YY_INITIAL_VALUE
-# define YY_INITIAL_VALUE(Value) /* Nothing. */
-#endif
-
-#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
-# define YY_IGNORE_USELESS_CAST_BEGIN \
- _Pragma ("GCC diagnostic push") \
- _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
-# define YY_IGNORE_USELESS_CAST_END \
- _Pragma ("GCC diagnostic pop")
-#endif
-#ifndef YY_IGNORE_USELESS_CAST_BEGIN
-# define YY_IGNORE_USELESS_CAST_BEGIN
-# define YY_IGNORE_USELESS_CAST_END
-#endif
-
-
-#define YY_ASSERT(E) ((void) (0 && (E)))
-
-#if ! defined yyoverflow || YYERROR_VERBOSE
-
-/* The parser invokes alloca or malloc; define the necessary symbols. */
-
-# ifdef YYSTACK_USE_ALLOCA
-# if YYSTACK_USE_ALLOCA
-# ifdef __GNUC__
-# define YYSTACK_ALLOC __builtin_alloca
-# elif defined __BUILTIN_VA_ARG_INCR
-# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-# elif defined _AIX
-# define YYSTACK_ALLOC __alloca
-# elif defined _MSC_VER
-# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
-# define alloca _alloca
-# else
-# define YYSTACK_ALLOC alloca
-# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
- /* Use EXIT_SUCCESS as a witness for stdlib.h. */
-# ifndef EXIT_SUCCESS
-# define EXIT_SUCCESS 0
-# endif
-# endif
-# endif
-# endif
-# endif
-
-# ifdef YYSTACK_ALLOC
- /* Pacify GCC's 'empty if-body' warning. */
-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-# ifndef YYSTACK_ALLOC_MAXIMUM
- /* The OS might guarantee only one guard page at the bottom of the stack,
- and a page size can be as small as 4096 bytes. So we cannot safely
- invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
- to allow for a few compiler-allocated temporary stack slots. */
-# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
-# endif
-# else
-# define YYSTACK_ALLOC YYMALLOC
-# define YYSTACK_FREE YYFREE
-# ifndef YYSTACK_ALLOC_MAXIMUM
-# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
-# endif
-# if (defined __cplusplus && ! defined EXIT_SUCCESS \
- && ! ((defined YYMALLOC || defined malloc) \
- && (defined YYFREE || defined free)))
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef EXIT_SUCCESS
-# define EXIT_SUCCESS 0
-# endif
-# endif
-# ifndef YYMALLOC
-# define YYMALLOC malloc
-# if ! defined malloc && ! defined EXIT_SUCCESS
-void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-# endif
-# endif
-# ifndef YYFREE
-# define YYFREE free
-# if ! defined free && ! defined EXIT_SUCCESS
-void free (void *); /* INFRINGES ON USER NAME SPACE */
-# endif
-# endif
-# endif
-#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
-
-#if (! defined yyoverflow \
- && (! defined __cplusplus \
- || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
-/* A type that is properly aligned for any stack member. */
-union yyalloc
-{
- yy_state_t yyss_alloc;
- YYSTYPE yyvs_alloc;
-};
-
-/* The size of the maximum gap between one aligned stack and the next. */
-# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
- N elements. */
-# define YYSTACK_BYTES(N) \
- ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
- + YYSTACK_GAP_MAXIMUM)
-
-# define YYCOPY_NEEDED 1
-
-/* Relocate STACK from its old location to the new one. The
- local variables YYSIZE and YYSTACKSIZE give the old and new number of
- elements in the stack, and YYPTR gives the new location of the
- stack. Advance YYPTR to a properly aligned location for the next
- stack. */
-# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
- do \
- { \
- YYPTRDIFF_T yynewbytes; \
- YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
- Stack = &yyptr->Stack_alloc; \
- yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / YYSIZEOF (*yyptr); \
- } \
- while (0)
-
-#endif
-
-#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
-/* Copy COUNT objects from SRC to DST. The source and destination do
- not overlap. */
-# ifndef YYCOPY
-# if defined __GNUC__ && 1 < __GNUC__
-# define YYCOPY(Dst, Src, Count) \
- __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
-# else
-# define YYCOPY(Dst, Src, Count) \
- do \
- { \
- YYPTRDIFF_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (Dst)[yyi] = (Src)[yyi]; \
- } \
- while (0)
-# endif
-# endif
-#endif /* !YYCOPY_NEEDED */
-
-/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 3
-/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 13314
-
-/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 149
-/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 177
-/* YYNRULES -- Number of rules. */
-#define YYNRULES 611
-/* YYNSTATES -- Number of states. */
-#define YYNSTATES 1075
-
-#define YYUNDEFTOK 2
-#define YYMAXUTOK 377
-
-
-/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
- as returned by yylex, with out-of-bounds checking. */
-#define YYTRANSLATE(YYX) \
- (0 <= (YYX) && (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
-/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
- as returned by yylex. */
-static const yytype_uint8 yytranslate[] =
-{
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 148, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 135, 2, 2, 2, 133, 128, 2,
- 144, 145, 131, 129, 142, 130, 147, 132, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 123, 146,
- 125, 121, 124, 122, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 140, 2, 141, 127, 2, 143, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 138, 126, 139, 136, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 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,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
- 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
- 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
- 115, 116, 117, 118, 119, 120, 134, 137
-};
-
-#if YYDEBUG
- /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
-static const yytype_int16 yyrline[] =
-{
- 0, 1564, 1564, 1564, 1575, 1581, 1585, 1590, 1594, 1600,
- 1602, 1601, 1615, 1642, 1648, 1652, 1657, 1661, 1667, 1667,
- 1671, 1675, 1679, 1683, 1687, 1691, 1695, 1700, 1701, 1705,
- 1709, 1713, 1717, 1724, 1727, 1731, 1735, 1739, 1743, 1747,
- 1752, 1756, 1765, 1775, 1784, 1794, 1801, 1802, 1806, 1810,
- 1811, 1815, 1819, 1823, 1827, 1831, 1841, 1840, 1855, 1864,
- 1865, 1868, 1869, 1876, 1875, 1890, 1894, 1899, 1903, 1908,
- 1912, 1917, 1921, 1925, 1929, 1933, 1939, 1943, 1949, 1950,
- 1956, 1960, 1964, 1968, 1972, 1976, 1980, 1984, 1988, 1992,
- 1998, 1999, 2005, 2009, 2015, 2019, 2025, 2029, 2033, 2037,
- 2041, 2045, 2051, 2057, 2064, 2068, 2072, 2076, 2080, 2084,
- 2090, 2096, 2101, 2107, 2111, 2114, 2118, 2122, 2129, 2130,
- 2131, 2132, 2137, 2144, 2145, 2148, 2152, 2152, 2158, 2159,
- 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169,
- 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179,
- 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2190, 2190,
- 2190, 2191, 2191, 2192, 2192, 2192, 2193, 2193, 2193, 2193,
- 2194, 2194, 2194, 2195, 2195, 2195, 2196, 2196, 2196, 2196,
- 2197, 2197, 2197, 2197, 2198, 2198, 2198, 2198, 2199, 2199,
- 2199, 2199, 2200, 2200, 2200, 2200, 2201, 2201, 2204, 2208,
- 2212, 2216, 2220, 2224, 2228, 2233, 2238, 2243, 2247, 2251,
- 2255, 2259, 2263, 2267, 2271, 2275, 2279, 2283, 2287, 2291,
- 2295, 2299, 2303, 2307, 2311, 2315, 2319, 2323, 2327, 2331,
- 2335, 2339, 2343, 2347, 2351, 2355, 2359, 2363, 2367, 2371,
- 2375, 2379, 2383, 2387, 2391, 2400, 2410, 2419, 2429, 2435,
- 2436, 2441, 2445, 2452, 2456, 2464, 2468, 2484, 2510, 2511,
- 2514, 2515, 2516, 2521, 2526, 2533, 2539, 2544, 2549, 2554,
- 2561, 2561, 2572, 2578, 2582, 2588, 2589, 2592, 2598, 2604,
- 2609, 2616, 2621, 2626, 2633, 2634, 2635, 2636, 2637, 2638,
- 2639, 2640, 2644, 2649, 2648, 2660, 2664, 2659, 2669, 2669,
- 2673, 2677, 2681, 2685, 2690, 2695, 2699, 2703, 2707, 2711,
- 2715, 2716, 2722, 2728, 2721, 2740, 2748, 2756, 2756, 2756,
- 2763, 2763, 2763, 2770, 2776, 2781, 2783, 2780, 2792, 2790,
- 2808, 2813, 2806, 2830, 2828, 2844, 2854, 2865, 2869, 2873,
- 2877, 2883, 2890, 2891, 2892, 2895, 2896, 2899, 2900, 2908,
- 2909, 2915, 2919, 2922, 2926, 2930, 2934, 2939, 2943, 2947,
- 2951, 2957, 2956, 2966, 2970, 2974, 2978, 2984, 2989, 2994,
- 2998, 3002, 3006, 3010, 3014, 3018, 3022, 3026, 3030, 3034,
- 3038, 3042, 3046, 3050, 3056, 3061, 3068, 3068, 3072, 3077,
- 3084, 3088, 3094, 3095, 3098, 3103, 3106, 3110, 3116, 3120,
- 3127, 3126, 3141, 3151, 3155, 3160, 3167, 3171, 3175, 3179,
- 3183, 3187, 3191, 3195, 3199, 3206, 3205, 3220, 3219, 3235,
- 3243, 3252, 3255, 3262, 3265, 3269, 3270, 3273, 3277, 3280,
- 3284, 3287, 3288, 3289, 3290, 3293, 3294, 3300, 3301, 3302,
- 3306, 3312, 3313, 3319, 3324, 3323, 3334, 3338, 3344, 3348,
- 3354, 3358, 3364, 3367, 3368, 3371, 3377, 3383, 3384, 3387,
- 3394, 3393, 3407, 3411, 3418, 3423, 3430, 3436, 3437, 3438,
- 3439, 3440, 3444, 3450, 3454, 3460, 3461, 3462, 3466, 3472,
- 3476, 3480, 3484, 3488, 3494, 3498, 3504, 3508, 3512, 3516,
- 3520, 3524, 3532, 3539, 3550, 3551, 3555, 3559, 3558, 3575,
- 3576, 3579, 3585, 3603, 3623, 3624, 3630, 3636, 3642, 3649,
- 3654, 3661, 3665, 3671, 3675, 3681, 3682, 3685, 3689, 3695,
- 3699, 3703, 3707, 3713, 3718, 3723, 3727, 3731, 3735, 3739,
- 3743, 3747, 3751, 3755, 3759, 3763, 3767, 3771, 3775, 3780,
- 3786, 3791, 3796, 3801, 3806, 3813, 3817, 3824, 3829, 3828,
- 3840, 3844, 3850, 3858, 3866, 3874, 3878, 3884, 3888, 3894,
- 3895, 3898, 3903, 3910, 3911, 3914, 3920, 3924, 3930, 3935,
- 3935, 3960, 3961, 3967, 3972, 3978, 3979, 3982, 3988, 3993,
- 4003, 4010, 4011, 4012, 4015, 4016, 4017, 4018, 4021, 4022,
- 4023, 4026, 4027, 4030, 4034, 4040, 4041, 4047, 4048, 4051,
- 4052, 4055, 4058, 4059, 4060, 4063, 4064, 4065, 4068, 4075,
- 4076, 4080
-};
-#endif
-
-#if YYDEBUG || YYERROR_VERBOSE || 1
-/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
-static const char *const yytname[] =
-{
- "$end", "error", "$undefined", "keyword_class", "keyword_module",
- "keyword_def", "keyword_begin", "keyword_if", "keyword_unless",
- "keyword_while", "keyword_until", "keyword_for", "keyword_undef",
- "keyword_rescue", "keyword_ensure", "keyword_end", "keyword_then",
- "keyword_elsif", "keyword_else", "keyword_case", "keyword_when",
- "keyword_break", "keyword_next", "keyword_redo", "keyword_retry",
- "keyword_in", "keyword_do", "keyword_do_cond", "keyword_do_block",
- "keyword_do_LAMBDA", "keyword_return", "keyword_yield", "keyword_super",
- "keyword_self", "keyword_nil", "keyword_true", "keyword_false",
- "keyword_and", "keyword_or", "keyword_not", "modifier_if",
- "modifier_unless", "modifier_while", "modifier_until", "modifier_rescue",
- "keyword_alias", "keyword_BEGIN", "keyword_END", "keyword__LINE__",
- "keyword__FILE__", "keyword__ENCODING__", "\"local variable or method\"",
- "\"method\"", "\"global variable\"", "\"instance variable\"",
- "\"constant\"", "\"class variable\"", "\"label\"", "\"integer literal\"",
- "\"float literal\"", "\"character literal\"", "tXSTRING", "tREGEXP",
- "tSTRING", "tSTRING_PART", "tSTRING_MID", "tNTH_REF", "tBACK_REF",
- "tREGEXP_END", "\"numbered parameter\"", "\"unary plus\"",
- "\"unary minus\"", "\"<=>\"", "\"==\"", "\"===\"", "\"!=\"", "\">=\"",
- "\"<=\"", "\"&&\"", "\"||\"", "\"=~\"", "\"!~\"", "\"..\"", "\"...\"",
- "tBDOT2", "tBDOT3", "tAREF", "tASET", "\"<<\"", "\">>\"", "\"::\"",
- "tCOLON3", "tOP_ASGN", "\"=>\"", "tLPAREN", "\"(\"", "\")\"", "\"[\"",
- "tLBRACE", "\"{\"", "\"*\"", "tPOW", "\"**\"", "\"&\"", "\"->\"",
- "\"&.\"", "\"symbol\"", "\"string literal\"", "tXSTRING_BEG",
- "tSTRING_DVAR", "tREGEXP_BEG", "tWORDS_BEG", "tSYMBOLS_BEG", "tLAMBEG",
- "\"here document\"", "tHEREDOC_END", "tLITERAL_DELIM",
- "tHD_LITERAL_DELIM", "tHD_STRING_PART", "tHD_STRING_MID", "tLOWEST",
- "'='", "'?'", "':'", "'>'", "'<'", "'|'", "'^'", "'&'", "'+'", "'-'",
- "'*'", "'/'", "'%'", "tUMINUS_NUM", "'!'", "'~'", "tLAST_TOKEN", "'{'",
- "'}'", "'['", "']'", "','", "'`'", "'('", "')'", "';'", "'.'", "'\\n'",
- "$accept", "program", "$@1", "top_compstmt", "top_stmts", "top_stmt",
- "@2", "bodystmt", "compstmt", "stmts", "stmt", "$@3", "command_asgn",
- "command_rhs", "expr", "defn_head", "defs_head", "$@4", "expr_value",
- "command_call", "block_command", "cmd_brace_block", "$@5", "command",
- "mlhs", "mlhs_inner", "mlhs_basic", "mlhs_item", "mlhs_list",
- "mlhs_post", "mlhs_node", "lhs", "cname", "cpath", "fname", "fsym",
- "undef_list", "$@6", "op", "reswords", "arg", "aref_args", "arg_rhs",
- "paren_args", "opt_paren_args", "opt_call_args", "call_args",
- "command_args", "@7", "block_arg", "opt_block_arg", "comma", "args",
- "mrhs", "primary", "@8", "@9", "$@10", "$@11", "@12", "@13", "$@14",
- "$@15", "$@16", "$@17", "$@18", "$@19", "@20", "@21", "@22", "@23",
- "primary_value", "then", "do", "if_tail", "opt_else", "for_var",
- "f_margs", "$@24", "block_args_tail", "opt_block_args_tail",
- "block_param", "opt_block_param", "block_param_def", "$@25",
- "opt_bv_decl", "bv_decls", "bvar", "f_larglist", "lambda_body",
- "do_block", "$@26", "block_call", "method_call", "brace_block", "@27",
- "@28", "case_body", "cases", "opt_rescue", "exc_list", "exc_var",
- "opt_ensure", "literal", "string", "string_fragment", "string_rep",
- "string_interp", "@29", "xstring", "regexp", "heredoc", "heredoc_bodies",
- "heredoc_body", "heredoc_string_rep", "heredoc_string_interp", "@30",
- "words", "symbol", "basic_symbol", "sym", "symbols", "numeric",
- "variable", "var_lhs", "var_ref", "backref", "superclass", "$@31",
- "f_opt_arglist_paren", "f_arglist_paren", "f_arglist", "f_label", "f_kw",
- "f_block_kw", "f_block_kwarg", "f_kwarg", "kwrest_mark", "f_kwrest",
- "args_tail", "opt_args_tail", "f_args", "f_bad_arg", "f_norm_arg",
- "f_arg_item", "@32", "f_arg", "f_opt_asgn", "f_opt", "f_block_opt",
- "f_block_optarg", "f_optarg", "restarg_mark", "f_rest_arg",
- "blkarg_mark", "f_block_arg", "opt_f_block_arg", "singleton", "$@33",
- "assoc_list", "assocs", "label_tag", "assoc", "operation", "operation2",
- "operation3", "dot_or_colon", "call_op", "call_op2", "opt_terms",
- "opt_nl", "rparen", "trailer", "term", "nl", "terms", "none", YY_NULLPTR
-};
-#endif
-
-# ifdef YYPRINT
-/* YYTOKNUM[NUM] -- (External) token number corresponding to the
- (internal) symbol number NUM (which must be that of a token). */
-static const yytype_int16 yytoknum[] =
-{
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
- 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
- 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
- 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
- 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
- 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
- 375, 61, 63, 58, 62, 60, 124, 94, 38, 43,
- 45, 42, 47, 37, 376, 33, 126, 377, 123, 125,
- 91, 93, 44, 96, 40, 41, 59, 46, 10
-};
-# endif
-
-#define YYPACT_NINF (-850)
-
-#define yypact_value_is_default(Yyn) \
- ((Yyn) == YYPACT_NINF)
-
-#define YYTABLE_NINF (-612)
-
-#define yytable_value_is_error(Yyn) \
- ((Yyn) == YYTABLE_NINF)
-
- /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
-static const yytype_int16 yypact[] =
-{
- -850, 124, 3596, -850, 8329, 10453, 10795, 6637, -850, 10099,
- 10099, -850, -850, 10567, 7819, 6372, 8565, 8565, -850, -850,
- 8565, 4253, 3845, -850, -850, -850, -850, 200, 7819, -850,
- 37, -850, -850, -850, 6779, 3709, -850, -850, 6921, -850,
- -850, -850, -850, -850, -850, -850, 34, 10217, 10217, 10217,
- 10217, 106, 5631, 633, 9037, 9391, 8101, -850, 7537, 1187,
- 767, 989, 1214, 1237, -850, 86, 10335, 10217, -850, 751,
- -850, 1505, -850, 115, 1288, 1288, -850, -850, 176, 70,
- -850, 71, 10681, -850, 118, 12995, 477, 483, 60, 84,
- -850, 365, -850, -850, -850, -850, -850, -850, -850, -850,
- -850, 349, 165, -850, 501, 82, -850, -850, -850, -850,
- -850, 131, 131, 137, 506, 1044, -850, 10099, 314, 5750,
- 268, 1266, 1266, -850, 143, -850, 599, -850, -850, 82,
- -850, -850, -850, -850, -850, -850, -850, -850, -850, -850,
- -850, -850, -850, -850, -850, -850, -850, -850, -850, -850,
- -850, -850, -850, -850, -850, -850, -850, -850, 49, 58,
- 72, 83, -850, -850, -850, -850, -850, -850, 133, 162,
- 187, 196, -850, 208, -850, -850, -850, -850, -850, -850,
- -850, -850, -850, -850, -850, -850, -850, -850, -850, -850,
- -850, -850, -850, -850, -850, -850, -850, -850, -850, -850,
- -850, -850, -850, -850, -850, -850, -850, -850, -850, 241,
- 4809, 233, 115, 1288, 1288, 69, 169, 13119, 628, 151,
- 203, 155, 69, 10099, 10099, 659, 247, -850, -850, 732,
- 329, 67, 87, -850, -850, -850, -850, -850, -850, -850,
- -850, -850, 7678, -850, -850, 228, -850, -850, -850, -850,
- -850, -850, 751, -850, 721, -850, 352, -850, -850, 751,
- 3981, 10217, 10217, 10217, 10217, -850, 13057, -850, -850, 237,
- 324, 237, -850, -850, -850, 8683, -850, -850, -850, 8565,
- -850, -850, -850, 6372, 10099, -850, -850, 251, 5869, -850,
- 851, 286, 13181, 13181, 544, 8447, 5631, 275, 751, 1505,
- 751, 303, -850, 8447, 751, 292, 1351, 1351, -850, 13057,
- 288, 1351, -850, 381, 10909, 296, 862, 905, 929, 1387,
- -850, -850, -850, -850, 1282, -850, -850, -850, -850, -850,
- -850, 814, 1287, -850, -850, 1021, -850, 1052, -850, 1320,
- -850, 1337, 341, 350, -850, -850, -850, -850, 6134, 10099,
- 10099, 10099, 10099, 8447, 10099, 10099, 61, -850, -850, -850,
- -850, -850, -850, -850, -850, -850, -850, -850, -850, 1604,
- 337, 340, 4809, 10217, -850, 321, 417, 354, -850, 751,
- -850, -850, -850, 387, 10217, -850, 401, 472, 403, 511,
- -850, -850, 449, 4809, -850, -850, 9509, -850, 5631, 8215,
- 441, 9509, 10217, 10217, 10217, 10217, 10217, 10217, 10217, 10217,
- 10217, 10217, 10217, 10217, 10217, 10217, 534, 10217, 10217, 10217,
- 10217, 10217, 10217, 10217, 10217, 10217, 10217, 10217, 10217, 3391,
- -850, 8565, -850, 11187, -850, -850, 12391, -850, -850, -850,
- -850, 10335, 10335, -850, 491, -850, 115, -850, 952, -850,
- -850, -850, -850, -850, -850, 11273, 8565, 11359, 4809, 10099,
- -850, -850, -850, 577, 581, 158, 474, 479, -850, 4955,
- 582, 10217, 11445, 8565, 11531, 10217, 10217, 5247, 639, 639,
- 94, 11617, 8565, 11703, -850, 541, -850, 5869, 352, -850,
- -850, 9627, 600, -850, 814, 10217, 13119, 13119, 13119, 10217,
- 1057, -850, 8801, -850, 10217, -850, 9155, 6491, 471, 751,
- 237, 237, -850, -850, 885, 473, -850, -850, 7819, 5366,
- 498, 11445, 11531, 10217, 1505, 751, -850, -850, 6253, 484,
- 1505, -850, -850, 9273, -850, 751, 9391, -850, -850, -850,
- 952, 71, 10909, -850, 10909, 11789, 8565, 11875, 1458, -850,
- -850, -850, 1348, 5869, 814, -850, -850, -850, -850, -850,
- -850, -850, 10217, 10217, -850, -850, -850, -850, -850, -850,
- -850, -850, -850, -850, 1165, 751, 751, 497, 10335, 632,
- 13119, 345, -850, -850, -850, 12, -850, -850, 1458, -850,
- 13119, 1458, -850, -850, 1769, -850, -850, 10335, 644, 63,
- 10217, -850, 12711, 237, -850, 751, 10909, 512, -850, -850,
- -850, 604, 542, 2903, -850, -850, 956, 284, 2755, 2755,
- 2755, 2755, 1752, 1752, 3456, 2669, 2755, 2755, 13181, 13181,
- 1232, 1232, -850, 286, 12649, 1752, 1752, 1467, 1467, 1477,
- 355, 355, 286, 286, 286, 3275, 7277, 4525, 7395, -850,
- 131, -850, 523, 237, 564, -850, 588, -850, -850, 4117,
- -850, -850, 2330, 63, 63, -850, 12463, -850, -850, -850,
- -850, -850, 751, 10099, 4809, 1109, 192, -850, 131, 529,
- 131, 658, 885, 7960, -850, 9745, 657, -850, 10217, 10217,
- 487, -850, 7039, 7158, 546, 311, 338, 657, -850, -850,
- -850, -850, 91, 98, 556, 103, 104, 10099, 7819, 555,
- 685, 13119, 249, -850, 814, 13119, 13119, 814, 10217, 13057,
- -850, 237, 13119, -850, -850, -850, -850, 8919, 9155, -850,
- -850, -850, 568, -850, -850, 38, 1505, 751, 1351, 441,
- -850, 1109, 192, 562, 1167, 1168, 565, 77, -850, 573,
- -850, 286, 286, -850, 147, 751, 572, -850, -850, 1708,
- 673, 12525, -850, 665, -850, 354, -850, -850, -850, 587,
- 590, 593, -850, 596, 665, 593, 679, 12587, -850, -850,
- 1458, 4809, -850, -850, 12782, 9863, -850, -850, 10909, 8447,
- 10335, 10217, 11961, 8565, 12047, 76, 10335, 10335, -850, 491,
- 613, 8801, 10335, 10335, -850, 491, 84, 176, 4809, 5869,
- 63, -850, 751, 726, -850, -850, -850, -850, 12711, -850,
- 652, -850, 5512, 742, -850, 10099, 747, -850, 10217, 10217,
- 386, 10217, 10217, 750, 6015, 6015, 107, 639, -850, -850,
- -850, 9981, 5101, 814, 13119, -850, 6491, 237, -850, -850,
- -850, 756, 624, 640, 4809, 5869, -850, -850, -850, 646,
- -850, 1485, 751, 10217, 10217, -850, 1458, -850, 1769, -850,
- 1769, -850, 1769, -850, -850, 10217, 10217, -850, 565, 565,
- 11023, -850, 650, 354, 653, 11023, -850, 660, 661, -850,
- 755, 10217, 12853, -850, -850, 13119, 4389, 4661, 666, 414,
- 426, 10217, 10217, -850, -850, -850, -850, -850, 10335, -850,
- -850, -850, -850, -850, -850, -850, 759, 670, 5869, 4809,
- -850, -850, 11137, 69, -850, -850, 6015, -850, -850, 69,
- -850, 10217, -850, 785, 797, -850, 13119, 148, -850, 9155,
- -850, 1683, 799, 676, 1630, 1630, 894, -850, 13119, 13119,
- 593, 681, 593, 593, 13119, 13119, 698, 712, 786, 957,
- 345, -850, -850, 1422, -850, 957, 1458, -850, 1769, -850,
- -850, 12924, 486, 13119, 13119, -850, -850, -850, -850, 705,
- 832, 796, -850, 968, 905, 929, 4809, -850, 4955, -850,
- -850, 6015, -850, -850, -850, -850, 116, -850, -850, -850,
- -850, 713, 713, 1630, 714, -850, 1769, -850, -850, -850,
- -850, -850, -850, 12133, -850, 354, 345, -850, -850, 716,
- 718, 722, -850, 723, 722, -850, -850, 952, 12219, 8565,
- 12305, 581, 487, 870, 1683, -850, 1630, 713, 1630, 593,
- 733, 743, -850, 1458, -850, 1769, -850, 1769, -850, 1769,
- -850, -850, 1109, 192, 745, 553, 866, -850, -850, -850,
- -850, 713, -850, 722, 753, 722, 722, 756, -850, 1769,
- -850, -850, -850, 722, -850
-};
-
- /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
- Performed when YYTABLE does not specify something else to do. Zero
- means the default is an error. */
-static const yytype_int16 yydefact[] =
-{
- 2, 0, 0, 1, 0, 0, 0, 0, 293, 0,
- 0, 317, 320, 0, 0, 597, 337, 338, 339, 340,
- 305, 270, 270, 488, 487, 489, 490, 599, 0, 10,
- 0, 492, 491, 493, 479, 583, 481, 480, 483, 482,
- 475, 476, 437, 438, 494, 495, 291, 0, 0, 0,
- 0, 0, 0, 295, 611, 611, 88, 312, 0, 0,
- 0, 0, 0, 0, 452, 0, 0, 0, 3, 597,
- 6, 9, 27, 33, 539, 539, 49, 60, 59, 0,
- 76, 0, 80, 90, 0, 54, 248, 0, 61, 310,
- 284, 285, 435, 286, 287, 288, 433, 432, 464, 434,
- 431, 486, 0, 289, 290, 270, 5, 8, 337, 338,
- 305, 611, 413, 0, 113, 114, 291, 0, 0, 0,
- 0, 539, 539, 116, 496, 341, 0, 486, 290, 0,
- 333, 168, 178, 169, 165, 194, 195, 196, 197, 176,
- 191, 184, 174, 173, 189, 172, 171, 167, 192, 166,
- 179, 183, 185, 177, 170, 186, 193, 188, 187, 180,
- 190, 175, 164, 182, 181, 163, 161, 162, 158, 159,
- 160, 118, 120, 119, 153, 154, 131, 132, 133, 140,
- 137, 139, 134, 135, 155, 156, 141, 142, 146, 149,
- 150, 136, 138, 128, 129, 130, 143, 144, 145, 147,
- 148, 151, 152, 157, 569, 55, 121, 122, 568, 0,
- 0, 0, 58, 539, 539, 0, 0, 54, 0, 486,
- 0, 290, 0, 0, 0, 112, 0, 352, 351, 0,
- 0, 486, 290, 187, 180, 190, 175, 158, 159, 160,
- 118, 119, 0, 123, 125, 20, 124, 455, 460, 459,
- 605, 608, 597, 607, 0, 457, 0, 609, 606, 598,
- 581, 0, 0, 0, 0, 265, 277, 74, 269, 611,
- 435, 611, 573, 75, 73, 611, 259, 306, 72, 0,
- 258, 412, 71, 597, 0, 600, 18, 0, 0, 221,
- 0, 222, 209, 212, 302, 0, 0, 0, 597, 15,
- 597, 78, 14, 0, 597, 0, 602, 602, 249, 0,
- 0, 602, 571, 0, 0, 86, 0, 96, 103, 539,
- 469, 468, 470, 471, 0, 467, 466, 439, 444, 443,
- 446, 0, 0, 441, 448, 0, 450, 0, 462, 0,
- 473, 0, 477, 478, 53, 236, 237, 4, 598, 0,
- 0, 0, 0, 0, 0, 0, 546, 542, 541, 540,
- 543, 544, 548, 560, 515, 516, 564, 563, 559, 539,
- 0, 504, 0, 508, 513, 611, 518, 611, 538, 0,
- 545, 547, 550, 524, 0, 557, 524, 562, 524, 0,
- 522, 500, 0, 0, 400, 402, 0, 92, 0, 84,
- 81, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 208, 211, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 594, 611, 593, 0, 596, 595, 0, 417, 415, 311,
- 436, 0, 0, 406, 65, 309, 330, 113, 114, 115,
- 477, 478, 504, 497, 328, 0, 611, 0, 0, 0,
- 592, 591, 56, 0, 611, 302, 0, 0, 343, 0,
- 342, 0, 0, 611, 0, 0, 0, 0, 0, 0,
- 302, 0, 611, 0, 325, 0, 126, 0, 0, 456,
- 458, 0, 0, 610, 575, 0, 278, 580, 272, 0,
- 275, 266, 0, 274, 0, 267, 0, 597, 0, 597,
- 611, 611, 260, 271, 597, 0, 308, 52, 0, 0,
- 0, 0, 0, 0, 17, 597, 300, 13, 598, 77,
- 296, 299, 303, 604, 250, 603, 604, 252, 304, 572,
- 102, 94, 0, 89, 0, 0, 611, 0, 539, 313,
- 397, 472, 0, 0, 447, 453, 440, 442, 449, 451,
- 463, 474, 0, 0, 7, 21, 22, 23, 24, 25,
- 50, 51, 506, 552, 0, 597, 597, 524, 0, 0,
- 507, 0, 520, 567, 517, 0, 521, 505, 0, 531,
- 553, 0, 534, 561, 0, 536, 565, 0, 0, 611,
- 0, 28, 30, 0, 31, 597, 0, 82, 93, 48,
- 34, 46, 0, 253, 198, 29, 0, 290, 226, 231,
- 232, 233, 228, 230, 240, 241, 234, 235, 207, 210,
- 238, 239, 32, 218, 599, 227, 229, 223, 224, 225,
- 213, 214, 215, 216, 217, 584, 589, 585, 590, 411,
- 270, 409, 0, 611, 584, 586, 585, 587, 410, 270,
- 584, 585, 270, 611, 611, 35, 253, 199, 45, 206,
- 63, 66, 0, 0, 0, 113, 114, 117, 0, 0,
- 611, 0, 597, 0, 294, 611, 611, 423, 0, 0,
- 611, 344, 588, 301, 0, 584, 585, 611, 346, 318,
- 345, 321, 588, 301, 0, 584, 585, 0, 0, 0,
- 0, 277, 0, 324, 576, 578, 577, 0, 0, 279,
- 273, 611, 579, 574, 257, 255, 261, 262, 264, 307,
- 601, 19, 0, 26, 205, 79, 16, 597, 602, 95,
- 87, 99, 101, 0, 98, 100, 599, 0, 465, 0,
- 454, 219, 220, 546, 360, 597, 353, 503, 501, 0,
- 41, 244, 335, 0, 514, 611, 566, 523, 551, 524,
- 524, 524, 558, 524, 546, 524, 43, 246, 336, 388,
- 386, 0, 385, 384, 283, 0, 91, 85, 0, 0,
- 0, 0, 0, 611, 0, 0, 0, 0, 408, 69,
- 414, 262, 0, 0, 407, 67, 403, 62, 0, 0,
- 611, 331, 0, 0, 414, 334, 570, 57, 424, 425,
- 611, 426, 0, 611, 349, 0, 0, 347, 0, 0,
- 414, 0, 0, 0, 0, 0, 414, 0, 127, 461,
- 323, 0, 0, 276, 280, 268, 597, 611, 11, 297,
- 251, 97, 0, 390, 0, 0, 314, 445, 361, 358,
- 549, 0, 597, 0, 0, 519, 0, 527, 0, 529,
- 0, 535, 0, 532, 537, 0, 0, 383, 599, 599,
- 510, 511, 611, 611, 368, 0, 555, 368, 368, 366,
- 0, 0, 281, 83, 47, 254, 584, 585, 0, 584,
- 585, 0, 0, 40, 203, 39, 204, 70, 0, 37,
- 201, 38, 202, 68, 404, 405, 0, 0, 0, 0,
- 498, 329, 0, 0, 428, 350, 0, 12, 430, 0,
- 315, 0, 316, 0, 0, 326, 279, 611, 256, 263,
- 396, 0, 0, 0, 0, 0, 356, 502, 42, 245,
- 524, 524, 524, 524, 44, 247, 0, 0, 0, 509,
- 0, 364, 365, 368, 376, 554, 0, 379, 0, 381,
- 401, 282, 414, 243, 242, 36, 200, 418, 416, 0,
- 0, 0, 427, 0, 104, 111, 0, 429, 0, 319,
- 322, 0, 420, 421, 419, 394, 599, 392, 395, 399,
- 398, 362, 359, 0, 354, 528, 0, 525, 530, 533,
- 389, 387, 302, 0, 512, 611, 0, 367, 374, 368,
- 368, 368, 556, 368, 368, 64, 332, 110, 0, 611,
- 0, 611, 611, 0, 0, 391, 0, 357, 0, 524,
- 588, 301, 363, 0, 371, 0, 373, 0, 380, 0,
- 377, 382, 107, 109, 0, 584, 585, 422, 348, 327,
- 393, 355, 526, 368, 368, 368, 368, 105, 372, 0,
- 369, 375, 378, 368, 370
-};
-
- /* YYPGOTO[NTERM-NUM]. */
-static const yytype_int16 yypgoto[] =
-{
- -850, -850, -850, 379, -850, 44, -850, -221, 102, -850,
- 30, -850, -19, -171, 161, 1373, 1745, -850, 1, -30,
- -850, -656, -850, -13, 889, -220, 23, -60, -285, -450,
- 15, 2261, -78, 901, 43, 3, -850, -850, 19, -850,
- 1221, -850, 464, 81, -495, -377, 114, 17, -850, -415,
- -256, -111, 39, -338, 32, -850, -850, -850, -850, -850,
- -850, -850, -850, -850, -850, -850, -850, -850, -850, -850,
- -850, 8, -213, -435, -122, -602, -850, -850, -850, 134,
- 101, -850, -566, -850, -850, -359, -850, -116, -850, -850,
- 135, -850, -850, -850, -81, -850, -850, -458, -850, -112,
- -850, -850, -850, -850, -850, 66, 6, -158, -850, -850,
- -850, -850, -394, -280, -850, 671, -850, -850, -850, 13,
- -850, -850, -850, 2384, 2648, 924, 1983, -850, -850, 14,
- 459, 24, 163, 357, -14, -850, -850, -850, 112, -453,
- 189, -206, -837, -693, -553, -850, 280, -715, -542, -849,
- -12, -518, -850, -90, -850, 111, -357, -850, -850, -850,
- 26, 691, -399, 625, -173, -850, -850, -82, -850, 42,
- -25, 525, -249, 78, -26, 9, -2
-};
-
- /* YYDEFGOTO[NTERM-NUM]. */
-static const yytype_int16 yydefgoto[] =
-{
- -1, 1, 2, 68, 69, 70, 287, 463, 464, 298,
- 299, 518, 72, 610, 73, 213, 214, 683, 215, 76,
- 77, 671, 810, 78, 79, 300, 80, 81, 82, 543,
- 83, 216, 123, 124, 243, 244, 245, 708, 648, 207,
- 85, 305, 614, 649, 277, 508, 509, 278, 279, 268,
- 501, 536, 653, 604, 86, 210, 303, 737, 304, 319,
- 747, 223, 834, 224, 835, 707, 991, 674, 672, 919,
- 458, 290, 469, 699, 826, 827, 230, 755, 944, 1017,
- 964, 878, 781, 782, 879, 852, 996, 997, 549, 856,
- 395, 599, 88, 89, 445, 664, 663, 492, 994, 686,
- 820, 923, 927, 90, 91, 92, 332, 333, 553, 93,
- 94, 95, 554, 253, 254, 255, 487, 96, 97, 98,
- 326, 99, 100, 219, 220, 103, 221, 454, 673, 370,
- 371, 372, 373, 374, 881, 882, 375, 376, 377, 378,
- 589, 379, 380, 381, 382, 574, 383, 384, 385, 886,
- 887, 386, 387, 388, 389, 390, 582, 209, 459, 310,
- 511, 495, 272, 129, 678, 651, 462, 457, 436, 515,
- 853, 516, 534, 257, 258, 259, 302
-};
-
- /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
- positive, shift that token. If negative, reduce the rule whose
- number is the opposite. If YYTABLE_NINF, syntax error. */
-static const yytype_int16 yytable[] =
-{
- 106, 285, 284, 265, 265, 433, 435, 265, 439, 477,
- 87, 222, 87, 126, 126, 505, 252, 218, 218, 280,
- 586, 229, 400, 218, 218, 218, 206, 246, 218, 542,
- 710, 286, 71, 206, 71, 768, 344, 125, 125, 282,
- 449, 246, 271, 271, 701, 125, 271, 206, 107, 772,
- 205, 555, 308, 312, 652, 269, 269, 256, 537, 269,
- 87, 859, 539, 615, 316, 885, 335, 337, 339, 341,
- 769, 315, 391, 391, 218, 301, 525, 206, 348, 679,
- 307, 311, 270, 270, 823, 468, 270, 720, 125, 392,
- 316, 720, -104, 306, 740, 833, 694, 808, 809, 393,
- 714, 325, 276, 281, 998, 704, 854, 723, 437, 280,
- 437, 347, -111, 550, 125, 366, -107, 1022, 572, -110,
- 270, 270, 444, -109, 3, 218, -485, 87, -106, -108,
- 267, 273, -105, 901, 274, 767, 474, 723, 767, -488,
- 367, 767, 779, 907, 342, 343, 393, 483, -487, 913,
- 434, 579, 354, 355, 297, -112, 787, 440, 502, -77,
- 506, 294, -489, 576, 804, 430, 822, 806, 491, 743,
- 212, 212, 598, -490, 557, 288, 212, 557, 605, 557,
- -91, 557, 573, 557, 247, 804, 443, 248, 249, 780,
- 855, 396, 276, 281, 1022, 533, -488, 998, 753, 902,
- 357, 358, 359, 360, 394, -487, 768, 432, 522, -96,
- 443, 391, 391, 397, 555, 250, 361, 251, 87, -489,
- 438, 297, 438, -492, 478, 479, 275, 466, 467, -103,
- -490, 218, 218, -99, 547, -584, -102, 681, 393, 401,
- -101, 769, -585, -484, 918, -98, -100, 476, 885, -97,
- 523, 885, -491, 1004, 541, 505, 650, 441, 1034, 542,
- 659, 206, 265, 662, 251, 468, 265, 503, 453, 503,
- 665, 668, -104, 512, 750, 275, -111, -493, 446, -110,
- -492, 283, -301, 218, 680, 325, -479, 218, 465, 858,
- 471, 218, 218, 470, 488, 475, 87, -301, -483, 650,
- 470, 659, 480, 87, 87, 271, 767, 528, 768, -491,
- 680, 87, 720, 720, 510, 535, 535, 768, 269, 301,
- 535, 542, 316, 843, 772, 524, 450, 451, 885, 723,
- 552, 460, -301, 530, -493, 992, -585, 493, 893, -301,
- 527, 270, 746, -479, 283, 270, 125, 819, 251, 680,
- 565, 566, 567, 568, 484, -483, 87, 218, 218, 218,
- 218, 87, 218, 218, 247, 447, 601, 248, 249, 448,
- 486, 611, 491, 583, 680, 583, 442, 677, 71, 500,
- 87, 494, 609, 569, 212, 212, 720, 417, 461, 519,
- 520, 500, 564, 513, 557, 250, 763, 251, 297, 727,
- 728, 87, 935, 831, 218, -111, 87, 316, 865, 616,
- 768, 611, 611, 767, 607, 767, 898, 767, 265, 767,
- 526, 301, 609, 609, -76, 42, 493, 538, 43, 512,
- 832, 125, -106, 532, 750, 603, 540, 555, 544, 218,
- 603, -484, 562, 265, 514, 517, 364, 365, 366, 616,
- 616, 563, 657, 813, 512, 657, 417, 587, 578, -108,
- 265, -499, 687, 581, 218, 845, 87, 218, 584, 265,
- -104, 512, 59, 367, 285, 717, 657, 87, 931, 993,
- 512, 218, 739, 768, 541, 87, 426, 427, 428, 850,
- 218, -96, 785, 657, 768, 87, 585, 270, 770, 842,
- 297, 773, 657, 542, 825, 822, 802, -105, 503, 503,
- 212, 212, 212, 212, 658, 570, 571, 106, 803, 956,
- 957, 731, 270, 593, 720, 961, 962, 87, 721, 588,
- 712, 246, -581, 265, 794, -106, 87, 206, 658, 270,
- 723, 657, 801, 591, 512, 594, 541, -108, 270, 71,
- 316, 726, 316, 767, 218, 658, 700, 700, 736, 738,
- 890, 87, 596, 750, 658, 760, 657, -341, 270, -106,
- 597, 690, 270, 429, 125, 592, 125, 595, 908, 697,
- 452, 452, -341, 608, 776, 632, 218, 916, 430, 709,
- 670, 845, 684, 442, 685, 688, -479, 783, 691, 270,
- 689, 841, 270, 658, 551, 218, 493, -105, 285, 795,
- 506, -479, 270, 493, 316, 713, 725, -341, 730, 650,
- 682, 659, -111, 431, -341, 903, -91, 105, 658, 105,
- 432, 909, 911, 942, 105, 105, 523, 733, 125, 759,
- 105, 105, 105, -103, -581, 105, -479, 762, 789, 577,
- -581, 503, 1054, -479, 788, 749, 802, 280, 1042, 778,
- 280, 783, 783, 790, 800, -110, 698, 799, -106, 770,
- 814, -106, -106, 815, 812, 822, 805, 105, 280, 807,
- 803, 218, 87, 821, 824, -106, -102, 830, 824, 455,
- 888, 105, 766, 765, 839, 824, 766, 836, 980, -106,
- 840, -106, 206, 851, 430, 908, -98, 848, 837, -108,
- 986, 838, 857, 251, 861, 218, 988, 863, 472, 503,
- 285, 246, 572, 875, 603, 914, 817, 206, 541, 866,
- -100, 798, 868, 430, -105, 870, 939, 975, 872, 456,
- 276, 921, 105, 276, 105, 922, 432, 535, -298, -291,
- 811, -298, -298, 847, 247, -97, 926, 248, 249, 798,
- 611, 276, 930, 583, -291, 932, 611, 905, 473, 940,
- 970, 609, 611, 611, 977, 432, 951, 609, -298, -298,
- 265, -298, -414, 609, 609, 250, 941, 251, 945, 87,
- 470, 512, 960, 270, 270, 963, 316, 87, 616, -291,
- 989, 218, 966, 968, 616, 218, -291, 972, 783, 978,
- 616, 616, 990, 657, 999, 1000, 87, 87, 924, 894,
- 125, 928, 481, 1006, 1010, 529, 929, 847, 334, 531,
- 87, 328, 329, 218, 212, 105, 489, 430, 1011, 248,
- 249, 1012, 87, 87, 1025, 503, -414, 1026, 105, 105,
- 87, 1027, 285, 285, 756, 1036, 1038, 680, 1043, 270,
- 1045, -414, 87, 87, 1047, 1049, 247, 270, 212, 248,
- 249, 771, 482, 1020, 775, 658, 1023, -584, 611, 432,
- 583, 583, -108, 330, 331, 1059, 1067, -585, 959, 609,
- 920, 889, 883, 965, -414, 1069, -414, 250, 732, 251,
- 105, 1030, 227, -414, 105, 667, 669, 130, 105, 105,
- 1058, 917, 125, 105, 877, 700, 616, 125, 1060, 1057,
- 105, 105, 354, 355, 925, 490, 87, 87, 105, 247,
- 983, 208, 248, 249, 87, 824, 933, 934, 764, 667,
- 669, 521, 915, 880, 937, 753, 1014, 357, 358, 359,
- 360, 1019, 545, 1064, 125, 0, 430, 943, 867, 869,
- 871, 504, 873, 361, 874, 0, 0, 430, 0, 0,
- 285, 1035, 0, 105, 105, 105, 105, 105, 105, 105,
- 105, -108, 0, 0, -108, -108, 212, 734, 967, 969,
- 0, 473, 0, 0, 87, -486, 87, 105, 432, 87,
- 247, 470, 546, 248, 249, 270, 0, 470, 0, 432,
- -486, 0, -108, 583, -108, 0, 265, 0, 105, -290,
- 979, 105, 0, 105, 0, 0, 105, 512, 987, 687,
- 824, 250, 724, 251, -290, 0, 1003, 218, 0, 729,
- 0, 0, -302, 0, 0, -486, 792, 1013, 0, 657,
- 735, 336, -486, 328, 329, 0, 105, -302, 1028, 0,
- 884, 430, 430, 0, 1018, 0, 105, 105, 0, -290,
- -582, 766, 1015, 430, 889, 883, -290, 889, 883, 889,
- 883, 105, 558, 105, 105, 328, 329, 0, 1031, 0,
- 1032, 0, -302, 1033, 105, 270, 793, 456, 105, -302,
- 757, 758, 105, 432, 432, 330, 331, 105, 1029, 0,
- 0, 658, 105, 0, 559, 432, 328, 329, 0, 0,
- 1044, 1046, 1048, 880, 1050, 1051, 880, 889, 883, 880,
- 786, 880, 0, 0, -483, -588, 0, 330, 331, 1005,
- 1007, 1008, 1009, 0, 105, 0, 950, 0, 952, -483,
- 0, 0, 953, 105, 889, 883, 889, 883, 889, 883,
- 889, 883, 0, 0, 1068, 1070, 1071, 1072, 330, 331,
- 0, 105, -599, 0, 1074, -599, -599, 0, 105, 880,
- 889, 883, -582, 0, -483, 0, 0, 0, -582, 0,
- 0, -483, 0, -584, -585, 0, 0, 0, 0, -588,
- 0, 0, 0, 105, 0, 251, 880, 816, 880, 0,
- 880, 0, 880, 0, -588, 0, 753, 0, 357, 358,
- 359, 360, 105, 0, 1001, 1002, 0, 0, 1062, 0,
- 217, 217, 880, 0, 361, 0, 217, 266, 266, 0,
- 0, 266, 0, 0, 0, 0, 1021, -588, 1024, -588,
- 327, 328, 329, -584, 0, 0, -588, -584, -585, 362,
- 904, 906, 849, 0, 0, 754, 910, 912, 289, 291,
- 292, 293, -584, -585, 0, 266, 309, 338, 328, 329,
- 860, 0, 0, 1037, 0, 0, 1039, 345, 346, 0,
- 0, 0, 904, 906, 0, 910, 912, 0, 105, 105,
- 340, 328, 329, 330, 331, -584, -585, -584, -585, 0,
- 0, -584, -585, 0, -584, -585, 0, 356, 1061, 357,
- 358, 359, 360, 1063, 0, 1065, 0, 0, 0, 1066,
- 330, 331, 105, 417, 0, 361, 0, 0, 217, 356,
- 0, 357, 358, 359, 360, 551, 328, 329, 0, 1073,
- 556, 328, 329, 330, 331, 0, 0, 361, 0, 0,
- 362, 424, 425, 426, 427, 428, 363, 364, 365, 366,
- 0, 938, 976, 0, 0, 74, 0, 74, 121, 121,
- 0, 0, 362, 560, 328, 329, 121, 947, 363, 364,
- 365, 366, 0, 0, 367, 976, 0, 368, 330, 331,
- 561, 328, 329, 330, 331, 0, 105, 0, 0, -611,
- 369, 748, 328, 329, 105, 105, 367, 0, 105, 368,
- 0, 105, 105, 0, 0, 74, 0, 105, 105, 121,
- 0, 0, 369, 105, 105, 0, 330, 331, 356, 0,
- 357, 358, 359, 360, 217, 217, 0, 105, 0, 0,
- 105, 0, 0, 330, 331, 121, 361, 0, 0, 105,
- 105, 0, 0, 0, 330, 331, 247, 105, 0, 248,
- 249, 0, 0, 356, 0, 357, 358, 359, 360, 105,
- 105, 362, 496, 497, 498, 345, 0, 363, 364, 365,
- 366, 361, 74, 500, 0, 0, 266, 250, 0, 251,
- 266, 0, 0, 0, 217, 217, 0, 0, 0, 356,
- 0, 357, 358, 359, 360, 367, 362, 0, 368, 0,
- 0, 0, 363, 364, 365, 366, 0, 361, 0, 0,
- 0, 548, 0, 105, 0, 0, 753, 0, 357, 358,
- 359, 360, 0, 105, 105, 349, 350, 351, 352, 353,
- 367, 105, 362, 368, 361, 414, 415, 0, 363, 364,
- 365, 366, 0, 0, 1016, 414, 415, 0, 417, 0,
- 217, 217, 217, 217, 0, 217, 217, 0, 417, 362,
- 0, 0, 0, 74, 0, 946, 367, 0, 0, 368,
- 0, 0, 0, 0, 580, 423, 424, 425, 426, 427,
- 428, 0, 0, 0, 0, 590, 424, 425, 426, 427,
- 428, 105, 0, 105, 0, 0, 105, 602, 0, 0,
- 0, 0, 613, 618, 619, 620, 621, 622, 623, 624,
- 625, 626, 627, 628, 629, 630, 631, 0, 633, 634,
- 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
- 0, 0, 266, 0, 105, 356, 0, 357, 358, 359,
- 360, 74, 666, 666, 0, 0, 0, 0, 74, 74,
- 0, 0, 0, 361, 0, 0, 74, 266, 0, 0,
- 217, 753, 0, 357, 358, 359, 360, 121, 0, 575,
- 0, 0, 666, 0, 266, 0, 666, 666, 362, 361,
- 0, 0, 0, 266, 363, 364, 365, 366, 0, 0,
- 0, 0, 711, 0, 0, 0, 715, 0, 0, 0,
- 716, 74, 0, 719, 362, 722, 74, 309, 293, 0,
- 0, 0, 367, 0, 995, 368, 357, 358, 359, 360,
- 0, 0, 0, 0, 666, 74, 0, 75, 0, 75,
- 122, 122, 361, 0, 719, 0, 0, 309, 122, 356,
- 0, 357, 358, 359, 360, 0, 74, 266, 0, 0,
- 0, 74, 121, 0, 74, 0, 0, 361, 0, 0,
- 0, 0, 0, 751, 752, 0, 0, 0, 0, 0,
- 0, 0, 0, 862, 0, 0, 0, 75, 0, 761,
- 0, 122, 362, 0, 0, 0, 0, 0, 363, 364,
- 365, 366, 0, 0, 74, 74, 0, 0, 777, 0,
- 774, 784, 357, 358, 359, 360, 0, 122, 0, 0,
- 0, 74, 0, 0, 0, 0, 367, 0, 361, 368,
- 414, 415, 74, 0, 0, 0, 0, 0, 0, 0,
- 74, 0, 0, 417, 0, 0, 0, 0, 0, 0,
- 74, 0, 0, 362, 75, 0, 0, 0, 0, 0,
- 364, 365, 366, 0, 0, 0, 0, 0, 421, 422,
- 423, 424, 425, 426, 427, 428, 0, 0, 0, 0,
- 0, 0, 74, 0, 217, 0, 0, 367, 0, 0,
- 0, 74, 0, 0, 0, 0, 818, 0, 0, 761,
- 777, 0, 0, 0, 0, 121, 0, 121, 0, 0,
- 0, 0, 0, 0, 0, 0, 74, 0, 217, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 844,
- 0, 0, 0, 0, 0, 0, 0, 0, 719, 309,
- 0, 0, 0, 0, 0, 75, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 121,
- 0, 0, 0, 0, 0, 104, 0, 104, 128, 128,
- 0, 0, 0, 0, 0, 0, 232, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 892, 0, 0, 0,
- 0, 666, 895, 0, 266, 0, 0, 666, 666, 0,
- 0, 0, 719, 666, 666, 0, 0, 0, 0, 0,
- 0, 0, 0, 75, 0, 104, 0, 0, 0, 318,
- 75, 75, 0, 0, 0, 0, 217, 74, 75, 666,
- 666, 0, 666, 666, 0, 0, 0, 0, 0, 122,
- 0, 0, 936, 0, 0, 318, 0, 293, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 948, 949, 0, 0, 0, 0,
- 0, 0, 0, 75, 0, 0, 954, 955, 75, 0,
- 0, 0, 104, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 971, 0, 0, 0, 0, 75, 0, 0,
- 0, 0, 973, 974, 0, 0, 0, 0, 0, 666,
- 0, 0, 0, 0, 0, 0, 0, 0, 75, 0,
- 0, 0, 0, 75, 122, 0, 75, 0, 0, 0,
- 0, 0, 666, 0, 74, 0, 0, 0, 0, 0,
- 309, 121, 74, 74, 0, 0, 0, 0, 0, 74,
- 0, 0, 0, 0, 0, 74, 74, 0, 0, 0,
- 0, 74, 74, 0, 0, 0, 75, 75, 0, 0,
- 0, 0, 0, 104, 0, 74, 0, 0, 0, 0,
- 0, 0, 0, 75, 0, 0, 0, 74, 74, 0,
- 0, 0, 0, 0, 75, 74, 0, 0, 0, 0,
- 0, 0, 75, 0, 0, 0, 0, 74, 74, 0,
- 0, 0, 75, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 266, 0, 0, 121, 0, 0, 0, 0, 121, 0,
- 0, 0, 0, 84, 75, 84, 0, 0, 0, 0,
- 0, 104, 0, 75, 228, 0, 0, 0, 104, 104,
- 0, 74, 0, 0, 0, 0, 104, 122, 0, 122,
- 0, 74, 74, 0, 0, 121, 0, 318, 75, 74,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 84, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- -611, 104, 0, 0, 0, 0, 104, 0, 0, 0,
- 0, 0, 0, -611, -611, -611, -611, -611, -611, 0,
- -611, 122, 0, 0, 0, 104, -611, -611, 0, 74,
- 0, 74, 0, 0, 74, 0, 0, -611, -611, 0,
- -611, -611, -611, -611, -611, 0, 104, 0, 0, 0,
- 84, 104, 318, 0, 617, 0, 101, 0, 101, 127,
- 127, 127, 0, 0, 0, 0, 0, 231, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,
- -611, 0, 0, 0, 617, 617, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, -611, 101, 0, 0, 0,
- 317, 104, 0, 0, 0, -611, 0, 0, -611, -611,
- 0, 0, 104, 0, 0, 0, 0, 0, 0, 0,
- 104, 0, 0, 0, 0, 0, 317, 0, -611, -611,
- 104, 84, 0, 0, 275, -611, -611, -611, -611, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 104, 101, 0, 0, 0, 0, 0, 0,
- 0, 104, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 318, 75, 318, 0, 0,
- 0, 0, 0, 122, 75, 75, 104, 0, 0, 0,
- 0, 75, 0, 0, 0, 0, 0, 75, 75, 84,
- 0, 0, 0, 75, 75, 0, 84, 84, 0, 0,
- 0, 0, 0, 0, 84, 0, 0, 75, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,
- 75, 0, 0, 0, 0, 0, 0, 75, 0, 318,
- 0, 0, 0, 0, 101, 0, 0, 0, 0, 75,
- 75, 0, 0, 0, 0, 0, 0, 0, 0, 84,
- 0, 0, 0, 0, 84, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 122, 0, 0, 0, 0,
- 122, 0, 0, 84, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 102, 0, 102, 75, 84, 0, 0, 104, 0, 84,
- 0, 0, 612, 75, 75, 0, 0, 122, 0, 0,
- 0, 75, 101, 0, 0, 0, 0, 0, 0, 101,
- 101, 0, 0, 0, 0, 0, 0, 101, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 317, 0,
- 102, 0, 612, 612, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 84, 75, 101, 75, 0, 0, 75, 101, 84, 0,
- 0, 402, 403, 404, 405, 406, 407, 408, 84, 410,
- 411, 0, 0, 0, 0, 0, 101, 414, 415, 0,
- 0, 0, 0, 0, 104, 0, 0, 102, 0, 0,
- 417, 318, 104, 617, 0, 0, 0, 101, 0, 617,
- 84, 0, 101, 317, 0, 617, 617, 0, 0, 84,
- 0, 104, 104, 419, 420, 421, 422, 423, 424, 425,
- 426, 427, 428, 0, 0, 104, 0, 0, 0, 0,
- 0, 0, 0, 0, 84, 0, 0, 104, 104, 0,
- 0, 0, 0, 0, 0, 104, 0, -612, -612, -612,
- -612, 406, 407, 0, 0, -612, -612, 104, 104, 0,
- 0, 0, 101, 414, 415, 0, 0, 0, 0, 0,
- 0, 0, 0, 101, 0, 0, 417, 0, 102, 0,
- 0, 101, 0, 128, 0, 0, 0, 0, 128, 0,
- 0, 101, 0, 0, 0, 0, 0, 0, 0, 419,
- 420, 421, 422, 423, 424, 425, 426, 427, 428, 0,
- 0, 617, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 104, 104, 101, 0, 985, 0, 0, 0, 104,
- 0, 0, 101, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 317, 0, 317, 0,
- 0, 0, 0, 0, 0, 84, 102, 101, 0, 0,
- 0, 0, 0, 102, 102, 0, 0, 791, 0, 0,
- 0, 102, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 104,
- 0, 104, 0, 0, 104, 402, 403, 404, 405, 406,
- 407, 408, 409, 410, 411, 412, 413, 0, 0, 0,
- 317, 414, 415, 0, 0, 0, 102, 0, 0, 0,
- 0, 102, 0, 0, 417, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 102, 0, 0, 0, 0, 418, 0, 419, 420, 421,
- 422, 423, 424, 425, 426, 427, 428, 0, 0, 0,
- 0, 102, 84, 0, 0, -277, 102, 0, 0, 102,
- 84, 612, 0, 0, 0, 0, 0, 612, 101, 0,
- 0, 0, 0, 612, 612, 0, 0, 0, 0, 84,
- 84, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 84, 0, 0, 0, 0, 0, 102,
- 102, 0, 0, 0, 0, 84, 84, 0, 0, 0,
- 0, 0, 0, 84, 0, 0, 102, 0, 0, 0,
- 0, 0, 0, 0, 0, 84, 84, 102, 0, 0,
- 0, 0, 0, 0, 0, 102, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 102, 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, 101, 0, 102, 0, 612,
- 0, 0, 317, 101, 0, 0, 102, 0, 0, 84,
- 84, 0, 0, 982, 0, 0, 0, 84, 0, 0,
- 0, 0, 101, 101, 0, 0, 0, 0, 0, 0,
- 0, 102, 0, 0, 0, 0, 101, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 101, 101,
- 0, 0, 0, 0, 0, 0, 101, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 101, 101,
- 0, 0, 0, 0, 0, 0, 0, 84, 0, 84,
- 0, 0, 84, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 127, 0, 0, 0, 0, 127,
- 0, 0, 0, 0, 0, -588, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, -588, -588,
- -588, 0, -588, -588, 0, -588, 0, 0, 0, 0,
- 0, -588, 101, 101, 0, 0, 984, 0, 0, 0,
- 101, 0, -588, -588, 0, -588, -588, -588, -588, -588,
- 0, 0, 102, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, -588, -588, -588,
- -588, -588, -588, -588, -588, -588, -588, -588, -588, 0,
- 0, 0, 0, -588, -588, -588, 0, 796, -588, 0,
- 101, 0, 101, 0, 0, 101, -588, 0, 0, 0,
- -588, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- -588, 0, 0, -588, -588, 0, -107, -588, 0, -588,
- -588, -588, -588, -588, -588, -588, -588, -588, -588, 0,
- 0, 0, 0, -588, -588, -588, 0, -99, 0, 0,
- -588, -588, -588, -588, 0, 0, 0, 0, 0, 102,
- 0, 0, 0, 0, 0, 0, 0, 102, 102, 0,
- 0, 0, 645, 646, 102, 0, 647, 0, 0, 0,
- 102, 102, 0, 0, 0, 0, 102, 102, 0, 0,
- 0, 174, 175, 176, 177, 178, 179, 180, 181, 0,
- 102, 182, 183, 0, 0, 0, 0, 184, 185, 186,
- 187, 0, 102, 102, 0, 0, 0, 0, 0, 0,
- 102, 188, 189, 190, 0, 0, 0, 0, 0, 0,
- 0, 0, 102, 102, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 191, 192, 193, 194, 195,
- 196, 197, 198, 199, 200, 0, 201, 202, 402, 403,
- 404, 405, 406, 407, 203, 275, 410, 411, 0, 0,
- 0, 0, 0, 0, 414, 415, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 102, 417, 0, 0,
- 0, 0, 0, 0, 0, 0, 102, 102, 0, 0,
- 0, 0, 0, 0, 102, 0, 0, 0, 0, 0,
- 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
- 0, 0, 0, 0, 0, 0, -611, 4, 0, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 14, 0,
- 0, 0, 0, 0, 0, 15, 0, 16, 17, 18,
- 19, 0, 0, 0, 0, 0, 20, 21, 22, 23,
- 24, 25, 26, 0, 102, 27, 102, 0, 0, 102,
- 0, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 0, 40, 41, 42, 0, 0, 43,
- 0, 0, 44, 45, 0, 46, 47, 48, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 49, 50, 0, 0, 0, 0, 0, 51, 0, 0,
- 52, 53, 0, 54, 55, 0, 56, 0, 0, 0,
- 57, 0, 58, 59, 60, 0, 61, 62, 63, -292,
- 64, -611, 0, 0, -611, -611, 0, 0, 0, 0,
- 0, 0, -292, -292, -292, -292, -292, -292, 0, -292,
- 65, 66, 67, 0, 0, 0, -292, -292, -292, 0,
- 0, 0, -611, 0, -611, 0, -292, -292, 0, -292,
- -292, -292, -292, -292, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, -292, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, -292, -292, -292, -292, -292, -292, -292, -292, -292,
- -292, -292, -292, 0, 0, 0, 0, -292, -292, -292,
- 0, 0, -292, 0, 0, 0, 0, 0, -292, 0,
- -292, 0, 0, 0, -292, 0, 0, 0, 0, 0,
- 0, 0, -292, 0, -292, 0, 0, -292, -292, 0,
- 0, -292, -292, -292, -292, -292, -292, -292, -292, -292,
- -292, -292, -292, 0, 0, -413, 0, 0, -292, -292,
- -292, -292, 0, 0, -292, -292, -292, -292, -413, -413,
- -413, -413, -413, -413, 0, -413, 0, 0, 0, 0,
- 0, -413, -413, -413, 0, 0, 0, 0, 0, 0,
- 0, 0, -413, -413, 0, -413, -413, -413, -413, -413,
- 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, -413, -413, -413,
- -413, -413, -413, -413, -413, -413, -413, -413, -413, 0,
- 0, 0, 0, -413, -413, -413, 0, 0, -413, 0,
- 0, 0, 0, 0, -413, 0, -413, 0, 0, 0,
- -413, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- -413, 0, 0, -413, -413, 0, 0, -413, 0, -413,
- -413, -413, -413, -413, -413, -413, -413, -413, -413, 0,
- 0, -479, 0, -413, -413, -413, -413, -413, 0, 275,
- -413, -413, -413, -413, -479, -479, -479, -479, -479, -479,
- 0, -479, 0, 0, 0, 0, 0, 0, -479, -479,
- 0, 0, 0, 0, 0, 0, 0, 0, -479, -479,
- 0, -479, -479, -479, -479, -479, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 494, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, -479, -479, -479, -479, -479, -479, -479,
- -479, -479, -479, -479, -479, 0, 0, 0, 0, -479,
- -479, -479, 0, -479, -479, 0, 0, 0, 0, 0,
- -479, 0, -479, 0, 0, 0, -479, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, -479, 0, 0, -479,
- -479, 0, -479, -479, 0, -479, -479, -479, -479, -479,
- -479, -479, -479, -479, -479, 0, 0, -611, 0, 0,
- -479, -479, -479, -479, 0, 0, -479, -479, -479, -479,
- -611, -611, -611, -611, -611, -611, 0, -611, 0, 0,
- 0, 0, 0, -611, -611, -611, 0, 0, 0, 0,
- 0, 0, 0, 0, -611, -611, 0, -611, -611, -611,
- -611, -611, 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, -611,
- -611, -611, -611, -611, -611, -611, -611, -611, -611, -611,
- -611, 0, 0, 0, 0, -611, -611, -611, 0, 0,
- -611, 0, 0, 0, 0, 0, -611, 0, -611, 0,
- 0, 0, -611, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, -611, 0, 0, -611, -611, 0, 0, -611,
- 0, -611, -611, -611, -611, -611, -611, -611, -611, -611,
- -611, 0, 0, -611, 0, -611, -611, -611, -611, -611,
- 0, 275, -611, -611, -611, -611, -611, -611, -611, -611,
- -611, -611, 0, -611, 0, 0, 0, 0, 0, 0,
- -611, -611, 0, 0, 0, 0, 0, 0, 0, 0,
- -611, -611, 0, -611, -611, -611, -611, -611, 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, -611, -611, -611, -611, -611,
- -611, -611, -611, -611, -611, -611, -611, 0, 0, 0,
- 0, -611, -611, -611, 0, 0, -611, 0, 0, 0,
- 0, 0, -611, 0, -611, 0, 0, 0, -611, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, -611, 0,
- 0, -611, -611, 0, 0, -611, 0, -611, -611, -611,
- -611, -611, -611, -611, -611, -611, -611, 0, 0, -588,
- 0, 0, -611, -611, -611, -611, 0, 275, -611, -611,
- -611, -611, -588, -588, -588, 0, -588, -588, 0, -588,
- 0, 0, 0, 0, 0, -588, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, -588, -588, 0, -588,
- -588, -588, -588, -588, 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, -588, -588, -588, -588, -588, -588, -588, -588, -588,
- -588, -588, -588, 0, 0, 0, 0, -588, -588, -588,
- 0, 796, -588, 0, 0, 0, 0, 0, 0, 0,
- -588, 0, 0, 0, -588, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, -588, 0, 0, -588, -588, 0,
- -107, -588, 0, -588, -588, -588, -588, -588, -588, -588,
- -588, -588, -588, 0, 0, -301, 0, -588, -588, -588,
- 0, -588, 0, 0, -588, -588, -588, -588, -301, -301,
- -301, 0, -301, -301, 0, -301, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, -301, -301, 0, -301, -301, -301, -301, -301,
- 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, -301, -301, -301,
- -301, -301, -301, -301, -301, -301, -301, -301, -301, 0,
- 0, 0, 0, -301, -301, -301, 0, 797, -301, 0,
- 0, 0, 0, 0, 0, 0, -301, 0, 0, 0,
- -301, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- -301, 0, 0, -301, -301, 0, -109, -301, 0, -301,
- -301, -301, -301, -301, -301, -301, -301, -301, -301, 0,
- 0, -301, 0, 0, -301, -301, 0, -101, 0, 0,
- -301, -301, -301, -301, -301, -301, -301, 0, -301, -301,
- 0, -301, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, -301, -301,
- 0, -301, -301, -301, -301, -301, 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, -301, -301, -301, -301, -301, -301, -301,
- -301, -301, -301, -301, -301, 0, 0, 0, 0, -301,
- -301, -301, 0, 797, -301, 0, 0, 0, 0, 0,
- 0, 0, -301, 0, 0, 0, -301, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, -301, 0, 0, -301,
- -301, 0, -109, -301, 0, -301, -301, -301, -301, -301,
- -301, -301, -301, -301, -301, 0, 0, 0, 0, 0,
- -301, -301, 0, -301, 0, 0, -301, -301, -301, -301,
- 295, 0, 5, 6, 7, 8, 9, 10, 11, 12,
- 13, 14, -611, -611, -611, 0, 0, -611, 15, 0,
- 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
- 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
- 0, 0, 0, 0, 28, 0, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 0, 40, 41, 42,
- 0, 0, 43, 0, 0, 44, 45, 0, 46, 47,
- 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 49, 50, 0, 0, 0, 0, 0,
- 51, 0, 0, 52, 53, 0, 54, 55, 0, 56,
- 0, 0, 0, 57, 0, 58, 59, 60, 0, 61,
- 62, 63, 0, 64, -611, 0, 0, -611, -611, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 65, 66, 67, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, -611, 295, -611, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 14, 0, 0,
- -611, 0, -611, -611, 15, 0, 16, 17, 18, 19,
- 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
- 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
- 28, 0, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 0, 40, 41, 42, 0, 0, 43, 0,
- 0, 44, 45, 0, 46, 47, 48, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
- 50, 0, 0, 0, 0, 0, 51, 0, 0, 52,
- 53, 0, 54, 55, 0, 56, 0, 0, 0, 57,
- 0, 58, 59, 60, 0, 61, 62, 63, 0, 64,
- -611, 0, 0, -611, -611, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,
- 66, 67, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, -611, 295, -611, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 14, 0, 0, -611, 0, 0, -611,
- 15, -611, 16, 17, 18, 19, 0, 0, 0, 0,
- 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
- 27, 0, 0, 0, 0, 0, 28, 0, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 0, 40,
- 41, 42, 0, 0, 43, 0, 0, 44, 45, 0,
- 46, 47, 48, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 49, 50, 0, 0, 0,
- 0, 0, 51, 0, 0, 52, 53, 0, 54, 55,
- 0, 56, 0, 0, 0, 57, 0, 58, 59, 60,
- 0, 61, 62, 63, 0, 64, -611, 0, 0, -611,
- -611, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 65, 66, 67, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, -611, 295, -611,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 0, 0, -611, 0, 0, -611, 15, 0, 16, 17,
- 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
- 23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
- 0, 0, 28, 0, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 0, 40, 41, 42, 0, 0,
- 43, 0, 0, 44, 45, 0, 46, 47, 48, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 49, 50, 0, 0, 0, 0, 0, 51, 0,
- 0, 52, 53, 0, 54, 55, 0, 56, 0, 0,
- 0, 57, 0, 58, 59, 60, 0, 61, 62, 63,
- 0, 64, -611, 0, 0, -611, -611, 4, 0, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 14, 0,
- 0, 65, 66, 67, 0, 15, 0, 16, 17, 18,
- 19, 0, 0, -611, 0, -611, 20, 21, 22, 23,
- 24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
- 0, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 0, 40, 41, 42, 0, 0, 43,
- 0, 0, 44, 45, 0, 46, 47, 48, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 49, 50, 0, 0, 0, 0, 0, 51, 0, 0,
- 52, 53, 0, 54, 55, 0, 56, 0, 0, 0,
- 57, 0, 58, 59, 60, 0, 61, 62, 63, 0,
- 64, -611, 0, 0, -611, -611, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 65, 66, 67, 0, 0, -611, 0, 0, 0, 0,
- 0, 0, -611, 295, -611, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 0, -611, -611, 0, 0,
- 0, 15, 0, 16, 17, 18, 19, 0, 0, 0,
- 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
- 0, 27, 0, 0, 0, 0, 0, 28, 0, 30,
- 31, 32, 33, 34, 35, 36, 37, 38, 39, 0,
- 40, 41, 42, 0, 0, 43, 0, 0, 44, 45,
- 0, 46, 47, 48, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 49, 50, 0, 0,
- 0, 0, 0, 51, 0, 0, 52, 53, 0, 54,
- 55, 0, 56, 0, 0, 0, 57, 0, 58, 59,
- 60, 0, 61, 62, 63, 0, 64, -611, 0, 0,
- -611, -611, 295, 0, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 14, 0, 0, 65, 66, 67, 0,
- 15, 0, 16, 17, 18, 19, 0, 0, -611, 0,
- -611, 20, 21, 22, 23, 24, 25, 26, 0, 0,
- 27, 0, 0, 0, 0, 0, 28, 0, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 0, 40,
- 41, 42, 0, 0, 43, 0, 0, 44, 45, 0,
- 46, 47, 48, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 49, 50, 0, 0, 0,
- 0, 0, 51, 0, 0, 296, 53, 0, 54, 55,
- 0, 56, 0, 0, 0, 57, 0, 58, 59, 60,
- 0, 61, 62, 63, 0, 64, -611, 0, 0, -611,
- -611, 295, 0, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 0, 0, 65, 66, 67, 0, 15,
- 0, 16, 17, 18, 19, 0, -611, -611, 0, -611,
- 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
- 0, 0, 0, 0, 0, 28, 0, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 0, 40, 41,
- 42, 0, 0, 43, 0, 0, 44, 45, 0, 46,
- 47, 48, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 49, 50, 0, 0, 0, 0,
- 0, 51, 0, 0, 52, 53, 0, 54, 55, 0,
- 56, 0, 0, 0, 57, 0, 58, 59, 60, 0,
- 61, 62, 63, 0, 64, -611, 0, 0, -611, -611,
- 295, 0, 5, 6, 7, 8, 9, 10, 11, 12,
- 13, 14, 0, 0, 65, 66, 67, 0, 15, 0,
- 16, 17, 18, 19, 0, -611, -611, 0, -611, 20,
- 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
- 0, 0, 0, 0, 28, 0, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 0, 40, 41, 42,
- 0, 0, 43, 0, 0, 44, 45, 0, 46, 47,
- 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 49, 50, 0, 0, 0, 0, 0,
- 51, 0, 0, 52, 53, 0, 54, 55, 0, 56,
- 0, 0, 0, 57, 0, 58, 59, 60, 0, 61,
- 62, 63, 0, 64, -611, 0, 0, -611, -611, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 65, 66, 67, 0, 0, -611, 0,
- 0, 0, 0, 0, 0, -611, 295, -611, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 14, 0, 0,
- -611, 0, 0, 0, 15, 0, 16, 17, 18, 19,
- 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
- 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
- 28, 0, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 0, 40, 41, 42, 0, 0, 43, 0,
- 0, 44, 45, 0, 46, 47, 48, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
- 50, 0, 0, 0, 0, 0, 51, 0, 0, 52,
- 53, 0, 54, 55, 0, 56, 0, 0, 0, 57,
- 0, 58, 59, 60, 0, 61, 62, 63, 0, 64,
- -611, 0, 0, -611, -611, 0, 0, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 0, 0, 65,
- 66, 67, 0, 15, 0, 16, 17, 18, 19, 0,
- 0, -611, 0, -611, 20, 21, 22, 23, 24, 25,
- 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
- 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 0, 40, 41, 42, 0, 0, 43, 0, 0,
- 44, 45, 0, 46, 47, 48, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 49, 50,
- 0, 0, 0, 0, 0, 51, 0, 0, 52, 53,
- 0, 54, 55, 0, 56, 0, 0, 0, 57, 0,
- 58, 59, 60, 0, 61, 62, 63, 0, 64, 247,
- 0, 0, 248, 249, 0, 0, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 14, 0, 0, 65, 66,
- 67, 0, 15, 0, 16, 17, 18, 19, 0, 0,
- 250, 0, 251, 20, 21, 22, 23, 24, 25, 26,
- 0, 0, 27, 0, 0, 0, 0, 0, 28, 0,
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 0, 40, 41, 42, 0, 0, 43, 0, 0, 44,
- 45, 0, 46, 47, 48, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 49, 50, 0,
- 0, 0, 0, 0, 51, 0, 0, 52, 53, 0,
- 54, 55, 0, 56, 0, 0, 0, 57, 0, 58,
- 59, 60, 0, 61, 62, 63, 0, 64, 247, 0,
- 0, 248, 249, 0, 0, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 0, 0, 0, 65, 66, 67,
- 0, 15, 0, 16, 17, 18, 19, 0, 0, 250,
- 0, 251, 20, 21, 22, 23, 24, 25, 26, 0,
- 0, 27, 0, 0, 0, 0, 0, 0, 0, 0,
- 31, 32, 33, 34, 35, 36, 37, 38, 39, 0,
- 40, 41, 42, 0, 0, 43, 0, 0, 44, 45,
- 0, 46, 47, 48, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 49, 50, 0, 0,
- 0, 0, 0, 211, 0, 0, 119, 53, 0, 54,
- 55, 0, 0, 0, 0, 0, 57, 0, 58, 59,
- 60, 0, 61, 62, 63, 0, 64, 247, 0, 0,
- 248, 249, 0, 0, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 0, 0, 0, 65, 66, 67, 0,
- 15, 0, 108, 109, 18, 19, 0, 0, 250, 0,
- 251, 110, 111, 112, 23, 24, 25, 26, 0, 0,
- 113, 0, 0, 0, 0, 0, 0, 0, 0, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 0, 40,
- 41, 42, 0, 0, 43, 0, 0, 44, 45, 0,
- 46, 47, 48, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 49, 50, 0, 0, 0,
- 0, 0, 211, 0, 0, 119, 53, 0, 54, 55,
- 0, 0, 0, 0, 0, 57, 0, 58, 59, 60,
- 0, 61, 62, 63, 0, 64, 247, 0, 0, 248,
- 249, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 65, 264, 67, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 250, 0, 251,
- 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
- 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
- 151, 152, 153, 154, 0, 0, 0, 155, 156, 157,
- 158, 159, 160, 161, 162, 163, 164, 0, 0, 0,
- 0, 0, 165, 166, 167, 168, 169, 170, 171, 172,
- 36, 37, 173, 39, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 174, 175, 176,
- 177, 178, 179, 180, 181, 0, 0, 182, 183, 0,
- 0, 0, 0, 184, 185, 186, 187, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 188, 189, 190,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 191, 192, 193, 194, 195, 196, 197, 198, 199,
- 200, 0, 201, 202, 0, 0, 0, 0, 0, 0,
- 203, 204, -581, -581, -581, -581, -581, -581, -581, -581,
- -581, 0, 0, 0, 0, 0, 0, 0, -581, 0,
- -581, -581, -581, -581, 0, -581, 0, 0, 0, -581,
- -581, -581, -581, -581, -581, -581, 0, 0, -581, 0,
- 0, 0, 0, 0, 0, 0, 0, -581, -581, -581,
- -581, -581, -581, -581, -581, -581, 0, -581, -581, -581,
- 0, 0, -581, 0, 0, -581, -581, 0, -581, -581,
- -581, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, -581, -581, 0, 0, 0, 0, 0,
- -581, 0, 0, -581, -581, 0, -581, -581, 0, -581,
- 0, -581, -581, -581, 0, -581, -581, -581, 0, -581,
- -581, -581, 0, -581, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, -581, -581, -581, 0, -581, 0, 0,
- 0, 0, 0, -581, -582, -582, -582, -582, -582, -582,
- -582, -582, -582, 0, 0, 0, 0, 0, 0, 0,
- -582, 0, -582, -582, -582, -582, 0, -582, 0, 0,
- 0, -582, -582, -582, -582, -582, -582, -582, 0, 0,
- -582, 0, 0, 0, 0, 0, 0, 0, 0, -582,
- -582, -582, -582, -582, -582, -582, -582, -582, 0, -582,
- -582, -582, 0, 0, -582, 0, 0, -582, -582, 0,
- -582, -582, -582, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, -582, -582, 0, 0, 0,
- 0, 0, -582, 0, 0, -582, -582, 0, -582, -582,
- 0, -582, 0, -582, -582, -582, 0, -582, -582, -582,
- 0, -582, -582, -582, 0, -582, 0, 0, 0, 0,
- 0, 0, -584, -584, -584, -584, -584, -584, -584, -584,
- -584, 0, 0, 0, 0, -582, -582, -582, -584, -582,
- -584, -584, -584, -584, 0, -582, 0, 0, 0, -584,
- -584, -584, -584, -584, -584, -584, 0, 0, -584, 0,
- 0, 0, 0, 0, 0, 0, 0, -584, -584, -584,
- -584, -584, -584, -584, -584, -584, 0, -584, -584, -584,
- 0, 0, -584, 0, 0, -584, -584, 0, -584, -584,
- -584, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, -584, -584, 0, 0, 0, 0, 0,
- -584, 828, 0, -584, -584, 0, -584, -584, 0, -584,
- 0, -584, -584, -584, 0, -584, -584, -584, 0, -584,
- -584, -584, 0, -584, 0, 0, 0, 0, 0, 0,
- -107, -585, -585, -585, -585, -585, -585, -585, -585, -585,
- 0, 0, 0, -584, -584, -584, 0, -585, 0, -585,
- -585, -585, -585, -584, 0, 0, 0, 0, -585, -585,
- -585, -585, -585, -585, -585, 0, 0, -585, 0, 0,
- 0, 0, 0, 0, 0, 0, -585, -585, -585, -585,
- -585, -585, -585, -585, -585, 0, -585, -585, -585, 0,
- 0, -585, 0, 0, -585, -585, 0, -585, -585, -585,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, -585, -585, 0, 0, 0, 0, 0, -585,
- 829, 0, -585, -585, 0, -585, -585, 0, -585, 0,
- -585, -585, -585, 0, -585, -585, -585, 0, -585, -585,
- -585, 0, -585, 0, 0, 0, 0, 0, 0, -109,
- -586, -586, -586, -586, -586, -586, -586, -586, -586, 0,
- 0, 0, -585, -585, -585, 0, -586, 0, -586, -586,
- -586, -586, -585, 0, 0, 0, 0, -586, -586, -586,
- -586, -586, -586, -586, 0, 0, -586, 0, 0, 0,
- 0, 0, 0, 0, 0, -586, -586, -586, -586, -586,
- -586, -586, -586, -586, 0, -586, -586, -586, 0, 0,
- -586, 0, 0, -586, -586, 0, -586, -586, -586, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, -586, -586, 0, 0, 0, 0, 0, -586, 0,
- 0, -586, -586, 0, -586, -586, 0, -586, 0, -586,
- -586, -586, 0, -586, -586, -586, 0, -586, -586, -586,
- 0, -586, 0, 0, 0, 0, 0, 0, -587, -587,
- -587, -587, -587, -587, -587, -587, -587, 0, 0, 0,
- 0, -586, -586, -586, -587, 0, -587, -587, -587, -587,
- 0, -586, 0, 0, 0, -587, -587, -587, -587, -587,
- -587, -587, 0, 0, -587, 0, 0, 0, 0, 0,
- 0, 0, 0, -587, -587, -587, -587, -587, -587, -587,
- -587, -587, 0, -587, -587, -587, 0, 0, -587, 0,
- 0, -587, -587, 0, -587, -587, -587, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, -587,
- -587, 0, 0, 0, 0, 0, -587, 0, 0, -587,
- -587, 0, -587, -587, 0, -587, 0, -587, -587, -587,
- 0, -587, -587, -587, 0, -587, -587, -587, 0, -587,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, -587,
- -587, -587, 0, 0, 0, 0, 0, 0, 0, -587,
- 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
- 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
- 151, 152, 153, 154, 0, 0, 0, 155, 156, 157,
- 233, 234, 235, 236, 162, 163, 164, 0, 0, 0,
- 0, 0, 165, 166, 167, 237, 238, 239, 240, 172,
- 320, 321, 241, 322, 0, 0, 0, 0, 0, 0,
- 323, 0, 0, 0, 0, 0, 0, 174, 175, 176,
- 177, 178, 179, 180, 181, 0, 0, 182, 183, 0,
- 0, 0, 0, 184, 185, 186, 187, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 188, 189, 190,
- 0, 0, 0, 0, 324, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 191, 192, 193, 194, 195, 196, 197, 198, 199,
- 200, 0, 201, 202, 0, 0, 0, 0, 0, 0,
- 203, 131, 132, 133, 134, 135, 136, 137, 138, 139,
- 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
- 150, 151, 152, 153, 154, 0, 0, 0, 155, 156,
- 157, 233, 234, 235, 236, 162, 163, 164, 0, 0,
- 0, 0, 0, 165, 166, 167, 237, 238, 239, 240,
- 172, 320, 321, 241, 322, 0, 0, 0, 0, 0,
- 0, 323, 0, 0, 0, 0, 0, 0, 174, 175,
- 176, 177, 178, 179, 180, 181, 0, 0, 182, 183,
- 0, 0, 0, 0, 184, 185, 186, 187, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 188, 189,
- 190, 0, 0, 0, 0, 485, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 191, 192, 193, 194, 195, 196, 197, 198,
- 199, 200, 0, 201, 202, 0, 0, 0, 0, 0,
- 0, 203, 131, 132, 133, 134, 135, 136, 137, 138,
- 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
- 149, 150, 151, 152, 153, 154, 0, 0, 0, 155,
- 156, 157, 233, 234, 235, 236, 162, 163, 164, 0,
- 0, 0, 0, 0, 165, 166, 167, 237, 238, 239,
- 240, 172, 0, 0, 241, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 174,
- 175, 176, 177, 178, 179, 180, 181, 0, 0, 182,
- 183, 0, 0, 0, 0, 184, 185, 186, 187, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 188,
- 189, 190, 0, 0, 0, 242, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 191, 192, 193, 194, 195, 196, 197,
- 198, 199, 200, 0, 201, 202, 0, 0, 0, 0,
- 0, 0, 203, 131, 132, 133, 134, 135, 136, 137,
- 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
- 148, 149, 150, 151, 152, 153, 154, 0, 0, 0,
- 155, 156, 157, 233, 234, 235, 236, 162, 163, 164,
- 0, 0, 0, 0, 0, 165, 166, 167, 237, 238,
- 239, 240, 172, 0, 0, 241, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 174, 175, 176, 177, 178, 179, 180, 181, 0, 0,
- 182, 183, 0, 0, 0, 0, 184, 185, 186, 187,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 188, 189, 190, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 191, 192, 193, 194, 195, 196,
- 197, 198, 199, 200, 0, 201, 202, 0, 0, 0,
- 0, 0, 0, 203, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 0, 0, 0, 0, 0, 0, 0,
- 15, 0, 108, 109, 18, 19, 0, 0, 0, 0,
- 0, 110, 111, 112, 23, 24, 25, 26, 0, 0,
- 113, 0, 0, 0, 0, 0, 0, 0, 0, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 0, 40,
- 41, 42, 0, 0, 43, 0, 0, 44, 45, 0,
- 116, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 313, 0, 0, 119, 53, 0, 54, 55,
- 0, 0, 0, 0, 0, 57, 0, 58, 59, 60,
- 0, 61, 62, 63, 0, 64, 0, 0, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 0, 0, 0,
- 0, 0, 0, 0, 15, 120, 108, 109, 18, 19,
- 0, 0, 0, 314, 0, 110, 111, 112, 23, 24,
- 25, 26, 0, 0, 113, 0, 0, 0, 0, 0,
- 0, 0, 0, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 0, 40, 41, 42, 0, 0, 43, 0,
- 0, 44, 45, 0, 116, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 313, 0, 0, 119,
- 53, 0, 54, 55, 0, 0, 0, 0, 0, 57,
- 0, 58, 59, 60, 0, 61, 62, 63, 0, 64,
- 0, 0, 5, 6, 7, 8, 9, 10, 11, 12,
- 13, 14, 0, 0, 0, 0, 0, 0, 15, 120,
- 16, 17, 18, 19, 0, 0, 0, 606, 0, 20,
- 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
- 0, 0, 0, 0, 28, 29, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 0, 40, 41, 42,
- 0, 0, 43, 0, 0, 44, 45, 0, 46, 47,
- 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 49, 50, 0, 0, 0, 0, 0,
- 51, 0, 0, 52, 53, 0, 54, 55, 0, 56,
- 0, 0, 0, 57, 0, 58, 59, 60, 0, 61,
- 62, 63, 0, 64, 0, 0, 0, 0, 0, 0,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 0, 0, 0, 65, 66, 67, 15, 0, 16, 17,
- 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
- 23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
- 0, 0, 28, 0, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 0, 40, 41, 42, 0, 0,
- 43, 0, 0, 44, 45, 0, 46, 47, 48, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 49, 50, 0, 0, 0, 0, 0, 51, 0,
- 0, 52, 53, 0, 54, 55, 0, 56, 0, 0,
- 0, 57, 0, 58, 59, 60, 0, 61, 62, 63,
- 0, 64, 0, 0, 0, 0, 0, 0, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 0, 0, 0,
- 0, 65, 66, 67, 15, 0, 16, 17, 18, 19,
- 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
- 25, 26, 0, 0, 113, 0, 0, 0, 0, 0,
- 0, 0, 0, 31, 32, 33, 260, 35, 36, 37,
- 38, 39, 0, 40, 41, 42, 0, 0, 43, 0,
- 0, 44, 45, 0, 46, 47, 48, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
- 50, 0, 0, 0, 0, 0, 211, 0, 0, 119,
- 53, 0, 54, 55, 0, 261, 0, 262, 263, 57,
- 0, 58, 59, 60, 0, 61, 62, 63, 0, 64,
- 0, 0, 0, 0, 0, 0, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 0, 0, 0, 0, 65,
- 264, 67, 15, 0, 16, 17, 18, 19, 0, 0,
- 0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
- 0, 0, 113, 0, 0, 0, 0, 0, 0, 0,
- 0, 31, 32, 33, 260, 35, 36, 37, 38, 39,
- 0, 40, 41, 42, 0, 0, 43, 0, 0, 44,
- 45, 0, 46, 47, 48, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 49, 507, 0,
- 0, 0, 0, 0, 211, 0, 0, 119, 53, 0,
- 54, 55, 0, 261, 0, 262, 263, 57, 0, 58,
- 59, 60, 0, 61, 62, 63, 0, 64, 0, 0,
- 0, 0, 0, 0, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 0, 0, 0, 0, 65, 264, 67,
- 15, 0, 108, 109, 18, 19, 0, 0, 0, 0,
- 0, 110, 111, 112, 23, 24, 25, 26, 0, 0,
- 113, 0, 0, 0, 0, 0, 0, 0, 0, 31,
- 32, 33, 260, 35, 36, 37, 38, 39, 0, 40,
- 41, 42, 0, 0, 43, 0, 0, 44, 45, 0,
- 46, 47, 48, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 49, 50, 0, 0, 0,
- 0, 0, 211, 0, 0, 119, 53, 0, 54, 55,
- 0, 718, 0, 262, 263, 57, 0, 58, 59, 60,
- 0, 61, 62, 63, 0, 64, 0, 0, 0, 0,
- 0, 0, 5, 6, 7, 8, 9, 10, 11, 12,
- 13, 0, 0, 0, 0, 65, 264, 67, 15, 0,
- 108, 109, 18, 19, 0, 0, 0, 0, 0, 110,
- 111, 112, 23, 24, 25, 26, 0, 0, 113, 0,
- 0, 0, 0, 0, 0, 0, 0, 31, 32, 33,
- 260, 35, 36, 37, 38, 39, 0, 40, 41, 42,
- 0, 0, 43, 0, 0, 44, 45, 0, 46, 47,
- 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 49, 846, 0, 0, 0, 0, 0,
- 211, 0, 0, 119, 53, 0, 54, 55, 0, 718,
- 0, 262, 263, 57, 0, 58, 59, 60, 0, 61,
- 62, 63, 0, 64, 0, 0, 0, 0, 0, 0,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 0,
- 0, 0, 0, 65, 264, 67, 15, 0, 108, 109,
- 18, 19, 0, 0, 0, 0, 0, 110, 111, 112,
- 23, 24, 25, 26, 0, 0, 113, 0, 0, 0,
- 0, 0, 0, 0, 0, 31, 32, 33, 260, 35,
- 36, 37, 38, 39, 0, 40, 41, 42, 0, 0,
- 43, 0, 0, 44, 45, 0, 46, 47, 48, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 49, 50, 0, 0, 0, 0, 0, 211, 0,
- 0, 119, 53, 0, 54, 55, 0, 261, 0, 262,
- 0, 57, 0, 58, 59, 60, 0, 61, 62, 63,
- 0, 64, 0, 0, 0, 0, 0, 0, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 0, 0, 0,
- 0, 65, 264, 67, 15, 0, 108, 109, 18, 19,
- 0, 0, 0, 0, 0, 110, 111, 112, 23, 24,
- 25, 26, 0, 0, 113, 0, 0, 0, 0, 0,
- 0, 0, 0, 31, 32, 33, 260, 35, 36, 37,
- 38, 39, 0, 40, 41, 42, 0, 0, 43, 0,
- 0, 44, 45, 0, 46, 47, 48, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
- 50, 0, 0, 0, 0, 0, 211, 0, 0, 119,
- 53, 0, 54, 55, 0, 0, 0, 262, 263, 57,
- 0, 58, 59, 60, 0, 61, 62, 63, 0, 64,
- 0, 0, 0, 0, 0, 0, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 0, 0, 0, 0, 65,
- 264, 67, 15, 0, 108, 109, 18, 19, 0, 0,
- 0, 0, 0, 110, 111, 112, 23, 24, 25, 26,
- 0, 0, 113, 0, 0, 0, 0, 0, 0, 0,
- 0, 31, 32, 33, 260, 35, 36, 37, 38, 39,
- 0, 40, 41, 42, 0, 0, 43, 0, 0, 44,
- 45, 0, 46, 47, 48, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 49, 50, 0,
- 0, 0, 0, 0, 211, 0, 0, 119, 53, 0,
- 54, 55, 0, 718, 0, 262, 0, 57, 0, 58,
- 59, 60, 0, 61, 62, 63, 0, 64, 0, 0,
- 0, 0, 0, 0, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 0, 0, 0, 0, 65, 264, 67,
- 15, 0, 108, 109, 18, 19, 0, 0, 0, 0,
- 0, 110, 111, 112, 23, 24, 25, 26, 0, 0,
- 113, 0, 0, 0, 0, 0, 0, 0, 0, 31,
- 32, 33, 260, 35, 36, 37, 38, 39, 0, 40,
- 41, 42, 0, 0, 43, 0, 0, 44, 45, 0,
- 46, 47, 48, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 49, 50, 0, 0, 0,
- 0, 0, 211, 0, 0, 119, 53, 0, 54, 55,
- 0, 0, 0, 262, 0, 57, 0, 58, 59, 60,
- 0, 61, 62, 63, 0, 64, 0, 0, 0, 0,
- 0, 0, 5, 6, 7, 8, 9, 10, 11, 12,
- 13, 0, 0, 0, 0, 65, 264, 67, 15, 0,
- 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
- 21, 22, 23, 24, 25, 26, 0, 0, 113, 0,
- 0, 0, 0, 0, 0, 0, 0, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 0, 40, 41, 42,
- 0, 0, 43, 0, 0, 44, 45, 0, 46, 47,
- 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 49, 50, 0, 0, 0, 0, 0,
- 211, 0, 0, 119, 53, 0, 54, 55, 0, 600,
- 0, 0, 0, 57, 0, 58, 59, 60, 0, 61,
- 62, 63, 0, 64, 0, 0, 0, 0, 0, 0,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 0,
- 0, 0, 0, 65, 264, 67, 15, 0, 108, 109,
- 18, 19, 0, 0, 0, 0, 0, 110, 111, 112,
- 23, 24, 25, 26, 0, 0, 113, 0, 0, 0,
- 0, 0, 0, 0, 0, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 0, 40, 41, 42, 0, 0,
- 43, 0, 0, 44, 45, 0, 46, 47, 48, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 49, 50, 0, 0, 0, 0, 0, 211, 0,
- 0, 119, 53, 0, 54, 55, 0, 261, 0, 0,
- 0, 57, 0, 58, 59, 60, 0, 61, 62, 63,
- 0, 64, 0, 0, 0, 0, 0, 0, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 0, 0, 0,
- 0, 65, 264, 67, 15, 0, 108, 109, 18, 19,
- 0, 0, 0, 0, 0, 110, 111, 112, 23, 24,
- 25, 26, 0, 0, 113, 0, 0, 0, 0, 0,
- 0, 0, 0, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 0, 40, 41, 42, 0, 0, 43, 0,
- 0, 44, 45, 0, 46, 47, 48, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
- 50, 0, 0, 0, 0, 0, 211, 0, 0, 119,
- 53, 0, 54, 55, 0, 600, 0, 0, 0, 57,
- 0, 58, 59, 60, 0, 61, 62, 63, 0, 64,
- 0, 0, 0, 0, 0, 0, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 0, 0, 0, 0, 65,
- 264, 67, 15, 0, 108, 109, 18, 19, 0, 0,
- 0, 0, 0, 110, 111, 112, 23, 24, 25, 26,
- 0, 0, 113, 0, 0, 0, 0, 0, 0, 0,
- 0, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 0, 40, 41, 42, 0, 0, 43, 0, 0, 44,
- 45, 0, 46, 47, 48, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 49, 50, 0,
- 0, 0, 0, 0, 211, 0, 0, 119, 53, 0,
- 54, 55, 0, 891, 0, 0, 0, 57, 0, 58,
- 59, 60, 0, 61, 62, 63, 0, 64, 0, 0,
- 0, 0, 0, 0, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 0, 0, 0, 0, 65, 264, 67,
- 15, 0, 108, 109, 18, 19, 0, 0, 0, 0,
- 0, 110, 111, 112, 23, 24, 25, 26, 0, 0,
- 113, 0, 0, 0, 0, 0, 0, 0, 0, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 0, 40,
- 41, 42, 0, 0, 43, 0, 0, 44, 45, 0,
- 46, 47, 48, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 49, 50, 0, 0, 0,
- 0, 0, 211, 0, 0, 119, 53, 0, 54, 55,
- 0, 718, 0, 0, 0, 57, 0, 58, 59, 60,
- 0, 61, 62, 63, 0, 64, 0, 0, 0, 0,
- 0, 0, 5, 6, 7, 8, 9, 10, 11, 12,
- 13, 0, 0, 0, 0, 65, 264, 67, 15, 0,
- 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
- 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
- 0, 0, 0, 0, 0, 0, 0, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 0, 40, 41, 42,
- 0, 0, 43, 0, 0, 44, 45, 0, 46, 47,
- 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 49, 50, 0, 0, 0, 0, 0,
- 211, 0, 0, 119, 53, 0, 54, 55, 0, 0,
- 0, 0, 0, 57, 0, 58, 59, 60, 0, 61,
- 62, 63, 0, 64, 0, 0, 0, 0, 0, 0,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 0,
- 0, 0, 0, 65, 66, 67, 15, 0, 108, 109,
- 18, 19, 0, 0, 0, 0, 0, 110, 111, 112,
- 23, 24, 25, 26, 0, 0, 113, 0, 0, 0,
- 0, 0, 0, 0, 0, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 0, 40, 41, 42, 0, 0,
- 43, 0, 0, 44, 45, 0, 46, 47, 48, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 49, 50, 0, 0, 0, 0, 0, 211, 0,
- 0, 119, 53, 0, 54, 55, 0, 0, 0, 0,
- 0, 57, 0, 58, 59, 60, 0, 61, 62, 63,
- 0, 64, 0, 0, 0, 0, 0, 0, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 0, 0, 0,
- 0, 65, 264, 67, 15, 0, 16, 17, 18, 19,
- 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
- 25, 26, 0, 0, 113, 0, 0, 0, 0, 0,
- 0, 0, 0, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 0, 40, 41, 42, 0, 0, 43, 0,
- 0, 44, 45, 0, 46, 47, 48, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
- 50, 0, 0, 0, 0, 0, 211, 0, 0, 119,
- 53, 0, 54, 55, 0, 0, 0, 0, 0, 57,
- 0, 58, 59, 60, 0, 61, 62, 63, 0, 64,
- 0, 0, 0, 0, 0, 0, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 0, 0, 0, 0, 65,
- 264, 67, 15, 0, 108, 109, 18, 19, 0, 0,
- 0, 0, 0, 110, 111, 112, 23, 24, 25, 26,
- 0, 0, 113, 0, 0, 0, 0, 0, 0, 0,
- 0, 31, 32, 33, 114, 35, 36, 37, 115, 39,
- 0, 40, 41, 42, 0, 0, 43, 0, 0, 44,
- 45, 0, 116, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 117, 0, 0, 118, 0, 0, 119, 53, 0,
- 54, 55, 0, 0, 0, 0, 0, 57, 0, 58,
- 59, 60, 0, 61, 62, 63, 0, 64, 0, 0,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 0,
- 0, 0, 0, 0, 0, 0, 15, 120, 108, 109,
- 18, 19, 0, 0, 0, 0, 0, 110, 111, 112,
- 23, 24, 25, 26, 0, 0, 113, 0, 0, 0,
- 0, 0, 0, 0, 0, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 0, 40, 41, 42, 0, 0,
- 43, 0, 0, 44, 45, 0, 225, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 226, 0,
- 0, 52, 53, 0, 54, 55, 0, 56, 0, 0,
- 0, 57, 0, 58, 59, 60, 0, 61, 62, 63,
- 0, 64, 0, 0, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 0, 0, 0, 0, 0, 0, 0,
- 15, 120, 108, 109, 18, 19, 0, 0, 0, 0,
- 0, 110, 111, 112, 23, 24, 25, 26, 0, 0,
- 113, 0, 0, 0, 0, 0, 0, 0, 0, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 0, 40,
- 41, 42, 0, 0, 43, 0, 0, 44, 45, 0,
- 116, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 313, 0, 0, 398, 53, 0, 54, 55,
- 0, 399, 0, 0, 0, 57, 0, 58, 59, 60,
- 0, 61, 62, 63, 0, 64, 0, 0, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 0, 0, 0,
- 0, 0, 0, 0, 15, 120, 108, 109, 18, 19,
- 0, 0, 0, 0, 0, 110, 111, 112, 23, 24,
- 25, 26, 0, 0, 113, 0, 0, 0, 0, 0,
- 0, 0, 0, 31, 32, 33, 114, 35, 36, 37,
- 115, 39, 0, 40, 41, 42, 0, 0, 43, 0,
- 0, 44, 45, 0, 116, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 118, 0, 0, 119,
- 53, 0, 54, 55, 0, 0, 0, 0, 0, 57,
- 0, 58, 59, 60, 0, 61, 62, 63, 0, 64,
- 0, 0, 5, 6, 7, 8, 9, 10, 11, 12,
- 13, 0, 0, 0, 0, 0, 0, 0, 15, 120,
- 108, 109, 18, 19, 0, 0, 0, 0, 0, 110,
- 111, 112, 23, 24, 25, 26, 0, 0, 113, 0,
- 0, 0, 0, 0, 0, 0, 0, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 0, 40, 41, 42,
- 0, 0, 43, 0, 0, 44, 45, 0, 116, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 313, 0, 0, 398, 53, 0, 54, 55, 0, 0,
- 0, 0, 0, 57, 0, 58, 59, 60, 0, 61,
- 62, 63, 0, 64, 0, 0, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 0, 0, 0, 0, 0,
- 0, 0, 15, 120, 108, 109, 18, 19, 0, 0,
- 0, 0, 0, 110, 111, 112, 23, 24, 25, 26,
- 0, 0, 113, 0, 0, 0, 0, 0, 0, 0,
- 0, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 0, 40, 41, 42, 0, 0, 43, 0, 0, 44,
- 45, 0, 116, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 958, 0, 0, 119, 53, 0,
- 54, 55, 0, 0, 0, 0, 0, 57, 0, 58,
- 59, 60, 0, 61, 62, 63, 0, 64, 0, 0,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 0,
- 0, 0, 0, 0, 0, 0, 15, 120, 108, 109,
- 18, 19, 0, 0, 0, 0, 0, 110, 111, 112,
- 23, 24, 25, 26, 0, 0, 113, 0, 0, 0,
- 0, 0, 0, 0, 0, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 0, 40, 41, 42, 0, 0,
- 43, 0, 0, 44, 45, 0, 225, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 981, 0,
- 0, 119, 53, 0, 54, 55, 0, 0, 654, 655,
- 0, 57, 656, 58, 59, 60, 0, 61, 62, 63,
- 0, 64, 0, 0, 0, 0, 0, 174, 175, 176,
- 177, 178, 179, 180, 181, 0, 0, 182, 183, 0,
- 0, 120, 0, 184, 185, 186, 187, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 188, 189, 190,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 191, 192, 193, 194, 195, 196, 197, 198, 199,
- 200, 0, 201, 202, 675, 646, 0, 0, 676, 0,
- 203, 275, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 174, 175, 176, 177, 178, 179, 180,
- 181, 0, 0, 182, 183, 0, 0, 0, 0, 184,
- 185, 186, 187, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 188, 189, 190, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 191, 192, 193,
- 194, 195, 196, 197, 198, 199, 200, 0, 201, 202,
- 660, 655, 0, 0, 661, 0, 203, 275, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 174,
- 175, 176, 177, 178, 179, 180, 181, 0, 0, 182,
- 183, 0, 0, 0, 0, 184, 185, 186, 187, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 188,
- 189, 190, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 191, 192, 193, 194, 195, 196, 197,
- 198, 199, 200, 0, 201, 202, 692, 646, 0, 0,
- 693, 0, 203, 275, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 174, 175, 176, 177, 178,
- 179, 180, 181, 0, 0, 182, 183, 0, 0, 0,
- 0, 184, 185, 186, 187, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 188, 189, 190, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 191,
- 192, 193, 194, 195, 196, 197, 198, 199, 200, 0,
- 201, 202, 695, 655, 0, 0, 696, 0, 203, 275,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 174, 175, 176, 177, 178, 179, 180, 181, 0,
- 0, 182, 183, 0, 0, 0, 0, 184, 185, 186,
- 187, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 188, 189, 190, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 191, 192, 193, 194, 195,
- 196, 197, 198, 199, 200, 0, 201, 202, 702, 646,
- 0, 0, 703, 0, 203, 275, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 174, 175, 176,
- 177, 178, 179, 180, 181, 0, 0, 182, 183, 0,
- 0, 0, 0, 184, 185, 186, 187, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 188, 189, 190,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 191, 192, 193, 194, 195, 196, 197, 198, 199,
- 200, 0, 201, 202, 705, 655, 0, 0, 706, 0,
- 203, 275, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 174, 175, 176, 177, 178, 179, 180,
- 181, 0, 0, 182, 183, 0, 0, 0, 0, 184,
- 185, 186, 187, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 188, 189, 190, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 191, 192, 193,
- 194, 195, 196, 197, 198, 199, 200, 0, 201, 202,
- 741, 646, 0, 0, 742, 0, 203, 275, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 174,
- 175, 176, 177, 178, 179, 180, 181, 0, 0, 182,
- 183, 0, 0, 0, 0, 184, 185, 186, 187, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 188,
- 189, 190, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 191, 192, 193, 194, 195, 196, 197,
- 198, 199, 200, 0, 201, 202, 744, 655, 0, 0,
- 745, 0, 203, 275, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 174, 175, 176, 177, 178,
- 179, 180, 181, 0, 0, 182, 183, 0, 0, 0,
- 0, 184, 185, 186, 187, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 188, 189, 190, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 191,
- 192, 193, 194, 195, 196, 197, 198, 199, 200, 0,
- 201, 202, 896, 646, 0, 0, 897, 0, 203, 275,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 174, 175, 176, 177, 178, 179, 180, 181, 0,
- 0, 182, 183, 0, 0, 0, 0, 184, 185, 186,
- 187, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 188, 189, 190, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 191, 192, 193, 194, 195,
- 196, 197, 198, 199, 200, 0, 201, 202, 899, 655,
- 0, 0, 900, 0, 203, 275, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 174, 175, 176,
- 177, 178, 179, 180, 181, 0, 0, 182, 183, 0,
- 0, 0, 0, 184, 185, 186, 187, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 188, 189, 190,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 191, 192, 193, 194, 195, 196, 197, 198, 199,
- 200, 0, 201, 202, 1040, 646, 0, 0, 1041, 0,
- 203, 275, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 174, 175, 176, 177, 178, 179, 180,
- 181, 0, 0, 182, 183, 0, 0, 0, 0, 184,
- 185, 186, 187, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 188, 189, 190, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 191, 192, 193,
- 194, 195, 196, 197, 198, 199, 200, 0, 201, 202,
- 1052, 646, 0, 0, 1053, 0, 203, 275, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 174,
- 175, 176, 177, 178, 179, 180, 181, 0, 0, 182,
- 183, 0, 0, 0, 0, 184, 185, 186, 187, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 188,
- 189, 190, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 191, 192, 193, 194, 195, 196, 197,
- 198, 199, 200, 0, 201, 202, 1055, 655, 0, 0,
- 1056, 0, 203, 275, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 174, 175, 176, 177, 178,
- 179, 180, 181, 0, 0, 182, 183, 0, 0, 0,
- 0, 184, 185, 186, 187, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 188, 189, 190, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 191,
- 192, 193, 194, 195, 196, 197, 198, 199, 200, 0,
- 201, 202, 660, 655, 0, 0, 661, 0, 203, 275,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 174, 175, 176, 177, 178, 179, 180, 181, 0,
- 0, 182, 183, 0, 0, 0, 0, 184, 185, 186,
- 187, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 188, 189, 190, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 791, 0, 0,
- 0, 0, 0, 0, 0, 191, 192, 193, 194, 195,
- 196, 197, 198, 199, 200, 0, 201, 202, 0, 0,
- 0, 0, 0, 0, 203, 402, 403, 404, 405, 406,
- 407, 408, 409, 410, 411, 412, 413, 0, 0, 0,
- 0, 414, 415, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 417, 0, 0, 0, 0, 864,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 418, 0, 419, 420, 421,
- 422, 423, 424, 425, 426, 427, 428, 402, 403, 404,
- 405, 406, 407, 408, 409, 410, 411, 412, 413, 0,
- 0, 0, 0, 414, 415, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 417, 0, 0, 0,
- 0, 876, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 418, 0, 419,
- 420, 421, 422, 423, 424, 425, 426, 427, 428, 402,
- 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
- 413, 0, 0, 0, 0, 414, 415, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 417, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 418,
- 0, 419, 420, 421, 422, 423, 424, 425, 426, 427,
- 428, 402, 403, 404, 405, 406, 407, 408, 409, 410,
- 411, 412, 413, 0, 0, 0, 0, 414, 415, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 417, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 418, 0, 419, 420, 421, 422, 423, 424, 425,
- 426, 427, 428, 402, 403, 404, 405, 406, 407, 408,
- 409, 410, 411, 412, 413, 0, 0, 251, 0, 414,
- 415, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 417, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 418, 0, 419, 420, 421, 422, 423,
- 424, 425, 426, 427, 428, 0, 0, 0, 0, 0,
- 0, 0, 0, -277, 402, 403, 404, 405, 406, 407,
- 408, 409, 410, 411, 412, 413, 0, 0, 0, 0,
- 414, 415, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 417, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 418, 0, 419, 420, 421, 422,
- 423, 424, 425, 426, 427, 428, 0, 0, 0, 0,
- 0, 0, 0, 0, -278, 402, 403, 404, 405, 406,
- 407, 408, 409, 410, 411, 412, 413, 0, 0, 0,
- 0, 414, 415, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 417, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 418, 0, 419, 420, 421,
- 422, 423, 424, 425, 426, 427, 428, 0, 0, 0,
- 0, 0, 0, 0, 0, -279, 402, 403, 404, 405,
- 406, 407, 408, 409, 410, 411, 412, 413, 0, 0,
- 0, 0, 414, 415, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 417, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 418, 0, 419, 420,
- 421, 422, 423, 424, 425, 426, 427, 428, 0, 0,
- 0, 0, 0, 0, 0, 0, -280, 402, 403, 404,
- 405, 406, 407, 408, 409, 410, 411, 412, 413, 0,
- 0, 0, 0, 414, 415, 0, 0, 0, 416, 0,
- 0, 0, 0, 0, 0, 0, 417, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 418, 0, 419,
- 420, 421, 422, 423, 424, 425, 426, 427, 428, 402,
- 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
- 413, 0, 0, 0, 0, 414, 415, 0, 0, 0,
- 499, 0, 0, 0, 0, 0, 0, 0, 417, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 418,
- 0, 419, 420, 421, 422, 423, 424, 425, 426, 427,
- 428, 402, 403, 404, 405, 406, 407, 408, 409, 410,
- 411, 412, 413, 0, 0, 0, 0, 414, 415, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 417, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 418, 0, 419, 420, 421, 422, 423, 424, 425,
- 426, 427, 428, 402, 403, 404, 405, 406, 407, 408,
- 409, 410, 411, -612, -612, 0, 0, 0, 0, 414,
- 415, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 417, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 419, 420, 421, 422, 423,
- 424, 425, 426, 427, 428
-};
-
-static const yytype_int16 yycheck[] =
-{
- 2, 27, 27, 16, 17, 87, 88, 20, 89, 222,
- 2, 10, 4, 5, 6, 271, 15, 9, 10, 21,
- 377, 13, 82, 15, 16, 17, 7, 14, 20, 314,
- 488, 28, 2, 14, 4, 588, 66, 5, 6, 22,
- 118, 28, 16, 17, 479, 13, 20, 28, 4, 591,
- 7, 331, 54, 55, 431, 16, 17, 15, 307, 20,
- 52, 754, 311, 401, 56, 780, 60, 61, 62, 63,
- 588, 56, 74, 75, 66, 52, 296, 58, 69, 456,
- 54, 55, 16, 17, 686, 16, 20, 502, 56, 75,
- 82, 506, 25, 54, 544, 697, 473, 663, 664, 75,
- 494, 58, 21, 22, 941, 482, 29, 506, 26, 111,
- 26, 69, 25, 319, 82, 103, 25, 966, 57, 25,
- 54, 55, 105, 25, 0, 117, 92, 119, 25, 25,
- 16, 17, 25, 57, 20, 588, 218, 536, 591, 90,
- 128, 594, 79, 799, 58, 59, 122, 229, 90, 805,
- 90, 372, 37, 38, 52, 121, 606, 91, 269, 121,
- 271, 55, 90, 369, 659, 105, 18, 662, 20, 546,
- 9, 10, 393, 90, 332, 138, 15, 335, 398, 337,
- 142, 339, 121, 341, 115, 680, 105, 118, 119, 126,
- 113, 121, 111, 112, 1043, 306, 147, 1034, 51, 123,
- 53, 54, 55, 56, 28, 147, 759, 147, 290, 142,
- 129, 213, 214, 142, 494, 146, 69, 148, 210, 147,
- 138, 119, 138, 90, 223, 224, 144, 213, 214, 142,
- 147, 223, 224, 142, 316, 144, 142, 458, 214, 121,
- 142, 759, 144, 92, 810, 142, 142, 92, 963, 142,
- 92, 966, 90, 946, 314, 511, 429, 92, 142, 544,
- 433, 242, 275, 436, 148, 16, 279, 269, 125, 271,
- 441, 442, 121, 275, 554, 144, 121, 90, 117, 121,
- 147, 144, 90, 275, 457, 242, 90, 279, 55, 142,
- 121, 283, 284, 215, 252, 92, 288, 105, 90, 472,
- 222, 474, 55, 295, 296, 279, 759, 298, 861, 147,
- 483, 303, 727, 728, 275, 306, 307, 870, 279, 296,
- 311, 606, 314, 717, 866, 295, 58, 59, 1043, 728,
- 324, 90, 140, 303, 147, 937, 144, 259, 788, 147,
- 298, 275, 548, 147, 144, 279, 314, 685, 148, 522,
- 349, 350, 351, 352, 25, 147, 348, 349, 350, 351,
- 352, 353, 354, 355, 115, 51, 396, 118, 119, 55,
- 142, 401, 20, 375, 547, 377, 92, 455, 348, 142,
- 372, 57, 401, 353, 223, 224, 801, 101, 147, 138,
- 288, 142, 348, 279, 552, 146, 51, 148, 296, 510,
- 511, 393, 837, 92, 396, 121, 398, 399, 765, 401,
- 963, 441, 442, 866, 399, 868, 793, 870, 431, 872,
- 145, 398, 441, 442, 121, 60, 348, 139, 63, 431,
- 92, 399, 121, 141, 714, 396, 55, 717, 142, 431,
- 401, 92, 101, 456, 283, 284, 101, 102, 103, 441,
- 442, 101, 433, 674, 456, 436, 101, 379, 121, 121,
- 473, 121, 464, 142, 456, 721, 458, 459, 51, 482,
- 121, 473, 107, 128, 500, 500, 457, 469, 92, 937,
- 482, 473, 542, 1036, 544, 477, 131, 132, 133, 738,
- 482, 142, 603, 474, 1047, 487, 142, 431, 588, 712,
- 398, 591, 483, 788, 17, 18, 92, 121, 510, 511,
- 349, 350, 351, 352, 433, 354, 355, 519, 92, 878,
- 879, 518, 456, 51, 939, 882, 883, 519, 502, 142,
- 491, 518, 26, 546, 616, 121, 528, 518, 457, 473,
- 939, 522, 653, 142, 546, 142, 606, 121, 482, 519,
- 542, 509, 544, 1006, 546, 474, 478, 479, 528, 533,
- 781, 553, 51, 843, 483, 578, 547, 90, 502, 16,
- 121, 469, 506, 90, 542, 386, 544, 388, 92, 477,
- 121, 122, 105, 142, 597, 51, 578, 808, 105, 487,
- 99, 847, 15, 92, 13, 121, 90, 599, 16, 533,
- 121, 712, 536, 522, 63, 597, 528, 121, 634, 634,
- 721, 105, 546, 535, 606, 15, 145, 140, 145, 792,
- 459, 794, 121, 140, 147, 796, 142, 2, 547, 4,
- 147, 802, 803, 854, 9, 10, 92, 139, 606, 142,
- 15, 16, 17, 142, 138, 20, 140, 15, 44, 369,
- 144, 653, 1029, 147, 142, 553, 92, 659, 1015, 15,
- 662, 663, 664, 121, 141, 121, 27, 650, 115, 759,
- 141, 118, 119, 15, 673, 18, 659, 52, 680, 662,
- 92, 673, 674, 685, 686, 121, 142, 141, 690, 90,
- 780, 66, 581, 581, 139, 697, 585, 141, 919, 146,
- 15, 148, 683, 141, 105, 92, 142, 139, 707, 121,
- 923, 708, 139, 148, 142, 707, 929, 44, 90, 721,
- 746, 708, 57, 44, 685, 806, 683, 708, 788, 142,
- 142, 650, 142, 105, 121, 142, 847, 908, 142, 140,
- 659, 15, 117, 662, 119, 93, 147, 738, 115, 90,
- 672, 118, 119, 727, 115, 142, 14, 118, 119, 678,
- 790, 680, 15, 765, 105, 15, 796, 797, 140, 145,
- 15, 790, 802, 803, 15, 147, 866, 796, 145, 146,
- 793, 148, 26, 802, 803, 146, 146, 148, 142, 781,
- 712, 793, 142, 727, 728, 142, 788, 789, 790, 140,
- 15, 793, 142, 142, 796, 797, 147, 141, 810, 139,
- 802, 803, 15, 794, 15, 139, 808, 809, 820, 789,
- 788, 823, 90, 142, 126, 300, 825, 801, 61, 304,
- 822, 64, 65, 825, 673, 210, 115, 105, 126, 118,
- 119, 55, 834, 835, 139, 847, 90, 15, 223, 224,
- 842, 55, 878, 879, 574, 142, 142, 1030, 142, 793,
- 142, 105, 854, 855, 142, 142, 115, 801, 707, 118,
- 119, 591, 140, 963, 594, 794, 966, 144, 908, 147,
- 882, 883, 16, 116, 117, 15, 141, 144, 880, 908,
- 812, 780, 780, 885, 138, 142, 140, 146, 519, 148,
- 275, 983, 13, 147, 279, 441, 442, 6, 283, 284,
- 1032, 809, 880, 288, 780, 837, 908, 885, 1034, 1031,
- 295, 296, 37, 38, 822, 254, 918, 919, 303, 115,
- 922, 7, 118, 119, 926, 937, 834, 835, 581, 475,
- 476, 90, 807, 780, 842, 51, 960, 53, 54, 55,
- 56, 963, 90, 1043, 922, -1, 105, 855, 769, 770,
- 771, 270, 773, 69, 775, -1, -1, 105, -1, -1,
- 996, 996, -1, 348, 349, 350, 351, 352, 353, 354,
- 355, 115, -1, -1, 118, 119, 825, 523, 887, 888,
- -1, 140, -1, -1, 986, 90, 988, 372, 147, 991,
- 115, 923, 140, 118, 119, 939, -1, 929, -1, 147,
- 105, -1, 146, 1015, 148, -1, 1029, -1, 393, 90,
- 918, 396, -1, 398, -1, -1, 401, 1029, 926, 1031,
- 1032, 146, 507, 148, 105, -1, 142, 1029, -1, 514,
- -1, -1, 90, -1, -1, 140, 90, 90, -1, 1030,
- 525, 62, 147, 64, 65, -1, 431, 105, 90, -1,
- 780, 105, 105, -1, 963, -1, 441, 442, -1, 140,
- 26, 960, 960, 105, 963, 963, 147, 966, 966, 968,
- 968, 456, 61, 458, 459, 64, 65, -1, 986, -1,
- 988, -1, 140, 991, 469, 1029, 140, 140, 473, 147,
- 575, 576, 477, 147, 147, 116, 117, 482, 140, -1,
- -1, 1030, 487, -1, 62, 147, 64, 65, -1, -1,
- 1019, 1020, 1021, 960, 1023, 1024, 963, 1016, 1016, 966,
- 605, 968, -1, -1, 90, 26, -1, 116, 117, 950,
- 951, 952, 953, -1, 519, -1, 866, -1, 868, 105,
- -1, -1, 872, 528, 1043, 1043, 1045, 1045, 1047, 1047,
- 1049, 1049, -1, -1, 1063, 1064, 1065, 1066, 116, 117,
- -1, 546, 115, -1, 1073, 118, 119, -1, 553, 1016,
- 1069, 1069, 138, -1, 140, -1, -1, -1, 144, -1,
- -1, 147, -1, 26, 26, -1, -1, -1, -1, 90,
- -1, -1, -1, 578, -1, 148, 1043, 682, 1045, -1,
- 1047, -1, 1049, -1, 105, -1, 51, -1, 53, 54,
- 55, 56, 597, -1, 944, 945, -1, -1, 1039, -1,
- 9, 10, 1069, -1, 69, -1, 15, 16, 17, -1,
- -1, 20, -1, -1, -1, -1, 966, 138, 968, 140,
- 63, 64, 65, 144, -1, -1, 147, 90, 90, 94,
- 796, 797, 737, -1, -1, 100, 802, 803, 47, 48,
- 49, 50, 105, 105, -1, 54, 55, 63, 64, 65,
- 755, -1, -1, 1003, -1, -1, 1006, 66, 67, -1,
- -1, -1, 828, 829, -1, 831, 832, -1, 673, 674,
- 63, 64, 65, 116, 117, 138, 138, 140, 140, -1,
- -1, 144, 144, -1, 147, 147, -1, 51, 1038, 53,
- 54, 55, 56, 1043, -1, 1045, -1, -1, -1, 1049,
- 116, 117, 707, 101, -1, 69, -1, -1, 117, 51,
- -1, 53, 54, 55, 56, 63, 64, 65, -1, 1069,
- 63, 64, 65, 116, 117, -1, -1, 69, -1, -1,
- 94, 129, 130, 131, 132, 133, 100, 101, 102, 103,
- -1, 846, 908, -1, -1, 2, -1, 4, 5, 6,
- -1, -1, 94, 63, 64, 65, 13, 862, 100, 101,
- 102, 103, -1, -1, 128, 931, -1, 131, 116, 117,
- 63, 64, 65, 116, 117, -1, 781, -1, -1, 121,
- 144, 63, 64, 65, 789, 790, 128, -1, 793, 131,
- -1, 796, 797, -1, -1, 52, -1, 802, 803, 56,
- -1, -1, 144, 808, 809, -1, 116, 117, 51, -1,
- 53, 54, 55, 56, 223, 224, -1, 822, -1, -1,
- 825, -1, -1, 116, 117, 82, 69, -1, -1, 834,
- 835, -1, -1, -1, 116, 117, 115, 842, -1, 118,
- 119, -1, -1, 51, -1, 53, 54, 55, 56, 854,
- 855, 94, 261, 262, 263, 264, -1, 100, 101, 102,
- 103, 69, 119, 142, -1, -1, 275, 146, -1, 148,
- 279, -1, -1, -1, 283, 284, -1, -1, -1, 51,
- -1, 53, 54, 55, 56, 128, 94, -1, 131, -1,
- -1, -1, 100, 101, 102, 103, -1, 69, -1, -1,
- -1, 144, -1, 908, -1, -1, 51, -1, 53, 54,
- 55, 56, -1, 918, 919, 40, 41, 42, 43, 44,
- 128, 926, 94, 131, 69, 88, 89, -1, 100, 101,
- 102, 103, -1, -1, 142, 88, 89, -1, 101, -1,
- 349, 350, 351, 352, -1, 354, 355, -1, 101, 94,
- -1, -1, -1, 210, -1, 100, 128, -1, -1, 131,
- -1, -1, -1, -1, 373, 128, 129, 130, 131, 132,
- 133, -1, -1, -1, -1, 384, 129, 130, 131, 132,
- 133, 986, -1, 988, -1, -1, 991, 396, -1, -1,
- -1, -1, 401, 402, 403, 404, 405, 406, 407, 408,
- 409, 410, 411, 412, 413, 414, 415, -1, 417, 418,
- 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
- -1, -1, 431, -1, 1029, 51, -1, 53, 54, 55,
- 56, 288, 441, 442, -1, -1, -1, -1, 295, 296,
- -1, -1, -1, 69, -1, -1, 303, 456, -1, -1,
- 459, 51, -1, 53, 54, 55, 56, 314, -1, 85,
- -1, -1, 471, -1, 473, -1, 475, 476, 94, 69,
- -1, -1, -1, 482, 100, 101, 102, 103, -1, -1,
- -1, -1, 491, -1, -1, -1, 495, -1, -1, -1,
- 499, 348, -1, 502, 94, 504, 353, 506, 507, -1,
- -1, -1, 128, -1, 51, 131, 53, 54, 55, 56,
- -1, -1, -1, -1, 523, 372, -1, 2, -1, 4,
- 5, 6, 69, -1, 533, -1, -1, 536, 13, 51,
- -1, 53, 54, 55, 56, -1, 393, 546, -1, -1,
- -1, 398, 399, -1, 401, -1, -1, 69, -1, -1,
- -1, -1, -1, 562, 563, -1, -1, -1, -1, -1,
- -1, -1, -1, 85, -1, -1, -1, 52, -1, 578,
- -1, 56, 94, -1, -1, -1, -1, -1, 100, 101,
- 102, 103, -1, -1, 441, 442, -1, -1, 597, -1,
- 51, 600, 53, 54, 55, 56, -1, 82, -1, -1,
- -1, 458, -1, -1, -1, -1, 128, -1, 69, 131,
- 88, 89, 469, -1, -1, -1, -1, -1, -1, -1,
- 477, -1, -1, 101, -1, -1, -1, -1, -1, -1,
- 487, -1, -1, 94, 119, -1, -1, -1, -1, -1,
- 101, 102, 103, -1, -1, -1, -1, -1, 126, 127,
- 128, 129, 130, 131, 132, 133, -1, -1, -1, -1,
- -1, -1, 519, -1, 673, -1, -1, 128, -1, -1,
- -1, 528, -1, -1, -1, -1, 685, -1, -1, 688,
- 689, -1, -1, -1, -1, 542, -1, 544, -1, -1,
- -1, -1, -1, -1, -1, -1, 553, -1, 707, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 718,
- -1, -1, -1, -1, -1, -1, -1, -1, 727, 728,
- -1, -1, -1, -1, -1, 210, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 606,
- -1, -1, -1, -1, -1, 2, -1, 4, 5, 6,
- -1, -1, -1, -1, -1, -1, 13, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 785, -1, -1, -1,
- -1, 790, 791, -1, 793, -1, -1, 796, 797, -1,
- -1, -1, 801, 802, 803, -1, -1, -1, -1, -1,
- -1, -1, -1, 288, -1, 52, -1, -1, -1, 56,
- 295, 296, -1, -1, -1, -1, 825, 674, 303, 828,
- 829, -1, 831, 832, -1, -1, -1, -1, -1, 314,
- -1, -1, 841, -1, -1, 82, -1, 846, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 863, 864, -1, -1, -1, -1,
- -1, -1, -1, 348, -1, -1, 875, 876, 353, -1,
- -1, -1, 119, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 891, -1, -1, -1, -1, 372, -1, -1,
- -1, -1, 901, 902, -1, -1, -1, -1, -1, 908,
- -1, -1, -1, -1, -1, -1, -1, -1, 393, -1,
- -1, -1, -1, 398, 399, -1, 401, -1, -1, -1,
- -1, -1, 931, -1, 781, -1, -1, -1, -1, -1,
- 939, 788, 789, 790, -1, -1, -1, -1, -1, 796,
- -1, -1, -1, -1, -1, 802, 803, -1, -1, -1,
- -1, 808, 809, -1, -1, -1, 441, 442, -1, -1,
- -1, -1, -1, 210, -1, 822, -1, -1, -1, -1,
- -1, -1, -1, 458, -1, -1, -1, 834, 835, -1,
- -1, -1, -1, -1, 469, 842, -1, -1, -1, -1,
- -1, -1, 477, -1, -1, -1, -1, 854, 855, -1,
- -1, -1, 487, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 1029, -1, -1, 880, -1, -1, -1, -1, 885, -1,
- -1, -1, -1, 2, 519, 4, -1, -1, -1, -1,
- -1, 288, -1, 528, 13, -1, -1, -1, 295, 296,
- -1, 908, -1, -1, -1, -1, 303, 542, -1, 544,
- -1, 918, 919, -1, -1, 922, -1, 314, 553, 926,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 52, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 0, 348, -1, -1, -1, -1, 353, -1, -1, -1,
- -1, -1, -1, 13, 14, 15, 16, 17, 18, -1,
- 20, 606, -1, -1, -1, 372, 26, 27, -1, 986,
- -1, 988, -1, -1, 991, -1, -1, 37, 38, -1,
- 40, 41, 42, 43, 44, -1, 393, -1, -1, -1,
- 119, 398, 399, -1, 401, -1, 2, -1, 4, 5,
- 6, 7, -1, -1, -1, -1, -1, 13, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 674,
- 90, -1, -1, -1, 441, 442, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 105, 52, -1, -1, -1,
- 56, 458, -1, -1, -1, 115, -1, -1, 118, 119,
- -1, -1, 469, -1, -1, -1, -1, -1, -1, -1,
- 477, -1, -1, -1, -1, -1, 82, -1, 138, 139,
- 487, 210, -1, -1, 144, 145, 146, 147, 148, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 519, 119, -1, -1, -1, -1, -1, -1,
- -1, 528, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 542, 781, 544, -1, -1,
- -1, -1, -1, 788, 789, 790, 553, -1, -1, -1,
- -1, 796, -1, -1, -1, -1, -1, 802, 803, 288,
- -1, -1, -1, 808, 809, -1, 295, 296, -1, -1,
- -1, -1, -1, -1, 303, -1, -1, 822, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 834,
- 835, -1, -1, -1, -1, -1, -1, 842, -1, 606,
- -1, -1, -1, -1, 210, -1, -1, -1, -1, 854,
- 855, -1, -1, -1, -1, -1, -1, -1, -1, 348,
- -1, -1, -1, -1, 353, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 880, -1, -1, -1, -1,
- 885, -1, -1, 372, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 2, -1, 4, 908, 393, -1, -1, 674, -1, 398,
- -1, -1, 401, 918, 919, -1, -1, 922, -1, -1,
- -1, 926, 288, -1, -1, -1, -1, -1, -1, 295,
- 296, -1, -1, -1, -1, -1, -1, 303, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 314, -1,
- 52, -1, 441, 442, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 458,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 469, 986, 348, 988, -1, -1, 991, 353, 477, -1,
- -1, 72, 73, 74, 75, 76, 77, 78, 487, 80,
- 81, -1, -1, -1, -1, -1, 372, 88, 89, -1,
- -1, -1, -1, -1, 781, -1, -1, 119, -1, -1,
- 101, 788, 789, 790, -1, -1, -1, 393, -1, 796,
- 519, -1, 398, 399, -1, 802, 803, -1, -1, 528,
- -1, 808, 809, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, -1, -1, 822, -1, -1, -1, -1,
- -1, -1, -1, -1, 553, -1, -1, 834, 835, -1,
- -1, -1, -1, -1, -1, 842, -1, 72, 73, 74,
- 75, 76, 77, -1, -1, 80, 81, 854, 855, -1,
- -1, -1, 458, 88, 89, -1, -1, -1, -1, -1,
- -1, -1, -1, 469, -1, -1, 101, -1, 210, -1,
- -1, 477, -1, 880, -1, -1, -1, -1, 885, -1,
- -1, 487, -1, -1, -1, -1, -1, -1, -1, 124,
- 125, 126, 127, 128, 129, 130, 131, 132, 133, -1,
- -1, 908, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 918, 919, 519, -1, 922, -1, -1, -1, 926,
- -1, -1, 528, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 542, -1, 544, -1,
- -1, -1, -1, -1, -1, 674, 288, 553, -1, -1,
- -1, -1, -1, 295, 296, -1, -1, 44, -1, -1,
- -1, 303, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 986,
- -1, 988, -1, -1, 991, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, -1, -1, -1,
- 606, 88, 89, -1, -1, -1, 348, -1, -1, -1,
- -1, 353, -1, -1, 101, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 372, -1, -1, -1, -1, 122, -1, 124, 125, 126,
- 127, 128, 129, 130, 131, 132, 133, -1, -1, -1,
- -1, 393, 781, -1, -1, 142, 398, -1, -1, 401,
- 789, 790, -1, -1, -1, -1, -1, 796, 674, -1,
- -1, -1, -1, 802, 803, -1, -1, -1, -1, 808,
- 809, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 822, -1, -1, -1, -1, -1, 441,
- 442, -1, -1, -1, -1, 834, 835, -1, -1, -1,
- -1, -1, -1, 842, -1, -1, 458, -1, -1, -1,
- -1, -1, -1, -1, -1, 854, 855, 469, -1, -1,
- -1, -1, -1, -1, -1, 477, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 487, -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, 781, -1, 519, -1, 908,
- -1, -1, 788, 789, -1, -1, 528, -1, -1, 918,
- 919, -1, -1, 922, -1, -1, -1, 926, -1, -1,
- -1, -1, 808, 809, -1, -1, -1, -1, -1, -1,
- -1, 553, -1, -1, -1, -1, 822, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 834, 835,
- -1, -1, -1, -1, -1, -1, 842, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 854, 855,
- -1, -1, -1, -1, -1, -1, -1, 986, -1, 988,
- -1, -1, 991, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 880, -1, -1, -1, -1, 885,
- -1, -1, -1, -1, -1, 0, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 13, 14,
- 15, -1, 17, 18, -1, 20, -1, -1, -1, -1,
- -1, 26, 918, 919, -1, -1, 922, -1, -1, -1,
- 926, -1, 37, 38, -1, 40, 41, 42, 43, 44,
- -1, -1, 674, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, -1,
- -1, -1, -1, 88, 89, 90, -1, 92, 93, -1,
- 986, -1, 988, -1, -1, 991, 101, -1, -1, -1,
- 105, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 115, -1, -1, 118, 119, -1, 121, 122, -1, 124,
- 125, 126, 127, 128, 129, 130, 131, 132, 133, -1,
- -1, -1, -1, 138, 139, 140, -1, 142, -1, -1,
- 145, 146, 147, 148, -1, -1, -1, -1, -1, 781,
- -1, -1, -1, -1, -1, -1, -1, 789, 790, -1,
- -1, -1, 51, 52, 796, -1, 55, -1, -1, -1,
- 802, 803, -1, -1, -1, -1, 808, 809, -1, -1,
- -1, 70, 71, 72, 73, 74, 75, 76, 77, -1,
- 822, 80, 81, -1, -1, -1, -1, 86, 87, 88,
- 89, -1, 834, 835, -1, -1, -1, -1, -1, -1,
- 842, 100, 101, 102, -1, -1, -1, -1, -1, -1,
- -1, -1, 854, 855, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, -1, 135, 136, 72, 73,
- 74, 75, 76, 77, 143, 144, 80, 81, -1, -1,
- -1, -1, -1, -1, 88, 89, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 908, 101, -1, -1,
- -1, -1, -1, -1, -1, -1, 918, 919, -1, -1,
- -1, -1, -1, -1, 926, -1, -1, -1, -1, -1,
- 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
- -1, -1, -1, -1, -1, -1, 0, 1, -1, 3,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, -1,
- -1, -1, -1, -1, -1, 19, -1, 21, 22, 23,
- 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
- 34, 35, 36, -1, 986, 39, 988, -1, -1, 991,
- -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
- 54, 55, 56, -1, 58, 59, 60, -1, -1, 63,
- -1, -1, 66, 67, -1, 69, 70, 71, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 84, 85, -1, -1, -1, -1, -1, 91, -1, -1,
- 94, 95, -1, 97, 98, -1, 100, -1, -1, -1,
- 104, -1, 106, 107, 108, -1, 110, 111, 112, 0,
- 114, 115, -1, -1, 118, 119, -1, -1, -1, -1,
- -1, -1, 13, 14, 15, 16, 17, 18, -1, 20,
- 134, 135, 136, -1, -1, -1, 27, 28, 29, -1,
- -1, -1, 146, -1, 148, -1, 37, 38, -1, 40,
- 41, 42, 43, 44, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 57, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, -1, -1, -1, -1, 88, 89, 90,
- -1, -1, 93, -1, -1, -1, -1, -1, 99, -1,
- 101, -1, -1, -1, 105, -1, -1, -1, -1, -1,
- -1, -1, 113, -1, 115, -1, -1, 118, 119, -1,
- -1, 122, 123, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, -1, -1, 0, -1, -1, 139, 140,
- 141, 142, -1, -1, 145, 146, 147, 148, 13, 14,
- 15, 16, 17, 18, -1, 20, -1, -1, -1, -1,
- -1, 26, 27, 28, -1, -1, -1, -1, -1, -1,
- -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
- -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, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, -1,
- -1, -1, -1, 88, 89, 90, -1, -1, 93, -1,
- -1, -1, -1, -1, 99, -1, 101, -1, -1, -1,
- 105, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 115, -1, -1, 118, 119, -1, -1, 122, -1, 124,
- 125, 126, 127, 128, 129, 130, 131, 132, 133, -1,
- -1, 0, -1, 138, 139, 140, 141, 142, -1, 144,
- 145, 146, 147, 148, 13, 14, 15, 16, 17, 18,
- -1, 20, -1, -1, -1, -1, -1, -1, 27, 28,
- -1, -1, -1, -1, -1, -1, -1, -1, 37, 38,
- -1, 40, 41, 42, 43, 44, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 57, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, -1, -1, -1, -1, 88,
- 89, 90, -1, 92, 93, -1, -1, -1, -1, -1,
- 99, -1, 101, -1, -1, -1, 105, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 115, -1, -1, 118,
- 119, -1, 121, 122, -1, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, -1, -1, 0, -1, -1,
- 139, 140, 141, 142, -1, -1, 145, 146, 147, 148,
- 13, 14, 15, 16, 17, 18, -1, 20, -1, -1,
- -1, -1, -1, 26, 27, 28, -1, -1, -1, -1,
- -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
- 43, 44, -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, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
- 83, -1, -1, -1, -1, 88, 89, 90, -1, -1,
- 93, -1, -1, -1, -1, -1, 99, -1, 101, -1,
- -1, -1, 105, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 115, -1, -1, 118, 119, -1, -1, 122,
- -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, -1, -1, 0, -1, 138, 139, 140, 141, 142,
- -1, 144, 145, 146, 147, 148, 13, 14, 15, 16,
- 17, 18, -1, 20, -1, -1, -1, -1, -1, -1,
- 27, 28, -1, -1, -1, -1, -1, -1, -1, -1,
- 37, 38, -1, 40, 41, 42, 43, 44, -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, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, -1, -1, -1,
- -1, 88, 89, 90, -1, -1, 93, -1, -1, -1,
- -1, -1, 99, -1, 101, -1, -1, -1, 105, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 115, -1,
- -1, 118, 119, -1, -1, 122, -1, 124, 125, 126,
- 127, 128, 129, 130, 131, 132, 133, -1, -1, 0,
- -1, -1, 139, 140, 141, 142, -1, 144, 145, 146,
- 147, 148, 13, 14, 15, -1, 17, 18, -1, 20,
- -1, -1, -1, -1, -1, 26, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
- 41, 42, 43, 44, -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, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, -1, -1, -1, -1, 88, 89, 90,
- -1, 92, 93, -1, -1, -1, -1, -1, -1, -1,
- 101, -1, -1, -1, 105, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 115, -1, -1, 118, 119, -1,
- 121, 122, -1, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, -1, -1, 0, -1, 138, 139, 140,
- -1, 142, -1, -1, 145, 146, 147, 148, 13, 14,
- 15, -1, 17, 18, -1, 20, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
- -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, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, -1,
- -1, -1, -1, 88, 89, 90, -1, 92, 93, -1,
- -1, -1, -1, -1, -1, -1, 101, -1, -1, -1,
- 105, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 115, -1, -1, 118, 119, -1, 121, 122, -1, 124,
- 125, 126, 127, 128, 129, 130, 131, 132, 133, -1,
- -1, 0, -1, -1, 139, 140, -1, 142, -1, -1,
- 145, 146, 147, 148, 13, 14, 15, -1, 17, 18,
- -1, 20, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 37, 38,
- -1, 40, 41, 42, 43, 44, -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, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, -1, -1, -1, -1, 88,
- 89, 90, -1, 92, 93, -1, -1, -1, -1, -1,
- -1, -1, 101, -1, -1, -1, 105, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 115, -1, -1, 118,
- 119, -1, 121, 122, -1, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, -1, -1, -1, -1, -1,
- 139, 140, -1, 142, -1, -1, 145, 146, 147, 148,
- 1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, -1, -1, 18, 19, -1,
- 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
- 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
- -1, -1, -1, -1, 45, -1, 47, 48, 49, 50,
- 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
- -1, -1, 63, -1, -1, 66, 67, -1, 69, 70,
- 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 84, 85, -1, -1, -1, -1, -1,
- 91, -1, -1, 94, 95, -1, 97, 98, -1, 100,
- -1, -1, -1, 104, -1, 106, 107, 108, -1, 110,
- 111, 112, -1, 114, 115, -1, -1, 118, 119, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 134, 135, 136, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 146, 1, 148, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, -1, -1,
- 15, -1, 17, 18, 19, -1, 21, 22, 23, 24,
- -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
- 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
- 45, -1, 47, 48, 49, 50, 51, 52, 53, 54,
- 55, 56, -1, 58, 59, 60, -1, -1, 63, -1,
- -1, 66, 67, -1, 69, 70, 71, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
- 85, -1, -1, -1, -1, -1, 91, -1, -1, 94,
- 95, -1, 97, 98, -1, 100, -1, -1, -1, 104,
- -1, 106, 107, 108, -1, 110, 111, 112, -1, 114,
- 115, -1, -1, 118, 119, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 134,
- 135, 136, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 146, 1, 148, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, -1, -1, 15, -1, -1, 18,
- 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
- -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
- 39, -1, -1, -1, -1, -1, 45, -1, 47, 48,
- 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
- 59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
- 69, 70, 71, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 84, 85, -1, -1, -1,
- -1, -1, 91, -1, -1, 94, 95, -1, 97, 98,
- -1, 100, -1, -1, -1, 104, -1, 106, 107, 108,
- -1, 110, 111, 112, -1, 114, 115, -1, -1, 118,
- 119, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 134, 135, 136, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 146, 1, 148,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
- -1, -1, 15, -1, -1, 18, 19, -1, 21, 22,
- 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
- 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
- -1, -1, 45, -1, 47, 48, 49, 50, 51, 52,
- 53, 54, 55, 56, -1, 58, 59, 60, -1, -1,
- 63, -1, -1, 66, 67, -1, 69, 70, 71, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 84, 85, -1, -1, -1, -1, -1, 91, -1,
- -1, 94, 95, -1, 97, 98, -1, 100, -1, -1,
- -1, 104, -1, 106, 107, 108, -1, 110, 111, 112,
- -1, 114, 115, -1, -1, 118, 119, 1, -1, 3,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, -1,
- -1, 134, 135, 136, -1, 19, -1, 21, 22, 23,
- 24, -1, -1, 146, -1, 148, 30, 31, 32, 33,
- 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
- -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
- 54, 55, 56, -1, 58, 59, 60, -1, -1, 63,
- -1, -1, 66, 67, -1, 69, 70, 71, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 84, 85, -1, -1, -1, -1, -1, 91, -1, -1,
- 94, 95, -1, 97, 98, -1, 100, -1, -1, -1,
- 104, -1, 106, 107, 108, -1, 110, 111, 112, -1,
- 114, 115, -1, -1, 118, 119, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 134, 135, 136, -1, -1, 139, -1, -1, -1, -1,
- -1, -1, 146, 1, 148, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, -1, 14, 15, -1, -1,
- -1, 19, -1, 21, 22, 23, 24, -1, -1, -1,
- -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
- -1, 39, -1, -1, -1, -1, -1, 45, -1, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
- 58, 59, 60, -1, -1, 63, -1, -1, 66, 67,
- -1, 69, 70, 71, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 84, 85, -1, -1,
- -1, -1, -1, 91, -1, -1, 94, 95, -1, 97,
- 98, -1, 100, -1, -1, -1, 104, -1, 106, 107,
- 108, -1, 110, 111, 112, -1, 114, 115, -1, -1,
- 118, 119, 1, -1, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, -1, -1, 134, 135, 136, -1,
- 19, -1, 21, 22, 23, 24, -1, -1, 146, -1,
- 148, 30, 31, 32, 33, 34, 35, 36, -1, -1,
- 39, -1, -1, -1, -1, -1, 45, -1, 47, 48,
- 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
- 59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
- 69, 70, 71, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 84, 85, -1, -1, -1,
- -1, -1, 91, -1, -1, 94, 95, -1, 97, 98,
- -1, 100, -1, -1, -1, 104, -1, 106, 107, 108,
- -1, 110, 111, 112, -1, 114, 115, -1, -1, 118,
- 119, 1, -1, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, -1, -1, 134, 135, 136, -1, 19,
- -1, 21, 22, 23, 24, -1, 145, 146, -1, 148,
- 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
- -1, -1, -1, -1, -1, 45, -1, 47, 48, 49,
- 50, 51, 52, 53, 54, 55, 56, -1, 58, 59,
- 60, -1, -1, 63, -1, -1, 66, 67, -1, 69,
- 70, 71, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 84, 85, -1, -1, -1, -1,
- -1, 91, -1, -1, 94, 95, -1, 97, 98, -1,
- 100, -1, -1, -1, 104, -1, 106, 107, 108, -1,
- 110, 111, 112, -1, 114, 115, -1, -1, 118, 119,
- 1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, 12, -1, -1, 134, 135, 136, -1, 19, -1,
- 21, 22, 23, 24, -1, 145, 146, -1, 148, 30,
- 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
- -1, -1, -1, -1, 45, -1, 47, 48, 49, 50,
- 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
- -1, -1, 63, -1, -1, 66, 67, -1, 69, 70,
- 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 84, 85, -1, -1, -1, -1, -1,
- 91, -1, -1, 94, 95, -1, 97, 98, -1, 100,
- -1, -1, -1, 104, -1, 106, 107, 108, -1, 110,
- 111, 112, -1, 114, 115, -1, -1, 118, 119, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 134, 135, 136, -1, -1, 139, -1,
- -1, -1, -1, -1, -1, 146, 1, 148, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, -1, -1,
- 15, -1, -1, -1, 19, -1, 21, 22, 23, 24,
- -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
- 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
- 45, -1, 47, 48, 49, 50, 51, 52, 53, 54,
- 55, 56, -1, 58, 59, 60, -1, -1, 63, -1,
- -1, 66, 67, -1, 69, 70, 71, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
- 85, -1, -1, -1, -1, -1, 91, -1, -1, 94,
- 95, -1, 97, 98, -1, 100, -1, -1, -1, 104,
- -1, 106, 107, 108, -1, 110, 111, 112, -1, 114,
- 115, -1, -1, 118, 119, -1, -1, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, -1, -1, 134,
- 135, 136, -1, 19, -1, 21, 22, 23, 24, -1,
- -1, 146, -1, 148, 30, 31, 32, 33, 34, 35,
- 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
- 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
- 56, -1, 58, 59, 60, -1, -1, 63, -1, -1,
- 66, 67, -1, 69, 70, 71, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 84, 85,
- -1, -1, -1, -1, -1, 91, -1, -1, 94, 95,
- -1, 97, 98, -1, 100, -1, -1, -1, 104, -1,
- 106, 107, 108, -1, 110, 111, 112, -1, 114, 115,
- -1, -1, 118, 119, -1, -1, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, 12, -1, -1, 134, 135,
- 136, -1, 19, -1, 21, 22, 23, 24, -1, -1,
- 146, -1, 148, 30, 31, 32, 33, 34, 35, 36,
- -1, -1, 39, -1, -1, -1, -1, -1, 45, -1,
- 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
- -1, 58, 59, 60, -1, -1, 63, -1, -1, 66,
- 67, -1, 69, 70, 71, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 84, 85, -1,
- -1, -1, -1, -1, 91, -1, -1, 94, 95, -1,
- 97, 98, -1, 100, -1, -1, -1, 104, -1, 106,
- 107, 108, -1, 110, 111, 112, -1, 114, 115, -1,
- -1, 118, 119, -1, -1, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, -1, -1, -1, 134, 135, 136,
- -1, 19, -1, 21, 22, 23, 24, -1, -1, 146,
- -1, 148, 30, 31, 32, 33, 34, 35, 36, -1,
- -1, 39, -1, -1, -1, -1, -1, -1, -1, -1,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
- 58, 59, 60, -1, -1, 63, -1, -1, 66, 67,
- -1, 69, 70, 71, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 84, 85, -1, -1,
- -1, -1, -1, 91, -1, -1, 94, 95, -1, 97,
- 98, -1, -1, -1, -1, -1, 104, -1, 106, 107,
- 108, -1, 110, 111, 112, -1, 114, 115, -1, -1,
- 118, 119, -1, -1, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, -1, -1, -1, 134, 135, 136, -1,
- 19, -1, 21, 22, 23, 24, -1, -1, 146, -1,
- 148, 30, 31, 32, 33, 34, 35, 36, -1, -1,
- 39, -1, -1, -1, -1, -1, -1, -1, -1, 48,
- 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
- 59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
- 69, 70, 71, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 84, 85, -1, -1, -1,
- -1, -1, 91, -1, -1, 94, 95, -1, 97, 98,
- -1, -1, -1, -1, -1, 104, -1, 106, 107, 108,
- -1, 110, 111, 112, -1, 114, 115, -1, -1, 118,
- 119, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 134, 135, 136, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 146, -1, 148,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
- 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, -1, -1, -1, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, -1, -1, -1,
- -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
- 53, 54, 55, 56, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 70, 71, 72,
- 73, 74, 75, 76, 77, -1, -1, 80, 81, -1,
- -1, -1, -1, 86, 87, 88, 89, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 100, 101, 102,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, -1, 135, 136, -1, -1, -1, -1, -1, -1,
- 143, 144, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, -1, -1, -1, -1, -1, -1, -1, 19, -1,
- 21, 22, 23, 24, -1, 26, -1, -1, -1, 30,
- 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
- -1, -1, -1, -1, -1, -1, -1, 48, 49, 50,
- 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
- -1, -1, 63, -1, -1, 66, 67, -1, 69, 70,
- 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 84, 85, -1, -1, -1, -1, -1,
- 91, -1, -1, 94, 95, -1, 97, 98, -1, 100,
- -1, 102, 103, 104, -1, 106, 107, 108, -1, 110,
- 111, 112, -1, 114, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 134, 135, 136, -1, 138, -1, -1,
- -1, -1, -1, 144, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, -1, -1, -1, -1, -1, -1, -1,
- 19, -1, 21, 22, 23, 24, -1, 26, -1, -1,
- -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
- 39, -1, -1, -1, -1, -1, -1, -1, -1, 48,
- 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
- 59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
- 69, 70, 71, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 84, 85, -1, -1, -1,
- -1, -1, 91, -1, -1, 94, 95, -1, 97, 98,
- -1, 100, -1, 102, 103, 104, -1, 106, 107, 108,
- -1, 110, 111, 112, -1, 114, -1, -1, -1, -1,
- -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, -1, -1, -1, -1, 134, 135, 136, 19, 138,
- 21, 22, 23, 24, -1, 144, -1, -1, -1, 30,
- 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
- -1, -1, -1, -1, -1, -1, -1, 48, 49, 50,
- 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
- -1, -1, 63, -1, -1, 66, 67, -1, 69, 70,
- 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 84, 85, -1, -1, -1, -1, -1,
- 91, 92, -1, 94, 95, -1, 97, 98, -1, 100,
- -1, 102, 103, 104, -1, 106, 107, 108, -1, 110,
- 111, 112, -1, 114, -1, -1, -1, -1, -1, -1,
- 121, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- -1, -1, -1, 134, 135, 136, -1, 19, -1, 21,
- 22, 23, 24, 144, -1, -1, -1, -1, 30, 31,
- 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
- -1, -1, -1, -1, -1, -1, 48, 49, 50, 51,
- 52, 53, 54, 55, 56, -1, 58, 59, 60, -1,
- -1, 63, -1, -1, 66, 67, -1, 69, 70, 71,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 84, 85, -1, -1, -1, -1, -1, 91,
- 92, -1, 94, 95, -1, 97, 98, -1, 100, -1,
- 102, 103, 104, -1, 106, 107, 108, -1, 110, 111,
- 112, -1, 114, -1, -1, -1, -1, -1, -1, 121,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
- -1, -1, 134, 135, 136, -1, 19, -1, 21, 22,
- 23, 24, 144, -1, -1, -1, -1, 30, 31, 32,
- 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
- -1, -1, -1, -1, -1, 48, 49, 50, 51, 52,
- 53, 54, 55, 56, -1, 58, 59, 60, -1, -1,
- 63, -1, -1, 66, 67, -1, 69, 70, 71, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 84, 85, -1, -1, -1, -1, -1, 91, -1,
- -1, 94, 95, -1, 97, 98, -1, 100, -1, 102,
- 103, 104, -1, 106, 107, 108, -1, 110, 111, 112,
- -1, 114, -1, -1, -1, -1, -1, -1, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, -1, -1, -1,
- -1, 134, 135, 136, 19, -1, 21, 22, 23, 24,
- -1, 144, -1, -1, -1, 30, 31, 32, 33, 34,
- 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
- -1, -1, -1, 48, 49, 50, 51, 52, 53, 54,
- 55, 56, -1, 58, 59, 60, -1, -1, 63, -1,
- -1, 66, 67, -1, 69, 70, 71, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
- 85, -1, -1, -1, -1, -1, 91, -1, -1, 94,
- 95, -1, 97, 98, -1, 100, -1, 102, 103, 104,
- -1, 106, 107, 108, -1, 110, 111, 112, -1, 114,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 134,
- 135, 136, -1, -1, -1, -1, -1, -1, -1, 144,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
- 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, -1, -1, -1, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, -1, -1, -1,
- -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
- 53, 54, 55, 56, -1, -1, -1, -1, -1, -1,
- 63, -1, -1, -1, -1, -1, -1, 70, 71, 72,
- 73, 74, 75, 76, 77, -1, -1, 80, 81, -1,
- -1, -1, -1, 86, 87, 88, 89, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 100, 101, 102,
- -1, -1, -1, -1, 107, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, -1, 135, 136, -1, -1, -1, -1, -1, -1,
- 143, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
- -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
- 52, 53, 54, 55, 56, -1, -1, -1, -1, -1,
- -1, 63, -1, -1, -1, -1, -1, -1, 70, 71,
- 72, 73, 74, 75, 76, 77, -1, -1, 80, 81,
- -1, -1, -1, -1, 86, 87, 88, 89, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 100, 101,
- 102, -1, -1, -1, -1, 107, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, -1, 135, 136, -1, -1, -1, -1, -1,
- -1, 143, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, -1, -1, -1, 30,
- 31, 32, 33, 34, 35, 36, 37, 38, 39, -1,
- -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
- 51, 52, -1, -1, 55, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
- 71, 72, 73, 74, 75, 76, 77, -1, -1, 80,
- 81, -1, -1, -1, -1, 86, 87, 88, 89, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 100,
- 101, 102, -1, -1, -1, 106, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, -1, 135, 136, -1, -1, -1, -1,
- -1, -1, 143, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, -1, -1, -1,
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
- 50, 51, 52, -1, -1, 55, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 70, 71, 72, 73, 74, 75, 76, 77, -1, -1,
- 80, 81, -1, -1, -1, -1, 86, 87, 88, 89,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 100, 101, 102, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 124, 125, 126, 127, 128, 129,
- 130, 131, 132, 133, -1, 135, 136, -1, -1, -1,
- -1, -1, -1, 143, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, -1, -1, -1, -1, -1, -1, -1,
- 19, -1, 21, 22, 23, 24, -1, -1, -1, -1,
- -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
- 39, -1, -1, -1, -1, -1, -1, -1, -1, 48,
- 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
- 59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
- 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 91, -1, -1, 94, 95, -1, 97, 98,
- -1, -1, -1, -1, -1, 104, -1, 106, 107, 108,
- -1, 110, 111, 112, -1, 114, -1, -1, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, -1, -1, -1,
- -1, -1, -1, -1, 19, 134, 21, 22, 23, 24,
- -1, -1, -1, 142, -1, 30, 31, 32, 33, 34,
- 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
- -1, -1, -1, 48, 49, 50, 51, 52, 53, 54,
- 55, 56, -1, 58, 59, 60, -1, -1, 63, -1,
- -1, 66, 67, -1, 69, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 91, -1, -1, 94,
- 95, -1, 97, 98, -1, -1, -1, -1, -1, 104,
- -1, 106, 107, 108, -1, 110, 111, 112, -1, 114,
- -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, 12, -1, -1, -1, -1, -1, -1, 19, 134,
- 21, 22, 23, 24, -1, -1, -1, 142, -1, 30,
- 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
- -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
- 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
- -1, -1, 63, -1, -1, 66, 67, -1, 69, 70,
- 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 84, 85, -1, -1, -1, -1, -1,
- 91, -1, -1, 94, 95, -1, 97, 98, -1, 100,
- -1, -1, -1, 104, -1, 106, 107, 108, -1, 110,
- 111, 112, -1, 114, -1, -1, -1, -1, -1, -1,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
- -1, -1, -1, 134, 135, 136, 19, -1, 21, 22,
- 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
- 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
- -1, -1, 45, -1, 47, 48, 49, 50, 51, 52,
- 53, 54, 55, 56, -1, 58, 59, 60, -1, -1,
- 63, -1, -1, 66, 67, -1, 69, 70, 71, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 84, 85, -1, -1, -1, -1, -1, 91, -1,
- -1, 94, 95, -1, 97, 98, -1, 100, -1, -1,
- -1, 104, -1, 106, 107, 108, -1, 110, 111, 112,
- -1, 114, -1, -1, -1, -1, -1, -1, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, -1, -1, -1,
- -1, 134, 135, 136, 19, -1, 21, 22, 23, 24,
- -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
- 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
- -1, -1, -1, 48, 49, 50, 51, 52, 53, 54,
- 55, 56, -1, 58, 59, 60, -1, -1, 63, -1,
- -1, 66, 67, -1, 69, 70, 71, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
- 85, -1, -1, -1, -1, -1, 91, -1, -1, 94,
- 95, -1, 97, 98, -1, 100, -1, 102, 103, 104,
- -1, 106, 107, 108, -1, 110, 111, 112, -1, 114,
- -1, -1, -1, -1, -1, -1, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, -1, -1, -1, -1, 134,
- 135, 136, 19, -1, 21, 22, 23, 24, -1, -1,
- -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
- -1, -1, 39, -1, -1, -1, -1, -1, -1, -1,
- -1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
- -1, 58, 59, 60, -1, -1, 63, -1, -1, 66,
- 67, -1, 69, 70, 71, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 84, 85, -1,
- -1, -1, -1, -1, 91, -1, -1, 94, 95, -1,
- 97, 98, -1, 100, -1, 102, 103, 104, -1, 106,
- 107, 108, -1, 110, 111, 112, -1, 114, -1, -1,
- -1, -1, -1, -1, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, -1, -1, -1, -1, 134, 135, 136,
- 19, -1, 21, 22, 23, 24, -1, -1, -1, -1,
- -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
- 39, -1, -1, -1, -1, -1, -1, -1, -1, 48,
- 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
- 59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
- 69, 70, 71, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 84, 85, -1, -1, -1,
- -1, -1, 91, -1, -1, 94, 95, -1, 97, 98,
- -1, 100, -1, 102, 103, 104, -1, 106, 107, 108,
- -1, 110, 111, 112, -1, 114, -1, -1, -1, -1,
- -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, -1, -1, -1, -1, 134, 135, 136, 19, -1,
- 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
- 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
- -1, -1, -1, -1, -1, -1, -1, 48, 49, 50,
- 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
- -1, -1, 63, -1, -1, 66, 67, -1, 69, 70,
- 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 84, 85, -1, -1, -1, -1, -1,
- 91, -1, -1, 94, 95, -1, 97, 98, -1, 100,
- -1, 102, 103, 104, -1, 106, 107, 108, -1, 110,
- 111, 112, -1, 114, -1, -1, -1, -1, -1, -1,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
- -1, -1, -1, 134, 135, 136, 19, -1, 21, 22,
- 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
- 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
- -1, -1, -1, -1, -1, 48, 49, 50, 51, 52,
- 53, 54, 55, 56, -1, 58, 59, 60, -1, -1,
- 63, -1, -1, 66, 67, -1, 69, 70, 71, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 84, 85, -1, -1, -1, -1, -1, 91, -1,
- -1, 94, 95, -1, 97, 98, -1, 100, -1, 102,
- -1, 104, -1, 106, 107, 108, -1, 110, 111, 112,
- -1, 114, -1, -1, -1, -1, -1, -1, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, -1, -1, -1,
- -1, 134, 135, 136, 19, -1, 21, 22, 23, 24,
- -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
- 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
- -1, -1, -1, 48, 49, 50, 51, 52, 53, 54,
- 55, 56, -1, 58, 59, 60, -1, -1, 63, -1,
- -1, 66, 67, -1, 69, 70, 71, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
- 85, -1, -1, -1, -1, -1, 91, -1, -1, 94,
- 95, -1, 97, 98, -1, -1, -1, 102, 103, 104,
- -1, 106, 107, 108, -1, 110, 111, 112, -1, 114,
- -1, -1, -1, -1, -1, -1, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, -1, -1, -1, -1, 134,
- 135, 136, 19, -1, 21, 22, 23, 24, -1, -1,
- -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
- -1, -1, 39, -1, -1, -1, -1, -1, -1, -1,
- -1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
- -1, 58, 59, 60, -1, -1, 63, -1, -1, 66,
- 67, -1, 69, 70, 71, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 84, 85, -1,
- -1, -1, -1, -1, 91, -1, -1, 94, 95, -1,
- 97, 98, -1, 100, -1, 102, -1, 104, -1, 106,
- 107, 108, -1, 110, 111, 112, -1, 114, -1, -1,
- -1, -1, -1, -1, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, -1, -1, -1, -1, 134, 135, 136,
- 19, -1, 21, 22, 23, 24, -1, -1, -1, -1,
- -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
- 39, -1, -1, -1, -1, -1, -1, -1, -1, 48,
- 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
- 59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
- 69, 70, 71, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 84, 85, -1, -1, -1,
- -1, -1, 91, -1, -1, 94, 95, -1, 97, 98,
- -1, -1, -1, 102, -1, 104, -1, 106, 107, 108,
- -1, 110, 111, 112, -1, 114, -1, -1, -1, -1,
- -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, -1, -1, -1, -1, 134, 135, 136, 19, -1,
- 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
- 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
- -1, -1, -1, -1, -1, -1, -1, 48, 49, 50,
- 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
- -1, -1, 63, -1, -1, 66, 67, -1, 69, 70,
- 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 84, 85, -1, -1, -1, -1, -1,
- 91, -1, -1, 94, 95, -1, 97, 98, -1, 100,
- -1, -1, -1, 104, -1, 106, 107, 108, -1, 110,
- 111, 112, -1, 114, -1, -1, -1, -1, -1, -1,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
- -1, -1, -1, 134, 135, 136, 19, -1, 21, 22,
- 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
- 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
- -1, -1, -1, -1, -1, 48, 49, 50, 51, 52,
- 53, 54, 55, 56, -1, 58, 59, 60, -1, -1,
- 63, -1, -1, 66, 67, -1, 69, 70, 71, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 84, 85, -1, -1, -1, -1, -1, 91, -1,
- -1, 94, 95, -1, 97, 98, -1, 100, -1, -1,
- -1, 104, -1, 106, 107, 108, -1, 110, 111, 112,
- -1, 114, -1, -1, -1, -1, -1, -1, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, -1, -1, -1,
- -1, 134, 135, 136, 19, -1, 21, 22, 23, 24,
- -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
- 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
- -1, -1, -1, 48, 49, 50, 51, 52, 53, 54,
- 55, 56, -1, 58, 59, 60, -1, -1, 63, -1,
- -1, 66, 67, -1, 69, 70, 71, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
- 85, -1, -1, -1, -1, -1, 91, -1, -1, 94,
- 95, -1, 97, 98, -1, 100, -1, -1, -1, 104,
- -1, 106, 107, 108, -1, 110, 111, 112, -1, 114,
- -1, -1, -1, -1, -1, -1, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, -1, -1, -1, -1, 134,
- 135, 136, 19, -1, 21, 22, 23, 24, -1, -1,
- -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
- -1, -1, 39, -1, -1, -1, -1, -1, -1, -1,
- -1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
- -1, 58, 59, 60, -1, -1, 63, -1, -1, 66,
- 67, -1, 69, 70, 71, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 84, 85, -1,
- -1, -1, -1, -1, 91, -1, -1, 94, 95, -1,
- 97, 98, -1, 100, -1, -1, -1, 104, -1, 106,
- 107, 108, -1, 110, 111, 112, -1, 114, -1, -1,
- -1, -1, -1, -1, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, -1, -1, -1, -1, 134, 135, 136,
- 19, -1, 21, 22, 23, 24, -1, -1, -1, -1,
- -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
- 39, -1, -1, -1, -1, -1, -1, -1, -1, 48,
- 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
- 59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
- 69, 70, 71, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 84, 85, -1, -1, -1,
- -1, -1, 91, -1, -1, 94, 95, -1, 97, 98,
- -1, 100, -1, -1, -1, 104, -1, 106, 107, 108,
- -1, 110, 111, 112, -1, 114, -1, -1, -1, -1,
- -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, -1, -1, -1, -1, 134, 135, 136, 19, -1,
- 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
- 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
- -1, -1, -1, -1, -1, -1, -1, 48, 49, 50,
- 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
- -1, -1, 63, -1, -1, 66, 67, -1, 69, 70,
- 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 84, 85, -1, -1, -1, -1, -1,
- 91, -1, -1, 94, 95, -1, 97, 98, -1, -1,
- -1, -1, -1, 104, -1, 106, 107, 108, -1, 110,
- 111, 112, -1, 114, -1, -1, -1, -1, -1, -1,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
- -1, -1, -1, 134, 135, 136, 19, -1, 21, 22,
- 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
- 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
- -1, -1, -1, -1, -1, 48, 49, 50, 51, 52,
- 53, 54, 55, 56, -1, 58, 59, 60, -1, -1,
- 63, -1, -1, 66, 67, -1, 69, 70, 71, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 84, 85, -1, -1, -1, -1, -1, 91, -1,
- -1, 94, 95, -1, 97, 98, -1, -1, -1, -1,
- -1, 104, -1, 106, 107, 108, -1, 110, 111, 112,
- -1, 114, -1, -1, -1, -1, -1, -1, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, -1, -1, -1,
- -1, 134, 135, 136, 19, -1, 21, 22, 23, 24,
- -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
- 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
- -1, -1, -1, 48, 49, 50, 51, 52, 53, 54,
- 55, 56, -1, 58, 59, 60, -1, -1, 63, -1,
- -1, 66, 67, -1, 69, 70, 71, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
- 85, -1, -1, -1, -1, -1, 91, -1, -1, 94,
- 95, -1, 97, 98, -1, -1, -1, -1, -1, 104,
- -1, 106, 107, 108, -1, 110, 111, 112, -1, 114,
- -1, -1, -1, -1, -1, -1, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, -1, -1, -1, -1, 134,
- 135, 136, 19, -1, 21, 22, 23, 24, -1, -1,
- -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
- -1, -1, 39, -1, -1, -1, -1, -1, -1, -1,
- -1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
- -1, 58, 59, 60, -1, -1, 63, -1, -1, 66,
- 67, -1, 69, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 88, -1, -1, 91, -1, -1, 94, 95, -1,
- 97, 98, -1, -1, -1, -1, -1, 104, -1, 106,
- 107, 108, -1, 110, 111, 112, -1, 114, -1, -1,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
- -1, -1, -1, -1, -1, -1, 19, 134, 21, 22,
- 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
- 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
- -1, -1, -1, -1, -1, 48, 49, 50, 51, 52,
- 53, 54, 55, 56, -1, 58, 59, 60, -1, -1,
- 63, -1, -1, 66, 67, -1, 69, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 91, -1,
- -1, 94, 95, -1, 97, 98, -1, 100, -1, -1,
- -1, 104, -1, 106, 107, 108, -1, 110, 111, 112,
- -1, 114, -1, -1, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, -1, -1, -1, -1, -1, -1, -1,
- 19, 134, 21, 22, 23, 24, -1, -1, -1, -1,
- -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
- 39, -1, -1, -1, -1, -1, -1, -1, -1, 48,
- 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
- 59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
- 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 91, -1, -1, 94, 95, -1, 97, 98,
- -1, 100, -1, -1, -1, 104, -1, 106, 107, 108,
- -1, 110, 111, 112, -1, 114, -1, -1, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, -1, -1, -1,
- -1, -1, -1, -1, 19, 134, 21, 22, 23, 24,
- -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
- 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
- -1, -1, -1, 48, 49, 50, 51, 52, 53, 54,
- 55, 56, -1, 58, 59, 60, -1, -1, 63, -1,
- -1, 66, 67, -1, 69, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 91, -1, -1, 94,
- 95, -1, 97, 98, -1, -1, -1, -1, -1, 104,
- -1, 106, 107, 108, -1, 110, 111, 112, -1, 114,
- -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, -1, -1, -1, -1, -1, -1, -1, 19, 134,
- 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
- 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
- -1, -1, -1, -1, -1, -1, -1, 48, 49, 50,
- 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
- -1, -1, 63, -1, -1, 66, 67, -1, 69, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 91, -1, -1, 94, 95, -1, 97, 98, -1, -1,
- -1, -1, -1, 104, -1, 106, 107, 108, -1, 110,
- 111, 112, -1, 114, -1, -1, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, -1, -1, -1, -1, -1,
- -1, -1, 19, 134, 21, 22, 23, 24, -1, -1,
- -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
- -1, -1, 39, -1, -1, -1, -1, -1, -1, -1,
- -1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
- -1, 58, 59, 60, -1, -1, 63, -1, -1, 66,
- 67, -1, 69, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 91, -1, -1, 94, 95, -1,
- 97, 98, -1, -1, -1, -1, -1, 104, -1, 106,
- 107, 108, -1, 110, 111, 112, -1, 114, -1, -1,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
- -1, -1, -1, -1, -1, -1, 19, 134, 21, 22,
- 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
- 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
- -1, -1, -1, -1, -1, 48, 49, 50, 51, 52,
- 53, 54, 55, 56, -1, 58, 59, 60, -1, -1,
- 63, -1, -1, 66, 67, -1, 69, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 91, -1,
- -1, 94, 95, -1, 97, 98, -1, -1, 51, 52,
- -1, 104, 55, 106, 107, 108, -1, 110, 111, 112,
- -1, 114, -1, -1, -1, -1, -1, 70, 71, 72,
- 73, 74, 75, 76, 77, -1, -1, 80, 81, -1,
- -1, 134, -1, 86, 87, 88, 89, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 100, 101, 102,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, -1, 135, 136, 51, 52, -1, -1, 55, -1,
- 143, 144, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 70, 71, 72, 73, 74, 75, 76,
- 77, -1, -1, 80, 81, -1, -1, -1, -1, 86,
- 87, 88, 89, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 100, 101, 102, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 124, 125, 126,
- 127, 128, 129, 130, 131, 132, 133, -1, 135, 136,
- 51, 52, -1, -1, 55, -1, 143, 144, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
- 71, 72, 73, 74, 75, 76, 77, -1, -1, 80,
- 81, -1, -1, -1, -1, 86, 87, 88, 89, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 100,
- 101, 102, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, -1, 135, 136, 51, 52, -1, -1,
- 55, -1, 143, 144, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 70, 71, 72, 73, 74,
- 75, 76, 77, -1, -1, 80, 81, -1, -1, -1,
- -1, 86, 87, 88, 89, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 100, 101, 102, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 124,
- 125, 126, 127, 128, 129, 130, 131, 132, 133, -1,
- 135, 136, 51, 52, -1, -1, 55, -1, 143, 144,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 70, 71, 72, 73, 74, 75, 76, 77, -1,
- -1, 80, 81, -1, -1, -1, -1, 86, 87, 88,
- 89, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 100, 101, 102, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, -1, 135, 136, 51, 52,
- -1, -1, 55, -1, 143, 144, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 70, 71, 72,
- 73, 74, 75, 76, 77, -1, -1, 80, 81, -1,
- -1, -1, -1, 86, 87, 88, 89, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 100, 101, 102,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, -1, 135, 136, 51, 52, -1, -1, 55, -1,
- 143, 144, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 70, 71, 72, 73, 74, 75, 76,
- 77, -1, -1, 80, 81, -1, -1, -1, -1, 86,
- 87, 88, 89, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 100, 101, 102, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 124, 125, 126,
- 127, 128, 129, 130, 131, 132, 133, -1, 135, 136,
- 51, 52, -1, -1, 55, -1, 143, 144, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
- 71, 72, 73, 74, 75, 76, 77, -1, -1, 80,
- 81, -1, -1, -1, -1, 86, 87, 88, 89, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 100,
- 101, 102, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, -1, 135, 136, 51, 52, -1, -1,
- 55, -1, 143, 144, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 70, 71, 72, 73, 74,
- 75, 76, 77, -1, -1, 80, 81, -1, -1, -1,
- -1, 86, 87, 88, 89, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 100, 101, 102, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 124,
- 125, 126, 127, 128, 129, 130, 131, 132, 133, -1,
- 135, 136, 51, 52, -1, -1, 55, -1, 143, 144,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 70, 71, 72, 73, 74, 75, 76, 77, -1,
- -1, 80, 81, -1, -1, -1, -1, 86, 87, 88,
- 89, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 100, 101, 102, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, -1, 135, 136, 51, 52,
- -1, -1, 55, -1, 143, 144, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 70, 71, 72,
- 73, 74, 75, 76, 77, -1, -1, 80, 81, -1,
- -1, -1, -1, 86, 87, 88, 89, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 100, 101, 102,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, -1, 135, 136, 51, 52, -1, -1, 55, -1,
- 143, 144, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 70, 71, 72, 73, 74, 75, 76,
- 77, -1, -1, 80, 81, -1, -1, -1, -1, 86,
- 87, 88, 89, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 100, 101, 102, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 124, 125, 126,
- 127, 128, 129, 130, 131, 132, 133, -1, 135, 136,
- 51, 52, -1, -1, 55, -1, 143, 144, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
- 71, 72, 73, 74, 75, 76, 77, -1, -1, 80,
- 81, -1, -1, -1, -1, 86, 87, 88, 89, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 100,
- 101, 102, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, -1, 135, 136, 51, 52, -1, -1,
- 55, -1, 143, 144, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 70, 71, 72, 73, 74,
- 75, 76, 77, -1, -1, 80, 81, -1, -1, -1,
- -1, 86, 87, 88, 89, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 100, 101, 102, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 124,
- 125, 126, 127, 128, 129, 130, 131, 132, 133, -1,
- 135, 136, 51, 52, -1, -1, 55, -1, 143, 144,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 70, 71, 72, 73, 74, 75, 76, 77, -1,
- -1, 80, 81, -1, -1, -1, -1, 86, 87, 88,
- 89, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 100, 101, 102, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 44, -1, -1,
- -1, -1, -1, -1, -1, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, -1, 135, 136, -1, -1,
- -1, -1, -1, -1, 143, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, -1, -1, -1,
- -1, 88, 89, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 101, -1, -1, -1, -1, 44,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 122, -1, 124, 125, 126,
- 127, 128, 129, 130, 131, 132, 133, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, -1,
- -1, -1, -1, 88, 89, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 101, -1, -1, -1,
- -1, 44, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 122, -1, 124,
- 125, 126, 127, 128, 129, 130, 131, 132, 133, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
- 83, -1, -1, -1, -1, 88, 89, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 101, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 122,
- -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, -1, -1, -1, -1, 88, 89, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 101, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 122, -1, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, -1, -1, 148, -1, 88,
- 89, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 101, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 122, -1, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, -1, -1, -1, -1, -1,
- -1, -1, -1, 142, 72, 73, 74, 75, 76, 77,
- 78, 79, 80, 81, 82, 83, -1, -1, -1, -1,
- 88, 89, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 101, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 122, -1, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, -1, -1, -1, -1,
- -1, -1, -1, -1, 142, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, -1, -1, -1,
- -1, 88, 89, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 101, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 122, -1, 124, 125, 126,
- 127, 128, 129, 130, 131, 132, 133, -1, -1, -1,
- -1, -1, -1, -1, -1, 142, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, 83, -1, -1,
- -1, -1, 88, 89, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 101, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 122, -1, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133, -1, -1,
- -1, -1, -1, -1, -1, -1, 142, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, -1,
- -1, -1, -1, 88, 89, -1, -1, -1, 93, -1,
- -1, -1, -1, -1, -1, -1, 101, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 122, -1, 124,
- 125, 126, 127, 128, 129, 130, 131, 132, 133, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
- 83, -1, -1, -1, -1, 88, 89, -1, -1, -1,
- 93, -1, -1, -1, -1, -1, -1, -1, 101, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 122,
- -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, -1, -1, -1, -1, 88, 89, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 101, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 122, -1, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, -1, -1, -1, -1, 88,
- 89, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 101, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133
-};
-
- /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
-static const yytype_int16 yystos[] =
-{
- 0, 150, 151, 0, 1, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 19, 21, 22, 23, 24,
- 30, 31, 32, 33, 34, 35, 36, 39, 45, 46,
- 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
- 58, 59, 60, 63, 66, 67, 69, 70, 71, 84,
- 85, 91, 94, 95, 97, 98, 100, 104, 106, 107,
- 108, 110, 111, 112, 114, 134, 135, 136, 152, 153,
- 154, 159, 161, 163, 164, 165, 168, 169, 172, 173,
- 175, 176, 177, 179, 180, 189, 203, 220, 241, 242,
- 252, 253, 254, 258, 259, 260, 266, 267, 268, 270,
- 271, 272, 273, 274, 275, 312, 325, 154, 21, 22,
- 30, 31, 32, 39, 51, 55, 69, 88, 91, 94,
- 134, 164, 165, 181, 182, 203, 220, 272, 275, 312,
- 182, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 45, 46, 47, 48, 49,
- 50, 51, 52, 55, 70, 71, 72, 73, 74, 75,
- 76, 77, 80, 81, 86, 87, 88, 89, 100, 101,
- 102, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, 135, 136, 143, 144, 183, 187, 188, 274, 306,
- 204, 91, 163, 164, 165, 167, 180, 189, 220, 272,
- 273, 275, 167, 210, 212, 69, 91, 173, 180, 220,
- 225, 272, 275, 33, 34, 35, 36, 48, 49, 50,
- 51, 55, 106, 183, 184, 185, 268, 115, 118, 119,
- 146, 148, 167, 262, 263, 264, 318, 322, 323, 324,
- 51, 100, 102, 103, 135, 172, 189, 195, 198, 201,
- 254, 309, 311, 195, 195, 144, 192, 193, 196, 197,
- 325, 192, 196, 144, 319, 323, 184, 155, 138, 189,
- 220, 189, 189, 189, 55, 1, 94, 157, 158, 159,
- 174, 175, 325, 205, 207, 190, 201, 309, 325, 189,
- 308, 309, 325, 91, 142, 179, 220, 272, 275, 208,
- 53, 54, 56, 63, 107, 183, 269, 63, 64, 65,
- 116, 117, 255, 256, 61, 255, 62, 255, 63, 255,
- 63, 255, 58, 59, 168, 189, 189, 318, 324, 40,
- 41, 42, 43, 44, 37, 38, 51, 53, 54, 55,
- 56, 69, 94, 100, 101, 102, 103, 128, 131, 144,
- 278, 279, 280, 281, 282, 285, 286, 287, 288, 290,
- 291, 292, 293, 295, 296, 297, 300, 301, 302, 303,
- 304, 325, 278, 280, 28, 239, 121, 142, 94, 100,
- 176, 121, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 88, 89, 93, 101, 122, 124,
- 125, 126, 127, 128, 129, 130, 131, 132, 133, 90,
- 105, 140, 147, 316, 90, 316, 317, 26, 138, 243,
- 254, 92, 92, 192, 196, 243, 163, 51, 55, 181,
- 58, 59, 279, 125, 276, 90, 140, 316, 219, 307,
- 90, 147, 315, 156, 157, 55, 278, 278, 16, 221,
- 322, 121, 90, 140, 316, 92, 92, 221, 167, 167,
- 55, 90, 140, 316, 25, 107, 142, 265, 318, 115,
- 264, 20, 246, 322, 57, 310, 189, 189, 189, 93,
- 142, 199, 200, 325, 310, 199, 200, 85, 194, 195,
- 201, 309, 325, 195, 163, 318, 320, 163, 160, 138,
- 157, 90, 316, 92, 159, 174, 145, 318, 324, 320,
- 159, 320, 141, 200, 321, 324, 200, 321, 139, 321,
- 55, 176, 177, 178, 142, 90, 140, 316, 144, 237,
- 290, 63, 255, 257, 261, 262, 63, 256, 61, 62,
- 63, 63, 101, 101, 154, 167, 167, 167, 167, 159,
- 163, 163, 57, 121, 294, 85, 290, 295, 121, 156,
- 189, 142, 305, 325, 51, 142, 305, 322, 142, 289,
- 189, 142, 289, 51, 142, 289, 51, 121, 156, 240,
- 100, 168, 189, 201, 202, 174, 142, 179, 142, 161,
- 162, 168, 180, 189, 191, 202, 220, 275, 189, 189,
- 189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
- 189, 189, 51, 189, 189, 189, 189, 189, 189, 189,
- 189, 189, 189, 189, 189, 51, 52, 55, 187, 192,
- 313, 314, 194, 201, 51, 52, 55, 187, 192, 313,
- 51, 55, 313, 245, 244, 162, 189, 191, 162, 191,
- 99, 170, 217, 277, 216, 51, 55, 181, 313, 194,
- 313, 156, 163, 166, 15, 13, 248, 325, 121, 121,
- 157, 16, 51, 55, 194, 51, 55, 157, 27, 222,
- 322, 222, 51, 55, 194, 51, 55, 214, 186, 157,
- 246, 189, 201, 15, 261, 189, 189, 319, 100, 189,
- 198, 309, 189, 311, 320, 145, 318, 200, 200, 320,
- 145, 184, 152, 139, 191, 320, 159, 206, 309, 176,
- 178, 51, 55, 194, 51, 55, 290, 209, 63, 157,
- 262, 189, 189, 51, 100, 226, 295, 320, 320, 142,
- 172, 189, 15, 51, 282, 287, 304, 288, 293, 300,
- 302, 295, 297, 302, 51, 295, 172, 189, 15, 79,
- 126, 231, 232, 325, 189, 200, 320, 178, 142, 44,
- 121, 44, 90, 140, 316, 319, 92, 92, 192, 196,
- 141, 200, 92, 92, 193, 196, 193, 196, 231, 231,
- 171, 322, 167, 156, 141, 15, 320, 183, 189, 202,
- 249, 325, 18, 224, 325, 17, 223, 224, 92, 92,
- 141, 92, 92, 224, 211, 213, 141, 167, 184, 139,
- 15, 200, 221, 261, 189, 199, 85, 309, 139, 320,
- 321, 141, 234, 319, 29, 113, 238, 139, 142, 292,
- 320, 142, 85, 44, 44, 305, 142, 289, 142, 289,
- 142, 289, 142, 289, 289, 44, 44, 228, 230, 233,
- 281, 283, 284, 287, 295, 296, 298, 299, 302, 304,
- 156, 100, 189, 178, 159, 189, 51, 55, 194, 51,
- 55, 57, 123, 162, 191, 168, 191, 170, 92, 162,
- 191, 162, 191, 170, 243, 239, 156, 157, 231, 218,
- 322, 15, 93, 250, 325, 157, 14, 251, 325, 167,
- 15, 92, 15, 157, 157, 222, 189, 157, 320, 200,
- 145, 146, 156, 157, 227, 142, 100, 320, 189, 189,
- 295, 302, 295, 295, 189, 189, 234, 234, 91, 220,
- 142, 305, 305, 142, 229, 220, 142, 229, 142, 229,
- 15, 189, 141, 189, 189, 162, 191, 15, 139, 157,
- 156, 91, 180, 220, 272, 275, 221, 157, 221, 15,
- 15, 215, 224, 246, 247, 51, 235, 236, 291, 15,
- 139, 295, 295, 142, 292, 289, 142, 289, 289, 289,
- 126, 126, 55, 90, 283, 287, 142, 228, 229, 299,
- 302, 295, 298, 302, 295, 139, 15, 55, 90, 140,
- 316, 157, 157, 157, 142, 319, 142, 295, 142, 295,
- 51, 55, 305, 142, 229, 142, 229, 142, 229, 142,
- 229, 229, 51, 55, 194, 51, 55, 248, 223, 15,
- 236, 295, 289, 295, 302, 295, 295, 141, 229, 142,
- 229, 229, 229, 295, 229
-};
-
- /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const yytype_int16 yyr1[] =
-{
- 0, 149, 151, 150, 152, 153, 153, 153, 153, 154,
- 155, 154, 156, 157, 158, 158, 158, 158, 160, 159,
- 159, 159, 159, 159, 159, 159, 159, 159, 159, 159,
- 159, 159, 159, 159, 161, 161, 161, 161, 161, 161,
- 161, 161, 161, 161, 161, 161, 162, 162, 162, 163,
- 163, 163, 163, 163, 163, 164, 166, 165, 167, 168,
- 168, 169, 169, 171, 170, 172, 172, 172, 172, 172,
- 172, 172, 172, 172, 172, 172, 173, 173, 174, 174,
- 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
- 176, 176, 177, 177, 178, 178, 179, 179, 179, 179,
- 179, 179, 179, 179, 180, 180, 180, 180, 180, 180,
- 180, 180, 180, 181, 181, 182, 182, 182, 183, 183,
- 183, 183, 183, 184, 184, 185, 186, 185, 187, 187,
- 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
- 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
- 187, 187, 187, 187, 187, 187, 187, 187, 188, 188,
- 188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
- 188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
- 188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
- 188, 188, 188, 188, 188, 188, 188, 188, 189, 189,
- 189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
- 189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
- 189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
- 189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
- 189, 189, 189, 189, 189, 189, 189, 189, 189, 190,
- 190, 190, 190, 191, 191, 192, 192, 192, 193, 193,
- 194, 194, 194, 194, 194, 195, 195, 195, 195, 195,
- 197, 196, 198, 199, 199, 200, 200, 201, 201, 201,
- 201, 202, 202, 202, 203, 203, 203, 203, 203, 203,
- 203, 203, 203, 204, 203, 205, 206, 203, 207, 203,
- 203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
- 203, 203, 208, 209, 203, 203, 203, 210, 211, 203,
- 212, 213, 203, 203, 203, 214, 215, 203, 216, 203,
- 217, 218, 203, 219, 203, 203, 203, 203, 203, 203,
- 203, 220, 221, 221, 221, 222, 222, 223, 223, 224,
- 224, 225, 225, 226, 226, 226, 226, 226, 226, 226,
- 226, 227, 226, 228, 228, 228, 228, 229, 229, 230,
- 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
- 230, 230, 230, 230, 231, 231, 233, 232, 232, 232,
- 234, 234, 235, 235, 236, 236, 237, 237, 238, 238,
- 240, 239, 241, 241, 241, 241, 242, 242, 242, 242,
- 242, 242, 242, 242, 242, 244, 243, 245, 243, 246,
- 247, 247, 248, 248, 249, 249, 249, 250, 250, 251,
- 251, 252, 252, 252, 252, 253, 253, 254, 254, 254,
- 254, 255, 255, 256, 257, 256, 256, 256, 258, 258,
- 259, 259, 260, 261, 261, 262, 262, 263, 263, 264,
- 265, 264, 266, 266, 267, 267, 268, 269, 269, 269,
- 269, 269, 269, 270, 270, 271, 271, 271, 271, 272,
- 272, 272, 272, 272, 273, 273, 274, 274, 274, 274,
- 274, 274, 274, 274, 275, 275, 276, 277, 276, 278,
- 278, 279, 279, 279, 280, 280, 281, 282, 282, 283,
- 283, 284, 284, 285, 285, 286, 286, 287, 287, 288,
- 288, 288, 288, 289, 289, 290, 290, 290, 290, 290,
- 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
- 291, 291, 291, 291, 291, 292, 292, 293, 294, 293,
- 295, 295, 296, 297, 298, 299, 299, 300, 300, 301,
- 301, 302, 302, 303, 303, 304, 305, 305, 306, 307,
- 306, 308, 308, 309, 309, 310, 310, 311, 311, 311,
- 311, 312, 312, 312, 313, 313, 313, 313, 314, 314,
- 314, 315, 315, 316, 316, 317, 317, 318, 318, 319,
- 319, 320, 321, 321, 321, 322, 322, 322, 323, 324,
- 324, 325
-};
-
- /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
-static const yytype_int8 yyr2[] =
-{
- 0, 2, 0, 2, 2, 1, 1, 3, 2, 1,
- 0, 5, 4, 2, 1, 1, 3, 2, 0, 4,
- 2, 3, 3, 3, 3, 3, 4, 1, 3, 3,
- 3, 3, 3, 1, 3, 3, 6, 5, 5, 5,
- 5, 4, 6, 4, 6, 3, 1, 3, 1, 1,
- 3, 3, 3, 2, 1, 2, 0, 5, 1, 1,
- 1, 1, 4, 0, 5, 2, 3, 4, 5, 4,
- 5, 2, 2, 2, 2, 2, 1, 3, 1, 3,
- 1, 2, 3, 5, 2, 4, 2, 4, 1, 3,
- 1, 3, 2, 3, 1, 2, 1, 4, 3, 3,
- 3, 3, 2, 1, 1, 4, 3, 3, 3, 3,
- 2, 1, 1, 1, 1, 2, 1, 3, 1, 1,
- 1, 1, 1, 1, 1, 1, 0, 4, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 3, 3,
- 6, 5, 5, 5, 5, 4, 3, 3, 2, 2,
- 3, 2, 2, 3, 3, 3, 3, 3, 3, 4,
- 4, 2, 2, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 2, 2, 3, 3,
- 3, 3, 6, 6, 4, 6, 4, 6, 1, 1,
- 2, 4, 2, 1, 3, 3, 5, 3, 1, 1,
- 1, 2, 2, 4, 2, 1, 2, 2, 4, 1,
- 0, 2, 2, 2, 1, 1, 3, 1, 2, 3,
- 4, 3, 4, 2, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 0, 4, 0, 0, 5, 0, 3,
- 3, 3, 2, 3, 3, 1, 2, 4, 3, 2,
- 1, 2, 0, 0, 5, 6, 6, 0, 0, 7,
- 0, 0, 7, 5, 4, 0, 0, 9, 0, 6,
- 0, 0, 8, 0, 5, 4, 4, 1, 1, 1,
- 1, 1, 1, 1, 2, 1, 1, 1, 5, 1,
- 2, 1, 1, 1, 4, 6, 3, 5, 2, 4,
- 1, 0, 4, 4, 2, 2, 1, 2, 0, 6,
- 8, 4, 6, 4, 3, 6, 2, 4, 6, 2,
- 4, 2, 4, 1, 1, 1, 0, 4, 1, 4,
- 1, 4, 1, 3, 1, 1, 4, 1, 3, 3,
- 0, 5, 2, 4, 5, 5, 2, 4, 4, 3,
- 3, 3, 2, 1, 4, 0, 5, 0, 5, 5,
- 1, 1, 6, 1, 1, 1, 1, 2, 1, 2,
- 1, 1, 1, 1, 1, 1, 2, 1, 1, 2,
- 3, 1, 2, 1, 0, 4, 1, 2, 2, 3,
- 2, 3, 1, 1, 2, 1, 2, 1, 2, 1,
- 0, 4, 2, 3, 1, 4, 2, 1, 1, 1,
- 1, 1, 2, 2, 3, 1, 1, 2, 2, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 0, 0, 4, 1,
- 1, 3, 5, 3, 1, 2, 2, 2, 1, 2,
- 1, 1, 3, 1, 3, 1, 1, 2, 1, 4,
- 2, 2, 1, 2, 0, 6, 8, 4, 6, 4,
- 6, 2, 4, 6, 2, 4, 2, 4, 1, 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 0, 4,
- 1, 3, 2, 2, 2, 1, 3, 1, 3, 1,
- 1, 2, 1, 1, 1, 2, 2, 1, 1, 0,
- 4, 1, 2, 1, 3, 1, 2, 3, 3, 3,
- 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 0, 1, 0,
- 1, 2, 0, 1, 1, 1, 1, 1, 1, 1,
- 2, 0
-};
-
-
-#define yyerrok (yyerrstatus = 0)
-#define yyclearin (yychar = YYEMPTY)
-#define YYEMPTY (-2)
-#define YYEOF 0
-
-#define YYACCEPT goto yyacceptlab
-#define YYABORT goto yyabortlab
-#define YYERROR goto yyerrorlab
-
-
-#define YYRECOVERING() (!!yyerrstatus)
-
-#define YYBACKUP(Token, Value) \
- do \
- if (yychar == YYEMPTY) \
- { \
- yychar = (Token); \
- yylval = (Value); \
- YYPOPSTACK (yylen); \
- yystate = *yyssp; \
- goto yybackup; \
- } \
- else \
- { \
- yyerror (p, YY_("syntax error: cannot back up")); \
- YYERROR; \
- } \
- while (0)
-
-/* Error token number */
-#define YYTERROR 1
-#define YYERRCODE 256
-
-
-
-/* Enable debugging if requested. */
-#if YYDEBUG
-
-# ifndef YYFPRINTF
-# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-# define YYFPRINTF fprintf
-# endif
-
-# define YYDPRINTF(Args) \
-do { \
- if (yydebug) \
- YYFPRINTF Args; \
-} while (0)
-
-/* This macro is provided for backward compatibility. */
-#ifndef YY_LOCATION_PRINT
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-#endif
-
-
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
-do { \
- if (yydebug) \
- { \
- YYFPRINTF (stderr, "%s ", Title); \
- yy_symbol_print (stderr, \
- Type, Value, p); \
- YYFPRINTF (stderr, "\n"); \
- } \
-} while (0)
-
-
-/*-----------------------------------.
-| Print this symbol's value on YYO. |
-`-----------------------------------*/
-
-static void
-yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, parser_state *p)
-{
- FILE *yyoutput = yyo;
- YYUSE (yyoutput);
- YYUSE (p);
- if (!yyvaluep)
- return;
-# ifdef YYPRINT
- if (yytype < YYNTOKENS)
- YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
-# endif
- YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
- YYUSE (yytype);
- YY_IGNORE_MAYBE_UNINITIALIZED_END
-}
-
-
-/*---------------------------.
-| Print this symbol on YYO. |
-`---------------------------*/
-
-static void
-yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, parser_state *p)
-{
- YYFPRINTF (yyo, "%s %s (",
- yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
-
- yy_symbol_value_print (yyo, yytype, yyvaluep, p);
- YYFPRINTF (yyo, ")");
-}
-
-/*------------------------------------------------------------------.
-| yy_stack_print -- Print the state stack from its BOTTOM up to its |
-| TOP (included). |
-`------------------------------------------------------------------*/
-
-static void
-yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
-{
- YYFPRINTF (stderr, "Stack now");
- for (; yybottom <= yytop; yybottom++)
- {
- int yybot = *yybottom;
- YYFPRINTF (stderr, " %d", yybot);
- }
- YYFPRINTF (stderr, "\n");
-}
-
-# define YY_STACK_PRINT(Bottom, Top) \
-do { \
- if (yydebug) \
- yy_stack_print ((Bottom), (Top)); \
-} while (0)
-
-
-/*------------------------------------------------.
-| Report that the YYRULE is going to be reduced. |
-`------------------------------------------------*/
-
-static void
-yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule, parser_state *p)
-{
- int yylno = yyrline[yyrule];
- int yynrhs = yyr2[yyrule];
- int yyi;
- YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
- yyrule - 1, yylno);
- /* The symbols being reduced. */
- for (yyi = 0; yyi < yynrhs; yyi++)
- {
- YYFPRINTF (stderr, " $%d = ", yyi + 1);
- yy_symbol_print (stderr,
- yystos[+yyssp[yyi + 1 - yynrhs]],
- &yyvsp[(yyi + 1) - (yynrhs)]
- , p);
- YYFPRINTF (stderr, "\n");
- }
-}
-
-# define YY_REDUCE_PRINT(Rule) \
-do { \
- if (yydebug) \
- yy_reduce_print (yyssp, yyvsp, Rule, p); \
-} while (0)
-
-/* Nonzero means print parse trace. It is left uninitialized so that
- multiple parsers can coexist. */
-int yydebug;
-#else /* !YYDEBUG */
-# define YYDPRINTF(Args)
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
-# define YY_STACK_PRINT(Bottom, Top)
-# define YY_REDUCE_PRINT(Rule)
-#endif /* !YYDEBUG */
-
-
-/* YYINITDEPTH -- initial size of the parser's stacks. */
-#ifndef YYINITDEPTH
-# define YYINITDEPTH 200
-#endif
-
-/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
- if the built-in stack extension method is used).
-
- Do not make this value too large; the results are undefined if
- YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
- evaluated with infinite-precision integer arithmetic. */
-
-#ifndef YYMAXDEPTH
-# define YYMAXDEPTH 10000
-#endif
-
-
-#if YYERROR_VERBOSE
-
-# ifndef yystrlen
-# if defined __GLIBC__ && defined _STRING_H
-# define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
-# else
-/* Return the length of YYSTR. */
-static YYPTRDIFF_T
-yystrlen (const char *yystr)
-{
- YYPTRDIFF_T yylen;
- for (yylen = 0; yystr[yylen]; yylen++)
- continue;
- return yylen;
-}
-# endif
-# endif
-
-# ifndef yystpcpy
-# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
-# define yystpcpy stpcpy
-# else
-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
- YYDEST. */
-static char *
-yystpcpy (char *yydest, const char *yysrc)
-{
- char *yyd = yydest;
- const char *yys = yysrc;
-
- while ((*yyd++ = *yys++) != '\0')
- continue;
-
- return yyd - 1;
-}
-# endif
-# endif
-
-# ifndef yytnamerr
-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
- quotes and backslashes, so that it's suitable for yyerror. The
- heuristic is that double-quoting is unnecessary unless the string
- contains an apostrophe, a comma, or backslash (other than
- backslash-backslash). YYSTR is taken from yytname. If YYRES is
- null, do not copy; instead, return the length of what the result
- would have been. */
-static YYPTRDIFF_T
-yytnamerr (char *yyres, const char *yystr)
-{
- if (*yystr == '"')
- {
- YYPTRDIFF_T yyn = 0;
- char const *yyp = yystr;
-
- for (;;)
- switch (*++yyp)
- {
- case '\'':
- case ',':
- goto do_not_strip_quotes;
-
- case '\\':
- if (*++yyp != '\\')
- goto do_not_strip_quotes;
- else
- goto append;
-
- append:
- default:
- if (yyres)
- yyres[yyn] = *yyp;
- yyn++;
- break;
-
- case '"':
- if (yyres)
- yyres[yyn] = '\0';
- return yyn;
- }
- do_not_strip_quotes: ;
- }
-
- if (yyres)
- return yystpcpy (yyres, yystr) - yyres;
- else
- return yystrlen (yystr);
-}
-# endif
-
-/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
- about the unexpected token YYTOKEN for the state stack whose top is
- YYSSP.
-
- Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
- not large enough to hold the message. In that case, also set
- *YYMSG_ALLOC to the required number of bytes. Return 2 if the
- required number of bytes is too large to store. */
-static int
-yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
- yy_state_t *yyssp, int yytoken)
-{
- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
- /* Internationalized format string. */
- const char *yyformat = YY_NULLPTR;
- /* Arguments of yyformat: reported tokens (one for the "unexpected",
- one per "expected"). */
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
- /* Actual size of YYARG. */
- int yycount = 0;
- /* Cumulated lengths of YYARG. */
- YYPTRDIFF_T yysize = 0;
-
- /* There are many possibilities here to consider:
- - If this state is a consistent state with a default action, then
- the only way this function was invoked is if the default action
- is an error action. In that case, don't check for expected
- tokens because there are none.
- - The only way there can be no lookahead present (in yychar) is if
- this state is a consistent state with a default action. Thus,
- detecting the absence of a lookahead is sufficient to determine
- that there is no unexpected or expected token to report. In that
- case, just report a simple "syntax error".
- - Don't assume there isn't a lookahead just because this state is a
- consistent state with a default action. There might have been a
- previous inconsistent state, consistent state with a non-default
- action, or user semantic action that manipulated yychar.
- - Of course, the expected token list depends on states to have
- correct lookahead information, and it depends on the parser not
- to perform extra reductions after fetching a lookahead from the
- scanner and before detecting a syntax error. Thus, state merging
- (from LALR or IELR) and default reductions corrupt the expected
- token list. However, the list is correct for canonical LR with
- one exception: it will still contain any token that will not be
- accepted due to an error action in a later state.
- */
- if (yytoken != YYEMPTY)
- {
- int yyn = yypact[+*yyssp];
- YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
- yysize = yysize0;
- yyarg[yycount++] = yytname[yytoken];
- if (!yypact_value_is_default (yyn))
- {
- /* Start YYX at -YYN if negative to avoid negative indexes in
- YYCHECK. In other words, skip the first -YYN actions for
- this state because they are default actions. */
- int yyxbegin = yyn < 0 ? -yyn : 0;
- /* Stay within bounds of both yycheck and yytname. */
- int yychecklim = YYLAST - yyn + 1;
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
- int yyx;
-
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
- && !yytable_value_is_error (yytable[yyx + yyn]))
- {
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
- {
- yycount = 1;
- yysize = yysize0;
- break;
- }
- yyarg[yycount++] = yytname[yyx];
- {
- YYPTRDIFF_T yysize1
- = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
- if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
- yysize = yysize1;
- else
- return 2;
- }
- }
- }
- }
-
- switch (yycount)
- {
-# define YYCASE_(N, S) \
- case N: \
- yyformat = S; \
- break
- default: /* Avoid compiler warnings. */
- YYCASE_(0, YY_("syntax error"));
- YYCASE_(1, YY_("syntax error, unexpected %s"));
- YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
- YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
- YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
- YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
-# undef YYCASE_
- }
-
- {
- /* Don't count the "%s"s in the final size, but reserve room for
- the terminator. */
- YYPTRDIFF_T yysize1 = yysize + (yystrlen (yyformat) - 2 * yycount) + 1;
- if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
- yysize = yysize1;
- else
- return 2;
- }
-
- if (*yymsg_alloc < yysize)
- {
- *yymsg_alloc = 2 * yysize;
- if (! (yysize <= *yymsg_alloc
- && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
- *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
- return 1;
- }
-
- /* Avoid sprintf, as that infringes on the user's name space.
- Don't have undefined behavior even if the translation
- produced a string with the wrong number of "%s"s. */
- {
- char *yyp = *yymsg;
- int yyi = 0;
- while ((*yyp = *yyformat) != '\0')
- if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
- {
- yyp += yytnamerr (yyp, yyarg[yyi++]);
- yyformat += 2;
- }
- else
- {
- ++yyp;
- ++yyformat;
- }
- }
- return 0;
-}
-#endif /* YYERROR_VERBOSE */
-
-/*-----------------------------------------------.
-| Release the memory associated to this symbol. |
-`-----------------------------------------------*/
-
-static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, parser_state *p)
-{
- YYUSE (yyvaluep);
- YYUSE (p);
- if (!yymsg)
- yymsg = "Deleting";
- YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
- YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
- YYUSE (yytype);
- YY_IGNORE_MAYBE_UNINITIALIZED_END
-}
-
-
-
-
-/*----------.
-| yyparse. |
-`----------*/
-
-int
-yyparse (parser_state *p)
-{
-/* The lookahead symbol. */
-int yychar;
-
-
-/* The semantic value of the lookahead symbol. */
-/* Default value used for initialization, for pacifying older GCCs
- or non-GCC compilers. */
-YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
-YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
-
- /* Number of syntax errors so far. */
- int yynerrs;
-
- yy_state_fast_t yystate;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
-
- /* The stacks and their tools:
- 'yyss': related to states.
- 'yyvs': related to semantic values.
-
- Refer to the stacks through separate pointers, to allow yyoverflow
- to reallocate them elsewhere. */
-
- /* The state stack. */
- yy_state_t yyssa[YYINITDEPTH];
- yy_state_t *yyss;
- yy_state_t *yyssp;
-
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs;
- YYSTYPE *yyvsp;
-
- YYPTRDIFF_T yystacksize;
-
- int yyn;
- int yyresult;
- /* Lookahead token as an internal (translated) token number. */
- int yytoken = 0;
- /* The variables used to return semantic value and location from the
- action routines. */
- YYSTYPE yyval;
-
-#if YYERROR_VERBOSE
- /* Buffer for error messages, and its allocated size. */
- char yymsgbuf[128];
- char *yymsg = yymsgbuf;
- YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
-#endif
-
-#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
-
- /* The number of symbols on the RHS of the reduced rule.
- Keep to zero when no symbol should be popped. */
- int yylen = 0;
-
- yyssp = yyss = yyssa;
- yyvsp = yyvs = yyvsa;
- yystacksize = YYINITDEPTH;
-
- YYDPRINTF ((stderr, "Starting parse\n"));
-
- yystate = 0;
- yyerrstatus = 0;
- yynerrs = 0;
- yychar = YYEMPTY; /* Cause a token to be read. */
- goto yysetstate;
-
-
-/*------------------------------------------------------------.
-| yynewstate -- push a new state, which is found in yystate. |
-`------------------------------------------------------------*/
-yynewstate:
- /* In all cases, when you get here, the value and location stacks
- have just been pushed. So pushing a state here evens the stacks. */
- yyssp++;
-
-
-/*--------------------------------------------------------------------.
-| yysetstate -- set current state (the top of the stack) to yystate. |
-`--------------------------------------------------------------------*/
-yysetstate:
- YYDPRINTF ((stderr, "Entering state %d\n", yystate));
- YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
- YY_IGNORE_USELESS_CAST_BEGIN
- *yyssp = YY_CAST (yy_state_t, yystate);
- YY_IGNORE_USELESS_CAST_END
-
- if (yyss + yystacksize - 1 <= yyssp)
-#if !defined yyoverflow && !defined YYSTACK_RELOCATE
- goto yyexhaustedlab;
-#else
- {
- /* Get the current used size of the three stacks, in elements. */
- YYPTRDIFF_T yysize = yyssp - yyss + 1;
-
-# if defined yyoverflow
- {
- /* Give user a chance to reallocate the stack. Use copies of
- these so that the &'s don't force the real ones into
- memory. */
- yy_state_t *yyss1 = yyss;
- YYSTYPE *yyvs1 = yyvs;
-
- /* Each stack pointer address is followed by the size of the
- data in use in that stack, in bytes. This used to be a
- conditional around just the two extra args, but that might
- be undefined if yyoverflow is a macro. */
- yyoverflow (YY_("memory exhausted"),
- &yyss1, yysize * YYSIZEOF (*yyssp),
- &yyvs1, yysize * YYSIZEOF (*yyvsp),
- &yystacksize);
- yyss = yyss1;
- yyvs = yyvs1;
- }
-# else /* defined YYSTACK_RELOCATE */
- /* Extend the stack our own way. */
- if (YYMAXDEPTH <= yystacksize)
- goto yyexhaustedlab;
- yystacksize *= 2;
- if (YYMAXDEPTH < yystacksize)
- yystacksize = YYMAXDEPTH;
-
- {
- yy_state_t *yyss1 = yyss;
- union yyalloc *yyptr =
- YY_CAST (union yyalloc *,
- YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
- if (! yyptr)
- goto yyexhaustedlab;
- YYSTACK_RELOCATE (yyss_alloc, yyss);
- YYSTACK_RELOCATE (yyvs_alloc, yyvs);
-# undef YYSTACK_RELOCATE
- if (yyss1 != yyssa)
- YYSTACK_FREE (yyss1);
- }
-# endif
-
- yyssp = yyss + yysize - 1;
- yyvsp = yyvs + yysize - 1;
-
- YY_IGNORE_USELESS_CAST_BEGIN
- YYDPRINTF ((stderr, "Stack size increased to %ld\n",
- YY_CAST (long, yystacksize)));
- YY_IGNORE_USELESS_CAST_END
-
- if (yyss + yystacksize - 1 <= yyssp)
- YYABORT;
- }
-#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
-
- if (yystate == YYFINAL)
- YYACCEPT;
-
- goto yybackup;
-
-
-/*-----------.
-| yybackup. |
-`-----------*/
-yybackup:
- /* Do appropriate processing given the current state. Read a
- lookahead token if we need one and don't already have one. */
-
- /* First try to decide what to do without reference to lookahead token. */
- yyn = yypact[yystate];
- if (yypact_value_is_default (yyn))
- goto yydefault;
-
- /* Not known => get a lookahead token if don't already have one. */
-
- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
- if (yychar == YYEMPTY)
- {
- YYDPRINTF ((stderr, "Reading a token: "));
- yychar = yylex (&yylval, p);
- }
-
- if (yychar <= YYEOF)
- {
- yychar = yytoken = YYEOF;
- YYDPRINTF ((stderr, "Now at end of input.\n"));
- }
- else
- {
- yytoken = YYTRANSLATE (yychar);
- YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
- }
-
- /* If the proper action on seeing token YYTOKEN is to reduce or to
- detect an error, take that action. */
- yyn += yytoken;
- if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
- goto yydefault;
- yyn = yytable[yyn];
- if (yyn <= 0)
- {
- if (yytable_value_is_error (yyn))
- goto yyerrlab;
- yyn = -yyn;
- goto yyreduce;
- }
-
- /* Count tokens shifted since error; after three, turn off error
- status. */
- if (yyerrstatus)
- yyerrstatus--;
-
- /* Shift the lookahead token. */
- YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
- yystate = yyn;
- YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
- *++yyvsp = yylval;
- YY_IGNORE_MAYBE_UNINITIALIZED_END
-
- /* Discard the shifted token. */
- yychar = YYEMPTY;
- goto yynewstate;
-
-
-/*-----------------------------------------------------------.
-| yydefault -- do the default action for the current state. |
-`-----------------------------------------------------------*/
-yydefault:
- yyn = yydefact[yystate];
- if (yyn == 0)
- goto yyerrlab;
- goto yyreduce;
-
-
-/*-----------------------------.
-| yyreduce -- do a reduction. |
-`-----------------------------*/
-yyreduce:
- /* yyn is the number of a rule to reduce with. */
- yylen = yyr2[yyn];
-
- /* If YYLEN is nonzero, implement the default value of the action:
- '$$ = $1'.
-
- Otherwise, the following line sets YYVAL to garbage.
- This behavior is undocumented and Bison
- users should not rely upon it. Assigning to YYVAL
- unconditionally makes the parser a bit smaller, and it avoids a
- GCC warning that YYVAL may be used uninitialized. */
- yyval = yyvsp[1-yylen];
-
-
- YY_REDUCE_PRINT (yyn);
- switch (yyn)
- {
- case 2:
-#line 1564 "mrbgems/mruby-compiler/core/parse.y"
- {
- p->lstate = EXPR_BEG;
- if (!p->locals) p->locals = cons(0,0);
- }
-#line 6086 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 3:
-#line 1569 "mrbgems/mruby-compiler/core/parse.y"
- {
- p->tree = new_scope(p, (yyvsp[0].nd));
- NODE_LINENO(p->tree, (yyvsp[0].nd));
- }
-#line 6095 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 4:
-#line 1576 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-1].nd);
- }
-#line 6103 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 5:
-#line 1582 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_begin(p, 0);
- }
-#line 6111 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 6:
-#line 1586 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_begin(p, (yyvsp[0].nd));
- NODE_LINENO((yyval.nd), (yyvsp[0].nd));
- }
-#line 6120 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 7:
-#line 1591 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = push((yyvsp[-2].nd), newline_node((yyvsp[0].nd)));
- }
-#line 6128 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 8:
-#line 1595 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_begin(p, 0);
- }
-#line 6136 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 10:
-#line 1602 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = local_switch(p);
- nvars_block(p);
- }
-#line 6145 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 11:
-#line 1607 "mrbgems/mruby-compiler/core/parse.y"
- {
- yyerror(p, "BEGIN not supported");
- local_resume(p, (yyvsp[-3].nd));
- nvars_unnest(p);
- (yyval.nd) = 0;
- }
-#line 6156 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 12:
-#line 1619 "mrbgems/mruby-compiler/core/parse.y"
- {
- if ((yyvsp[-2].nd)) {
- (yyval.nd) = new_rescue(p, (yyvsp[-3].nd), (yyvsp[-2].nd), (yyvsp[-1].nd));
- NODE_LINENO((yyval.nd), (yyvsp[-3].nd));
- }
- else if ((yyvsp[-1].nd)) {
- yywarning(p, "else without rescue is useless");
- (yyval.nd) = push((yyvsp[-3].nd), (yyvsp[-1].nd));
- }
- else {
- (yyval.nd) = (yyvsp[-3].nd);
- }
- if ((yyvsp[0].nd)) {
- if ((yyval.nd)) {
- (yyval.nd) = new_ensure(p, (yyval.nd), (yyvsp[0].nd));
- }
- else {
- (yyval.nd) = push((yyvsp[0].nd), new_nil(p));
- }
- }
- }
-#line 6182 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 13:
-#line 1643 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-1].nd);
- }
-#line 6190 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 14:
-#line 1649 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_begin(p, 0);
- }
-#line 6198 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 15:
-#line 1653 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_begin(p, (yyvsp[0].nd));
- NODE_LINENO((yyval.nd), (yyvsp[0].nd));
- }
-#line 6207 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 16:
-#line 1658 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = push((yyvsp[-2].nd), newline_node((yyvsp[0].nd)));
- }
-#line 6215 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 17:
-#line 1662 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_begin(p, (yyvsp[0].nd));
- }
-#line 6223 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 18:
-#line 1667 "mrbgems/mruby-compiler/core/parse.y"
- {p->lstate = EXPR_FNAME;}
-#line 6229 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 19:
-#line 1668 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_alias(p, (yyvsp[-2].id), (yyvsp[0].id));
- }
-#line 6237 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 20:
-#line 1672 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[0].nd);
- }
-#line 6245 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 21:
-#line 1676 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_if(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd), 0);
- }
-#line 6253 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 22:
-#line 1680 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_unless(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd), 0);
- }
-#line 6261 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 23:
-#line 1684 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_while(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd));
- }
-#line 6269 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 24:
-#line 1688 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_until(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd));
- }
-#line 6277 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 25:
-#line 1692 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd));
- }
-#line 6285 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 26:
-#line 1696 "mrbgems/mruby-compiler/core/parse.y"
- {
- yyerror(p, "END not supported");
- (yyval.nd) = new_postexe(p, (yyvsp[-1].nd));
- }
-#line 6294 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 28:
-#line 1702 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_masgn(p, (yyvsp[-2].nd), (yyvsp[0].nd));
- }
-#line 6302 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 29:
-#line 1706 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_asgn(p, (yyvsp[-2].nd), new_array(p, (yyvsp[0].nd)));
- }
-#line 6310 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 30:
-#line 1710 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_masgn(p, (yyvsp[-2].nd), (yyvsp[0].nd));
- }
-#line 6318 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 31:
-#line 1714 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_masgn(p, (yyvsp[-2].nd), new_array(p, (yyvsp[0].nd)));
- }
-#line 6326 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 32:
-#line 1718 "mrbgems/mruby-compiler/core/parse.y"
- {
- node *lhs = new_lvar(p, (yyvsp[0].id));
- void_expr_error(p, (yyvsp[-2].nd));
- assignable(p, lhs);
- (yyval.nd) = new_asgn(p, lhs, (yyvsp[-2].nd));
- }
-#line 6337 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 34:
-#line 1728 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_asgn(p, (yyvsp[-2].nd), (yyvsp[0].nd));
- }
-#line 6345 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 35:
-#line 1732 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_op_asgn(p, (yyvsp[-2].nd), (yyvsp[-1].id), (yyvsp[0].nd));
- }
-#line 6353 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 36:
-#line 1736 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-5].nd), intern_op(aref), (yyvsp[-3].nd), '.'), (yyvsp[-1].id), (yyvsp[0].nd));
- }
-#line 6361 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 37:
-#line 1740 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, (yyvsp[-3].num)), (yyvsp[-1].id), (yyvsp[0].nd));
- }
-#line 6369 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 38:
-#line 1744 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, (yyvsp[-3].num)), (yyvsp[-1].id), (yyvsp[0].nd));
- }
-#line 6377 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 39:
-#line 1748 "mrbgems/mruby-compiler/core/parse.y"
- {
- yyerror(p, "constant re-assignment");
- (yyval.nd) = 0;
- }
-#line 6386 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 40:
-#line 1753 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, tCOLON2), (yyvsp[-1].id), (yyvsp[0].nd));
- }
-#line 6394 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 41:
-#line 1757 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-3].nd);
- endless_method_name(p, (yyvsp[-3].nd));
- void_expr_error(p, (yyvsp[0].nd));
- defn_setup(p, (yyval.nd), (yyvsp[-2].nd), (yyvsp[0].nd));
- nvars_unnest(p);
- p->in_def--;
- }
-#line 6407 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 42:
-#line 1766 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-5].nd);
- endless_method_name(p, (yyvsp[-5].nd));
- void_expr_error(p, (yyvsp[-2].nd));
- void_expr_error(p, (yyvsp[0].nd));
- defn_setup(p, (yyval.nd), (yyvsp[-4].nd), new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd)));
- nvars_unnest(p);
- p->in_def--;
- }
-#line 6421 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 43:
-#line 1776 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-3].nd);
- void_expr_error(p, (yyvsp[0].nd));
- defs_setup(p, (yyval.nd), (yyvsp[-2].nd), (yyvsp[0].nd));
- nvars_unnest(p);
- p->in_def--;
- p->in_single--;
- }
-#line 6434 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 44:
-#line 1785 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-5].nd);
- void_expr_error(p, (yyvsp[-2].nd));
- void_expr_error(p, (yyvsp[0].nd));
- defs_setup(p, (yyval.nd), (yyvsp[-4].nd), new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd)));
- nvars_unnest(p);
- p->in_def--;
- p->in_single--;
- }
-#line 6448 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 45:
-#line 1795 "mrbgems/mruby-compiler/core/parse.y"
- {
- backref_error(p, (yyvsp[-2].nd));
- (yyval.nd) = new_begin(p, 0);
- }
-#line 6457 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 47:
-#line 1803 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd));
- }
-#line 6465 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 50:
-#line 1812 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_and(p, (yyvsp[-2].nd), (yyvsp[0].nd));
- }
-#line 6473 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 51:
-#line 1816 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_or(p, (yyvsp[-2].nd), (yyvsp[0].nd));
- }
-#line 6481 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 52:
-#line 1820 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "!");
- }
-#line 6489 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 53:
-#line 1824 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "!");
- }
-#line 6497 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 55:
-#line 1832 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_def(p, (yyvsp[0].id), nint(p->cmdarg_stack), local_switch(p));
- p->cmdarg_stack = 0;
- p->in_def++;
- nvars_block(p);
- }
-#line 6508 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 56:
-#line 1841 "mrbgems/mruby-compiler/core/parse.y"
- {
- p->lstate = EXPR_FNAME;
- }
-#line 6516 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 57:
-#line 1845 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_sdef(p, (yyvsp[-3].nd), (yyvsp[0].id), nint(p->cmdarg_stack), local_switch(p));
- p->cmdarg_stack = 0;
- p->in_def++;
- p->in_single++;
- nvars_block(p);
- p->lstate = EXPR_ENDFN; /* force for args */
- }
-#line 6529 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 58:
-#line 1856 "mrbgems/mruby-compiler/core/parse.y"
- {
- if (!(yyvsp[0].nd)) (yyval.nd) = new_nil(p);
- else {
- (yyval.nd) = (yyvsp[0].nd);
- }
- }
-#line 6540 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 62:
-#line 1870 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num));
- }
-#line 6548 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 63:
-#line 1876 "mrbgems/mruby-compiler/core/parse.y"
- {
- local_nest(p);
- nvars_nest(p);
- }
-#line 6557 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 64:
-#line 1883 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_block(p, (yyvsp[-2].nd), (yyvsp[-1].nd));
- local_unnest(p);
- nvars_unnest(p);
- }
-#line 6567 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 65:
-#line 1891 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_fcall(p, (yyvsp[-1].id), (yyvsp[0].nd));
- }
-#line 6575 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 66:
-#line 1895 "mrbgems/mruby-compiler/core/parse.y"
- {
- args_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd));
- (yyval.nd) = new_fcall(p, (yyvsp[-2].id), (yyvsp[-1].nd));
- }
-#line 6584 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 67:
-#line 1900 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num));
- }
-#line 6592 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 68:
-#line 1904 "mrbgems/mruby-compiler/core/parse.y"
- {
- args_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd));
- (yyval.nd) = new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), (yyvsp[-1].nd), (yyvsp[-3].num));
- }
-#line 6601 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 69:
-#line 1909 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), tCOLON2);
- }
-#line 6609 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 70:
-#line 1913 "mrbgems/mruby-compiler/core/parse.y"
- {
- args_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd));
- (yyval.nd) = new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), (yyvsp[-1].nd), tCOLON2);
- }
-#line 6618 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 71:
-#line 1918 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_super(p, (yyvsp[0].nd));
- }
-#line 6626 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 72:
-#line 1922 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_yield(p, (yyvsp[0].nd));
- }
-#line 6634 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 73:
-#line 1926 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_return(p, ret_args(p, (yyvsp[0].nd)));
- }
-#line 6642 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 74:
-#line 1930 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_break(p, ret_args(p, (yyvsp[0].nd)));
- }
-#line 6650 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 75:
-#line 1934 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_next(p, ret_args(p, (yyvsp[0].nd)));
- }
-#line 6658 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 76:
-#line 1940 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[0].nd);
- }
-#line 6666 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 77:
-#line 1944 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-1].nd);
- }
-#line 6674 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 79:
-#line 1951 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-1].nd);
- }
-#line 6682 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 80:
-#line 1957 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list1((yyvsp[0].nd));
- }
-#line 6690 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 81:
-#line 1961 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list1(push((yyvsp[-1].nd),(yyvsp[0].nd)));
- }
-#line 6698 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 82:
-#line 1965 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list2((yyvsp[-2].nd), (yyvsp[0].nd));
- }
-#line 6706 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 83:
-#line 1969 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list3((yyvsp[-4].nd), (yyvsp[-2].nd), (yyvsp[0].nd));
- }
-#line 6714 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 84:
-#line 1973 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list2((yyvsp[-1].nd), new_nil(p));
- }
-#line 6722 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 85:
-#line 1977 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list3((yyvsp[-3].nd), new_nil(p), (yyvsp[0].nd));
- }
-#line 6730 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 86:
-#line 1981 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list2(0, (yyvsp[0].nd));
- }
-#line 6738 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 87:
-#line 1985 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list3(0, (yyvsp[-2].nd), (yyvsp[0].nd));
- }
-#line 6746 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 88:
-#line 1989 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list2(0, new_nil(p));
- }
-#line 6754 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 89:
-#line 1993 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list3(0, new_nil(p), (yyvsp[0].nd));
- }
-#line 6762 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 91:
-#line 2000 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_masgn(p, (yyvsp[-1].nd), NULL);
- }
-#line 6770 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 92:
-#line 2006 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list1((yyvsp[-1].nd));
- }
-#line 6778 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 93:
-#line 2010 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[-1].nd));
- }
-#line 6786 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 94:
-#line 2016 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list1((yyvsp[0].nd));
- }
-#line 6794 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 95:
-#line 2020 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = push((yyvsp[-1].nd), (yyvsp[0].nd));
- }
-#line 6802 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 96:
-#line 2026 "mrbgems/mruby-compiler/core/parse.y"
- {
- assignable(p, (yyvsp[0].nd));
- }
-#line 6810 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 97:
-#line 2030 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.');
- }
-#line 6818 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 98:
-#line 2034 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num));
- }
-#line 6826 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 99:
-#line 2038 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2);
- }
-#line 6834 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 100:
-#line 2042 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num));
- }
-#line 6842 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 101:
-#line 2046 "mrbgems/mruby-compiler/core/parse.y"
- {
- if (p->in_def || p->in_single)
- yyerror(p, "dynamic constant assignment");
- (yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id));
- }
-#line 6852 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 102:
-#line 2052 "mrbgems/mruby-compiler/core/parse.y"
- {
- if (p->in_def || p->in_single)
- yyerror(p, "dynamic constant assignment");
- (yyval.nd) = new_colon3(p, (yyvsp[0].id));
- }
-#line 6862 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 103:
-#line 2058 "mrbgems/mruby-compiler/core/parse.y"
- {
- backref_error(p, (yyvsp[0].nd));
- (yyval.nd) = 0;
- }
-#line 6871 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 104:
-#line 2065 "mrbgems/mruby-compiler/core/parse.y"
- {
- assignable(p, (yyvsp[0].nd));
- }
-#line 6879 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 105:
-#line 2069 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.');
- }
-#line 6887 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 106:
-#line 2073 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num));
- }
-#line 6895 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 107:
-#line 2077 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2);
- }
-#line 6903 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 108:
-#line 2081 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num));
- }
-#line 6911 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 109:
-#line 2085 "mrbgems/mruby-compiler/core/parse.y"
- {
- if (p->in_def || p->in_single)
- yyerror(p, "dynamic constant assignment");
- (yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id));
- }
-#line 6921 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 110:
-#line 2091 "mrbgems/mruby-compiler/core/parse.y"
- {
- if (p->in_def || p->in_single)
- yyerror(p, "dynamic constant assignment");
- (yyval.nd) = new_colon3(p, (yyvsp[0].id));
- }
-#line 6931 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 111:
-#line 2097 "mrbgems/mruby-compiler/core/parse.y"
- {
- backref_error(p, (yyvsp[0].nd));
- (yyval.nd) = 0;
- }
-#line 6940 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 112:
-#line 2102 "mrbgems/mruby-compiler/core/parse.y"
- {
- yyerror(p, "can't assign to numbered parameter");
- }
-#line 6948 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 113:
-#line 2108 "mrbgems/mruby-compiler/core/parse.y"
- {
- yyerror(p, "class/module name must be CONSTANT");
- }
-#line 6956 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 115:
-#line 2115 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = cons(nint(1), nsym((yyvsp[0].id)));
- }
-#line 6964 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 116:
-#line 2119 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = cons(nint(0), nsym((yyvsp[0].id)));
- }
-#line 6972 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 117:
-#line 2123 "mrbgems/mruby-compiler/core/parse.y"
- {
- void_expr_error(p, (yyvsp[-2].nd));
- (yyval.nd) = cons((yyvsp[-2].nd), nsym((yyvsp[0].id)));
- }
-#line 6981 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 121:
-#line 2133 "mrbgems/mruby-compiler/core/parse.y"
- {
- p->lstate = EXPR_ENDFN;
- (yyval.id) = (yyvsp[0].id);
- }
-#line 6990 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 122:
-#line 2138 "mrbgems/mruby-compiler/core/parse.y"
- {
- p->lstate = EXPR_ENDFN;
- (yyval.id) = (yyvsp[0].id);
- }
-#line 6999 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 125:
-#line 2149 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_undef(p, (yyvsp[0].id));
- }
-#line 7007 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 126:
-#line 2152 "mrbgems/mruby-compiler/core/parse.y"
- {p->lstate = EXPR_FNAME;}
-#line 7013 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 127:
-#line 2153 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = push((yyvsp[-3].nd), nsym((yyvsp[0].id)));
- }
-#line 7021 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 128:
-#line 2158 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(or); }
-#line 7027 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 129:
-#line 2159 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(xor); }
-#line 7033 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 130:
-#line 2160 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(and); }
-#line 7039 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 131:
-#line 2161 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(cmp); }
-#line 7045 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 132:
-#line 2162 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(eq); }
-#line 7051 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 133:
-#line 2163 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(eqq); }
-#line 7057 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 134:
-#line 2164 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(match); }
-#line 7063 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 135:
-#line 2165 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(nmatch); }
-#line 7069 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 136:
-#line 2166 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(gt); }
-#line 7075 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 137:
-#line 2167 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(ge); }
-#line 7081 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 138:
-#line 2168 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(lt); }
-#line 7087 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 139:
-#line 2169 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(le); }
-#line 7093 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 140:
-#line 2170 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(neq); }
-#line 7099 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 141:
-#line 2171 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(lshift); }
-#line 7105 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 142:
-#line 2172 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(rshift); }
-#line 7111 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 143:
-#line 2173 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(add); }
-#line 7117 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 144:
-#line 2174 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(sub); }
-#line 7123 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 145:
-#line 2175 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(mul); }
-#line 7129 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 146:
-#line 2176 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(mul); }
-#line 7135 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 147:
-#line 2177 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(div); }
-#line 7141 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 148:
-#line 2178 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(mod); }
-#line 7147 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 149:
-#line 2179 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(pow); }
-#line 7153 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 150:
-#line 2180 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(pow); }
-#line 7159 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 151:
-#line 2181 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(not); }
-#line 7165 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 152:
-#line 2182 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(neg); }
-#line 7171 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 153:
-#line 2183 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(plus); }
-#line 7177 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 154:
-#line 2184 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(minus); }
-#line 7183 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 155:
-#line 2185 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(aref); }
-#line 7189 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 156:
-#line 2186 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(aset); }
-#line 7195 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 157:
-#line 2187 "mrbgems/mruby-compiler/core/parse.y"
- { (yyval.id) = intern_op(tick); }
-#line 7201 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 198:
-#line 2205 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_asgn(p, (yyvsp[-2].nd), (yyvsp[0].nd));
- }
-#line 7209 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 199:
-#line 2209 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_op_asgn(p, (yyvsp[-2].nd), (yyvsp[-1].id), (yyvsp[0].nd));
- }
-#line 7217 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 200:
-#line 2213 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-5].nd), intern_op(aref), (yyvsp[-3].nd), '.'), (yyvsp[-1].id), (yyvsp[0].nd));
- }
-#line 7225 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 201:
-#line 2217 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, (yyvsp[-3].num)), (yyvsp[-1].id), (yyvsp[0].nd));
- }
-#line 7233 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 202:
-#line 2221 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, (yyvsp[-3].num)), (yyvsp[-1].id), (yyvsp[0].nd));
- }
-#line 7241 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 203:
-#line 2225 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, tCOLON2), (yyvsp[-1].id), (yyvsp[0].nd));
- }
-#line 7249 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 204:
-#line 2229 "mrbgems/mruby-compiler/core/parse.y"
- {
- yyerror(p, "constant re-assignment");
- (yyval.nd) = new_begin(p, 0);
- }
-#line 7258 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 205:
-#line 2234 "mrbgems/mruby-compiler/core/parse.y"
- {
- yyerror(p, "constant re-assignment");
- (yyval.nd) = new_begin(p, 0);
- }
-#line 7267 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 206:
-#line 2239 "mrbgems/mruby-compiler/core/parse.y"
- {
- backref_error(p, (yyvsp[-2].nd));
- (yyval.nd) = new_begin(p, 0);
- }
-#line 7276 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 207:
-#line 2244 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_dot2(p, (yyvsp[-2].nd), (yyvsp[0].nd));
- }
-#line 7284 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 208:
-#line 2248 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_dot2(p, (yyvsp[-1].nd), new_nil(p));
- }
-#line 7292 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 209:
-#line 2252 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_dot2(p, new_nil(p), (yyvsp[0].nd));
- }
-#line 7300 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 210:
-#line 2256 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_dot3(p, (yyvsp[-2].nd), (yyvsp[0].nd));
- }
-#line 7308 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 211:
-#line 2260 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_dot3(p, (yyvsp[-1].nd), new_nil(p));
- }
-#line 7316 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 212:
-#line 2264 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_dot3(p, new_nil(p), (yyvsp[0].nd));
- }
-#line 7324 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 213:
-#line 2268 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "+", (yyvsp[0].nd));
- }
-#line 7332 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 214:
-#line 2272 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "-", (yyvsp[0].nd));
- }
-#line 7340 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 215:
-#line 2276 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "*", (yyvsp[0].nd));
- }
-#line 7348 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 216:
-#line 2280 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "/", (yyvsp[0].nd));
- }
-#line 7356 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 217:
-#line 2284 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "%", (yyvsp[0].nd));
- }
-#line 7364 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 218:
-#line 2288 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd));
- }
-#line 7372 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 219:
-#line 2292 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_negate(p, call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd)));
- }
-#line 7380 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 220:
-#line 2296 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_negate(p, call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd)));
- }
-#line 7388 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 221:
-#line 2300 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_uni_op(p, (yyvsp[0].nd), "+@");
- }
-#line 7396 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 222:
-#line 2304 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_negate(p, (yyvsp[0].nd));
- }
-#line 7404 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 223:
-#line 2308 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "|", (yyvsp[0].nd));
- }
-#line 7412 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 224:
-#line 2312 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "^", (yyvsp[0].nd));
- }
-#line 7420 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 225:
-#line 2316 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "&", (yyvsp[0].nd));
- }
-#line 7428 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 226:
-#line 2320 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<=>", (yyvsp[0].nd));
- }
-#line 7436 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 227:
-#line 2324 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">", (yyvsp[0].nd));
- }
-#line 7444 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 228:
-#line 2328 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">=", (yyvsp[0].nd));
- }
-#line 7452 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 229:
-#line 2332 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<", (yyvsp[0].nd));
- }
-#line 7460 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 230:
-#line 2336 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<=", (yyvsp[0].nd));
- }
-#line 7468 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 231:
-#line 2340 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "==", (yyvsp[0].nd));
- }
-#line 7476 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 232:
-#line 2344 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "===", (yyvsp[0].nd));
- }
-#line 7484 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 233:
-#line 2348 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "!=", (yyvsp[0].nd));
- }
-#line 7492 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 234:
-#line 2352 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "=~", (yyvsp[0].nd));
- }
-#line 7500 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 235:
-#line 2356 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "!~", (yyvsp[0].nd));
- }
-#line 7508 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 236:
-#line 2360 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "!");
- }
-#line 7516 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 237:
-#line 2364 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "~");
- }
-#line 7524 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 238:
-#line 2368 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<<", (yyvsp[0].nd));
- }
-#line 7532 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 239:
-#line 2372 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">>", (yyvsp[0].nd));
- }
-#line 7540 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 240:
-#line 2376 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_and(p, (yyvsp[-2].nd), (yyvsp[0].nd));
- }
-#line 7548 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 241:
-#line 2380 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_or(p, (yyvsp[-2].nd), (yyvsp[0].nd));
- }
-#line 7556 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 242:
-#line 2384 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_if(p, cond((yyvsp[-5].nd)), (yyvsp[-3].nd), (yyvsp[0].nd));
- }
-#line 7564 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 243:
-#line 2388 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_if(p, cond((yyvsp[-5].nd)), (yyvsp[-3].nd), (yyvsp[0].nd));
- }
-#line 7572 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 244:
-#line 2392 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-3].nd);
- endless_method_name(p, (yyvsp[-3].nd));
- void_expr_error(p, (yyvsp[0].nd));
- defn_setup(p, (yyval.nd), (yyvsp[-2].nd), (yyvsp[0].nd));
- nvars_unnest(p);
- p->in_def--;
- }
-#line 7585 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 245:
-#line 2401 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-5].nd);
- endless_method_name(p, (yyvsp[-5].nd));
- void_expr_error(p, (yyvsp[-2].nd));
- void_expr_error(p, (yyvsp[0].nd));
- defn_setup(p, (yyval.nd), (yyvsp[-4].nd), new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd)));
- nvars_unnest(p);
- p->in_def--;
- }
-#line 7599 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 246:
-#line 2411 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-3].nd);
- void_expr_error(p, (yyvsp[0].nd));
- defs_setup(p, (yyval.nd), (yyvsp[-2].nd), (yyvsp[0].nd));
- nvars_unnest(p);
- p->in_def--;
- p->in_single--;
- }
-#line 7612 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 247:
-#line 2420 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-5].nd);
- void_expr_error(p, (yyvsp[-2].nd));
- void_expr_error(p, (yyvsp[0].nd));
- defs_setup(p, (yyval.nd), (yyvsp[-4].nd), new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd)));
- nvars_unnest(p);
- p->in_def--;
- p->in_single--;
- }
-#line 7626 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 248:
-#line 2430 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[0].nd);
- }
-#line 7634 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 250:
-#line 2437 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-1].nd);
- NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
- }
-#line 7643 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 251:
-#line 2442 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = push((yyvsp[-3].nd), new_kw_hash(p, (yyvsp[-1].nd)));
- }
-#line 7651 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 252:
-#line 2446 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = cons(new_kw_hash(p, (yyvsp[-1].nd)), 0);
- NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
- }
-#line 7660 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 253:
-#line 2453 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[0].nd);
- }
-#line 7668 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 254:
-#line 2457 "mrbgems/mruby-compiler/core/parse.y"
- {
- void_expr_error(p, (yyvsp[-2].nd));
- void_expr_error(p, (yyvsp[0].nd));
- (yyval.nd) = new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd));
- }
-#line 7678 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 255:
-#line 2465 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-1].nd);
- }
-#line 7686 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 256:
-#line 2469 "mrbgems/mruby-compiler/core/parse.y"
- {
-#if 1
- mrb_sym r = intern_op(mul);
- mrb_sym b = intern_op(and);
- (yyval.nd) = cons(push((yyvsp[-3].nd), new_splat(p, new_lvar(p, r))),
- new_block_arg(p, new_lvar(p, b)));
-#else
- mrb_sym r = intern_op(mul);
- mrb_sym k = intern_op(pow);
- mrb_sym b = intern_op(and);
- (yyval.nd) = cons(list2(push((yyvsp[-3].nd), new_splat(p, new_lvar(p, r))),
- new_kw_hash(p, list1(cons(new_kw_rest_args(p, 0), new_lvar(p, k))))),
- new_block_arg(p, new_lvar(p, b)));
-#endif
- }
-#line 7706 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 257:
-#line 2485 "mrbgems/mruby-compiler/core/parse.y"
- {
-#if 1
- mrb_sym r = intern_op(mul);
- mrb_sym b = intern_op(and);
- if (local_var_p(p, r) && local_var_p(p, b)) {
- (yyval.nd) = cons(list1(new_splat(p, new_lvar(p, r))),
- new_block_arg(p, new_lvar(p, b)));
- }
-#else
- mrb_sym r = intern_op(mul);
- mrb_sym k = intern_op(pow);
- mrb_sym b = intern_op(and);
- if (local_var_p(p, r) && local_var_p(p, k) && local_var_p(p, b)) {
- (yyval.nd) = cons(list2(new_splat(p, new_lvar(p, r)),
- new_kw_hash(p, list1(cons(new_kw_rest_args(p, 0), new_lvar(p, k))))),
- new_block_arg(p, new_lvar(p, b)));
- }
-#endif
- else {
- yyerror(p, "unexpected argument forwarding ...");
- (yyval.nd) = 0;
- }
- }
-#line 7734 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 262:
-#line 2517 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = cons((yyvsp[-1].nd),0);
- NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
- }
-#line 7743 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 263:
-#line 2522 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = cons(push((yyvsp[-3].nd), new_kw_hash(p, (yyvsp[-1].nd))), 0);
- NODE_LINENO((yyval.nd), (yyvsp[-3].nd));
- }
-#line 7752 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 264:
-#line 2527 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = cons(list1(new_kw_hash(p, (yyvsp[-1].nd))), 0);
- NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
- }
-#line 7761 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 265:
-#line 2534 "mrbgems/mruby-compiler/core/parse.y"
- {
- void_expr_error(p, (yyvsp[0].nd));
- (yyval.nd) = cons(list1((yyvsp[0].nd)), 0);
- NODE_LINENO((yyval.nd), (yyvsp[0].nd));
- }
-#line 7771 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 266:
-#line 2540 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = cons((yyvsp[-1].nd), (yyvsp[0].nd));
- NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
- }
-#line 7780 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 267:
-#line 2545 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = cons(list1(new_kw_hash(p, (yyvsp[-1].nd))), (yyvsp[0].nd));
- NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
- }
-#line 7789 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 268:
-#line 2550 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = cons(push((yyvsp[-3].nd), new_kw_hash(p, (yyvsp[-1].nd))), (yyvsp[0].nd));
- NODE_LINENO((yyval.nd), (yyvsp[-3].nd));
- }
-#line 7798 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 269:
-#line 2555 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = cons(0, (yyvsp[0].nd));
- NODE_LINENO((yyval.nd), (yyvsp[0].nd));
- }
-#line 7807 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 270:
-#line 2561 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.stack) = p->cmdarg_stack;
- CMDARG_PUSH(1);
- }
-#line 7816 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 271:
-#line 2566 "mrbgems/mruby-compiler/core/parse.y"
- {
- p->cmdarg_stack = (yyvsp[-1].stack);
- (yyval.nd) = (yyvsp[0].nd);
- }
-#line 7825 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 272:
-#line 2573 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_block_arg(p, (yyvsp[0].nd));
- }
-#line 7833 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 273:
-#line 2579 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[0].nd);
- }
-#line 7841 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 274:
-#line 2583 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = 0;
- }
-#line 7849 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 277:
-#line 2593 "mrbgems/mruby-compiler/core/parse.y"
- {
- void_expr_error(p, (yyvsp[0].nd));
- (yyval.nd) = cons((yyvsp[0].nd), 0);
- NODE_LINENO((yyval.nd), (yyvsp[0].nd));
- }
-#line 7859 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 278:
-#line 2599 "mrbgems/mruby-compiler/core/parse.y"
- {
- void_expr_error(p, (yyvsp[0].nd));
- (yyval.nd) = cons(new_splat(p, (yyvsp[0].nd)), 0);
- NODE_LINENO((yyval.nd), (yyvsp[0].nd));
- }
-#line 7869 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 279:
-#line 2605 "mrbgems/mruby-compiler/core/parse.y"
- {
- void_expr_error(p, (yyvsp[0].nd));
- (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
- }
-#line 7878 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 280:
-#line 2610 "mrbgems/mruby-compiler/core/parse.y"
- {
- void_expr_error(p, (yyvsp[0].nd));
- (yyval.nd) = push((yyvsp[-3].nd), new_splat(p, (yyvsp[0].nd)));
- }
-#line 7887 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 281:
-#line 2617 "mrbgems/mruby-compiler/core/parse.y"
- {
- void_expr_error(p, (yyvsp[0].nd));
- (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
- }
-#line 7896 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 282:
-#line 2622 "mrbgems/mruby-compiler/core/parse.y"
- {
- void_expr_error(p, (yyvsp[0].nd));
- (yyval.nd) = push((yyvsp[-3].nd), new_splat(p, (yyvsp[0].nd)));
- }
-#line 7905 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 283:
-#line 2627 "mrbgems/mruby-compiler/core/parse.y"
- {
- void_expr_error(p, (yyvsp[0].nd));
- (yyval.nd) = list1(new_splat(p, (yyvsp[0].nd)));
- }
-#line 7914 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 291:
-#line 2641 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_nvar(p, (yyvsp[0].num));
- }
-#line 7922 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 292:
-#line 2645 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_fcall(p, (yyvsp[0].id), 0);
- }
-#line 7930 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 293:
-#line 2649 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.stack) = p->cmdarg_stack;
- p->cmdarg_stack = 0;
- }
-#line 7939 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 294:
-#line 2655 "mrbgems/mruby-compiler/core/parse.y"
- {
- p->cmdarg_stack = (yyvsp[-2].stack);
- (yyval.nd) = (yyvsp[-1].nd);
- }
-#line 7948 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 295:
-#line 2660 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.stack) = p->cmdarg_stack;
- p->cmdarg_stack = 0;
- }
-#line 7957 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 296:
-#line 2664 "mrbgems/mruby-compiler/core/parse.y"
- {p->lstate = EXPR_ENDARG;}
-#line 7963 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 297:
-#line 2665 "mrbgems/mruby-compiler/core/parse.y"
- {
- p->cmdarg_stack = (yyvsp[-3].stack);
- (yyval.nd) = (yyvsp[-2].nd);
- }
-#line 7972 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 298:
-#line 2669 "mrbgems/mruby-compiler/core/parse.y"
- {p->lstate = EXPR_ENDARG;}
-#line 7978 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 299:
-#line 2670 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_nil(p);
- }
-#line 7986 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 300:
-#line 2674 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-1].nd);
- }
-#line 7994 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 301:
-#line 2678 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id));
- }
-#line 8002 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 302:
-#line 2682 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_colon3(p, (yyvsp[0].id));
- }
-#line 8010 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 303:
-#line 2686 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_array(p, (yyvsp[-1].nd));
- NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
- }
-#line 8019 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 304:
-#line 2691 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_hash(p, (yyvsp[-1].nd));
- NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
- }
-#line 8028 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 305:
-#line 2696 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_return(p, 0);
- }
-#line 8036 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 306:
-#line 2700 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_yield(p, (yyvsp[0].nd));
- }
-#line 8044 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 307:
-#line 2704 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_uni_op(p, cond((yyvsp[-1].nd)), "!");
- }
-#line 8052 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 308:
-#line 2708 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = call_uni_op(p, new_nil(p), "!");
- }
-#line 8060 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 309:
-#line 2712 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_fcall(p, (yyvsp[-1].id), cons(0, (yyvsp[0].nd)));
- }
-#line 8068 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 311:
-#line 2717 "mrbgems/mruby-compiler/core/parse.y"
- {
- call_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd));
- (yyval.nd) = (yyvsp[-1].nd);
- }
-#line 8077 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 312:
-#line 2722 "mrbgems/mruby-compiler/core/parse.y"
- {
- local_nest(p);
- (yyval.num) = p->lpar_beg;
- p->lpar_beg = ++p->paren_nest;
- }
-#line 8087 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 313:
-#line 2728 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.stack) = p->cmdarg_stack;
- p->cmdarg_stack = 0;
- }
-#line 8096 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 314:
-#line 2733 "mrbgems/mruby-compiler/core/parse.y"
- {
- p->lpar_beg = (yyvsp[-3].num);
- (yyval.nd) = new_lambda(p, (yyvsp[-2].nd), (yyvsp[0].nd));
- local_unnest(p);
- p->cmdarg_stack = (yyvsp[-1].stack);
- CMDARG_LEXPOP();
- }
-#line 8108 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 315:
-#line 2744 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_if(p, cond((yyvsp[-4].nd)), (yyvsp[-2].nd), (yyvsp[-1].nd));
- SET_LINENO((yyval.nd), (yyvsp[-5].num));
- }
-#line 8117 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 316:
-#line 2752 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_unless(p, cond((yyvsp[-4].nd)), (yyvsp[-2].nd), (yyvsp[-1].nd));
- SET_LINENO((yyval.nd), (yyvsp[-5].num));
- }
-#line 8126 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 317:
-#line 2756 "mrbgems/mruby-compiler/core/parse.y"
- {COND_PUSH(1);}
-#line 8132 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 318:
-#line 2756 "mrbgems/mruby-compiler/core/parse.y"
- {COND_POP();}
-#line 8138 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 319:
-#line 2759 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_while(p, cond((yyvsp[-4].nd)), (yyvsp[-1].nd));
- SET_LINENO((yyval.nd), (yyvsp[-6].num));
- }
-#line 8147 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 320:
-#line 2763 "mrbgems/mruby-compiler/core/parse.y"
- {COND_PUSH(1);}
-#line 8153 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 321:
-#line 2763 "mrbgems/mruby-compiler/core/parse.y"
- {COND_POP();}
-#line 8159 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 322:
-#line 2766 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_until(p, cond((yyvsp[-4].nd)), (yyvsp[-1].nd));
- SET_LINENO((yyval.nd), (yyvsp[-6].num));
- }
-#line 8168 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 323:
-#line 2773 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_case(p, (yyvsp[-3].nd), (yyvsp[-1].nd));
- }
-#line 8176 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 324:
-#line 2777 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_case(p, 0, (yyvsp[-1].nd));
- }
-#line 8184 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 325:
-#line 2781 "mrbgems/mruby-compiler/core/parse.y"
- {COND_PUSH(1);}
-#line 8190 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 326:
-#line 2783 "mrbgems/mruby-compiler/core/parse.y"
- {COND_POP();}
-#line 8196 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 327:
-#line 2786 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_for(p, (yyvsp[-7].nd), (yyvsp[-4].nd), (yyvsp[-1].nd));
- SET_LINENO((yyval.nd), (yyvsp[-8].num));
- }
-#line 8205 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 328:
-#line 2792 "mrbgems/mruby-compiler/core/parse.y"
- {
- if (p->in_def || p->in_single)
- yyerror(p, "class definition in method body");
- (yyval.nd) = local_switch(p);
- nvars_block(p);
- }
-#line 8216 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 329:
-#line 2800 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_class(p, (yyvsp[-4].nd), (yyvsp[-3].nd), (yyvsp[-1].nd));
- SET_LINENO((yyval.nd), (yyvsp[-5].num));
- local_resume(p, (yyvsp[-2].nd));
- nvars_unnest(p);
- }
-#line 8227 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 330:
-#line 2808 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.num) = p->in_def;
- p->in_def = 0;
- }
-#line 8236 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 331:
-#line 2813 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = cons(local_switch(p), nint(p->in_single));
- nvars_block(p);
- p->in_single = 0;
- }
-#line 8246 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 332:
-#line 2820 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_sclass(p, (yyvsp[-5].nd), (yyvsp[-1].nd));
- SET_LINENO((yyval.nd), (yyvsp[-7].num));
- local_resume(p, (yyvsp[-2].nd)->car);
- nvars_unnest(p);
- p->in_def = (yyvsp[-4].num);
- p->in_single = intn((yyvsp[-2].nd)->cdr);
- }
-#line 8259 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 333:
-#line 2830 "mrbgems/mruby-compiler/core/parse.y"
- {
- if (p->in_def || p->in_single)
- yyerror(p, "module definition in method body");
- (yyval.nd) = local_switch(p);
- nvars_block(p);
- }
-#line 8270 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 334:
-#line 2838 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_module(p, (yyvsp[-3].nd), (yyvsp[-1].nd));
- SET_LINENO((yyval.nd), (yyvsp[-4].num));
- local_resume(p, (yyvsp[-2].nd));
- nvars_unnest(p);
- }
-#line 8281 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 335:
-#line 2848 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-3].nd);
- defn_setup(p, (yyval.nd), (yyvsp[-2].nd), (yyvsp[-1].nd));
- nvars_unnest(p);
- p->in_def--;
- }
-#line 8292 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 336:
-#line 2858 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-3].nd);
- defs_setup(p, (yyval.nd), (yyvsp[-2].nd), (yyvsp[-1].nd));
- nvars_unnest(p);
- p->in_def--;
- p->in_single--;
- }
-#line 8304 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 337:
-#line 2866 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_break(p, 0);
- }
-#line 8312 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 338:
-#line 2870 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_next(p, 0);
- }
-#line 8320 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 339:
-#line 2874 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_redo(p);
- }
-#line 8328 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 340:
-#line 2878 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_retry(p);
- }
-#line 8336 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 341:
-#line 2884 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[0].nd);
- if (!(yyval.nd)) (yyval.nd) = new_nil(p);
- }
-#line 8345 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 348:
-#line 2903 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_if(p, cond((yyvsp[-3].nd)), (yyvsp[-1].nd), (yyvsp[0].nd));
- }
-#line 8353 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 350:
-#line 2910 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[0].nd);
- }
-#line 8361 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 351:
-#line 2916 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list1(list1((yyvsp[0].nd)));
- }
-#line 8369 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 353:
-#line 2923 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list3((yyvsp[0].nd),0,0);
- }
-#line 8377 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 354:
-#line 2927 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list3((yyvsp[-3].nd), new_arg(p, (yyvsp[0].id)), 0);
- }
-#line 8385 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 355:
-#line 2931 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list3((yyvsp[-5].nd), new_arg(p, (yyvsp[-2].id)), (yyvsp[0].nd));
- }
-#line 8393 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 356:
-#line 2935 "mrbgems/mruby-compiler/core/parse.y"
- {
- local_add_f(p, 0);
- (yyval.nd) = list3((yyvsp[-2].nd), nint(-1), 0);
- }
-#line 8402 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 357:
-#line 2940 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list3((yyvsp[-4].nd), nint(-1), (yyvsp[0].nd));
- }
-#line 8410 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 358:
-#line 2944 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list3(0, new_arg(p, (yyvsp[0].id)), 0);
- }
-#line 8418 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 359:
-#line 2948 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list3(0, new_arg(p, (yyvsp[-2].id)), (yyvsp[0].nd));
- }
-#line 8426 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 360:
-#line 2952 "mrbgems/mruby-compiler/core/parse.y"
- {
- local_add_f(p, 0);
- (yyval.nd) = list3(0, nint(-1), 0);
- }
-#line 8435 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 361:
-#line 2957 "mrbgems/mruby-compiler/core/parse.y"
- {
- local_add_f(p, 0);
- }
-#line 8443 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 362:
-#line 2961 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list3(0, nint(-1), (yyvsp[0].nd));
- }
-#line 8451 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 363:
-#line 2967 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args_tail(p, (yyvsp[-3].nd), (yyvsp[-1].nd), (yyvsp[0].id));
- }
-#line 8459 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 364:
-#line 2971 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args_tail(p, (yyvsp[-1].nd), 0, (yyvsp[0].id));
- }
-#line 8467 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 365:
-#line 2975 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args_tail(p, 0, (yyvsp[-1].nd), (yyvsp[0].id));
- }
-#line 8475 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 366:
-#line 2979 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args_tail(p, 0, 0, (yyvsp[0].id));
- }
-#line 8483 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 367:
-#line 2985 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[0].nd);
- }
-#line 8491 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 368:
-#line 2989 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args_tail(p, 0, 0, 0);
- }
-#line 8499 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 369:
-#line 2995 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd));
- }
-#line 8507 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 370:
-#line 2999 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, (yyvsp[-7].nd), (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
- }
-#line 8515 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 371:
-#line 3003 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, (yyvsp[-3].nd), (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd));
- }
-#line 8523 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 372:
-#line 3007 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd));
- }
-#line 8531 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 373:
-#line 3011 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, (yyvsp[-3].nd), 0, (yyvsp[-1].id), 0, (yyvsp[0].nd));
- }
-#line 8539 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 374:
-#line 3015 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, (yyvsp[-2].nd), 0, 0, 0, (yyvsp[0].nd));
- }
-#line 8547 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 375:
-#line 3019 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, (yyvsp[-5].nd), 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
- }
-#line 8555 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 376:
-#line 3023 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, (yyvsp[-1].nd), 0, 0, 0, (yyvsp[0].nd));
- }
-#line 8563 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 377:
-#line 3027 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd));
- }
-#line 8571 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 378:
-#line 3031 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, 0, (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
- }
-#line 8579 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 379:
-#line 3035 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, 0, (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd));
- }
-#line 8587 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 380:
-#line 3039 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd));
- }
-#line 8595 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 381:
-#line 3043 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, 0, 0, (yyvsp[-1].id), 0, (yyvsp[0].nd));
- }
-#line 8603 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 382:
-#line 3047 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, 0, 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
- }
-#line 8611 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 383:
-#line 3051 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, 0, 0, 0, 0, (yyvsp[0].nd));
- }
-#line 8619 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 384:
-#line 3057 "mrbgems/mruby-compiler/core/parse.y"
- {
- local_add_blk(p, 0);
- (yyval.nd) = 0;
- }
-#line 8628 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 385:
-#line 3062 "mrbgems/mruby-compiler/core/parse.y"
- {
- p->cmd_start = TRUE;
- (yyval.nd) = (yyvsp[0].nd);
- }
-#line 8637 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 386:
-#line 3068 "mrbgems/mruby-compiler/core/parse.y"
- {local_add_blk(p, 0);}
-#line 8643 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 387:
-#line 3069 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = 0;
- }
-#line 8651 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 388:
-#line 3073 "mrbgems/mruby-compiler/core/parse.y"
- {
- local_add_blk(p, 0);
- (yyval.nd) = 0;
- }
-#line 8660 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 389:
-#line 3078 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-2].nd);
- }
-#line 8668 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 390:
-#line 3085 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = 0;
- }
-#line 8676 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 391:
-#line 3089 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = 0;
- }
-#line 8684 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 394:
-#line 3099 "mrbgems/mruby-compiler/core/parse.y"
- {
- local_add_f(p, (yyvsp[0].id));
- new_bv(p, (yyvsp[0].id));
- }
-#line 8693 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 396:
-#line 3107 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-2].nd);
- }
-#line 8701 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 397:
-#line 3111 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[0].nd);
- }
-#line 8709 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 398:
-#line 3117 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-1].nd);
- }
-#line 8717 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 399:
-#line 3121 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-1].nd);
- }
-#line 8725 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 400:
-#line 3127 "mrbgems/mruby-compiler/core/parse.y"
- {
- local_nest(p);
- nvars_nest(p);
- }
-#line 8734 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 401:
-#line 3134 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_block(p,(yyvsp[-2].nd),(yyvsp[-1].nd));
- local_unnest(p);
- nvars_unnest(p);
- }
-#line 8744 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 402:
-#line 3142 "mrbgems/mruby-compiler/core/parse.y"
- {
- if (typen((yyvsp[-1].nd)->car) == NODE_YIELD) {
- yyerror(p, "block given to yield");
- }
- else {
- call_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd));
- }
- (yyval.nd) = (yyvsp[-1].nd);
- }
-#line 8758 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 403:
-#line 3152 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num));
- }
-#line 8766 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 404:
-#line 3156 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), (yyvsp[-1].nd), (yyvsp[-3].num));
- call_with_block(p, (yyval.nd), (yyvsp[0].nd));
- }
-#line 8775 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 405:
-#line 3161 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), (yyvsp[-1].nd), (yyvsp[-3].num));
- call_with_block(p, (yyval.nd), (yyvsp[0].nd));
- }
-#line 8784 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 406:
-#line 3168 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_fcall(p, (yyvsp[-1].id), (yyvsp[0].nd));
- }
-#line 8792 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 407:
-#line 3172 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num));
- }
-#line 8800 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 408:
-#line 3176 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), tCOLON2);
- }
-#line 8808 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 409:
-#line 3180 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2);
- }
-#line 8816 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 410:
-#line 3184 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_call(p, (yyvsp[-2].nd), MRB_SYM_2(p->mrb, call), (yyvsp[0].nd), (yyvsp[-1].num));
- }
-#line 8824 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 411:
-#line 3188 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_call(p, (yyvsp[-2].nd), MRB_SYM_2(p->mrb, call), (yyvsp[0].nd), tCOLON2);
- }
-#line 8832 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 412:
-#line 3192 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_super(p, (yyvsp[0].nd));
- }
-#line 8840 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 413:
-#line 3196 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_zsuper(p);
- }
-#line 8848 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 414:
-#line 3200 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.');
- }
-#line 8856 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 415:
-#line 3206 "mrbgems/mruby-compiler/core/parse.y"
- {
- local_nest(p);
- nvars_nest(p);
- (yyval.num) = p->lineno;
- }
-#line 8866 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 416:
-#line 3213 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_block(p,(yyvsp[-2].nd),(yyvsp[-1].nd));
- SET_LINENO((yyval.nd), (yyvsp[-3].num));
- local_unnest(p);
- nvars_unnest(p);
- }
-#line 8877 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 417:
-#line 3220 "mrbgems/mruby-compiler/core/parse.y"
- {
- local_nest(p);
- nvars_nest(p);
- (yyval.num) = p->lineno;
- }
-#line 8887 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 418:
-#line 3227 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_block(p,(yyvsp[-2].nd),(yyvsp[-1].nd));
- SET_LINENO((yyval.nd), (yyvsp[-3].num));
- local_unnest(p);
- nvars_unnest(p);
- }
-#line 8898 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 419:
-#line 3238 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = cons(cons((yyvsp[-3].nd), (yyvsp[-1].nd)), (yyvsp[0].nd));
- }
-#line 8906 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 420:
-#line 3244 "mrbgems/mruby-compiler/core/parse.y"
- {
- if ((yyvsp[0].nd)) {
- (yyval.nd) = cons(cons(0, (yyvsp[0].nd)), 0);
- }
- else {
- (yyval.nd) = 0;
- }
- }
-#line 8919 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 422:
-#line 3258 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list1(list3((yyvsp[-4].nd), (yyvsp[-3].nd), (yyvsp[-1].nd)));
- if ((yyvsp[0].nd)) (yyval.nd) = append((yyval.nd), (yyvsp[0].nd));
- }
-#line 8928 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 424:
-#line 3266 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list1((yyvsp[0].nd));
- }
-#line 8936 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 427:
-#line 3274 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[0].nd);
- }
-#line 8944 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 429:
-#line 3281 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[0].nd);
- }
-#line 8952 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 436:
-#line 3295 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = concat_string(p, (yyvsp[-1].nd), (yyvsp[0].nd));
- }
-#line 8960 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 439:
-#line 3303 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[0].nd);
- }
-#line 8968 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 440:
-#line 3307 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_dstr(p, push((yyvsp[-1].nd), (yyvsp[0].nd)));
- }
-#line 8976 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 442:
-#line 3314 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = append((yyvsp[-1].nd), (yyvsp[0].nd));
- }
-#line 8984 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 443:
-#line 3320 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list1((yyvsp[0].nd));
- }
-#line 8992 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 444:
-#line 3324 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = p->lex_strterm;
- p->lex_strterm = NULL;
- }
-#line 9001 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 445:
-#line 3330 "mrbgems/mruby-compiler/core/parse.y"
- {
- p->lex_strterm = (yyvsp[-2].nd);
- (yyval.nd) = list2((yyvsp[-3].nd), (yyvsp[-1].nd));
- }
-#line 9010 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 446:
-#line 3335 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list1(new_literal_delim(p));
- }
-#line 9018 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 447:
-#line 3339 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list1(new_literal_delim(p));
- }
-#line 9026 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 448:
-#line 3345 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[0].nd);
- }
-#line 9034 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 449:
-#line 3349 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_dxstr(p, push((yyvsp[-1].nd), (yyvsp[0].nd)));
- }
-#line 9042 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 450:
-#line 3355 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[0].nd);
- }
-#line 9050 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 451:
-#line 3359 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_dregx(p, (yyvsp[-1].nd), (yyvsp[0].nd));
- }
-#line 9058 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 455:
-#line 3372 "mrbgems/mruby-compiler/core/parse.y"
- {
- parser_heredoc_info * inf = parsing_heredoc_inf(p);
- inf->doc = push(inf->doc, new_str(p, "", 0));
- heredoc_end(p);
- }
-#line 9068 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 456:
-#line 3378 "mrbgems/mruby-compiler/core/parse.y"
- {
- heredoc_end(p);
- }
-#line 9076 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 459:
-#line 3388 "mrbgems/mruby-compiler/core/parse.y"
- {
- parser_heredoc_info * inf = parsing_heredoc_inf(p);
- inf->doc = push(inf->doc, (yyvsp[0].nd));
- heredoc_treat_nextline(p);
- }
-#line 9086 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 460:
-#line 3394 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = p->lex_strterm;
- p->lex_strterm = NULL;
- }
-#line 9095 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 461:
-#line 3400 "mrbgems/mruby-compiler/core/parse.y"
- {
- parser_heredoc_info * inf = parsing_heredoc_inf(p);
- p->lex_strterm = (yyvsp[-2].nd);
- inf->doc = push(push(inf->doc, (yyvsp[-3].nd)), (yyvsp[-1].nd));
- }
-#line 9105 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 462:
-#line 3408 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_words(p, list1((yyvsp[0].nd)));
- }
-#line 9113 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 463:
-#line 3412 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_words(p, push((yyvsp[-1].nd), (yyvsp[0].nd)));
- }
-#line 9121 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 464:
-#line 3419 "mrbgems/mruby-compiler/core/parse.y"
- {
- p->lstate = EXPR_ENDARG;
- (yyval.nd) = new_sym(p, (yyvsp[0].id));
- }
-#line 9130 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 465:
-#line 3424 "mrbgems/mruby-compiler/core/parse.y"
- {
- p->lstate = EXPR_ENDARG;
- (yyval.nd) = new_dsym(p, new_dstr(p, push((yyvsp[-1].nd), (yyvsp[0].nd))));
- }
-#line 9139 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 466:
-#line 3431 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.id) = (yyvsp[0].id);
- }
-#line 9147 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 471:
-#line 3441 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.id) = new_strsym(p, (yyvsp[0].nd));
- }
-#line 9155 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 472:
-#line 3445 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.id) = new_strsym(p, (yyvsp[0].nd));
- }
-#line 9163 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 473:
-#line 3451 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_symbols(p, list1((yyvsp[0].nd)));
- }
-#line 9171 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 474:
-#line 3455 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_symbols(p, push((yyvsp[-1].nd), (yyvsp[0].nd)));
- }
-#line 9179 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 477:
-#line 3463 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_negate(p, (yyvsp[0].nd));
- }
-#line 9187 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 478:
-#line 3467 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_negate(p, (yyvsp[0].nd));
- }
-#line 9195 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 479:
-#line 3473 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_lvar(p, (yyvsp[0].id));
- }
-#line 9203 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 480:
-#line 3477 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_ivar(p, (yyvsp[0].id));
- }
-#line 9211 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 481:
-#line 3481 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_gvar(p, (yyvsp[0].id));
- }
-#line 9219 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 482:
-#line 3485 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_cvar(p, (yyvsp[0].id));
- }
-#line 9227 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 483:
-#line 3489 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_const(p, (yyvsp[0].id));
- }
-#line 9235 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 484:
-#line 3495 "mrbgems/mruby-compiler/core/parse.y"
- {
- assignable(p, (yyvsp[0].nd));
- }
-#line 9243 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 485:
-#line 3499 "mrbgems/mruby-compiler/core/parse.y"
- {
- yyerror(p, "can't assign to numbered parameter");
- }
-#line 9251 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 486:
-#line 3505 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = var_reference(p, (yyvsp[0].nd));
- }
-#line 9259 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 487:
-#line 3509 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_nil(p);
- }
-#line 9267 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 488:
-#line 3513 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_self(p);
- }
-#line 9275 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 489:
-#line 3517 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_true(p);
- }
-#line 9283 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 490:
-#line 3521 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_false(p);
- }
-#line 9291 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 491:
-#line 3525 "mrbgems/mruby-compiler/core/parse.y"
- {
- const char *fn = mrb_sym_name_len(p->mrb, p->filename_sym, NULL);
- if (!fn) {
- fn = "(null)";
- }
- (yyval.nd) = new_str(p, fn, strlen(fn));
- }
-#line 9303 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 492:
-#line 3533 "mrbgems/mruby-compiler/core/parse.y"
- {
- char buf[16];
-
- dump_int(p->lineno, buf);
- (yyval.nd) = new_int(p, buf, 10, 0);
- }
-#line 9314 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 493:
-#line 3540 "mrbgems/mruby-compiler/core/parse.y"
- {
-#ifdef MRB_UTF8_STRING
- const char *enc = "UTF-8";
-#else
- const char *enc = "ASCII-8BIT";
-#endif
- (yyval.nd) = new_str(p, enc, strlen(enc));
- }
-#line 9327 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 496:
-#line 3555 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = 0;
- }
-#line 9335 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 497:
-#line 3559 "mrbgems/mruby-compiler/core/parse.y"
- {
- p->lstate = EXPR_BEG;
- p->cmd_start = TRUE;
- }
-#line 9344 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 498:
-#line 3564 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-1].nd);
- }
-#line 9352 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 501:
-#line 3580 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-1].nd);
- p->lstate = EXPR_BEG;
- p->cmd_start = TRUE;
- }
-#line 9362 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 502:
-#line 3586 "mrbgems/mruby-compiler/core/parse.y"
- {
-#if 1
- /* til real keyword args implemented */
- mrb_sym r = intern_op(mul);
- mrb_sym b = intern_op(and);
- local_add_f(p, r);
- (yyval.nd) = new_args(p, (yyvsp[-3].nd), 0, r, 0,
- new_args_tail(p, 0, 0, b));
-#else
- mrb_sym r = intern_op(mul);
- mrb_sym k = intern_op(pow);
- mrb_sym b = intern_op(and);
- local_add_f(p, r); local_add_f(p, k);
- (yyval.nd) = new_args(p, (yyvsp[-3].nd), 0, r, 0,
- new_args_tail(p, 0, new_kw_rest_args(p, nsym(k)), b));
-#endif
- }
-#line 9384 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 503:
-#line 3604 "mrbgems/mruby-compiler/core/parse.y"
- {
-#if 1
- /* til real keyword args implemented */
- mrb_sym r = intern_op(mul);
- mrb_sym b = intern_op(and);
- local_add_f(p, r);
- (yyval.nd) = new_args(p, 0, 0, r, 0,
- new_args_tail(p, 0, 0, b));
-#else
- mrb_sym r = intern_op(mul);
- mrb_sym k = intern_op(pow);
- mrb_sym b = intern_op(and);
- local_add_f(p, r); local_add_f(p, k);
- (yyval.nd) = new_args(p, 0, 0, r, 0,
- new_args_tail(p, 0, new_kw_rest_args(p, nsym(k)), b));
-#endif
- }
-#line 9406 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 505:
-#line 3625 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-1].nd);
- }
-#line 9414 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 506:
-#line 3631 "mrbgems/mruby-compiler/core/parse.y"
- {
- local_nest(p);
- }
-#line 9422 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 507:
-#line 3637 "mrbgems/mruby-compiler/core/parse.y"
- {
- void_expr_error(p, (yyvsp[0].nd));
- (yyval.nd) = new_kw_arg(p, (yyvsp[-1].id), cons((yyvsp[0].nd), locals_node(p)));
- local_unnest(p);
- }
-#line 9432 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 508:
-#line 3643 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_kw_arg(p, (yyvsp[0].id), 0);
- local_unnest(p);
- }
-#line 9441 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 509:
-#line 3650 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_kw_arg(p, (yyvsp[-1].id), cons((yyvsp[0].nd), locals_node(p)));
- local_unnest(p);
- }
-#line 9450 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 510:
-#line 3655 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_kw_arg(p, (yyvsp[0].id), 0);
- local_unnest(p);
- }
-#line 9459 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 511:
-#line 3662 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list1((yyvsp[0].nd));
- }
-#line 9467 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 512:
-#line 3666 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
- }
-#line 9475 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 513:
-#line 3672 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list1((yyvsp[0].nd));
- }
-#line 9483 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 514:
-#line 3676 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
- }
-#line 9491 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 517:
-#line 3686 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_kw_rest_args(p, nsym((yyvsp[0].id)));
- }
-#line 9499 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 518:
-#line 3690 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_kw_rest_args(p, 0);
- }
-#line 9507 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 519:
-#line 3696 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args_tail(p, (yyvsp[-3].nd), (yyvsp[-1].nd), (yyvsp[0].id));
- }
-#line 9515 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 520:
-#line 3700 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args_tail(p, (yyvsp[-1].nd), 0, (yyvsp[0].id));
- }
-#line 9523 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 521:
-#line 3704 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args_tail(p, 0, (yyvsp[-1].nd), (yyvsp[0].id));
- }
-#line 9531 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 522:
-#line 3708 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args_tail(p, 0, 0, (yyvsp[0].id));
- }
-#line 9539 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 523:
-#line 3714 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[0].nd);
- }
-#line 9547 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 524:
-#line 3718 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args_tail(p, 0, 0, 0);
- }
-#line 9555 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 525:
-#line 3724 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd));
- }
-#line 9563 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 526:
-#line 3728 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, (yyvsp[-7].nd), (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
- }
-#line 9571 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 527:
-#line 3732 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, (yyvsp[-3].nd), (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd));
- }
-#line 9579 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 528:
-#line 3736 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd));
- }
-#line 9587 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 529:
-#line 3740 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, (yyvsp[-3].nd), 0, (yyvsp[-1].id), 0, (yyvsp[0].nd));
- }
-#line 9595 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 530:
-#line 3744 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, (yyvsp[-5].nd), 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
- }
-#line 9603 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 531:
-#line 3748 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, (yyvsp[-1].nd), 0, 0, 0, (yyvsp[0].nd));
- }
-#line 9611 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 532:
-#line 3752 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd));
- }
-#line 9619 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 533:
-#line 3756 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, 0, (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
- }
-#line 9627 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 534:
-#line 3760 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, 0, (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd));
- }
-#line 9635 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 535:
-#line 3764 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd));
- }
-#line 9643 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 536:
-#line 3768 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, 0, 0, (yyvsp[-1].id), 0, (yyvsp[0].nd));
- }
-#line 9651 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 537:
-#line 3772 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, 0, 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
- }
-#line 9659 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 538:
-#line 3776 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_args(p, 0, 0, 0, 0, (yyvsp[0].nd));
- }
-#line 9667 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 539:
-#line 3780 "mrbgems/mruby-compiler/core/parse.y"
- {
- local_add_f(p, intern_op(and));
- (yyval.nd) = new_args(p, 0, 0, 0, 0, 0);
- }
-#line 9676 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 540:
-#line 3787 "mrbgems/mruby-compiler/core/parse.y"
- {
- yyerror(p, "formal argument cannot be a constant");
- (yyval.nd) = 0;
- }
-#line 9685 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 541:
-#line 3792 "mrbgems/mruby-compiler/core/parse.y"
- {
- yyerror(p, "formal argument cannot be an instance variable");
- (yyval.nd) = 0;
- }
-#line 9694 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 542:
-#line 3797 "mrbgems/mruby-compiler/core/parse.y"
- {
- yyerror(p, "formal argument cannot be a global variable");
- (yyval.nd) = 0;
- }
-#line 9703 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 543:
-#line 3802 "mrbgems/mruby-compiler/core/parse.y"
- {
- yyerror(p, "formal argument cannot be a class variable");
- (yyval.nd) = 0;
- }
-#line 9712 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 544:
-#line 3807 "mrbgems/mruby-compiler/core/parse.y"
- {
- yyerror(p, "formal argument cannot be a numbered parameter");
- (yyval.nd) = 0;
- }
-#line 9721 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 545:
-#line 3814 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.id) = 0;
- }
-#line 9729 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 546:
-#line 3818 "mrbgems/mruby-compiler/core/parse.y"
- {
- local_add_f(p, (yyvsp[0].id));
- (yyval.id) = (yyvsp[0].id);
- }
-#line 9738 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 547:
-#line 3825 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_arg(p, (yyvsp[0].id));
- }
-#line 9746 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 548:
-#line 3829 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = local_switch(p);
- }
-#line 9754 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 549:
-#line 3833 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_masgn_param(p, (yyvsp[-1].nd), p->locals->car);
- local_resume(p, (yyvsp[-2].nd));
- local_add_f(p, 0);
- }
-#line 9764 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 550:
-#line 3841 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list1((yyvsp[0].nd));
- }
-#line 9772 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 551:
-#line 3845 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
- }
-#line 9780 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 552:
-#line 3851 "mrbgems/mruby-compiler/core/parse.y"
- {
- local_add_f(p, (yyvsp[-1].id));
- local_nest(p);
- (yyval.id) = (yyvsp[-1].id);
- }
-#line 9790 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 553:
-#line 3859 "mrbgems/mruby-compiler/core/parse.y"
- {
- void_expr_error(p, (yyvsp[0].nd));
- (yyval.nd) = cons(nsym((yyvsp[-1].id)), cons((yyvsp[0].nd), locals_node(p)));
- local_unnest(p);
- }
-#line 9800 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 554:
-#line 3867 "mrbgems/mruby-compiler/core/parse.y"
- {
- void_expr_error(p, (yyvsp[0].nd));
- (yyval.nd) = cons(nsym((yyvsp[-1].id)), cons((yyvsp[0].nd), locals_node(p)));
- local_unnest(p);
- }
-#line 9810 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 555:
-#line 3875 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list1((yyvsp[0].nd));
- }
-#line 9818 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 556:
-#line 3879 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
- }
-#line 9826 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 557:
-#line 3885 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list1((yyvsp[0].nd));
- }
-#line 9834 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 558:
-#line 3889 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
- }
-#line 9842 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 561:
-#line 3899 "mrbgems/mruby-compiler/core/parse.y"
- {
- local_add_f(p, (yyvsp[0].id));
- (yyval.id) = (yyvsp[0].id);
- }
-#line 9851 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 562:
-#line 3904 "mrbgems/mruby-compiler/core/parse.y"
- {
- local_add_f(p, intern_op(mul));
- (yyval.id) = -1;
- }
-#line 9860 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 565:
-#line 3915 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.id) = (yyvsp[0].id);
- }
-#line 9868 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 566:
-#line 3921 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.id) = (yyvsp[0].id);
- }
-#line 9876 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 567:
-#line 3925 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.id) = 0;
- }
-#line 9884 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 568:
-#line 3931 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[0].nd);
- if (!(yyval.nd)) (yyval.nd) = new_nil(p);
- }
-#line 9893 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 569:
-#line 3935 "mrbgems/mruby-compiler/core/parse.y"
- {p->lstate = EXPR_BEG;}
-#line 9899 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 570:
-#line 3936 "mrbgems/mruby-compiler/core/parse.y"
- {
- if ((yyvsp[-1].nd) == 0) {
- yyerror(p, "can't define singleton method for ().");
- }
- else {
- switch (typen((yyvsp[-1].nd)->car)) {
- case NODE_STR:
- case NODE_DSTR:
- case NODE_XSTR:
- case NODE_DXSTR:
- case NODE_DREGX:
- case NODE_MATCH:
- case NODE_FLOAT:
- case NODE_ARRAY:
- case NODE_HEREDOC:
- yyerror(p, "can't define singleton method for literals");
- default:
- break;
- }
- }
- (yyval.nd) = (yyvsp[-1].nd);
- }
-#line 9926 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 572:
-#line 3962 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-1].nd);
- }
-#line 9934 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 573:
-#line 3968 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = list1((yyvsp[0].nd));
- NODE_LINENO((yyval.nd), (yyvsp[0].nd));
- }
-#line 9943 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 574:
-#line 3973 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
- }
-#line 9951 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 577:
-#line 3983 "mrbgems/mruby-compiler/core/parse.y"
- {
- void_expr_error(p, (yyvsp[-2].nd));
- void_expr_error(p, (yyvsp[0].nd));
- (yyval.nd) = cons((yyvsp[-2].nd), (yyvsp[0].nd));
- }
-#line 9961 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 578:
-#line 3989 "mrbgems/mruby-compiler/core/parse.y"
- {
- void_expr_error(p, (yyvsp[0].nd));
- (yyval.nd) = cons(new_sym(p, (yyvsp[-2].id)), (yyvsp[0].nd));
- }
-#line 9970 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 579:
-#line 3994 "mrbgems/mruby-compiler/core/parse.y"
- {
- void_expr_error(p, (yyvsp[0].nd));
- if (typen((yyvsp[-2].nd)->car) == NODE_DSTR) {
- (yyval.nd) = cons(new_dsym(p, (yyvsp[-2].nd)), (yyvsp[0].nd));
- }
- else {
- (yyval.nd) = cons(new_sym(p, new_strsym(p, (yyvsp[-2].nd))), (yyvsp[0].nd));
- }
- }
-#line 9984 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 580:
-#line 4004 "mrbgems/mruby-compiler/core/parse.y"
- {
- void_expr_error(p, (yyvsp[0].nd));
- (yyval.nd) = cons(new_kw_rest_args(p, 0), (yyvsp[0].nd));
- }
-#line 9993 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 593:
-#line 4031 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.num) = '.';
- }
-#line 10001 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 594:
-#line 4035 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.num) = 0;
- }
-#line 10009 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 596:
-#line 4042 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.num) = tCOLON2;
- }
-#line 10017 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 605:
-#line 4063 "mrbgems/mruby-compiler/core/parse.y"
- {yyerrok;}
-#line 10023 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 608:
-#line 4069 "mrbgems/mruby-compiler/core/parse.y"
- {
- p->lineno += (yyvsp[0].num);
- p->column = 0;
- }
-#line 10032 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 611:
-#line 4080 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = 0;
- }
-#line 10040 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
-
-#line 10044 "mrbgems/mruby-compiler/core/y.tab.c"
-
- default: break;
- }
- /* User semantic actions sometimes alter yychar, and that requires
- that yytoken be updated with the new translation. We take the
- approach of translating immediately before every use of yytoken.
- One alternative is translating here after every semantic action,
- but that translation would be missed if the semantic action invokes
- YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
- if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
- incorrect destructor might then be invoked immediately. In the
- case of YYERROR or YYBACKUP, subsequent parser actions might lead
- to an incorrect destructor call or verbose syntax error message
- before the lookahead is translated. */
- YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
-
- YYPOPSTACK (yylen);
- yylen = 0;
- YY_STACK_PRINT (yyss, yyssp);
-
- *++yyvsp = yyval;
-
- /* Now 'shift' the result of the reduction. Determine what state
- that goes to, based on the state we popped back to and the rule
- number reduced by. */
- {
- const int yylhs = yyr1[yyn] - YYNTOKENS;
- const int yyi = yypgoto[yylhs] + *yyssp;
- yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
- ? yytable[yyi]
- : yydefgoto[yylhs]);
- }
-
- goto yynewstate;
-
-
-/*--------------------------------------.
-| yyerrlab -- here on detecting error. |
-`--------------------------------------*/
-yyerrlab:
- /* Make sure we have latest lookahead translation. See comments at
- user semantic actions for why this is necessary. */
- yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
-
- /* If not already recovering from an error, report this error. */
- if (!yyerrstatus)
- {
- ++yynerrs;
-#if ! YYERROR_VERBOSE
- yyerror (p, YY_("syntax error"));
-#else
-# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
- yyssp, yytoken)
- {
- char const *yymsgp = YY_("syntax error");
- int yysyntax_error_status;
- yysyntax_error_status = YYSYNTAX_ERROR;
- if (yysyntax_error_status == 0)
- yymsgp = yymsg;
- else if (yysyntax_error_status == 1)
- {
- if (yymsg != yymsgbuf)
- YYSTACK_FREE (yymsg);
- yymsg = YY_CAST (char *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
- if (!yymsg)
- {
- yymsg = yymsgbuf;
- yymsg_alloc = sizeof yymsgbuf;
- yysyntax_error_status = 2;
- }
- else
- {
- yysyntax_error_status = YYSYNTAX_ERROR;
- yymsgp = yymsg;
- }
- }
- yyerror (p, yymsgp);
- if (yysyntax_error_status == 2)
- goto yyexhaustedlab;
- }
-# undef YYSYNTAX_ERROR
-#endif
- }
-
-
-
- if (yyerrstatus == 3)
- {
- /* If just tried and failed to reuse lookahead token after an
- error, discard it. */
-
- if (yychar <= YYEOF)
- {
- /* Return failure if at end of input. */
- if (yychar == YYEOF)
- YYABORT;
- }
- else
- {
- yydestruct ("Error: discarding",
- yytoken, &yylval, p);
- yychar = YYEMPTY;
- }
- }
-
- /* Else will try to reuse lookahead token after shifting the error
- token. */
- goto yyerrlab1;
-
-
-/*---------------------------------------------------.
-| yyerrorlab -- error raised explicitly by YYERROR. |
-`---------------------------------------------------*/
-yyerrorlab:
- /* Pacify compilers when the user code never invokes YYERROR and the
- label yyerrorlab therefore never appears in user code. */
- if (0)
- YYERROR;
-
- /* Do not reclaim the symbols of the rule whose action triggered
- this YYERROR. */
- YYPOPSTACK (yylen);
- yylen = 0;
- YY_STACK_PRINT (yyss, yyssp);
- yystate = *yyssp;
- goto yyerrlab1;
-
-
-/*-------------------------------------------------------------.
-| yyerrlab1 -- common code for both syntax error and YYERROR. |
-`-------------------------------------------------------------*/
-yyerrlab1:
- yyerrstatus = 3; /* Each real token shifted decrements this. */
-
- for (;;)
- {
- yyn = yypact[yystate];
- if (!yypact_value_is_default (yyn))
- {
- yyn += YYTERROR;
- if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
- {
- yyn = yytable[yyn];
- if (0 < yyn)
- break;
- }
- }
-
- /* Pop the current state because it cannot handle the error token. */
- if (yyssp == yyss)
- YYABORT;
-
-
- yydestruct ("Error: popping",
- yystos[yystate], yyvsp, p);
- YYPOPSTACK (1);
- yystate = *yyssp;
- YY_STACK_PRINT (yyss, yyssp);
- }
-
- YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
- *++yyvsp = yylval;
- YY_IGNORE_MAYBE_UNINITIALIZED_END
-
-
- /* Shift the error token. */
- YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-
- yystate = yyn;
- goto yynewstate;
-
-
-/*-------------------------------------.
-| yyacceptlab -- YYACCEPT comes here. |
-`-------------------------------------*/
-yyacceptlab:
- yyresult = 0;
- goto yyreturn;
-
-
-/*-----------------------------------.
-| yyabortlab -- YYABORT comes here. |
-`-----------------------------------*/
-yyabortlab:
- yyresult = 1;
- goto yyreturn;
-
-
-#if !defined yyoverflow || YYERROR_VERBOSE
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here. |
-`-------------------------------------------------*/
-yyexhaustedlab:
- yyerror (p, YY_("memory exhausted"));
- yyresult = 2;
- /* Fall through. */
-#endif
-
-
-/*-----------------------------------------------------.
-| yyreturn -- parsing is finished, return the result. |
-`-----------------------------------------------------*/
-yyreturn:
- if (yychar != YYEMPTY)
- {
- /* Make sure we have latest lookahead translation. See comments at
- user semantic actions for why this is necessary. */
- yytoken = YYTRANSLATE (yychar);
- yydestruct ("Cleanup: discarding lookahead",
- yytoken, &yylval, p);
- }
- /* Do not reclaim the symbols of the rule whose action triggered
- this YYABORT or YYACCEPT. */
- YYPOPSTACK (yylen);
- YY_STACK_PRINT (yyss, yyssp);
- while (yyssp != yyss)
- {
- yydestruct ("Cleanup: popping",
- yystos[+*yyssp], yyvsp, p);
- YYPOPSTACK (1);
- }
-#ifndef yyoverflow
- if (yyss != yyssa)
- YYSTACK_FREE (yyss);
-#endif
-#if YYERROR_VERBOSE
- if (yymsg != yymsgbuf)
- YYSTACK_FREE (yymsg);
-#endif
- return yyresult;
-}
-#line 4084 "mrbgems/mruby-compiler/core/parse.y"
-
-#define pylval (*((YYSTYPE*)(p->ylval)))
-
-static void
-yyerror(parser_state *p, const char *s)
-{
- char* c;
- size_t n;
-
- if (! p->capture_errors) {
-#ifndef MRB_NO_STDIO
- if (p->filename_sym) {
- const char *filename = mrb_sym_name_len(p->mrb, p->filename_sym, NULL);
- fprintf(stderr, "%s:%d:%d: %s\n", filename, p->lineno, p->column, s);
- }
- else {
- fprintf(stderr, "line %d:%d: %s\n", p->lineno, p->column, s);
- }
-#endif
- }
- else if (p->nerr < sizeof(p->error_buffer) / sizeof(p->error_buffer[0])) {
- n = strlen(s);
- c = (char *)parser_palloc(p, n + 1);
- memcpy(c, s, n + 1);
- p->error_buffer[p->nerr].message = c;
- p->error_buffer[p->nerr].lineno = p->lineno;
- p->error_buffer[p->nerr].column = p->column;
- }
- p->nerr++;
-}
-
-static void
-yyerror_c(parser_state *p, const char *msg, char c)
-{
- char buf[256];
-
- strncpy(buf, msg, sizeof(buf) - 2);
- buf[sizeof(buf) - 2] = '\0';
- strncat(buf, &c, 1);
- yyerror(p, buf);
-}
-
-static void
-yywarning(parser_state *p, const char *s)
-{
- char* c;
- size_t n;
-
- if (! p->capture_errors) {
-#ifndef MRB_NO_STDIO
- if (p->filename_sym) {
- const char *filename = mrb_sym_name_len(p->mrb, p->filename_sym, NULL);
- fprintf(stderr, "%s:%d:%d: warning: %s\n", filename, p->lineno, p->column, s);
- }
- else {
- fprintf(stderr, "line %d:%d: warning: %s\n", p->lineno, p->column, s);
- }
-#endif
- }
- else if (p->nwarn < sizeof(p->warn_buffer) / sizeof(p->warn_buffer[0])) {
- n = strlen(s);
- c = (char *)parser_palloc(p, n + 1);
- memcpy(c, s, n + 1);
- p->warn_buffer[p->nwarn].message = c;
- p->warn_buffer[p->nwarn].lineno = p->lineno;
- p->warn_buffer[p->nwarn].column = p->column;
- }
- p->nwarn++;
-}
-
-static void
-yywarning_s(parser_state *p, const char *msg, const char *s)
-{
- char buf[256];
-
- strncpy(buf, msg, sizeof(buf) - 1);
- buf[sizeof(buf) - 1] = '\0';
- strncat(buf, ": ", sizeof(buf) - strlen(buf) - 1);
- strncat(buf, s, sizeof(buf) - strlen(buf) - 1);
- yywarning(p, buf);
-}
-
-static void
-backref_error(parser_state *p, node *n)
-{
- int c;
-
- c = intn(n->car);
-
- if (c == NODE_NTH_REF) {
- yyerror_c(p, "can't set variable $", (char)intn(n->cdr)+'0');
- }
- else if (c == NODE_BACK_REF) {
- yyerror_c(p, "can't set variable $", (char)intn(n->cdr));
- }
- else {
- mrb_bug(p->mrb, "Internal error in backref_error() : n=>car == %d", c);
- }
-}
-
-static void
-void_expr_error(parser_state *p, node *n)
-{
- int c;
-
- if (n == NULL) return;
- c = intn(n->car);
- switch (c) {
- case NODE_BREAK:
- case NODE_RETURN:
- case NODE_NEXT:
- case NODE_REDO:
- case NODE_RETRY:
- yyerror(p, "void value expression");
- break;
- case NODE_AND:
- case NODE_OR:
- if (n->cdr) {
- void_expr_error(p, n->cdr->car);
- void_expr_error(p, n->cdr->cdr);
- }
- break;
- case NODE_BEGIN:
- if (n->cdr) {
- while (n->cdr) {
- n = n->cdr;
- }
- void_expr_error(p, n->car);
- }
- break;
- default:
- break;
- }
-}
-
-static void pushback(parser_state *p, int c);
-static mrb_bool peeks(parser_state *p, const char *s);
-static mrb_bool skips(parser_state *p, const char *s);
-
-static inline int
-nextc0(parser_state *p)
-{
- int c;
-
- if (p->s && p->s < p->send) {
- c = (unsigned char)*p->s++;
- }
- else {
-#ifndef MRB_NO_STDIO
- if (p->f) {
- c = fgetc(p->f);
- if (feof(p->f)) return -1;
- }
- else
-#endif
- return -1;
- }
- return c;
-}
-
-static inline int
-nextc(parser_state *p)
-{
- int c;
-
- if (p->pb) {
- node *tmp;
-
- c = intn(p->pb->car);
- tmp = p->pb;
- p->pb = p->pb->cdr;
- cons_free(tmp);
- }
- else {
- c = nextc0(p);
- if (c < 0) goto eof;
- }
- if (c >= 0) {
- p->column++;
- }
- if (c == '\r') {
- const int lf = nextc0(p);
- if (lf == '\n') {
- return '\n';
- }
- if (lf > 0) pushback(p, lf);
- }
- return c;
-
- eof:
- if (!p->cxt) return -1;
- else {
- if (p->cxt->partial_hook(p) < 0)
- return -1; /* end of program(s) */
- return -2; /* end of a file in the program files */
- }
-}
-
-static void
-pushback(parser_state *p, int c)
-{
- if (c >= 0) {
- p->column--;
- }
- p->pb = cons(nint(c), p->pb);
-}
-
-static void
-skip(parser_state *p, char term)
-{
- int c;
-
- for (;;) {
- c = nextc(p);
- if (c < 0) break;
- if (c == term) break;
- }
-}
-
-static int
-peekc_n(parser_state *p, int n)
-{
- node *list = 0;
- int c0;
-
- do {
- c0 = nextc(p);
- if (c0 == -1) return c0; /* do not skip partial EOF */
- if (c0 >= 0) --p->column;
- list = push(list, nint(c0));
- } while(n--);
- if (p->pb) {
- p->pb = append(list, p->pb);
- }
- else {
- p->pb = list;
- }
- return c0;
-}
-
-static mrb_bool
-peek_n(parser_state *p, int c, int n)
-{
- return peekc_n(p, n) == c && c >= 0;
-}
-#define peek(p,c) peek_n((p), (c), 0)
-
-static mrb_bool
-peeks(parser_state *p, const char *s)
-{
- size_t len = strlen(s);
-
-#ifndef MRB_NO_STDIO
- if (p->f) {
- int n = 0;
- while (*s) {
- if (!peek_n(p, *s++, n++)) return FALSE;
- }
- return TRUE;
- }
- else
-#endif
- if (p->s && p->s + len <= p->send) {
- if (memcmp(p->s, s, len) == 0) return TRUE;
- }
- return FALSE;
-}
-
-static mrb_bool
-skips(parser_state *p, const char *s)
-{
- int c;
-
- for (;;) {
- /* skip until first char */
- for (;;) {
- c = nextc(p);
- if (c < 0) return FALSE;
- if (c == '\n') {
- p->lineno++;
- p->column = 0;
- }
- if (c == *s) break;
- }
- s++;
- if (peeks(p, s)) {
- size_t len = strlen(s);
-
- while (len--) {
- if (nextc(p) == '\n') {
- p->lineno++;
- p->column = 0;
- }
- }
- return TRUE;
- }
- else{
- s--;
- }
- }
- return FALSE;
-}
-
-
-static int
-newtok(parser_state *p)
-{
- if (p->tokbuf != p->buf) {
- mrb_free(p->mrb, p->tokbuf);
- p->tokbuf = p->buf;
- p->tsiz = MRB_PARSER_TOKBUF_SIZE;
- }
- p->tidx = 0;
- return p->column - 1;
-}
-
-static void
-tokadd(parser_state *p, int32_t c)
-{
- char utf8[4];
- int i, len;
-
- /* mrb_assert(-0x10FFFF <= c && c <= 0xFF); */
- if (c >= 0) {
- /* Single byte from source or non-Unicode escape */
- utf8[0] = (char)c;
- len = 1;
- }
- else {
- /* Unicode character */
- c = -c;
- if (c < 0x80) {
- utf8[0] = (char)c;
- len = 1;
- }
- else if (c < 0x800) {
- utf8[0] = (char)(0xC0 | (c >> 6));
- utf8[1] = (char)(0x80 | (c & 0x3F));
- len = 2;
- }
- else if (c < 0x10000) {
- utf8[0] = (char)(0xE0 | (c >> 12) );
- utf8[1] = (char)(0x80 | ((c >> 6) & 0x3F));
- utf8[2] = (char)(0x80 | ( c & 0x3F));
- len = 3;
- }
- else {
- utf8[0] = (char)(0xF0 | (c >> 18) );
- utf8[1] = (char)(0x80 | ((c >> 12) & 0x3F));
- utf8[2] = (char)(0x80 | ((c >> 6) & 0x3F));
- utf8[3] = (char)(0x80 | ( c & 0x3F));
- len = 4;
- }
- }
- if (p->tidx+len >= p->tsiz) {
- if (p->tsiz >= MRB_PARSER_TOKBUF_MAX) {
- p->tidx += len;
- return;
- }
- p->tsiz *= 2;
- if (p->tokbuf == p->buf) {
- p->tokbuf = (char*)mrb_malloc(p->mrb, p->tsiz);
- memcpy(p->tokbuf, p->buf, MRB_PARSER_TOKBUF_SIZE);
- }
- else {
- p->tokbuf = (char*)mrb_realloc(p->mrb, p->tokbuf, p->tsiz);
- }
- }
- for (i = 0; i < len; i++) {
- p->tokbuf[p->tidx++] = utf8[i];
- }
-}
-
-static int
-toklast(parser_state *p)
-{
- return p->tokbuf[p->tidx-1];
-}
-
-static void
-tokfix(parser_state *p)
-{
- if (p->tidx >= MRB_PARSER_TOKBUF_MAX) {
- p->tidx = MRB_PARSER_TOKBUF_MAX-1;
- yyerror(p, "string too long (truncated)");
- }
- p->tokbuf[p->tidx] = '\0';
-}
-
-static const char*
-tok(parser_state *p)
-{
- return p->tokbuf;
-}
-
-static int
-toklen(parser_state *p)
-{
- return p->tidx;
-}
-
-#define IS_ARG() (p->lstate == EXPR_ARG || p->lstate == EXPR_CMDARG)
-#define IS_END() (p->lstate == EXPR_END || p->lstate == EXPR_ENDARG || p->lstate == EXPR_ENDFN)
-#define IS_BEG() (p->lstate == EXPR_BEG || p->lstate == EXPR_MID || p->lstate == EXPR_VALUE || p->lstate == EXPR_CLASS)
-#define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c))
-#define IS_LABEL_POSSIBLE() ((p->lstate == EXPR_BEG && !cmd_state) || IS_ARG())
-#define IS_LABEL_SUFFIX(n) (peek_n(p, ':',(n)) && !peek_n(p, ':', (n)+1))
-
-static int32_t
-scan_oct(const int *start, int len, int *retlen)
-{
- const int *s = start;
- int32_t retval = 0;
-
- /* mrb_assert(len <= 3) */
- while (len-- && *s >= '0' && *s <= '7') {
- retval <<= 3;
- retval |= *s++ - '0';
- }
- *retlen = (int)(s - start);
-
- return retval;
-}
-
-static int32_t
-scan_hex(parser_state *p, const int *start, int len, int *retlen)
-{
- static const char hexdigit[] = "0123456789abcdef0123456789ABCDEF";
- const int *s = start;
- uint32_t retval = 0;
- char *tmp;
-
- /* mrb_assert(len <= 8) */
- while (len-- && *s && (tmp = (char*)strchr(hexdigit, *s))) {
- retval <<= 4;
- retval |= (tmp - hexdigit) & 15;
- s++;
- }
- *retlen = (int)(s - start);
-
- return (int32_t)retval;
-}
-
-static int32_t
-read_escape_unicode(parser_state *p, int limit)
-{
- int buf[9];
- int i;
- int32_t hex;
-
- /* Look for opening brace */
- i = 0;
- buf[0] = nextc(p);
- if (buf[0] < 0) {
- eof:
- yyerror(p, "invalid escape character syntax");
- return -1;
- }
- if (ISXDIGIT(buf[0])) {
- /* \uxxxx form */
- for (i=1; i<limit; i++) {
- buf[i] = nextc(p);
- if (buf[i] < 0) goto eof;
- if (!ISXDIGIT(buf[i])) {
- pushback(p, buf[i]);
- break;
- }
- }
- }
- else {
- pushback(p, buf[0]);
- }
- hex = scan_hex(p, buf, i, &i);
- if (i == 0 || hex > 0x10FFFF || (hex & 0xFFFFF800) == 0xD800) {
- yyerror(p, "invalid Unicode code point");
- return -1;
- }
- return hex;
-}
-
-/* Return negative to indicate Unicode code point */
-static int32_t
-read_escape(parser_state *p)
-{
- int32_t c;
-
- switch (c = nextc(p)) {
- case '\\':/* Backslash */
- return c;
-
- case 'n':/* newline */
- return '\n';
-
- case 't':/* horizontal tab */
- return '\t';
-
- case 'r':/* carriage-return */
- return '\r';
-
- case 'f':/* form-feed */
- return '\f';
-
- case 'v':/* vertical tab */
- return '\13';
-
- case 'a':/* alarm(bell) */
- return '\007';
-
- case 'e':/* escape */
- return 033;
-
- case '0': case '1': case '2': case '3': /* octal constant */
- case '4': case '5': case '6': case '7':
- {
- int buf[3];
- int i;
-
- buf[0] = c;
- for (i=1; i<3; i++) {
- buf[i] = nextc(p);
- if (buf[i] < 0) goto eof;
- if (buf[i] < '0' || '7' < buf[i]) {
- pushback(p, buf[i]);
- break;
- }
- }
- c = scan_oct(buf, i, &i);
- }
- return c;
-
- case 'x': /* hex constant */
- {
- int buf[2];
- int i;
-
- for (i=0; i<2; i++) {
- buf[i] = nextc(p);
- if (buf[i] < 0) goto eof;
- if (!ISXDIGIT(buf[i])) {
- pushback(p, buf[i]);
- break;
- }
- }
- if (i == 0) {
- yyerror(p, "invalid hex escape");
- return -1;
- }
- return scan_hex(p, buf, i, &i);
- }
-
- case 'u': /* Unicode */
- if (peek(p, '{')) {
- /* \u{xxxxxxxx} form */
- nextc(p);
- c = read_escape_unicode(p, 8);
- if (c < 0) return 0;
- if (nextc(p) != '}') goto eof;
- }
- else {
- c = read_escape_unicode(p, 4);
- if (c < 0) return 0;
- }
- return -c;
-
- case 'b':/* backspace */
- return '\010';
-
- case 's':/* space */
- return ' ';
-
- case 'M':
- if ((c = nextc(p)) != '-') {
- yyerror(p, "Invalid escape character syntax");
- pushback(p, c);
- return '\0';
- }
- if ((c = nextc(p)) == '\\') {
- return read_escape(p) | 0x80;
- }
- else if (c < 0) goto eof;
- else {
- return ((c & 0xff) | 0x80);
- }
-
- case 'C':
- if ((c = nextc(p)) != '-') {
- yyerror(p, "Invalid escape character syntax");
- pushback(p, c);
- return '\0';
- }
- case 'c':
- if ((c = nextc(p))== '\\') {
- c = read_escape(p);
- }
- else if (c == '?')
- return 0177;
- else if (c < 0) goto eof;
- return c & 0x9f;
-
- eof:
- case -1:
- case -2: /* end of a file */
- yyerror(p, "Invalid escape character syntax");
- return '\0';
-
- default:
- return c;
- }
-}
-
-static void
-heredoc_count_indent(parser_heredoc_info *hinf, const char *str, size_t len, size_t spaces, size_t *offset)
-{
- size_t indent = 0;
- *offset = 0;
- for (size_t i = 0; i < len; i++) {
- size_t size;
- if (str[i] == '\n')
- break;
- else if (str[i] == '\t')
- size = 8;
- else if (ISSPACE(str[i]))
- size = 1;
- else
- break;
- size_t nindent = indent + size;
- if (nindent > spaces || nindent > hinf->indent)
- break;
- indent = nindent;
- *offset += 1;
- }
-}
-
-static void
-heredoc_remove_indent(parser_state *p, parser_heredoc_info *hinf)
-{
- if (!hinf->remove_indent || hinf->indent == 0)
- return;
- node *indented, *n, *pair, *escaped, *nspaces;
- const char *str;
- size_t len, spaces, offset, start, end;
- indented = hinf->indented;
- while (indented) {
- n = indented->car;
- pair = n->car;
- str = (char*)pair->car;
- len = (size_t)pair->cdr;
- escaped = n->cdr->car;
- nspaces = n->cdr->cdr;
- if (escaped) {
- char *newstr = strndup(str, len);
- size_t newlen = 0;
- start = 0;
- while (start < len) {
- end = escaped ? (size_t)escaped->car : len;
- if (end > len) end = len;
- spaces = (size_t)nspaces->car;
- size_t esclen = end - start;
- heredoc_count_indent(hinf, str + start, esclen, spaces, &offset);
- esclen -= offset;
- memcpy(newstr + newlen, str + start + offset, esclen);
- newlen += esclen;
- start = end;
- if (escaped)
- escaped = escaped->cdr;
- nspaces = nspaces->cdr;
- }
- if (newlen < len)
- newstr[newlen] = '\0';
- pair->car = (node*)newstr;
- pair->cdr = (node*)newlen;
- } else {
- spaces = (size_t)nspaces->car;
- heredoc_count_indent(hinf, str, len, spaces, &offset);
- pair->car = (node*)(str + offset);
- pair->cdr = (node*)(len - offset);
- }
- indented = indented->cdr;
- }
-}
-
-static void
-heredoc_push_indented(parser_state *p, parser_heredoc_info *hinf, node *pair, node *escaped, node *nspaces, mrb_bool empty_line)
-{
- hinf->indented = push(hinf->indented, cons(pair, cons(escaped, nspaces)));
- while (nspaces) {
- size_t tspaces = (size_t)nspaces->car;
- if ((hinf->indent == ~0U || tspaces < hinf->indent) && !empty_line)
- hinf->indent = tspaces;
- nspaces = nspaces->cdr;
- }
-}
-
-static int
-parse_string(parser_state *p)
-{
- int c;
- string_type type = (string_type)(intptr_t)p->lex_strterm->car;
- int nest_level = intn(p->lex_strterm->cdr->car);
- int beg = intn(p->lex_strterm->cdr->cdr->car);
- int end = intn(p->lex_strterm->cdr->cdr->cdr);
- parser_heredoc_info *hinf = (type & STR_FUNC_HEREDOC) ? parsing_heredoc_inf(p) : NULL;
-
- mrb_bool unindent = hinf && hinf->remove_indent;
- mrb_bool head = hinf && hinf->line_head;
- mrb_bool empty = TRUE;
- size_t spaces = 0;
- size_t pos = -1;
- node *escaped = NULL;
- node *nspaces = NULL;
-
- if (beg == 0) beg = -3; /* should never happen */
- if (end == 0) end = -3;
- newtok(p);
- while ((c = nextc(p)) != end || nest_level != 0) {
- pos++;
- if (hinf && (c == '\n' || c < 0)) {
- mrb_bool line_head;
- tokadd(p, '\n');
- tokfix(p);
- p->lineno++;
- p->column = 0;
- line_head = hinf->line_head;
- hinf->line_head = TRUE;
- if (line_head) {
- /* check whether end of heredoc */
- const char *s = tok(p);
- int len = toklen(p);
- if (hinf->allow_indent) {
- while (ISSPACE(*s) && len > 0) {
- ++s;
- --len;
- }
- }
- if ((len-1 == hinf->term_len) && (strncmp(s, hinf->term, len-1) == 0)) {
- heredoc_remove_indent(p, hinf);
- return tHEREDOC_END;
- }
- }
- if (c < 0) {
- char buf[256];
- const char s1[] = "can't find heredoc delimiter \"";
- const char s2[] = "\" anywhere before EOF";
-
- if (sizeof(s1)+sizeof(s2)+strlen(hinf->term)+1 >= sizeof(buf)) {
- yyerror(p, "can't find heredoc delimiter anywhere before EOF");
- } else {
- strcpy(buf, s1);
- strcat(buf, hinf->term);
- strcat(buf, s2);
- yyerror(p, buf);
- }
- return 0;
- }
- node *nd = new_str(p, tok(p), toklen(p));
- pylval.nd = nd;
- if (unindent && head) {
- nspaces = push(nspaces, nint(spaces));
- heredoc_push_indented(p, hinf, nd->cdr, escaped, nspaces, empty && line_head);
- }
- return tHD_STRING_MID;
- }
- if (unindent && empty) {
- if (c == '\t')
- spaces += 8;
- else if (ISSPACE(c))
- ++spaces;
- else
- empty = FALSE;
- }
- if (c < 0) {
- yyerror(p, "unterminated string meets end of file");
- return 0;
- }
- else if (c == beg) {
- nest_level++;
- p->lex_strterm->cdr->car = nint(nest_level);
- }
- else if (c == end) {
- nest_level--;
- p->lex_strterm->cdr->car = nint(nest_level);
- }
- else if (c == '\\') {
- c = nextc(p);
- if (type & STR_FUNC_EXPAND) {
- if (c == end || c == beg) {
- tokadd(p, c);
- }
- else if (c == '\n') {
- p->lineno++;
- p->column = 0;
- if (unindent) {
- nspaces = push(nspaces, nint(spaces));
- escaped = push(escaped, nint(pos));
- pos--;
- empty = TRUE;
- spaces = 0;
- }
- if (type & STR_FUNC_ARRAY) {
- tokadd(p, '\n');
- }
- }
- else if (type & STR_FUNC_REGEXP) {
- tokadd(p, '\\');
- tokadd(p, c);
- }
- else if (c == 'u' && peek(p, '{')) {
- /* \u{xxxx xxxx xxxx} form */
- nextc(p);
- while (1) {
- do c = nextc(p); while (ISSPACE(c));
- if (c == '}') break;
- pushback(p, c);
- c = read_escape_unicode(p, 8);
- if (c < 0) break;
- tokadd(p, -c);
- }
- if (hinf)
- hinf->line_head = FALSE;
- }
- else {
- pushback(p, c);
- tokadd(p, read_escape(p));
- if (hinf)
- hinf->line_head = FALSE;
- }
- }
- else {
- if (c != beg && c != end) {
- if (c == '\n') {
- p->lineno++;
- p->column = 0;
- }
- if (!(c == '\\' || ((type & STR_FUNC_ARRAY) && ISSPACE(c)))) {
- tokadd(p, '\\');
- }
- }
- tokadd(p, c);
- }
- continue;
- }
- else if ((c == '#') && (type & STR_FUNC_EXPAND)) {
- c = nextc(p);
- if (c == '{') {
- tokfix(p);
- p->lstate = EXPR_BEG;
- p->cmd_start = TRUE;
- node *nd = new_str(p, tok(p), toklen(p));
- pylval.nd = nd;
- if (hinf) {
- if (unindent && head) {
- nspaces = push(nspaces, nint(spaces));
- heredoc_push_indented(p, hinf, nd->cdr, escaped, nspaces, FALSE);
- }
- hinf->line_head = FALSE;
- return tHD_STRING_PART;
- }
- return tSTRING_PART;
- }
- tokadd(p, '#');
- pushback(p, c);
- continue;
- }
- if ((type & STR_FUNC_ARRAY) && ISSPACE(c)) {
- if (toklen(p) == 0) {
- do {
- if (c == '\n') {
- p->lineno++;
- p->column = 0;
- heredoc_treat_nextline(p);
- if (p->parsing_heredoc != NULL) {
- return tHD_LITERAL_DELIM;
- }
- }
- c = nextc(p);
- } while (ISSPACE(c));
- pushback(p, c);
- return tLITERAL_DELIM;
- }
- else {
- pushback(p, c);
- tokfix(p);
- pylval.nd = new_str(p, tok(p), toklen(p));
- return tSTRING_MID;
- }
- }
- if (c == '\n') {
- p->lineno++;
- p->column = 0;
- }
- tokadd(p, c);
- }
-
- tokfix(p);
- p->lstate = EXPR_ENDARG;
- end_strterm(p);
-
- if (type & STR_FUNC_XQUOTE) {
- pylval.nd = new_xstr(p, tok(p), toklen(p));
- return tXSTRING;
- }
-
- if (type & STR_FUNC_REGEXP) {
- int f = 0;
- int re_opt;
- char *s = strndup(tok(p), toklen(p));
- char flags[3];
- char *flag = flags;
- char enc = '\0';
- char *encp;
- char *dup;
-
- newtok(p);
- while (re_opt = nextc(p), re_opt >= 0 && ISALPHA(re_opt)) {
- switch (re_opt) {
- case 'i': f |= 1; break;
- case 'x': f |= 2; break;
- case 'm': f |= 4; break;
- case 'u': f |= 16; break;
- case 'n': f |= 32; break;
- case 'o': break;
- default: tokadd(p, re_opt); break;
- }
- }
- pushback(p, re_opt);
- if (toklen(p)) {
- char msg[128];
-
- strcpy(msg, "unknown regexp option");
- tokfix(p);
- if (toklen(p) > 1) {
- strcat(msg, "s");
- }
- strcat(msg, " - ");
- strncat(msg, tok(p), sizeof(msg) - strlen(msg) - 1);
- yyerror(p, msg);
- }
- if (f != 0) {
- if (f & 1) *flag++ = 'i';
- if (f & 2) *flag++ = 'x';
- if (f & 4) *flag++ = 'm';
- if (f & 16) enc = 'u';
- if (f & 32) enc = 'n';
- }
- if (flag > flags) {
- dup = strndup(flags, (size_t)(flag - flags));
- }
- else {
- dup = NULL;
- }
- if (enc) {
- encp = strndup(&enc, 1);
- }
- else {
- encp = NULL;
- }
- pylval.nd = new_regx(p, s, dup, encp);
-
- return tREGEXP;
- }
- pylval.nd = new_str(p, tok(p), toklen(p));
-
- return tSTRING;
-}
-
-static int
-number_literal_suffix(parser_state *p)
-{
- int c, result = 0;
- node *list = 0;
- int column = p->column;
- int mask = NUM_SUFFIX_R|NUM_SUFFIX_I;
-
- while ((c = nextc(p)) != -1) {
- list = push(list, nint(c));
-
- if ((mask & NUM_SUFFIX_I) && c == 'i') {
- result |= (mask & NUM_SUFFIX_I);
- mask &= ~NUM_SUFFIX_I;
- /* r after i, rational of complex is disallowed */
- mask &= ~NUM_SUFFIX_R;
- continue;
- }
- if ((mask & NUM_SUFFIX_R) && c == 'r') {
- result |= (mask & NUM_SUFFIX_R);
- mask &= ~NUM_SUFFIX_R;
- continue;
- }
- if (!ISASCII(c) || ISALPHA(c) || c == '_') {
- p->column = column;
- if (p->pb) {
- p->pb = append(list, p->pb);
- }
- else {
- p->pb = list;
- }
- return 0;
- }
- pushback(p, c);
- break;
- }
- return result;
-}
-
-static int
-heredoc_identifier(parser_state *p)
-{
- int c;
- int type = str_heredoc;
- mrb_bool indent = FALSE;
- mrb_bool squiggly = FALSE;
- mrb_bool quote = FALSE;
- node *newnode;
- parser_heredoc_info *info;
-
- c = nextc(p);
- if (ISSPACE(c) || c == '=') {
- pushback(p, c);
- return 0;
- }
- if (c == '-' || c == '~') {
- if (c == '-')
- indent = TRUE;
- if (c == '~')
- squiggly = TRUE;
- c = nextc(p);
- }
- if (c == '\'' || c == '"') {
- int term = c;
- if (c == '\'')
- quote = TRUE;
- newtok(p);
- while ((c = nextc(p)) >= 0 && c != term) {
- if (c == '\n') {
- c = -1;
- break;
- }
- tokadd(p, c);
- }
- if (c < 0) {
- yyerror(p, "unterminated here document identifier");
- return 0;
- }
- }
- else {
- if (c < 0) {
- return 0; /* missing here document identifier */
- }
- if (! identchar(c)) {
- pushback(p, c);
- if (indent) pushback(p, '-');
- if (squiggly) pushback(p, '~');
- return 0;
- }
- newtok(p);
- do {
- tokadd(p, c);
- } while ((c = nextc(p)) >= 0 && identchar(c));
- pushback(p, c);
- }
- tokfix(p);
- newnode = new_heredoc(p);
- info = (parser_heredoc_info*)newnode->cdr;
- info->term = strndup(tok(p), toklen(p));
- info->term_len = toklen(p);
- if (! quote)
- type |= STR_FUNC_EXPAND;
- info->type = (string_type)type;
- info->allow_indent = indent || squiggly;
- info->remove_indent = squiggly;
- info->indent = ~0U;
- info->indented = NULL;
- info->line_head = TRUE;
- info->doc = NULL;
- p->heredocs_from_nextline = push(p->heredocs_from_nextline, newnode);
- p->lstate = EXPR_END;
-
- pylval.nd = newnode;
- return tHEREDOC_BEG;
-}
-
-static int
-arg_ambiguous(parser_state *p)
-{
- yywarning(p, "ambiguous first argument; put parentheses or even spaces");
- return 1;
-}
-
-#include "lex.def"
-
-static int
-parser_yylex(parser_state *p)
-{
- int32_t c;
- int nlines = 1;
- int space_seen = 0;
- int cmd_state;
- enum mrb_lex_state_enum last_state;
- int token_column;
-
- if (p->lex_strterm) {
- if (is_strterm_type(p, STR_FUNC_HEREDOC)) {
- if (p->parsing_heredoc != NULL)
- return parse_string(p);
- }
- else
- return parse_string(p);
- }
- cmd_state = p->cmd_start;
- p->cmd_start = FALSE;
- retry:
- last_state = p->lstate;
- switch (c = nextc(p)) {
- case '\004': /* ^D */
- case '\032': /* ^Z */
- case '\0': /* NUL */
- case -1: /* end of script. */
- if (p->heredocs_from_nextline)
- goto maybe_heredoc;
- return 0;
-
- /* white spaces */
- case ' ': case '\t': case '\f': case '\r':
- case '\13': /* '\v' */
- space_seen = 1;
- goto retry;
-
- case '#': /* it's a comment */
- skip(p, '\n');
- /* fall through */
- case -2: /* end of a file */
- case '\n':
- maybe_heredoc:
- heredoc_treat_nextline(p);
- p->column = 0;
- switch (p->lstate) {
- case EXPR_BEG:
- case EXPR_FNAME:
- case EXPR_DOT:
- case EXPR_CLASS:
- case EXPR_VALUE:
- p->lineno++;
- if (p->parsing_heredoc != NULL) {
- if (p->lex_strterm) {
- return parse_string(p);
- }
- }
- goto retry;
- default:
- break;
- }
- if (p->parsing_heredoc != NULL) {
- pylval.num = nlines;
- return '\n';
- }
- while ((c = nextc(p))) {
- switch (c) {
- case ' ': case '\t': case '\f': case '\r':
- case '\13': /* '\v' */
- space_seen = 1;
- break;
- case '#': /* comment as a whitespace */
- skip(p, '\n');
- nlines++;
- break;
- case '.':
- if (!peek(p, '.')) {
- pushback(p, '.');
- p->lineno+=nlines; nlines=1;
- goto retry;
- }
- pushback(p, c);
- goto normal_newline;
- case '&':
- if (peek(p, '.')) {
- pushback(p, '&');
- p->lineno+=nlines; nlines=1;
- goto retry;
- }
- pushback(p, c);
- goto normal_newline;
- case -1: /* EOF */
- case -2: /* end of a file */
- goto normal_newline;
- default:
- pushback(p, c);
- goto normal_newline;
- }
- }
- normal_newline:
- p->cmd_start = TRUE;
- p->lstate = EXPR_BEG;
- pylval.num = nlines;
- return '\n';
-
- case '*':
- if ((c = nextc(p)) == '*') {
- if ((c = nextc(p)) == '=') {
- pylval.id = intern_op(pow);
- p->lstate = EXPR_BEG;
- return tOP_ASGN;
- }
- pushback(p, c);
- if (IS_SPCARG(c)) {
- yywarning(p, "'**' interpreted as argument prefix");
- c = tDSTAR;
- }
- else if (IS_BEG()) {
- c = tDSTAR;
- }
- else {
- c = tPOW; /* "**", "argument prefix" */
- }
- }
- else {
- if (c == '=') {
- pylval.id = intern_op(mul);
- p->lstate = EXPR_BEG;
- return tOP_ASGN;
- }
- pushback(p, c);
- if (IS_SPCARG(c)) {
- yywarning(p, "'*' interpreted as argument prefix");
- c = tSTAR;
- }
- else if (IS_BEG()) {
- c = tSTAR;
- }
- else {
- c = '*';
- }
- }
- if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) {
- p->lstate = EXPR_ARG;
- }
- else {
- p->lstate = EXPR_BEG;
- }
- return c;
-
- case '!':
- c = nextc(p);
- if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) {
- p->lstate = EXPR_ARG;
- if (c == '@') {
- return '!';
- }
- }
- else {
- p->lstate = EXPR_BEG;
- }
- if (c == '=') {
- return tNEQ;
- }
- if (c == '~') {
- return tNMATCH;
- }
- pushback(p, c);
- return '!';
-
- case '=':
- if (p->column == 1) {
- static const char begin[] = "begin";
- static const char end[] = "\n=end";
- if (peeks(p, begin)) {
- c = peekc_n(p, sizeof(begin)-1);
- if (c < 0 || ISSPACE(c)) {
- do {
- if (!skips(p, end)) {
- yyerror(p, "embedded document meets end of file");
- return 0;
- }
- c = nextc(p);
- } while (!(c < 0 || ISSPACE(c)));
- if (c != '\n') skip(p, '\n');
- p->lineno+=nlines; nlines=1;
- p->column = 0;
- goto retry;
- }
- }
- }
- if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) {
- p->lstate = EXPR_ARG;
- }
- else {
- p->lstate = EXPR_BEG;
- }
- if ((c = nextc(p)) == '=') {
- if ((c = nextc(p)) == '=') {
- return tEQQ;
- }
- pushback(p, c);
- return tEQ;
- }
- if (c == '~') {
- return tMATCH;
- }
- else if (c == '>') {
- return tASSOC;
- }
- pushback(p, c);
- return '=';
-
- case '<':
- c = nextc(p);
- if (c == '<' &&
- p->lstate != EXPR_DOT &&
- p->lstate != EXPR_CLASS &&
- !IS_END() &&
- (!IS_ARG() || space_seen)) {
- int token = heredoc_identifier(p);
- if (token)
- return token;
- }
- if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) {
- p->lstate = EXPR_ARG;
- }
- else {
- p->lstate = EXPR_BEG;
- if (p->lstate == EXPR_CLASS) {
- p->cmd_start = TRUE;
- }
- }
- if (c == '=') {
- if ((c = nextc(p)) == '>') {
- return tCMP;
- }
- pushback(p, c);
- return tLEQ;
- }
- if (c == '<') {
- if ((c = nextc(p)) == '=') {
- pylval.id = intern_op(lshift);
- p->lstate = EXPR_BEG;
- return tOP_ASGN;
- }
- pushback(p, c);
- return tLSHFT;
- }
- pushback(p, c);
- return '<';
-
- case '>':
- if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) {
- p->lstate = EXPR_ARG;
- }
- else {
- p->lstate = EXPR_BEG;
- }
- if ((c = nextc(p)) == '=') {
- return tGEQ;
- }
- if (c == '>') {
- if ((c = nextc(p)) == '=') {
- pylval.id = intern_op(rshift);
- p->lstate = EXPR_BEG;
- return tOP_ASGN;
- }
- pushback(p, c);
- return tRSHFT;
- }
- pushback(p, c);
- return '>';
-
- case '"':
- p->lex_strterm = new_strterm(p, str_dquote, '"', 0);
- return tSTRING_BEG;
-
- case '\'':
- p->lex_strterm = new_strterm(p, str_squote, '\'', 0);
- return parse_string(p);
-
- case '`':
- if (p->lstate == EXPR_FNAME) {
- p->lstate = EXPR_ENDFN;
- return '`';
- }
- if (p->lstate == EXPR_DOT) {
- if (cmd_state)
- p->lstate = EXPR_CMDARG;
- else
- p->lstate = EXPR_ARG;
- return '`';
- }
- p->lex_strterm = new_strterm(p, str_xquote, '`', 0);
- return tXSTRING_BEG;
-
- case '?':
- if (IS_END()) {
- p->lstate = EXPR_VALUE;
- return '?';
- }
- c = nextc(p);
- if (c < 0) {
- yyerror(p, "incomplete character syntax");
- return 0;
- }
- if (ISSPACE(c)) {
- if (!IS_ARG()) {
- int c2;
- switch (c) {
- case ' ':
- c2 = 's';
- break;
- case '\n':
- c2 = 'n';
- break;
- case '\t':
- c2 = 't';
- break;
- case '\v':
- c2 = 'v';
- break;
- case '\r':
- c2 = 'r';
- break;
- case '\f':
- c2 = 'f';
- break;
- default:
- c2 = 0;
- break;
- }
- if (c2) {
- char buf[256];
- char cc[] = { (char)c2, '\0' };
-
- strcpy(buf, "invalid character syntax; use ?\\");
- strncat(buf, cc, 2);
- yyerror(p, buf);
- }
- }
- ternary:
- pushback(p, c);
- p->lstate = EXPR_VALUE;
- return '?';
- }
- newtok(p);
- /* need support UTF-8 if configured */
- if ((ISALNUM(c) || c == '_')) {
- int c2 = nextc(p);
- pushback(p, c2);
- if ((ISALNUM(c2) || c2 == '_')) {
- goto ternary;
- }
- }
- if (c == '\\') {
- c = read_escape(p);
- tokadd(p, c);
- }
- else {
- tokadd(p, c);
- }
- tokfix(p);
- pylval.nd = new_str(p, tok(p), toklen(p));
- p->lstate = EXPR_ENDARG;
- return tCHAR;
-
- case '&':
- if ((c = nextc(p)) == '&') {
- p->lstate = EXPR_BEG;
- if ((c = nextc(p)) == '=') {
- pylval.id = intern_op(andand);
- p->lstate = EXPR_BEG;
- return tOP_ASGN;
- }
- pushback(p, c);
- return tANDOP;
- }
- else if (c == '.') {
- p->lstate = EXPR_DOT;
- return tANDDOT;
- }
- else if (c == '=') {
- pylval.id = intern_op(and);
- p->lstate = EXPR_BEG;
- return tOP_ASGN;
- }
- pushback(p, c);
- if (IS_SPCARG(c)) {
- yywarning(p, "'&' interpreted as argument prefix");
- c = tAMPER;
- }
- else if (IS_BEG()) {
- c = tAMPER;
- }
- else {
- c = '&';
- }
- if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) {
- p->lstate = EXPR_ARG;
- }
- else {
- p->lstate = EXPR_BEG;
- }
- return c;
-
- case '|':
- if ((c = nextc(p)) == '|') {
- p->lstate = EXPR_BEG;
- if ((c = nextc(p)) == '=') {
- pylval.id = intern_op(oror);
- p->lstate = EXPR_BEG;
- return tOP_ASGN;
- }
- pushback(p, c);
- return tOROP;
- }
- if (c == '=') {
- pylval.id = intern_op(or);
- p->lstate = EXPR_BEG;
- return tOP_ASGN;
- }
- if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) {
- p->lstate = EXPR_ARG;
- }
- else {
- p->lstate = EXPR_BEG;
- }
- pushback(p, c);
- return '|';
-
- case '+':
- c = nextc(p);
- if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) {
- p->lstate = EXPR_ARG;
- if (c == '@') {
- return tUPLUS;
- }
- pushback(p, c);
- return '+';
- }
- if (c == '=') {
- pylval.id = intern_op(add);
- p->lstate = EXPR_BEG;
- return tOP_ASGN;
- }
- if (IS_BEG() || (IS_SPCARG(c) && arg_ambiguous(p))) {
- p->lstate = EXPR_BEG;
- pushback(p, c);
- if (c >= 0 && ISDIGIT(c)) {
- c = '+';
- goto start_num;
- }
- return tUPLUS;
- }
- p->lstate = EXPR_BEG;
- pushback(p, c);
- return '+';
-
- case '-':
- c = nextc(p);
- if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) {
- p->lstate = EXPR_ARG;
- if (c == '@') {
- return tUMINUS;
- }
- pushback(p, c);
- return '-';
- }
- if (c == '=') {
- pylval.id = intern_op(sub);
- p->lstate = EXPR_BEG;
- return tOP_ASGN;
- }
- if (c == '>') {
- p->lstate = EXPR_ENDFN;
- return tLAMBDA;
- }
- if (IS_BEG() || (IS_SPCARG(c) && arg_ambiguous(p))) {
- p->lstate = EXPR_BEG;
- pushback(p, c);
- if (c >= 0 && ISDIGIT(c)) {
- return tUMINUS_NUM;
- }
- return tUMINUS;
- }
- p->lstate = EXPR_BEG;
- pushback(p, c);
- return '-';
-
- case '.':
- {
- int is_beg = IS_BEG();
- p->lstate = EXPR_BEG;
- if ((c = nextc(p)) == '.') {
- if ((c = nextc(p)) == '.') {
- return is_beg ? tBDOT3 : tDOT3;
- }
- pushback(p, c);
- return is_beg ? tBDOT2 : tDOT2;
- }
- pushback(p, c);
- if (c >= 0 && ISDIGIT(c)) {
- yyerror(p, "no .<digit> floating literal anymore; put 0 before dot");
- }
- p->lstate = EXPR_DOT;
- return '.';
- }
-
- start_num:
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- {
- int is_float, seen_point, seen_e, nondigit;
- int suffix = 0;
-
- is_float = seen_point = seen_e = nondigit = 0;
- p->lstate = EXPR_ENDARG;
- newtok(p);
- if (c == '-' || c == '+') {
- tokadd(p, c);
- c = nextc(p);
- }
- if (c == '0') {
-#define no_digits() do {yyerror(p,"numeric literal without digits"); return 0;} while (0)
- int start = toklen(p);
- c = nextc(p);
- if (c == 'x' || c == 'X') {
- /* hexadecimal */
- c = nextc(p);
- if (c >= 0 && ISXDIGIT(c)) {
- do {
- if (c == '_') {
- if (nondigit) break;
- nondigit = c;
- continue;
- }
- if (!ISXDIGIT(c)) break;
- nondigit = 0;
- tokadd(p, tolower(c));
- } while ((c = nextc(p)) >= 0);
- }
- pushback(p, c);
- tokfix(p);
- if (toklen(p) == start) {
- no_digits();
- }
- else if (nondigit) goto trailing_uc;
- suffix = number_literal_suffix(p);
- pylval.nd = new_int(p, tok(p), 16, suffix);
- return tINTEGER;
- }
- if (c == 'b' || c == 'B') {
- /* binary */
- c = nextc(p);
- if (c == '0' || c == '1') {
- do {
- if (c == '_') {
- if (nondigit) break;
- nondigit = c;
- continue;
- }
- if (c != '0' && c != '1') break;
- nondigit = 0;
- tokadd(p, c);
- } while ((c = nextc(p)) >= 0);
- }
- pushback(p, c);
- tokfix(p);
- if (toklen(p) == start) {
- no_digits();
- }
- else if (nondigit) goto trailing_uc;
- suffix = number_literal_suffix(p);
- pylval.nd = new_int(p, tok(p), 2, suffix);
- return tINTEGER;
- }
- if (c == 'd' || c == 'D') {
- /* decimal */
- c = nextc(p);
- if (c >= 0 && ISDIGIT(c)) {
- do {
- if (c == '_') {
- if (nondigit) break;
- nondigit = c;
- continue;
- }
- if (!ISDIGIT(c)) break;
- nondigit = 0;
- tokadd(p, c);
- } while ((c = nextc(p)) >= 0);
- }
- pushback(p, c);
- tokfix(p);
- if (toklen(p) == start) {
- no_digits();
- }
- else if (nondigit) goto trailing_uc;
- suffix = number_literal_suffix(p);
- pylval.nd = new_int(p, tok(p), 10, suffix);
- return tINTEGER;
- }
- if (c == '_') {
- /* 0_0 */
- goto octal_number;
- }
- if (c == 'o' || c == 'O') {
- /* prefixed octal */
- c = nextc(p);
- if (c < 0 || c == '_' || !ISDIGIT(c)) {
- no_digits();
- }
- }
- if (c >= '0' && c <= '7') {
- /* octal */
- octal_number:
- do {
- if (c == '_') {
- if (nondigit) break;
- nondigit = c;
- continue;
- }
- if (c < '0' || c > '9') break;
- if (c > '7') goto invalid_octal;
- nondigit = 0;
- tokadd(p, c);
- } while ((c = nextc(p)) >= 0);
-
- if (toklen(p) > start) {
- pushback(p, c);
- tokfix(p);
- if (nondigit) goto trailing_uc;
- suffix = number_literal_suffix(p);
- pylval.nd = new_int(p, tok(p), 8, suffix);
- return tINTEGER;
- }
- if (nondigit) {
- pushback(p, c);
- goto trailing_uc;
- }
- }
- if (c > '7' && c <= '9') {
- invalid_octal:
- yyerror(p, "Invalid octal digit");
- }
- else if (c == '.' || c == 'e' || c == 'E') {
- tokadd(p, '0');
- }
- else {
- pushback(p, c);
- suffix = number_literal_suffix(p);
- pylval.nd = new_int(p, "0", 10, suffix);
- return tINTEGER;
- }
- }
-
- for (;;) {
- switch (c) {
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- nondigit = 0;
- tokadd(p, c);
- break;
-
- case '.':
- if (nondigit) goto trailing_uc;
- if (seen_point || seen_e) {
- goto decode_num;
- }
- else {
- int c0 = nextc(p);
- if (c0 < 0 || !ISDIGIT(c0)) {
- pushback(p, c0);
- goto decode_num;
- }
- c = c0;
- }
- tokadd(p, '.');
- tokadd(p, c);
- is_float++;
- seen_point++;
- nondigit = 0;
- break;
-
- case 'e':
- case 'E':
- if (nondigit) {
- pushback(p, c);
- c = nondigit;
- goto decode_num;
- }
- if (seen_e) {
- goto decode_num;
- }
- tokadd(p, c);
- seen_e++;
- is_float++;
- nondigit = c;
- c = nextc(p);
- if (c != '-' && c != '+') continue;
- tokadd(p, c);
- nondigit = c;
- break;
-
- case '_': /* '_' in number just ignored */
- if (nondigit) goto decode_num;
- nondigit = c;
- break;
-
- default:
- goto decode_num;
- }
- c = nextc(p);
- }
-
- decode_num:
- pushback(p, c);
- if (nondigit) {
- trailing_uc:
- yyerror_c(p, "trailing non digit in number: ", (char)nondigit);
- }
- tokfix(p);
- if (is_float) {
-#ifdef MRB_NO_FLOAT
- yywarning_s(p, "floating-point numbers are not supported", tok(p));
- pylval.nd = new_int(p, "0", 10, 0);
- return tINTEGER;
-#else
- double d;
- char *endp;
-
- errno = 0;
- d = mrb_float_read(tok(p), &endp);
- if (d == 0 && endp == tok(p)) {
- yywarning_s(p, "corrupted float value", tok(p));
- }
- else if (errno == ERANGE) {
- yywarning_s(p, "float out of range", tok(p));
- errno = 0;
- }
- suffix = number_literal_suffix(p);
- if (seen_e && (suffix & NUM_SUFFIX_R)) {
- pushback(p, 'r');
- suffix &= ~NUM_SUFFIX_R;
- }
- pylval.nd = new_float(p, tok(p), suffix);
- return tFLOAT;
-#endif
- }
- suffix = number_literal_suffix(p);
- pylval.nd = new_int(p, tok(p), 10, suffix);
- return tINTEGER;
- }
-
- case ')':
- case ']':
- p->paren_nest--;
- /* fall through */
- case '}':
- COND_LEXPOP();
- CMDARG_LEXPOP();
- if (c == ')')
- p->lstate = EXPR_ENDFN;
- else
- p->lstate = EXPR_END;
- return c;
-
- case ':':
- c = nextc(p);
- if (c == ':') {
- if (IS_BEG() || p->lstate == EXPR_CLASS || IS_SPCARG(-1)) {
- p->lstate = EXPR_BEG;
- return tCOLON3;
- }
- p->lstate = EXPR_DOT;
- return tCOLON2;
- }
- if (!space_seen && IS_END()) {
- pushback(p, c);
- p->lstate = EXPR_BEG;
- return tLABEL_TAG;
- }
- if (IS_END() || ISSPACE(c) || c == '#') {
- pushback(p, c);
- p->lstate = EXPR_BEG;
- return ':';
- }
- pushback(p, c);
- p->lstate = EXPR_FNAME;
- return tSYMBEG;
-
- case '/':
- if (IS_BEG()) {
- p->lex_strterm = new_strterm(p, str_regexp, '/', 0);
- return tREGEXP_BEG;
- }
- if ((c = nextc(p)) == '=') {
- pylval.id = intern_op(div);
- p->lstate = EXPR_BEG;
- return tOP_ASGN;
- }
- pushback(p, c);
- if (IS_SPCARG(c)) {
- p->lex_strterm = new_strterm(p, str_regexp, '/', 0);
- return tREGEXP_BEG;
- }
- if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) {
- p->lstate = EXPR_ARG;
- }
- else {
- p->lstate = EXPR_BEG;
- }
- return '/';
-
- case '^':
- if ((c = nextc(p)) == '=') {
- pylval.id = intern_op(xor);
- p->lstate = EXPR_BEG;
- return tOP_ASGN;
- }
- if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) {
- p->lstate = EXPR_ARG;
- }
- else {
- p->lstate = EXPR_BEG;
- }
- pushback(p, c);
- return '^';
-
- case ';':
- p->lstate = EXPR_BEG;
- return ';';
-
- case ',':
- p->lstate = EXPR_BEG;
- return ',';
-
- case '~':
- if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) {
- if ((c = nextc(p)) != '@') {
- pushback(p, c);
- }
- p->lstate = EXPR_ARG;
- }
- else {
- p->lstate = EXPR_BEG;
- }
- return '~';
-
- case '(':
- if (IS_BEG()) {
- c = tLPAREN;
- }
- else if (IS_SPCARG(-1)) {
- c = tLPAREN_ARG;
- }
- else if (p->lstate == EXPR_END && space_seen) {
- c = tLPAREN_ARG;
- }
- p->paren_nest++;
- COND_PUSH(0);
- CMDARG_PUSH(0);
- p->lstate = EXPR_BEG;
- return c;
-
- case '[':
- p->paren_nest++;
- if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) {
- p->lstate = EXPR_ARG;
- p->paren_nest--;
- if ((c = nextc(p)) == ']') {
- if ((c = nextc(p)) == '=') {
- return tASET;
- }
- pushback(p, c);
- return tAREF;
- }
- pushback(p, c);
- return '[';
- }
- else if (IS_BEG()) {
- c = tLBRACK;
- }
- else if (IS_ARG() && space_seen) {
- c = tLBRACK;
- }
- p->lstate = EXPR_BEG;
- COND_PUSH(0);
- CMDARG_PUSH(0);
- return c;
-
- case '{':
- if (p->lpar_beg && p->lpar_beg == p->paren_nest) {
- p->lstate = EXPR_BEG;
- p->lpar_beg = 0;
- p->paren_nest--;
- COND_PUSH(0);
- CMDARG_PUSH(0);
- return tLAMBEG;
- }
- if (IS_ARG() || p->lstate == EXPR_END || p->lstate == EXPR_ENDFN)
- c = '{'; /* block (primary) */
- else if (p->lstate == EXPR_ENDARG)
- c = tLBRACE_ARG; /* block (expr) */
- else
- c = tLBRACE; /* hash */
- COND_PUSH(0);
- CMDARG_PUSH(0);
- p->lstate = EXPR_BEG;
- return c;
-
- case '\\':
- c = nextc(p);
- if (c == '\n') {
- p->lineno+=nlines; nlines=1;
- p->column = 0;
- space_seen = 1;
- goto retry; /* skip \\n */
- }
- pushback(p, c);
- return '\\';
-
- case '%':
- if (IS_BEG()) {
- int term;
- int paren;
-
- c = nextc(p);
- quotation:
- if (c < 0 || !ISALNUM(c)) {
- term = c;
- c = 'Q';
- }
- else {
- term = nextc(p);
- if (ISALNUM(term)) {
- yyerror(p, "unknown type of %string");
- return 0;
- }
- }
- if (c < 0 || term < 0) {
- yyerror(p, "unterminated quoted string meets end of file");
- return 0;
- }
- paren = term;
- if (term == '(') term = ')';
- else if (term == '[') term = ']';
- else if (term == '{') term = '}';
- else if (term == '<') term = '>';
- else paren = 0;
-
- switch (c) {
- case 'Q':
- p->lex_strterm = new_strterm(p, str_dquote, term, paren);
- return tSTRING_BEG;
-
- case 'q':
- p->lex_strterm = new_strterm(p, str_squote, term, paren);
- return parse_string(p);
-
- case 'W':
- p->lex_strterm = new_strterm(p, str_dword, term, paren);
- return tWORDS_BEG;
-
- case 'w':
- p->lex_strterm = new_strterm(p, str_sword, term, paren);
- return tWORDS_BEG;
-
- case 'x':
- p->lex_strterm = new_strterm(p, str_xquote, term, paren);
- return tXSTRING_BEG;
-
- case 'r':
- p->lex_strterm = new_strterm(p, str_regexp, term, paren);
- return tREGEXP_BEG;
-
- case 's':
- p->lex_strterm = new_strterm(p, str_ssym, term, paren);
- return tSYMBEG;
-
- case 'I':
- p->lex_strterm = new_strterm(p, str_dsymbols, term, paren);
- return tSYMBOLS_BEG;
-
- case 'i':
- p->lex_strterm = new_strterm(p, str_ssymbols, term, paren);
- return tSYMBOLS_BEG;
-
- default:
- yyerror(p, "unknown type of %string");
- return 0;
- }
- }
- if ((c = nextc(p)) == '=') {
- pylval.id = intern_op(mod);
- p->lstate = EXPR_BEG;
- return tOP_ASGN;
- }
- if (IS_SPCARG(c)) {
- goto quotation;
- }
- if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) {
- p->lstate = EXPR_ARG;
- }
- else {
- p->lstate = EXPR_BEG;
- }
- pushback(p, c);
- return '%';
-
- case '$':
- p->lstate = EXPR_END;
- token_column = newtok(p);
- c = nextc(p);
- if (c < 0) {
- yyerror(p, "incomplete global variable syntax");
- return 0;
- }
- switch (c) {
- case '_': /* $_: last read line string */
- c = nextc(p);
- if (c >= 0 && identchar(c)) { /* if there is more after _ it is a variable */
- tokadd(p, '$');
- tokadd(p, c);
- break;
- }
- pushback(p, c);
- c = '_';
- /* fall through */
- case '~': /* $~: match-data */
- case '*': /* $*: argv */
- case '$': /* $$: pid */
- case '?': /* $?: last status */
- case '!': /* $!: error string */
- case '@': /* $@: error position */
- case '/': /* $/: input record separator */
- case '\\': /* $\: output record separator */
- case ';': /* $;: field separator */
- case ',': /* $,: output field separator */
- case '.': /* $.: last read line number */
- case '=': /* $=: ignorecase */
- case ':': /* $:: load path */
- case '<': /* $<: reading filename */
- case '>': /* $>: default output handle */
- case '\"': /* $": already loaded files */
- tokadd(p, '$');
- tokadd(p, c);
- tokfix(p);
- pylval.id = intern(tok(p), toklen(p));
- return tGVAR;
-
- case '-':
- tokadd(p, '$');
- tokadd(p, c);
- c = nextc(p);
- pushback(p, c);
- gvar:
- tokfix(p);
- pylval.id = intern(tok(p), toklen(p));
- return tGVAR;
-
- case '&': /* $&: last match */
- case '`': /* $`: string before last match */
- case '\'': /* $': string after last match */
- case '+': /* $+: string matches last pattern */
- if (last_state == EXPR_FNAME) {
- tokadd(p, '$');
- tokadd(p, c);
- goto gvar;
- }
- pylval.nd = new_back_ref(p, c);
- return tBACK_REF;
-
- case '1': case '2': case '3':
- case '4': case '5': case '6':
- case '7': case '8': case '9':
- do {
- tokadd(p, c);
- c = nextc(p);
- } while (c >= 0 && ISDIGIT(c));
- pushback(p, c);
- if (last_state == EXPR_FNAME) goto gvar;
- tokfix(p);
- {
- mrb_int n = mrb_int_read(tok(p), NULL, NULL);
- if (n > INT32_MAX) {
- yywarning(p, "capture group index too big; always nil");
- return keyword_nil;
- }
- pylval.nd = new_nth_ref(p, (int)n);
- }
- return tNTH_REF;
-
- default:
- if (!identchar(c)) {
- pushback(p, c);
- return '$';
- }
- /* fall through */
- case '0':
- tokadd(p, '$');
- }
- break;
-
- case '@':
- c = nextc(p);
- token_column = newtok(p);
- tokadd(p, '@');
- if (c == '@') {
- tokadd(p, '@');
- c = nextc(p);
- }
- if (c < 0) {
- if (p->tidx == 1) {
- yyerror(p, "incomplete instance variable syntax");
- }
- else {
- yyerror(p, "incomplete class variable syntax");
- }
- return 0;
- }
- else if (ISDIGIT(c)) {
- if (p->tidx == 1) {
- yyerror_c(p, "wrong instance variable name: @", c);
- }
- else {
- yyerror_c(p, "wrong class variable name: @@", c);
- }
- return 0;
- }
- if (!identchar(c)) {
- pushback(p, c);
- return '@';
- }
- break;
-
- case '_':
- token_column = newtok(p);
- break;
-
- default:
- if (!identchar(c)) {
- char buf[36];
- const char s[] = "Invalid char in expression: 0x";
- const char hexdigits[] = "0123456789ABCDEF";
-
- strcpy(buf, s);
- buf[sizeof(s)-1] = hexdigits[(c & 0xf0) >> 4];
- buf[sizeof(s)] = hexdigits[(c & 0x0f)];
- buf[sizeof(s)+1] = 0;
- yyerror(p, buf);
- goto retry;
- }
-
- token_column = newtok(p);
- break;
- }
-
- do {
- tokadd(p, c);
- c = nextc(p);
- if (c < 0) break;
- } while (identchar(c));
- if (token_column == 0 && toklen(p) == 7 && (c < 0 || c == '\n') &&
- strncmp(tok(p), "__END__", toklen(p)) == 0)
- return -1;
-
- switch (tok(p)[0]) {
- case '@': case '$':
- pushback(p, c);
- break;
- default:
- if ((c == '!' || c == '?') && !peek(p, '=')) {
- tokadd(p, c);
- }
- else {
- pushback(p, c);
- }
- }
- tokfix(p);
- {
- int result = 0;
-
- switch (tok(p)[0]) {
- case '$':
- p->lstate = EXPR_END;
- result = tGVAR;
- break;
- case '@':
- p->lstate = EXPR_END;
- if (tok(p)[1] == '@')
- result = tCVAR;
- else
- result = tIVAR;
- break;
-
- case '_':
- if (p->lstate != EXPR_FNAME && toklen(p) == 2 && ISDIGIT(tok(p)[1]) && p->nvars) {
- int n = tok(p)[1] - '0';
- int nvar;
-
- if (n > 0) {
- node *nvars = p->nvars->cdr;
-
- while (nvars) {
- nvar = intn(nvars->car);
- if (nvar == -2) break; /* top of the scope */
- if (nvar > 0) {
- yywarning(p, "numbered parameter used in outer block");
- break;
- }
- nvars->car = nint(-1);
- nvars = nvars->cdr;
- }
- nvar = intn(p->nvars->car);
- if (nvar == -1) {
- yywarning(p, "numbered parameter used in inner block");
- }
- if (nvar >= -1) {
- pylval.num = n;
- p->lstate = EXPR_END;
- return tNUMPARAM;
- }
- else {
- yywarning(p, "identifier for numbered parameter; consider another name");
- }
- }
- }
- /* fall through */
- default:
- if (toklast(p) == '!' || toklast(p) == '?') {
- result = tFID;
- }
- else {
- if (p->lstate == EXPR_FNAME) {
- if ((c = nextc(p)) == '=' && !peek(p, '~') && !peek(p, '>') &&
- (!peek(p, '=') || (peek_n(p, '>', 1)))) {
- result = tIDENTIFIER;
- tokadd(p, c);
- tokfix(p);
- }
- else {
- pushback(p, c);
- }
- if ((c = nextc(p)) == '=' && !peek(p, '~') && !peek(p, '>') &&
- (!peek(p, '=') || (peek_n(p, '>', 1)))) {
- result = tIDENTIFIER;
- tokadd(p, c);
- tokfix(p);
- }
- else {
- pushback(p, c);
- }
- }
- if (result == 0 && ISUPPER(tok(p)[0])) {
- result = tCONSTANT;
- }
- else {
- result = tIDENTIFIER;
- }
- }
-
- if (IS_LABEL_POSSIBLE()) {
- if (IS_LABEL_SUFFIX(0)) {
- p->lstate = EXPR_END;
- tokfix(p);
- pylval.id = intern(tok(p), toklen(p));
- return tIDENTIFIER;
- }
- }
- if (p->lstate != EXPR_DOT) {
- const struct kwtable *kw;
-
- /* See if it is a reserved word. */
- kw = mrb_reserved_word(tok(p), toklen(p));
- if (kw) {
- enum mrb_lex_state_enum state = p->lstate;
- pylval.num = p->lineno;
- p->lstate = kw->state;
- if (state == EXPR_FNAME) {
- pylval.id = intern_cstr(kw->name);
- return kw->id[0];
- }
- if (p->lstate == EXPR_BEG) {
- p->cmd_start = TRUE;
- }
- if (kw->id[0] == keyword_do) {
- if (p->lpar_beg && p->lpar_beg == p->paren_nest) {
- p->lpar_beg = 0;
- p->paren_nest--;
- return keyword_do_LAMBDA;
- }
- if (COND_P()) return keyword_do_cond;
- if (CMDARG_P() && state != EXPR_CMDARG)
- return keyword_do_block;
- if (state == EXPR_ENDARG || state == EXPR_BEG)
- return keyword_do_block;
- return keyword_do;
- }
- if (state == EXPR_BEG || state == EXPR_VALUE)
- return kw->id[0];
- else {
- if (kw->id[0] != kw->id[1])
- p->lstate = EXPR_BEG;
- return kw->id[1];
- }
- }
- }
-
- if (IS_BEG() || p->lstate == EXPR_DOT || IS_ARG()) {
- if (cmd_state) {
- p->lstate = EXPR_CMDARG;
- }
- else {
- p->lstate = EXPR_ARG;
- }
- }
- else if (p->lstate == EXPR_FNAME) {
- p->lstate = EXPR_ENDFN;
- }
- else {
- p->lstate = EXPR_END;
- }
- }
- {
- mrb_sym ident = intern(tok(p), toklen(p));
-
- pylval.id = ident;
- if (last_state != EXPR_DOT && ISLOWER(tok(p)[0]) && local_var_p(p, ident)) {
- p->lstate = EXPR_END;
- }
- }
- return result;
- }
-}
-
-static int
-yylex(void *lval, parser_state *p)
-{
- p->ylval = lval;
- return parser_yylex(p);
-}
-
-static void
-parser_init_cxt(parser_state *p, mrbc_context *cxt)
-{
- if (!cxt) return;
- if (cxt->filename) mrb_parser_set_filename(p, cxt->filename);
- if (cxt->lineno) p->lineno = cxt->lineno;
- if (cxt->syms) {
- int i;
-
- p->locals = cons(0,0);
- for (i=0; i<cxt->slen; i++) {
- local_add_f(p, cxt->syms[i]);
- }
- }
- p->capture_errors = cxt->capture_errors;
- p->no_optimize = cxt->no_optimize;
- p->upper = cxt->upper;
- if (cxt->partial_hook) {
- p->cxt = cxt;
- }
-}
-
-static void
-parser_update_cxt(parser_state *p, mrbc_context *cxt)
-{
- node *n, *n0;
- int i = 0;
-
- if (!cxt) return;
- if (intn(p->tree->car) != NODE_SCOPE) return;
- n0 = n = p->tree->cdr->car;
- while (n) {
- i++;
- n = n->cdr;
- }
- cxt->syms = (mrb_sym *)mrb_realloc(p->mrb, cxt->syms, i*sizeof(mrb_sym));
- cxt->slen = i;
- for (i=0, n=n0; n; i++,n=n->cdr) {
- cxt->syms[i] = sym(n->car);
- }
-}
-
-void mrb_codedump_all(mrb_state*, struct RProc*);
-void mrb_parser_dump(mrb_state *mrb, node *tree, int offset);
-
-MRB_API void
-mrb_parser_parse(parser_state *p, mrbc_context *c)
-{
- struct mrb_jmpbuf buf1;
- p->jmp = &buf1;
-
- MRB_TRY(p->jmp) {
- int n = 1;
-
- p->cmd_start = TRUE;
- p->in_def = p->in_single = 0;
- p->nerr = p->nwarn = 0;
- p->lex_strterm = NULL;
-
- parser_init_cxt(p, c);
-
- if (p->mrb->jmp) {
- n = yyparse(p);
- }
- else {
- struct mrb_jmpbuf buf2;
-
- p->mrb->jmp = &buf2;
- MRB_TRY(p->mrb->jmp) {
- n = yyparse(p);
- }
- MRB_CATCH(p->mrb->jmp) {
- p->nerr++;
- }
- MRB_END_EXC(p->mrb->jmp);
- p->mrb->jmp = 0;
- }
- if (n != 0 || p->nerr > 0) {
- p->tree = 0;
- return;
- }
- if (!p->tree) {
- p->tree = new_nil(p);
- }
- parser_update_cxt(p, c);
- if (c && c->dump_result) {
- mrb_parser_dump(p->mrb, p->tree, 0);
- }
- }
- MRB_CATCH(p->jmp) {
- yyerror(p, "memory allocation error");
- p->nerr++;
- p->tree = 0;
- return;
- }
- MRB_END_EXC(p->jmp);
-}
-
-MRB_API parser_state*
-mrb_parser_new(mrb_state *mrb)
-{
- mrb_pool *pool;
- parser_state *p;
- static const parser_state parser_state_zero = { 0 };
-
- pool = mrb_pool_open(mrb);
- if (!pool) return NULL;
- p = (parser_state *)mrb_pool_alloc(pool, sizeof(parser_state));
- if (!p) return NULL;
-
- *p = parser_state_zero;
- p->mrb = mrb;
- p->pool = pool;
-
- p->s = p->send = NULL;
-#ifndef MRB_NO_STDIO
- p->f = NULL;
-#endif
-
- p->cmd_start = TRUE;
- p->in_def = p->in_single = 0;
-
- p->capture_errors = FALSE;
- p->lineno = 1;
- p->column = 0;
-#if defined(PARSER_TEST) || defined(PARSER_DEBUG)
- yydebug = 1;
-#endif
- p->tsiz = MRB_PARSER_TOKBUF_SIZE;
- p->tokbuf = p->buf;
-
- p->lex_strterm = NULL;
- p->all_heredocs = p->parsing_heredoc = NULL;
- p->lex_strterm_before_heredoc = NULL;
-
- p->current_filename_index = -1;
- p->filename_table = NULL;
- p->filename_table_length = 0;
-
- return p;
-}
-
-MRB_API void
-mrb_parser_free(parser_state *p) {
- if (p->tokbuf != p->buf) {
- mrb_free(p->mrb, p->tokbuf);
- }
- mrb_pool_close(p->pool);
-}
-
-MRB_API mrbc_context*
-mrbc_context_new(mrb_state *mrb)
-{
- return (mrbc_context *)mrb_calloc(mrb, 1, sizeof(mrbc_context));
-}
-
-MRB_API void
-mrbc_context_free(mrb_state *mrb, mrbc_context *cxt)
-{
- mrb_free(mrb, cxt->filename);
- mrb_free(mrb, cxt->syms);
- mrb_free(mrb, cxt);
-}
-
-MRB_API const char*
-mrbc_filename(mrb_state *mrb, mrbc_context *c, const char *s)
-{
- if (s) {
- size_t len = strlen(s);
- char *p = (char *)mrb_malloc(mrb, len + 1);
-
- memcpy(p, s, len + 1);
- if (c->filename) {
- mrb_free(mrb, c->filename);
- }
- c->filename = p;
- }
- return c->filename;
-}
-
-MRB_API void
-mrbc_partial_hook(mrb_state *mrb, mrbc_context *c, int (*func)(struct mrb_parser_state*), void *data)
-{
- c->partial_hook = func;
- c->partial_data = data;
-}
-
-MRB_API void
-mrbc_cleanup_local_variables(mrb_state *mrb, mrbc_context *c)
-{
- if (c->syms) {
- mrb_free(mrb, c->syms);
- c->syms = NULL;
- c->slen = 0;
- }
-}
-
-MRB_API void
-mrb_parser_set_filename(struct mrb_parser_state *p, const char *f)
-{
- mrb_sym sym;
- uint16_t i;
- mrb_sym* new_table;
-
- sym = mrb_intern_cstr(p->mrb, f);
- p->filename_sym = sym;
- p->lineno = (p->filename_table_length > 0)? 0 : 1;
-
- for (i = 0; i < p->filename_table_length; ++i) {
- if (p->filename_table[i] == sym) {
- p->current_filename_index = i;
- return;
- }
- }
-
- if (p->filename_table_length == UINT16_MAX) {
- yyerror(p, "too many files to compile");
- return;
- }
- p->current_filename_index = p->filename_table_length++;
-
- new_table = (mrb_sym*)parser_palloc(p, sizeof(mrb_sym) * p->filename_table_length);
- if (p->filename_table) {
- memmove(new_table, p->filename_table, sizeof(mrb_sym) * p->current_filename_index);
- }
- p->filename_table = new_table;
- p->filename_table[p->filename_table_length - 1] = sym;
-}
-
-MRB_API mrb_sym
-mrb_parser_get_filename(struct mrb_parser_state* p, uint16_t idx) {
- if (idx >= p->filename_table_length) return 0;
- else {
- return p->filename_table[idx];
- }
-}
-
-#ifndef MRB_NO_STDIO
-static struct mrb_parser_state *
-mrb_parse_file_continue(mrb_state *mrb, FILE *f, const void *prebuf, size_t prebufsize, mrbc_context *c)
-{
- parser_state *p;
-
- p = mrb_parser_new(mrb);
- if (!p) return NULL;
- if (prebuf) {
- p->s = (const char *)prebuf;
- p->send = (const char *)prebuf + prebufsize;
- }
- else {
- p->s = p->send = NULL;
- }
- p->f = f;
-
- mrb_parser_parse(p, c);
- return p;
-}
-
-MRB_API parser_state*
-mrb_parse_file(mrb_state *mrb, FILE *f, mrbc_context *c)
-{
- return mrb_parse_file_continue(mrb, f, NULL, 0, c);
-}
-#endif
-
-MRB_API parser_state*
-mrb_parse_nstring(mrb_state *mrb, const char *s, size_t len, mrbc_context *c)
-{
- parser_state *p;
-
- p = mrb_parser_new(mrb);
- if (!p) return NULL;
- p->s = s;
- p->send = s + len;
-
- mrb_parser_parse(p, c);
- return p;
-}
-
-MRB_API parser_state*
-mrb_parse_string(mrb_state *mrb, const char *s, mrbc_context *c)
-{
- return mrb_parse_nstring(mrb, s, strlen(s), c);
-}
-
-MRB_API mrb_value
-mrb_load_exec(mrb_state *mrb, struct mrb_parser_state *p, mrbc_context *c)
-{
- struct RClass *target = mrb->object_class;
- struct RProc *proc;
- mrb_value v;
- mrb_int keep = 0;
-
- if (!p) {
- return mrb_undef_value();
- }
- if (!p->tree || p->nerr) {
- if (c) c->parser_nerr = p->nerr;
- if (p->capture_errors) {
- char buf[256];
-
- strcpy(buf, "line ");
- dump_int(p->error_buffer[0].lineno, buf+5);
- strcat(buf, ": ");
- strncat(buf, p->error_buffer[0].message, sizeof(buf) - strlen(buf) - 1);
- mrb->exc = mrb_obj_ptr(mrb_exc_new(mrb, E_SYNTAX_ERROR, buf, strlen(buf)));
- mrb_parser_free(p);
- return mrb_undef_value();
- }
- else {
- if (mrb->exc == NULL) {
- mrb->exc = mrb_obj_ptr(mrb_exc_new_lit(mrb, E_SYNTAX_ERROR, "syntax error"));
- }
- mrb_parser_free(p);
- return mrb_undef_value();
- }
- }
- proc = mrb_generate_code(mrb, p);
- mrb_parser_free(p);
- if (proc == NULL) {
- if (mrb->exc == NULL) {
- mrb->exc = mrb_obj_ptr(mrb_exc_new_lit(mrb, E_SCRIPT_ERROR, "codegen error"));
- }
- return mrb_undef_value();
- }
- if (c) {
- if (c->dump_result) mrb_codedump_all(mrb, proc);
- if (c->no_exec) return mrb_obj_value(proc);
- if (c->target_class) {
- target = c->target_class;
- }
- if (c->keep_lv) {
- keep = c->slen + 1;
- }
- else {
- c->keep_lv = TRUE;
- }
- }
- MRB_PROC_SET_TARGET_CLASS(proc, target);
- if (mrb->c->ci) {
- mrb_vm_ci_target_class_set(mrb->c->ci, target);
- }
- v = mrb_top_run(mrb, proc, mrb_top_self(mrb), keep);
- if (mrb->exc) return mrb_nil_value();
- return v;
-}
-
-#ifndef MRB_NO_STDIO
-MRB_API mrb_value
-mrb_load_file_cxt(mrb_state *mrb, FILE *f, mrbc_context *c)
-{
- return mrb_load_exec(mrb, mrb_parse_file(mrb, f, c), c);
-}
-
-MRB_API mrb_value
-mrb_load_file(mrb_state *mrb, FILE *f)
-{
- return mrb_load_file_cxt(mrb, f, NULL);
-}
-
-#define DETECT_SIZE 64
-
-/*
- * In order to be recognized as a `.mrb` file, the following three points must be satisfied:
- * - File starts with "RITE"
- * - At least `sizeof(struct rite_binary_header)` bytes can be read
- * - `NUL` is included in the first 64 bytes of the file
- */
-MRB_API mrb_value
-mrb_load_detect_file_cxt(mrb_state *mrb, FILE *fp, mrbc_context *c)
-{
- union {
- char b[DETECT_SIZE];
- struct rite_binary_header h;
- } leading;
- size_t bufsize;
-
- if (mrb == NULL || fp == NULL) {
- return mrb_nil_value();
- }
-
- bufsize = fread(leading.b, sizeof(char), sizeof(leading), fp);
- if (bufsize < sizeof(leading.h) ||
- memcmp(leading.h.binary_ident, RITE_BINARY_IDENT, sizeof(leading.h.binary_ident)) != 0 ||
- memchr(leading.b, '\0', bufsize) == NULL) {
- return mrb_load_exec(mrb, mrb_parse_file_continue(mrb, fp, leading.b, bufsize, c), c);
- }
- else {
- size_t binsize;
- uint8_t *bin;
- mrb_value bin_obj = mrb_nil_value(); /* temporary string object */
- mrb_value result;
-
- binsize = bin_to_uint32(leading.h.binary_size);
- bin_obj = mrb_str_new(mrb, NULL, binsize);
- bin = (uint8_t *)RSTRING_PTR(bin_obj);
- memcpy(bin, leading.b, bufsize);
- if (binsize > bufsize &&
- fread(bin + bufsize, binsize - bufsize, 1, fp) == 0) {
- binsize = bufsize;
- /* The error is reported by mrb_load_irep_buf_cxt() */
- }
-
- result = mrb_load_irep_buf_cxt(mrb, bin, binsize, c);
- if (mrb_string_p(bin_obj)) mrb_str_resize(mrb, bin_obj, 0);
- return result;
- }
-}
-#endif
-
-MRB_API mrb_value
-mrb_load_nstring_cxt(mrb_state *mrb, const char *s, size_t len, mrbc_context *c)
-{
- return mrb_load_exec(mrb, mrb_parse_nstring(mrb, s, len, c), c);
-}
-
-MRB_API mrb_value
-mrb_load_nstring(mrb_state *mrb, const char *s, size_t len)
-{
- return mrb_load_nstring_cxt(mrb, s, len, NULL);
-}
-
-MRB_API mrb_value
-mrb_load_string_cxt(mrb_state *mrb, const char *s, mrbc_context *c)
-{
- return mrb_load_nstring_cxt(mrb, s, strlen(s), c);
-}
-
-MRB_API mrb_value
-mrb_load_string(mrb_state *mrb, const char *s)
-{
- return mrb_load_string_cxt(mrb, s, NULL);
-}
-
-#ifndef MRB_NO_STDIO
-
-static void
-dump_prefix(node *tree, int offset)
-{
- printf("%05d ", tree->lineno);
- while (offset--) {
- putc(' ', stdout);
- putc(' ', stdout);
- }
-}
-
-static void
-dump_recur(mrb_state *mrb, node *tree, int offset)
-{
- while (tree) {
- mrb_parser_dump(mrb, tree->car, offset);
- tree = tree->cdr;
- }
-}
-
-static void
-dump_args(mrb_state *mrb, node *n, int offset)
-{
- if (n->car) {
- dump_prefix(n, offset+1);
- printf("mandatory args:\n");
- dump_recur(mrb, n->car, offset+2);
- }
- n = n->cdr;
- if (n->car) {
- dump_prefix(n, offset+1);
- printf("optional args:\n");
- {
- node *n2 = n->car;
-
- while (n2) {
- dump_prefix(n2, offset+2);
- printf("%s=\n", mrb_sym_name(mrb, sym(n2->car->car)));
- mrb_parser_dump(mrb, n2->car->cdr, offset+3);
- n2 = n2->cdr;
- }
- }
- }
- n = n->cdr;
- if (n->car) {
- dump_prefix(n, offset+1);
- printf("rest=*%s\n", mrb_sym_name(mrb, sym(n->car)));
- }
- n = n->cdr;
- if (n->car) {
- dump_prefix(n, offset+1);
- printf("post mandatory args:\n");
- dump_recur(mrb, n->car, offset+2);
- }
-
- n = n->cdr;
- if (n) {
- mrb_assert(intn(n->car) == NODE_ARGS_TAIL);
- mrb_parser_dump(mrb, n, offset);
- }
-}
-
-/*
- * This function restores the GC arena on return.
- * For this reason, if a process that further generates an object is
- * performed at the caller, the string pointer returned as the return
- * value may become invalid.
- */
-static const char*
-str_dump(mrb_state *mrb, const char *str, int len)
-{
- int ai = mrb_gc_arena_save(mrb);
- mrb_value s;
-# if INT_MAX > MRB_INT_MAX / 4
- /* check maximum length with "\xNN" character */
- if (len > MRB_INT_MAX / 4) {
- len = MRB_INT_MAX / 4;
- }
-# endif
- s = mrb_str_new(mrb, str, (mrb_int)len);
- s = mrb_str_dump(mrb, s);
- mrb_gc_arena_restore(mrb, ai);
- return RSTRING_PTR(s);
-}
-#endif
-
-void
-mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
-{
-#ifndef MRB_NO_STDIO
- int nodetype;
-
- if (!tree) return;
- again:
- dump_prefix(tree, offset);
- nodetype = intn(tree->car);
- tree = tree->cdr;
- switch (nodetype) {
- case NODE_BEGIN:
- printf("NODE_BEGIN:\n");
- dump_recur(mrb, tree, offset+1);
- break;
-
- case NODE_RESCUE:
- printf("NODE_RESCUE:\n");
- if (tree->car) {
- dump_prefix(tree, offset+1);
- printf("body:\n");
- mrb_parser_dump(mrb, tree->car, offset+2);
- }
- tree = tree->cdr;
- if (tree->car) {
- node *n2 = tree->car;
-
- dump_prefix(n2, offset+1);
- printf("rescue:\n");
- while (n2) {
- node *n3 = n2->car;
- if (n3->car) {
- dump_prefix(n2, offset+2);
- printf("handle classes:\n");
- dump_recur(mrb, n3->car, offset+3);
- }
- if (n3->cdr->car) {
- dump_prefix(n3, offset+2);
- printf("exc_var:\n");
- mrb_parser_dump(mrb, n3->cdr->car, offset+3);
- }
- if (n3->cdr->cdr->car) {
- dump_prefix(n3, offset+2);
- printf("rescue body:\n");
- mrb_parser_dump(mrb, n3->cdr->cdr->car, offset+3);
- }
- n2 = n2->cdr;
- }
- }
- tree = tree->cdr;
- if (tree->car) {
- dump_prefix(tree, offset+1);
- printf("else:\n");
- mrb_parser_dump(mrb, tree->car, offset+2);
- }
- break;
-
- case NODE_ENSURE:
- printf("NODE_ENSURE:\n");
- dump_prefix(tree, offset+1);
- printf("body:\n");
- mrb_parser_dump(mrb, tree->car, offset+2);
- dump_prefix(tree, offset+1);
- printf("ensure:\n");
- mrb_parser_dump(mrb, tree->cdr->cdr, offset+2);
- break;
-
- case NODE_LAMBDA:
- printf("NODE_LAMBDA:\n");
- dump_prefix(tree, offset);
- goto block;
-
- case NODE_BLOCK:
- block:
- printf("NODE_BLOCK:\n");
- tree = tree->cdr;
- if (tree->car) {
- dump_args(mrb, tree->car, offset+1);
- }
- dump_prefix(tree, offset+1);
- printf("body:\n");
- mrb_parser_dump(mrb, tree->cdr->car, offset+2);
- break;
-
- case NODE_IF:
- printf("NODE_IF:\n");
- dump_prefix(tree, offset+1);
- printf("cond:\n");
- mrb_parser_dump(mrb, tree->car, offset+2);
- dump_prefix(tree, offset+1);
- printf("then:\n");
- mrb_parser_dump(mrb, tree->cdr->car, offset+2);
- if (tree->cdr->cdr->car) {
- dump_prefix(tree, offset+1);
- printf("else:\n");
- mrb_parser_dump(mrb, tree->cdr->cdr->car, offset+2);
- }
- break;
-
- case NODE_AND:
- printf("NODE_AND:\n");
- mrb_parser_dump(mrb, tree->car, offset+1);
- mrb_parser_dump(mrb, tree->cdr, offset+1);
- break;
-
- case NODE_OR:
- printf("NODE_OR:\n");
- mrb_parser_dump(mrb, tree->car, offset+1);
- mrb_parser_dump(mrb, tree->cdr, offset+1);
- break;
-
- case NODE_CASE:
- printf("NODE_CASE:\n");
- if (tree->car) {
- mrb_parser_dump(mrb, tree->car, offset+1);
- }
- tree = tree->cdr;
- while (tree) {
- dump_prefix(tree, offset+1);
- printf("case:\n");
- dump_recur(mrb, tree->car->car, offset+2);
- dump_prefix(tree, offset+1);
- printf("body:\n");
- mrb_parser_dump(mrb, tree->car->cdr, offset+2);
- tree = tree->cdr;
- }
- break;
-
- case NODE_WHILE:
- printf("NODE_WHILE:\n");
- dump_prefix(tree, offset+1);
- printf("cond:\n");
- mrb_parser_dump(mrb, tree->car, offset+2);
- dump_prefix(tree, offset+1);
- printf("body:\n");
- mrb_parser_dump(mrb, tree->cdr, offset+2);
- break;
-
- case NODE_UNTIL:
- printf("NODE_UNTIL:\n");
- dump_prefix(tree, offset+1);
- printf("cond:\n");
- mrb_parser_dump(mrb, tree->car, offset+2);
- dump_prefix(tree, offset+1);
- printf("body:\n");
- mrb_parser_dump(mrb, tree->cdr, offset+2);
- break;
-
- case NODE_FOR:
- printf("NODE_FOR:\n");
- dump_prefix(tree, offset+1);
- printf("var:\n");
- {
- node *n2 = tree->car;
-
- if (n2->car) {
- dump_prefix(n2, offset+2);
- printf("pre:\n");
- dump_recur(mrb, n2->car, offset+3);
- }
- n2 = n2->cdr;
- if (n2) {
- if (n2->car) {
- dump_prefix(n2, offset+2);
- printf("rest:\n");
- mrb_parser_dump(mrb, n2->car, offset+3);
- }
- n2 = n2->cdr;
- if (n2) {
- if (n2->car) {
- dump_prefix(n2, offset+2);
- printf("post:\n");
- dump_recur(mrb, n2->car, offset+3);
- }
- }
- }
- }
- tree = tree->cdr;
- dump_prefix(tree, offset+1);
- printf("in:\n");
- mrb_parser_dump(mrb, tree->car, offset+2);
- tree = tree->cdr;
- dump_prefix(tree, offset+1);
- printf("do:\n");
- mrb_parser_dump(mrb, tree->car, offset+2);
- break;
-
- case NODE_SCOPE:
- printf("NODE_SCOPE:\n");
- {
- node *n2 = tree->car;
- mrb_bool first_lval = TRUE;
-
- if (n2 && (n2->car || n2->cdr)) {
- dump_prefix(n2, offset+1);
- printf("local variables:\n");
- dump_prefix(n2, offset+2);
- while (n2) {
- if (n2->car) {
- if (!first_lval) printf(", ");
- printf("%s", mrb_sym_name(mrb, sym(n2->car)));
- first_lval = FALSE;
- }
- n2 = n2->cdr;
- }
- printf("\n");
- }
- }
- tree = tree->cdr;
- offset++;
- goto again;
-
- case NODE_FCALL:
- case NODE_CALL:
- case NODE_SCALL:
- switch (nodetype) {
- case NODE_FCALL:
- printf("NODE_FCALL:\n"); break;
- case NODE_CALL:
- printf("NODE_CALL(.):\n"); break;
- case NODE_SCALL:
- printf("NODE_SCALL(&.):\n"); break;
- default:
- break;
- }
- mrb_parser_dump(mrb, tree->car, offset+1);
- dump_prefix(tree, offset+1);
- printf("method='%s' (%d)\n",
- mrb_sym_dump(mrb, sym(tree->cdr->car)),
- intn(tree->cdr->car));
- tree = tree->cdr->cdr->car;
- if (tree) {
- dump_prefix(tree, offset+1);
- printf("args:\n");
- dump_recur(mrb, tree->car, offset+2);
- if (tree->cdr) {
- dump_prefix(tree, offset+1);
- printf("block:\n");
- mrb_parser_dump(mrb, tree->cdr, offset+2);
- }
- }
- break;
-
- case NODE_DOT2:
- printf("NODE_DOT2:\n");
- mrb_parser_dump(mrb, tree->car, offset+1);
- mrb_parser_dump(mrb, tree->cdr, offset+1);
- break;
-
- case NODE_DOT3:
- printf("NODE_DOT3:\n");
- mrb_parser_dump(mrb, tree->car, offset+1);
- mrb_parser_dump(mrb, tree->cdr, offset+1);
- break;
-
- case NODE_COLON2:
- printf("NODE_COLON2:\n");
- mrb_parser_dump(mrb, tree->car, offset+1);
- dump_prefix(tree, offset+1);
- printf("::%s\n", mrb_sym_name(mrb, sym(tree->cdr)));
- break;
-
- case NODE_COLON3:
- printf("NODE_COLON3: ::%s\n", mrb_sym_name(mrb, sym(tree)));
- break;
-
- case NODE_ARRAY:
- printf("NODE_ARRAY:\n");
- dump_recur(mrb, tree, offset+1);
- break;
-
- case NODE_HASH:
- printf("NODE_HASH:\n");
- while (tree) {
- dump_prefix(tree, offset+1);
- printf("key:\n");
- mrb_parser_dump(mrb, tree->car->car, offset+2);
- dump_prefix(tree, offset+1);
- printf("value:\n");
- mrb_parser_dump(mrb, tree->car->cdr, offset+2);
- tree = tree->cdr;
- }
- break;
-
- case NODE_KW_HASH:
- printf("NODE_KW_HASH:\n");
- while (tree) {
- dump_prefix(tree, offset+1);
- printf("key:\n");
- mrb_parser_dump(mrb, tree->car->car, offset+2);
- dump_prefix(tree, offset+1);
- printf("value:\n");
- mrb_parser_dump(mrb, tree->car->cdr, offset+2);
- tree = tree->cdr;
- }
- break;
-
- case NODE_SPLAT:
- printf("NODE_SPLAT:\n");
- mrb_parser_dump(mrb, tree, offset+1);
- break;
-
- case NODE_ASGN:
- printf("NODE_ASGN:\n");
- dump_prefix(tree, offset+1);
- printf("lhs:\n");
- mrb_parser_dump(mrb, tree->car, offset+2);
- dump_prefix(tree, offset+1);
- printf("rhs:\n");
- mrb_parser_dump(mrb, tree->cdr, offset+2);
- break;
-
- case NODE_MASGN:
- printf("NODE_MASGN:\n");
- dump_prefix(tree, offset+1);
- printf("mlhs:\n");
- {
- node *n2 = tree->car;
-
- if (n2->car) {
- dump_prefix(tree, offset+2);
- printf("pre:\n");
- dump_recur(mrb, n2->car, offset+3);
- }
- n2 = n2->cdr;
- if (n2) {
- if (n2->car) {
- dump_prefix(n2, offset+2);
- printf("rest:\n");
- if (n2->car == nint(-1)) {
- dump_prefix(n2, offset+2);
- printf("(empty)\n");
- }
- else {
- mrb_parser_dump(mrb, n2->car, offset+3);
- }
- }
- n2 = n2->cdr;
- if (n2) {
- if (n2->car) {
- dump_prefix(n2, offset+2);
- printf("post:\n");
- dump_recur(mrb, n2->car, offset+3);
- }
- }
- }
- }
- dump_prefix(tree, offset+1);
- printf("rhs:\n");
- mrb_parser_dump(mrb, tree->cdr, offset+2);
- break;
-
- case NODE_OP_ASGN:
- printf("NODE_OP_ASGN:\n");
- dump_prefix(tree, offset+1);
- printf("lhs:\n");
- mrb_parser_dump(mrb, tree->car, offset+2);
- tree = tree->cdr;
- dump_prefix(tree, offset+1);
- printf("op='%s' (%d)\n", mrb_sym_name(mrb, sym(tree->car)), intn(tree->car));
- tree = tree->cdr;
- mrb_parser_dump(mrb, tree->car, offset+1);
- break;
-
- case NODE_SUPER:
- printf("NODE_SUPER:\n");
- if (tree) {
- dump_prefix(tree, offset+1);
- printf("args:\n");
- dump_recur(mrb, tree->car, offset+2);
- if (tree->cdr) {
- dump_prefix(tree, offset+1);
- printf("block:\n");
- mrb_parser_dump(mrb, tree->cdr, offset+2);
- }
- }
- break;
-
- case NODE_ZSUPER:
- printf("NODE_ZSUPER\n");
- break;
-
- case NODE_RETURN:
- printf("NODE_RETURN:\n");
- mrb_parser_dump(mrb, tree, offset+1);
- break;
-
- case NODE_YIELD:
- printf("NODE_YIELD:\n");
- dump_recur(mrb, tree, offset+1);
- break;
-
- case NODE_BREAK:
- printf("NODE_BREAK:\n");
- mrb_parser_dump(mrb, tree, offset+1);
- break;
-
- case NODE_NEXT:
- printf("NODE_NEXT:\n");
- mrb_parser_dump(mrb, tree, offset+1);
- break;
-
- case NODE_REDO:
- printf("NODE_REDO\n");
- break;
-
- case NODE_RETRY:
- printf("NODE_RETRY\n");
- break;
-
- case NODE_LVAR:
- printf("NODE_LVAR %s\n", mrb_sym_name(mrb, sym(tree)));
- break;
-
- case NODE_GVAR:
- printf("NODE_GVAR %s\n", mrb_sym_name(mrb, sym(tree)));
- break;
-
- case NODE_IVAR:
- printf("NODE_IVAR %s\n", mrb_sym_name(mrb, sym(tree)));
- break;
-
- case NODE_CVAR:
- printf("NODE_CVAR %s\n", mrb_sym_name(mrb, sym(tree)));
- break;
-
- case NODE_NVAR:
- printf("NODE_NVAR %d\n", intn(tree));
- break;
-
- case NODE_CONST:
- printf("NODE_CONST %s\n", mrb_sym_name(mrb, sym(tree)));
- break;
-
- case NODE_MATCH:
- printf("NODE_MATCH:\n");
- dump_prefix(tree, offset + 1);
- printf("lhs:\n");
- mrb_parser_dump(mrb, tree->car, offset + 2);
- dump_prefix(tree, offset + 1);
- printf("rhs:\n");
- mrb_parser_dump(mrb, tree->cdr, offset + 2);
- break;
-
- case NODE_BACK_REF:
- printf("NODE_BACK_REF: $%c\n", intn(tree));
- break;
-
- case NODE_NTH_REF:
- printf("NODE_NTH_REF: $%d\n", intn(tree));
- break;
-
- case NODE_ARG:
- printf("NODE_ARG %s\n", mrb_sym_name(mrb, sym(tree)));
- break;
-
- case NODE_BLOCK_ARG:
- printf("NODE_BLOCK_ARG:\n");
- mrb_parser_dump(mrb, tree, offset+1);
- break;
-
- case NODE_INT:
- printf("NODE_INT %s base %d\n", (char*)tree->car, intn(tree->cdr->car));
- break;
-
- case NODE_FLOAT:
- printf("NODE_FLOAT %s\n", (char*)tree);
- break;
-
- case NODE_NEGATE:
- printf("NODE_NEGATE:\n");
- mrb_parser_dump(mrb, tree, offset+1);
- break;
-
- case NODE_STR:
- printf("NODE_STR %s len %d\n", str_dump(mrb, (char*)tree->car, intn(tree->cdr)), intn(tree->cdr));
- break;
-
- case NODE_DSTR:
- printf("NODE_DSTR:\n");
- dump_recur(mrb, tree, offset+1);
- break;
-
- case NODE_XSTR:
- printf("NODE_XSTR %s len %d\n", str_dump(mrb, (char*)tree->car, intn(tree->cdr)), intn(tree->cdr));
- break;
-
- case NODE_DXSTR:
- printf("NODE_DXSTR:\n");
- dump_recur(mrb, tree, offset+1);
- break;
-
- case NODE_REGX:
- printf("NODE_REGX /%s/%s\n", (char*)tree->car, (char*)tree->cdr);
- break;
-
- case NODE_DREGX:
- printf("NODE_DREGX:\n");
- dump_recur(mrb, tree->car, offset+1);
- dump_prefix(tree, offset);
- printf("tail: %s\n", (char*)tree->cdr->cdr->car);
- if (tree->cdr->cdr->cdr->car) {
- dump_prefix(tree, offset);
- printf("opt: %s\n", (char*)tree->cdr->cdr->cdr->car);
- }
- if (tree->cdr->cdr->cdr->cdr) {
- dump_prefix(tree, offset);
- printf("enc: %s\n", (char*)tree->cdr->cdr->cdr->cdr);
- }
- break;
-
- case NODE_SYM:
- printf("NODE_SYM :%s (%d)\n", mrb_sym_dump(mrb, sym(tree)),
- intn(tree));
- break;
-
- case NODE_DSYM:
- printf("NODE_DSYM:\n");
- mrb_parser_dump(mrb, tree, offset+1);
- break;
-
- case NODE_WORDS:
- printf("NODE_WORDS:\n");
- dump_recur(mrb, tree, offset+1);
- break;
-
- case NODE_SYMBOLS:
- printf("NODE_SYMBOLS:\n");
- dump_recur(mrb, tree, offset+1);
- break;
-
- case NODE_LITERAL_DELIM:
- printf("NODE_LITERAL_DELIM\n");
- break;
-
- case NODE_SELF:
- printf("NODE_SELF\n");
- break;
-
- case NODE_NIL:
- printf("NODE_NIL\n");
- break;
-
- case NODE_TRUE:
- printf("NODE_TRUE\n");
- break;
-
- case NODE_FALSE:
- printf("NODE_FALSE\n");
- break;
-
- case NODE_ALIAS:
- printf("NODE_ALIAS %s %s:\n",
- mrb_sym_dump(mrb, sym(tree->car)),
- mrb_sym_dump(mrb, sym(tree->cdr)));
- break;
-
- case NODE_UNDEF:
- printf("NODE_UNDEF");
- {
- node *t = tree;
- while (t) {
- printf(" %s", mrb_sym_dump(mrb, sym(t->car)));
- t = t->cdr;
- }
- }
- printf(":\n");
- break;
-
- case NODE_CLASS:
- printf("NODE_CLASS:\n");
- if (tree->car->car == nint(0)) {
- dump_prefix(tree, offset+1);
- printf(":%s\n", mrb_sym_name(mrb, sym(tree->car->cdr)));
- }
- else if (tree->car->car == nint(1)) {
- dump_prefix(tree, offset+1);
- printf("::%s\n", mrb_sym_name(mrb, sym(tree->car->cdr)));
- }
- else {
- mrb_parser_dump(mrb, tree->car->car, offset+1);
- dump_prefix(tree, offset+1);
- printf("::%s\n", mrb_sym_name(mrb, sym(tree->car->cdr)));
- }
- if (tree->cdr->car) {
- dump_prefix(tree, offset+1);
- printf("super:\n");
- mrb_parser_dump(mrb, tree->cdr->car, offset+2);
- }
- dump_prefix(tree, offset+1);
- printf("body:\n");
- mrb_parser_dump(mrb, tree->cdr->cdr->car->cdr, offset+2);
- break;
-
- case NODE_MODULE:
- printf("NODE_MODULE:\n");
- if (tree->car->car == nint(0)) {
- dump_prefix(tree, offset+1);
- printf(":%s\n", mrb_sym_name(mrb, sym(tree->car->cdr)));
- }
- else if (tree->car->car == nint(1)) {
- dump_prefix(tree, offset+1);
- printf("::%s\n", mrb_sym_name(mrb, sym(tree->car->cdr)));
- }
- else {
- mrb_parser_dump(mrb, tree->car->car, offset+1);
- dump_prefix(tree, offset+1);
- printf("::%s\n", mrb_sym_name(mrb, sym(tree->car->cdr)));
- }
- dump_prefix(tree, offset+1);
- printf("body:\n");
- mrb_parser_dump(mrb, tree->cdr->car->cdr, offset+2);
- break;
-
- case NODE_SCLASS:
- printf("NODE_SCLASS:\n");
- mrb_parser_dump(mrb, tree->car, offset+1);
- dump_prefix(tree, offset+1);
- printf("body:\n");
- mrb_parser_dump(mrb, tree->cdr->car->cdr, offset+2);
- break;
-
- case NODE_DEF:
- printf("NODE_DEF:\n");
- dump_prefix(tree, offset+1);
- printf("%s\n", mrb_sym_dump(mrb, sym(tree->car)));
- tree = tree->cdr;
- {
- node *n2 = tree->car;
- mrb_bool first_lval = TRUE;
-
- if (n2 && (n2->car || n2->cdr)) {
- dump_prefix(n2, offset+1);
- printf("local variables:\n");
- dump_prefix(n2, offset+2);
- while (n2) {
- if (n2->car) {
- if (!first_lval) printf(", ");
- printf("%s", mrb_sym_name(mrb, sym(n2->car)));
- first_lval = FALSE;
- }
- n2 = n2->cdr;
- }
- printf("\n");
- }
- }
- tree = tree->cdr;
- if (tree->car) {
- dump_args(mrb, tree->car, offset);
- }
- mrb_parser_dump(mrb, tree->cdr->car, offset+1);
- break;
-
- case NODE_SDEF:
- printf("NODE_SDEF:\n");
- mrb_parser_dump(mrb, tree->car, offset+1);
- tree = tree->cdr;
- dump_prefix(tree, offset+1);
- printf(":%s\n", mrb_sym_dump(mrb, sym(tree->car)));
- tree = tree->cdr->cdr;
- if (tree->car) {
- dump_args(mrb, tree->car, offset+1);
- }
- tree = tree->cdr;
- mrb_parser_dump(mrb, tree->car, offset+1);
- break;
-
- case NODE_POSTEXE:
- printf("NODE_POSTEXE:\n");
- mrb_parser_dump(mrb, tree, offset+1);
- break;
-
- case NODE_HEREDOC:
- printf("NODE_HEREDOC (<<%s):\n", ((parser_heredoc_info*)tree)->term);
- dump_recur(mrb, ((parser_heredoc_info*)tree)->doc, offset+1);
- break;
-
- case NODE_ARGS_TAIL:
- printf("NODE_ARGS_TAIL:\n");
- {
- node *kws = tree->car;
-
- while (kws) {
- mrb_parser_dump(mrb, kws->car, offset+1);
- kws = kws->cdr;
- }
- }
- tree = tree->cdr;
- if (tree->car) {
- mrb_assert(intn(tree->car->car) == NODE_KW_REST_ARGS);
- mrb_parser_dump(mrb, tree->car, offset+1);
- }
- tree = tree->cdr;
- if (tree->car) {
- dump_prefix(tree, offset+1);
- printf("block='%s'\n", mrb_sym_name(mrb, sym(tree->car)));
- }
- break;
-
- case NODE_KW_ARG:
- printf("NODE_KW_ARG %s:\n", mrb_sym_name(mrb, sym(tree->car)));
- mrb_parser_dump(mrb, tree->cdr->car, offset + 1);
- break;
-
- case NODE_KW_REST_ARGS:
- printf("NODE_KW_REST_ARGS %s\n", mrb_sym_name(mrb, sym(tree)));
- break;
-
- default:
- printf("node type: %d (0x%x)\n", nodetype, (unsigned)nodetype);
- break;
- }
-#endif
-}
-
-typedef mrb_bool mrb_parser_foreach_top_variable_func(mrb_state *mrb, mrb_sym sym, void *user);
-void mrb_parser_foreach_top_variable(mrb_state *mrb, struct mrb_parser_state *p, mrb_parser_foreach_top_variable_func *func, void *user);
-
-void
-mrb_parser_foreach_top_variable(mrb_state *mrb, struct mrb_parser_state *p, mrb_parser_foreach_top_variable_func *func, void *user)
-{
- const mrb_ast_node *n = p->tree;
- if ((intptr_t)n->car == NODE_SCOPE) {
- n = n->cdr->car;
- for (; n; n = n->cdr) {
- mrb_sym sym = sym(n->car);
- if (sym && !func(mrb, sym, user)) break;
- }
- }
-}