yarv-diff:355
From: ko1 atdot.net
Date: 12 Jul 2006 15:44:17 +0900
Subject: [yarv-diff:355] r521 - tags/0.4.1
Author: ko1
Date: 2006-07-12 15:44:16 +0900 (Wed, 12 Jul 2006)
New Revision: 521
Added:
tags/0.4.1/parse.c
Log:
generated parse.c
Added: tags/0.4.1/parse.c
===================================================================
--- tags/0.4.1/parse.c 2006-07-12 06:30:19 UTC (rev 520)
+++ tags/0.4.1/parse.c 2006-07-12 06:44:16 UTC (rev 521)
@@ -0,0 +1,14232 @@
+/* A Bison parser, made by GNU Bison 1.875d. */
+
+/* Skeleton parser for Yacc-like parsing with Bison,
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 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 2, 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, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+/* As a special exception, when this file is copied by Bison into a
+ Bison output file, you may use that output file without restriction.
+ This special exception was added by the Free Software Foundation
+ in version 1.24 of Bison. */
+
+/* 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. */
+
+/* Identify Bison output. */
+#define YYBISON 1
+
+/* Skeleton name. */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers. */
+#define YYPURE 1
+
+/* Using locations. */
+#define YYLSP_NEEDED 0
+
+
+
+/* Tokens. */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
+ know about them. */
+ enum yytokentype {
+ kCLASS = 258,
+ kMODULE = 259,
+ kDEF = 260,
+ kUNDEF = 261,
+ kBEGIN = 262,
+ kRESCUE = 263,
+ kENSURE = 264,
+ kEND = 265,
+ kIF = 266,
+ kUNLESS = 267,
+ kTHEN = 268,
+ kELSIF = 269,
+ kELSE = 270,
+ kCASE = 271,
+ kWHEN = 272,
+ kWHILE = 273,
+ kUNTIL = 274,
+ kFOR = 275,
+ kBREAK = 276,
+ kNEXT = 277,
+ kREDO = 278,
+ kRETRY = 279,
+ kIN = 280,
+ kDO = 281,
+ kDO_COND = 282,
+ kDO_BLOCK = 283,
+ kDO_LAMBDA = 284,
+ kRETURN = 285,
+ kYIELD = 286,
+ kSUPER = 287,
+ kSELF = 288,
+ kNIL = 289,
+ kTRUE = 290,
+ kFALSE = 291,
+ kAND = 292,
+ kOR = 293,
+ kNOT = 294,
+ kIF_MOD = 295,
+ kUNLESS_MOD = 296,
+ kWHILE_MOD = 297,
+ kUNTIL_MOD = 298,
+ kRESCUE_MOD = 299,
+ kALIAS = 300,
+ kDEFINED = 301,
+ klBEGIN = 302,
+ klEND = 303,
+ k__LINE__ = 304,
+ k__FILE__ = 305,
+ tIDENTIFIER = 306,
+ tFID = 307,
+ tGVAR = 308,
+ tIVAR = 309,
+ tCONSTANT = 310,
+ tCVAR = 311,
+ tLABEL = 312,
+ tINTEGER = 313,
+ tFLOAT = 314,
+ tSTRING_CONTENT = 315,
+ tNTH_REF = 316,
+ tBACK_REF = 317,
+ tREGEXP_END = 318,
+ tUPLUS = 319,
+ tUMINUS = 320,
+ tPOW = 321,
+ tCMP = 322,
+ tEQ = 323,
+ tEQQ = 324,
+ tNEQ = 325,
+ tGEQ = 326,
+ tLEQ = 327,
+ tANDOP = 328,
+ tOROP = 329,
+ tMATCH = 330,
+ tNMATCH = 331,
+ tDOT2 = 332,
+ tDOT3 = 333,
+ tAREF = 334,
+ tASET = 335,
+ tLSHFT = 336,
+ tRSHFT = 337,
+ tCOLON2 = 338,
+ tCOLON3 = 339,
+ tOP_ASGN = 340,
+ tASSOC = 341,
+ tLPAREN = 342,
+ tLPAREN_ARG = 343,
+ tRPAREN = 344,
+ tLBRACK = 345,
+ tLBRACE = 346,
+ tLBRACE_ARG = 347,
+ tSTAR = 348,
+ tAMPER = 349,
+ tLAMBDA = 350,
+ tLAMBDA_ARG = 351,
+ tSYMBEG = 352,
+ tSTRING_BEG = 353,
+ tXSTRING_BEG = 354,
+ tREGEXP_BEG = 355,
+ tWORDS_BEG = 356,
+ tQWORDS_BEG = 357,
+ tSTRING_DBEG = 358,
+ tSTRING_DVAR = 359,
+ tSTRING_END = 360,
+ tLAMBEG = 361,
+ tLOWEST = 362,
+ tUMINUS_NUM = 363,
+ tLAST_TOKEN = 364
+ };
+#endif
+#define kCLASS 258
+#define kMODULE 259
+#define kDEF 260
+#define kUNDEF 261
+#define kBEGIN 262
+#define kRESCUE 263
+#define kENSURE 264
+#define kEND 265
+#define kIF 266
+#define kUNLESS 267
+#define kTHEN 268
+#define kELSIF 269
+#define kELSE 270
+#define kCASE 271
+#define kWHEN 272
+#define kWHILE 273
+#define kUNTIL 274
+#define kFOR 275
+#define kBREAK 276
+#define kNEXT 277
+#define kREDO 278
+#define kRETRY 279
+#define kIN 280
+#define kDO 281
+#define kDO_COND 282
+#define kDO_BLOCK 283
+#define kDO_LAMBDA 284
+#define kRETURN 285
+#define kYIELD 286
+#define kSUPER 287
+#define kSELF 288
+#define kNIL 289
+#define kTRUE 290
+#define kFALSE 291
+#define kAND 292
+#define kOR 293
+#define kNOT 294
+#define kIF_MOD 295
+#define kUNLESS_MOD 296
+#define kWHILE_MOD 297
+#define kUNTIL_MOD 298
+#define kRESCUE_MOD 299
+#define kALIAS 300
+#define kDEFINED 301
+#define klBEGIN 302
+#define klEND 303
+#define k__LINE__ 304
+#define k__FILE__ 305
+#define tIDENTIFIER 306
+#define tFID 307
+#define tGVAR 308
+#define tIVAR 309
+#define tCONSTANT 310
+#define tCVAR 311
+#define tLABEL 312
+#define tINTEGER 313
+#define tFLOAT 314
+#define tSTRING_CONTENT 315
+#define tNTH_REF 316
+#define tBACK_REF 317
+#define tREGEXP_END 318
+#define tUPLUS 319
+#define tUMINUS 320
+#define tPOW 321
+#define tCMP 322
+#define tEQ 323
+#define tEQQ 324
+#define tNEQ 325
+#define tGEQ 326
+#define tLEQ 327
+#define tANDOP 328
+#define tOROP 329
+#define tMATCH 330
+#define tNMATCH 331
+#define tDOT2 332
+#define tDOT3 333
+#define tAREF 334
+#define tASET 335
+#define tLSHFT 336
+#define tRSHFT 337
+#define tCOLON2 338
+#define tCOLON3 339
+#define tOP_ASGN 340
+#define tASSOC 341
+#define tLPAREN 342
+#define tLPAREN_ARG 343
+#define tRPAREN 344
+#define tLBRACK 345
+#define tLBRACE 346
+#define tLBRACE_ARG 347
+#define tSTAR 348
+#define tAMPER 349
+#define tLAMBDA 350
+#define tLAMBDA_ARG 351
+#define tSYMBEG 352
+#define tSTRING_BEG 353
+#define tXSTRING_BEG 354
+#define tREGEXP_BEG 355
+#define tWORDS_BEG 356
+#define tQWORDS_BEG 357
+#define tSTRING_DBEG 358
+#define tSTRING_DVAR 359
+#define tSTRING_END 360
+#define tLAMBEG 361
+#define tLOWEST 362
+#define tUMINUS_NUM 363
+#define tLAST_TOKEN 364
+
+
+
+
+/* Copy the first part of user declarations. */
+#line 13 "parse.y"
+
+
+#define YYDEBUG 1
+#define YYERROR_VERBOSE 1
+#define YYSTACK_USE_ALLOCA 0
+
+#include "ruby.h"
+#include "intern.h"
+#include "node.h"
+#include "st.h"
+#include <stdio.h>
+#include <errno.h>
+#include <ctype.h>
+
+#define YYMALLOC(size) rb_parser_malloc(parser, size)
+#define YYREALLOC(ptr, size) rb_parser_realloc(parser, ptr, size)
+#define YYCALLOC(nelem, size) rb_parser_calloc(parser, nelem, size)
+#define YYFREE(ptr) rb_parser_free(parser, ptr)
+#define malloc YYMALLOC
+#define realloc YYREALLOC
+#define calloc YYCALLOC
+#define free YYFREE
+
+#define ID_SCOPE_SHIFT 3
+#define ID_SCOPE_MASK 0x07
+#define ID_LOCAL 0x01
+#define ID_INSTANCE 0x02
+#define ID_GLOBAL 0x03
+#define ID_ATTRSET 0x04
+#define ID_CONST 0x05
+#define ID_CLASS 0x06
+#define ID_JUNK 0x07
+#define ID_INTERNAL ID_JUNK
+
+#define is_notop_id(id) ((id)>tLAST_TOKEN)
+#define is_local_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_LOCAL)
+#define is_global_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_GLOBAL)
+#define is_instance_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_INSTANCE)
+#define is_attrset_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_ATTRSET)
+#define is_const_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CONST)
+#define is_class_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CLASS)
+#define is_junk_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_JUNK)
+
+#define is_asgn_or_id(id) ((is_notop_id(id)) && \
+ (((id)&ID_SCOPE_MASK) == ID_GLOBAL || \
+ ((id)&ID_SCOPE_MASK) == ID_INSTANCE || \
+ ((id)&ID_SCOPE_MASK) == ID_CLASS))
+
+#ifndef RIPPER
+char *ruby_sourcefile; /* current source file */
+int ruby_sourceline; /* current line no. */
+#endif
+
+enum lex_state_e {
+ EXPR_BEG, /* ignore newline, +/- is a sign. */
+ EXPR_END, /* newline significant, +/- is a operator. */
+ EXPR_END2, /* newline significant, +/- is a operator. */
+ EXPR_ARG, /* newline significant, +/- is a operator. */
+ EXPR_CMDARG, /* newline significant, +/- is a operator. */
+ EXPR_ENDARG, /* newline significant, +/- is a operator. */
+ EXPR_MID, /* newline significant, +/- is a operator. */
+ EXPR_FNAME, /* ignore newline, no reserved words. */
+ EXPR_DOT, /* right after `.' or `::', no reserved words. */
+ EXPR_CLASS, /* immediate after `class', no here document. */
+ EXPR_VALUE, /* alike EXPR_BEG but label is disallowed. */
+};
+
+# ifdef HAVE_LONG_LONG
+typedef unsigned LONG_LONG stack_type;
+# else
+typedef unsigned long stack_type;
+# endif
+
+# 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(cond_stack, n)
+#define COND_POP() BITSTACK_POP(cond_stack)
+#define COND_LEXPOP() BITSTACK_LEXPOP(cond_stack)
+#define COND_P() BITSTACK_SET_P(cond_stack)
+
+#define CMDARG_PUSH(n) BITSTACK_PUSH(cmdarg_stack, n)
+#define CMDARG_POP() BITSTACK_POP(cmdarg_stack)
+#define CMDARG_LEXPOP() BITSTACK_LEXPOP(cmdarg_stack)
+#define CMDARG_P() BITSTACK_SET_P(cmdarg_stack)
+
+/* must sync with real YYSTYPE */
+union tmpyystype {
+ VALUE val;
+ NODE *node;
+ unsigned long id;
+ int num;
+ struct RVarmap *vars;
+};
+
+struct vtable {
+ ID *tbl;
+ int pos;
+ int capa;
+ struct vtable *prev;
+};
+
+struct local_vars {
+ struct vtable *tbl;
+ struct vtable *dnames;
+ struct vtable *dvars;
+ struct local_vars *prev;
+ int nofree;
+};
+
+#define DVARS_INHERIT ((void*)1)
+#define DVARS_TOPSCOPE NULL
+#define DVARS_SPECIAL_P(tbl) (!POINTER_P(tbl))
+#define POINTER_P(val) ((unsigned long)(val) & ~3UL)
+
+static int
+vtable_size(struct vtable *tbl)
+{
+ if (POINTER_P(tbl)) {
+ return tbl->pos;
+ }
+ else {
+ return 0;
+ }
+}
+
+#define VTBL_DEBUG 0
+
+static struct vtable *
+vtable_alloc(struct vtable *prev)
+{
+ struct vtable *tbl = ALLOC(struct vtable);
+ tbl->pos = 0;
+ tbl->capa = 8;
+ tbl->tbl = ALLOC_N(ID, tbl->capa);
+ tbl->prev = prev;
+ if (VTBL_DEBUG) printf("vtable_alloc: %p\n", tbl);
+ return tbl;
+}
+
+static void
+vtable_free(struct vtable *tbl)
+{
+ if (VTBL_DEBUG)printf("vtable_free: %p\n", tbl);
+ if (POINTER_P(tbl)) {
+ if (tbl->tbl) {
+ xfree(tbl->tbl);
+ }
+ if (tbl) {
+ xfree(tbl);
+ }
+ }
+}
+
+static void
+vtable_add(struct vtable *tbl, ID id)
+{
+ if (!POINTER_P(tbl)) {
+ rb_bug("vtable_add: vtable is not allocated (%p)", tbl);
+ }
+ if (VTBL_DEBUG) printf("vtable_add: %p, %s\n", tbl, rb_id2name(id));
+
+ if (tbl->pos == tbl->capa) {
+ tbl->capa = tbl->capa * 2;
+ REALLOC_N(tbl->tbl, ID, tbl->capa);
+ }
+ tbl->tbl[tbl->pos++] = id;
+}
+
+static int
+vtable_included(struct vtable * tbl, ID id)
+{
+ int i;
+
+ if (POINTER_P(tbl)) {
+ for (i = 0; i < tbl->pos; i++) {
+ if (tbl->tbl[i] == id) {
+ return 1;
+ }
+ }
+ }
+ return 0;
+}
+
+/*
+ Structure of Lexer Buffer:
+
+ lex_pbeg tokp lex_p lex_pend
+ | | | |
+ |-----------+--------------+------------|
+ |<------------>|
+ token
+*/
+struct parser_params {
+ union tmpyystype *parser_yylval; /* YYSTYPE not defined yet */
+ VALUE eofp;
+
+ NODE *parser_lex_strterm;
+ enum lex_state_e parser_lex_state;
+ stack_type parser_cond_stack;
+ stack_type parser_cmdarg_stack;
+ int parser_class_nest;
+ int parser_paren_nest;
+ int parser_lpar_beg;
+ int parser_in_single;
+ int parser_in_def;
+ int parser_compile_for_eval;
+ VALUE parser_cur_mid;
+ int parser_in_defined;
+ char *parser_tokenbuf;
+ int parser_tokidx;
+ int parser_toksiz;
+ VALUE parser_lex_input;
+ VALUE parser_lex_lastline;
+ char *parser_lex_pbeg;
+ char *parser_lex_p;
+ char *parser_lex_pend;
+ int parser_heredoc_end;
+ int parser_command_start;
+ int parser_lex_gets_ptr;
+ VALUE (*parser_lex_gets)(struct parser_params*,VALUE);
+ struct local_vars *parser_lvtbl;
+ int parser_ruby__end__seen;
+#ifndef RIPPER
+ /* Ruby core only */
+ NODE *parser_eval_tree_begin;
+ NODE *parser_eval_tree;
+ VALUE debug_lines;
+#else
+ /* Ripper only */
+ int parser_ruby_sourceline;
+ VALUE parser_ruby_sourcefile;
+ char *tokp;
+ VALUE delayed;
+ int delayed_line;
+ int delayed_col;
+
+ VALUE value;
+ VALUE result;
+ VALUE parsing_thread;
+ int toplevel_p;
+#endif
+ int line_count;
+ int has_shebang;
+
+#ifdef YYMALLOC
+ NODE *heap;
+#endif
+};
+
+#ifdef YYMALLOC
+void *rb_parser_malloc(struct parser_params *, size_t);
+void *rb_parser_realloc(struct parser_params *, void *, size_t);
+void *rb_parser_calloc(struct parser_params *, size_t, size_t);
+void rb_parser_free(struct parser_params *, void *);
+#endif
+
+static int parser_yyerror(struct parser_params*, const char*);
+#define yyerror(msg) parser_yyerror(parser, msg)
+
+#define YYPARSE_PARAM parser_v
+#define YYLEX_PARAM parser_v
+#define parser ((struct parser_params*)parser_v)
+
+#define ruby_eval_tree (parser->parser_eval_tree)
+#define ruby_eval_tree_begin (parser->parser_eval_tree_begin)
+#define lex_strterm (parser->parser_lex_strterm)
+#define lex_state (parser->parser_lex_state)
+#define cond_stack (parser->parser_cond_stack)
+#define cmdarg_stack (parser->parser_cmdarg_stack)
+#define class_nest (parser->parser_class_nest)
+#define paren_nest (parser->parser_paren_nest)
+#define lpar_beg (parser->parser_lpar_beg)
+#define in_single (parser->parser_in_single)
+#define in_def (parser->parser_in_def)
+#define compile_for_eval (parser->parser_compile_for_eval)
+#define cur_mid (parser->parser_cur_mid)
+#define in_defined (parser->parser_in_defined)
+#define tokenbuf (parser->parser_tokenbuf)
+#define tokidx (parser->parser_tokidx)
+#define toksiz (parser->parser_toksiz)
+#define lex_input (parser->parser_lex_input)
+#define lex_lastline (parser->parser_lex_lastline)
+#define lex_pbeg (parser->parser_lex_pbeg)
+#define lex_p (parser->parser_lex_p)
+#define lex_pend (parser->parser_lex_pend)
+#define heredoc_end (parser->parser_heredoc_end)
+#define command_start (parser->parser_command_start)
+#define lex_gets_ptr (parser->parser_lex_gets_ptr)
+#define lex_gets (parser->parser_lex_gets)
+#define lvtbl (parser->parser_lvtbl)
+#define ruby__end__seen (parser->parser_ruby__end__seen)
+#ifdef RIPPER
+#define ruby_sourceline (parser->parser_ruby_sourceline)
+#define ruby_sourcefile (parser->parser_ruby_sourcefile)
+#else
+#define ruby_debug_lines (parser->debug_lines)
+#endif
+
+static int yylex(void*, void*);
+
+#ifndef RIPPER
+#define yyparse parser_yyparse
+#define yydebug ruby_yydebug
+
+static NODE *cond_gen(struct parser_params*,NODE*);
+#define cond(node) cond_gen(parser, node)
+static NODE *logop_gen(struct parser_params*,enum node_type,NODE*,NODE*);
+#define logop(type,node1,node2) logop_gen(parser, type, node1, node2)
+
+static int cond_negative(NODE**);
+
+static NODE *newline_node(NODE*);
+static void fixpos(NODE*,NODE*);
+
+static int value_expr_gen(struct parser_params*,NODE*);
+static void void_expr_gen(struct parser_params*,NODE*);
+static NODE *remove_begin(NODE*);
+#define value_expr(node) value_expr_gen(parser, (node) = remove_begin(node))
+#define void_expr(node) void_expr_gen(parser, (node) = remove_begin(node))
+static void void_stmts_gen(struct parser_params*,NODE*);
+#define void_stmts(node) void_stmts_gen(parser, node)
+static void reduce_nodes(NODE**);
+static void block_dup_check(NODE*);
+
+static NODE *block_append(NODE*,NODE*);
+static NODE *list_append(NODE*,NODE*);
+static NODE *list_concat(NODE*,NODE*);
+static NODE *arg_concat(NODE*,NODE*);
+static NODE *literal_concat(NODE*,NODE*);
+static NODE *new_evstr(NODE*);
+static NODE *evstr2dstr(NODE*);
+
+static NODE *call_op_gen(struct parser_params*,NODE*,ID,int,NODE*);
+#define call_op(recv,id,narg,arg1) call_op_gen(parser, recv,id,narg,arg1)
+
+static NODE *new_args_gen(struct parser_params*,VALUE,NODE*,NODE*,NODE*);
+#define new_args(f,o,r,b) new_args_gen(parser, f,o,r,b)
+static void shadowing_lvar_gen(struct parser_params*,ID);
+#define shadowing_lvar(name) shadowing_lvar_gen(parser, name)
+
+static NODE *negate_lit(NODE*);
+static NODE *ret_args(NODE*);
+static NODE *arg_blk_pass(NODE*,NODE*);
+static NODE *new_call(NODE*,ID,NODE*);
+static NODE *new_fcall_gen(struct parser_params*,ID,NODE*);
+#define new_fcall(id,args) new_fcall_gen(parser, id, args)
+static NODE *new_super(NODE*);
+static NODE *new_yield(NODE*);
+
+static NODE *gettable_gen(struct parser_params*,ID);
+#define gettable(id) gettable_gen(parser,id)
+static NODE *assignable_gen(struct parser_params*,ID,NODE*);
+#define assignable(id,node) assignable_gen(parser, id, node)
+static NODE *new_bv_gen(struct parser_params*,ID,NODE*);
+#define new_bv(id,node) new_bv_gen(parser, id, node)
+static NODE *aryset_gen(struct parser_params*,NODE*,NODE*);
+#define aryset(node1,node2) aryset_gen(parser, node1, node2)
+static NODE *attrset_gen(struct parser_params*,NODE*,ID);
+#define attrset(node,id) attrset_gen(parser, node, id)
+
+static void rb_backref_error(NODE*);
+static NODE *node_assign_gen(struct parser_params*,NODE*,NODE*);
+#define node_assign(node1, node2) node_assign_gen(parser, node1, node2)
+
+static NODE *match_op_gen(struct parser_params*,NODE*,NODE*);
+#define match_op(node1,node2) match_op_gen(parser, node1, node2)
+
+static void local_push_gen(struct parser_params*,int);
+#define local_push(top) local_push_gen(parser,top)
+static void local_pop_gen(struct parser_params*);
+#define local_pop() local_pop_gen(parser)
+static int local_append_gen(struct parser_params*, ID);
+#define local_append(id) local_append_gen(parser, id)
+static int local_cnt_gen(struct parser_params*, ID);
+#define local_cnt(id) local_cnt_gen(parser, id)
+static int local_id_gen(struct parser_params*, ID);
+#define local_id(id) local_id_gen(parser, id)
+static ID *local_tbl_gen(struct parser_params*);
+#define local_tbl() local_tbl_gen(parser)
+static ID *dyna_tbl_gen(struct parser_params*);
+#define dyna_tbl() dyna_tbl_gen(parser)
+static ID internal_id(void);
+
+static int dyna_push_gen(struct parser_params*);
+#define dyna_push() dyna_push_gen(parser)
+static void dyna_pop_gen(struct parser_params*, struct RVarmap*);
+#define dyna_pop(vars) dyna_pop_gen(parser, vars)
+static int dyna_in_block_gen(struct parser_params*);
+#define dyna_in_block() dyna_in_block_gen(parser)
+static NODE *dyna_init_gen(struct parser_params*, NODE*, int);
+#define dyna_init(node, pre) dyna_init_gen(parser, node, pre)
+static void dyna_var_gen(struct parser_params*,ID);
+#define dyna_var(id) dyna_var_gen(parser, id)
+static void dyna_check_gen(struct parser_params*,ID);
+#define dyna_check(id) dyna_check_gen(parser, id)
+static int dvar_defined_gen(struct parser_params*,ID);
+#define dvar_defined(id) dvar_defined_gen(parser, id)
+static int dvar_curr_gen(struct parser_params*,ID);
+#define dvar_curr(id) dvar_curr_gen(parser, id)
+
+static void top_local_init_gen(struct parser_params*);
+#define top_local_init() top_local_init_gen(parser)
+static void top_local_setup_gen(struct parser_params*);
+#define top_local_setup() top_local_setup_gen(parser)
+#else
+#define remove_begin(node) (node)
+#endif /* !RIPPER */
+static int lvar_defined_gen(struct parser_params*, ID);
+#define lvar_defined(id) lvar_defined_gen(parser, id)
+
+#define RE_OPTION_ONCE (1<<16)
+
+#define NODE_STRTERM NODE_ZARRAY /* nothing to gc */
+#define NODE_HEREDOC NODE_ARRAY /* 1, 3 to gc */
+#define SIGN_EXTEND(x,n) (((1<<(n)-1)^((x)&~(~0<<(n))))-(1<<(n)-1))
+#define nd_func u1.id
+#if SIZEOF_SHORT == 2
+#define nd_term(node) ((signed short)(node)->u2.id)
+#else
+#define nd_term(node) SIGN_EXTEND((node)->u2.id, CHAR_BIT*2)
+#endif
+#define nd_paren(node) (char)((node)->u2.id >> CHAR_BIT*2)
+#define nd_nest u3.cnt
+
+/****** Ripper *******/
+
+#ifdef RIPPER
+#define RIPPER_VERSION "0.1.0"
+
+#include "eventids1.c"
+#include "eventids2.c"
+static ID ripper_id_gets;
+
+static VALUE ripper_dispatch0(struct parser_params*,ID);
+static VALUE ripper_dispatch1(struct parser_params*,ID,VALUE);
+static VALUE ripper_dispatch2(struct parser_params*,ID,VALUE,VALUE);
+static VALUE ripper_dispatch3(struct parser_params*,ID,VALUE,VALUE,VALUE);
+static VALUE ripper_dispatch4(struct parser_params*,ID,VALUE,VALUE,VALUE,VALUE);
+static VALUE ripper_dispatch5(struct parser_params*,ID,VALUE,VALUE,VALUE,VALUE,VALUE);
+
+#define dispatch0(n) ripper_dispatch0(parser, TOKEN_PASTE(ripper_id_, n))
+#define dispatch1(n,a) ripper_dispatch1(parser, TOKEN_PASTE(ripper_id_, n), a)
+#define dispatch2(n,a,b) ripper_dispatch2(parser, TOKEN_PASTE(ripper_id_, n), a, b)
+#define dispatch3(n,a,b,c) ripper_dispatch3(parser, TOKEN_PASTE(ripper_id_, n), a, b, c)
+#define dispatch4(n,a,b,c,d) ripper_dispatch4(parser, TOKEN_PASTE(ripper_id_, n), a, b, c, d)
+#define dispatch5(n,a,b,c,d,e) ripper_dispatch5(parser, TOKEN_PASTE(ripper_id_, n), a, b, c, d, e)
+
+#define yyparse ripper_yyparse
+#define yydebug ripper_yydebug
+
+static VALUE ripper_intern(const char*);
+static VALUE ripper_id2sym(ID);
+
+#define arg_new() dispatch0(arglist_new)
+#define arg_add(l,a) dispatch2(arglist_add, l, a)
+#define arg_prepend(l,a) dispatch2(arglist_prepend, l, a)
+#define arg_add_star(l,a) dispatch2(arglist_add_star, l, a)
+#define arg_add_block(l,b) dispatch2(arglist_add_block, l, b)
+#define arg_add_optblock(l,b) ((b)==Qundef? l : dispatch2(arglist_add_block, l, b))
+#define bare_assoc(v) dispatch1(bare_assoc_hash, v)
+#define arg_add_assocs(l,b) arg_add(l, bare_assoc(b))
+
+#define args2mrhs(a) dispatch1(mrhs_new_from_arglist, a)
+#define mrhs_new() dispatch0(mrhs_new)
+#define mrhs_add(l,a) dispatch2(mrhs_add, l, a)
+#define mrhs_add_star(l,a) dispatch2(mrhs_add_star, l, a)
+
+#define mlhs_new() dispatch0(mlhs_new)
+#define mlhs_add(l,a) dispatch2(mlhs_add, l, a)
+#define mlhs_add_star(l,a) dispatch2(mlhs_add_star, l, a)
+
+#define blockvar_new(p) dispatch1(blockvar_new, p)
+#define blockvar_add_star(l,a) dispatch2(blockvar_add_star, l, a)
+#define blockvar_add_block(l,a) dispatch2(blockvar_add_block, l, a)
+
+#define method_optarg(m,a) ((a)==Qundef ? m : dispatch2(method_add_arg,m,a))
+#define method_arg(m,a) dispatch2(method_add_arg,m,a)
+#define escape_Qundef(x) ((x)==Qundef ? Qnil : (x))
+
+#define FIXME 0
+
+#endif /* RIPPER */
+
+#ifndef RIPPER
+# define ifndef_ripper(x) x
+#else
+# define ifndef_ripper(x)
+#endif
+
+#ifndef RIPPER
+# define rb_warn0(fmt) rb_warn(fmt)
+# define rb_warnI(fmt,a) rb_warn(fmt,a)
+# define rb_warnS(fmt,a) rb_warn(fmt,a)
+# define rb_warning0(fmt) rb_warning(fmt)
+# define rb_warningS(fmt,a) rb_warning(fmt,a)
+#else
+# define rb_warn0(fmt) ripper_warn0(parser, fmt)
+# define rb_warnI(fmt,a) ripper_warnI(parser, fmt, a)
+# define rb_warnS(fmt,a) ripper_warnS(parser, fmt, a)
+# define rb_warning0(fmt) ripper_warning0(parser, fmt)
+# define rb_warningS(fmt,a) ripper_warningS(parser, fmt, a)
+static void ripper_warn0(struct parser_params*, const char*);
+static void ripper_warnI(struct parser_params*, const char*, int);
+static void ripper_warnS(struct parser_params*, const char*, const char*);
+static void ripper_warning0(struct parser_params*, const char*);
+static void ripper_warningS(struct parser_params*, const char*, const char*);
+#endif
+
+#ifdef RIPPER
+static void ripper_compile_error(struct parser_params*, const char *fmt, ...);
+# define rb_compile_error ripper_compile_error
+# define compile_error ripper_compile_error
+# define PARSER_ARG parser,
+#else
+# define compile_error rb_compile_error
+# define PARSER_ARG
+#endif
+
+#define NEW_BLOCK_PARAM(b, v) NEW_NODE(NODE_BLOCK_PASS, 0, b, v)
+
+/* Older versions of Yacc set YYMAXDEPTH to a very low value by default (150,
+ for instance). This is too low for Ruby to parse some files, such as
+ date/format.rb, therefore bump the value up to at least Bison's default. */
+#ifdef OLD_YACC
+#ifndef YYMAXDEPTH
+#define YYMAXDEPTH 10000
+#endif
+#endif
+
+
+
+/* Enabling traces. */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+
+/* Enabling verbose error messages. */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+#line 549 "parse.y"
+typedef union YYSTYPE {
+ VALUE val;
+ NODE *node;
+ ID id;
+ int num;
+ struct RVarmap *vars;
+} YYSTYPE;
+/* Line 191 of yacc.c. */
+#line 836 "$@"
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
+
+
+
+/* Copy the second part of user declarations. */
+
+
+/* Line 214 of yacc.c. */
+#line 848 "$@"
+
+#if ! defined (yyoverflow) || YYERROR_VERBOSE
+
+# ifndef YYFREE
+# define YYFREE free
+# endif
+# ifndef YYMALLOC
+# define YYMALLOC malloc
+# endif
+
+/* The parser invokes alloca or malloc; define the necessary symbols. */
+
+# ifdef YYSTACK_USE_ALLOCA
+# if YYSTACK_USE_ALLOCA
+# define YYSTACK_ALLOC alloca
+# endif
+# else
+# if defined (alloca) || defined (_ALLOCA_H)
+# define YYSTACK_ALLOC alloca
+# else
+# ifdef __GNUC__
+# define YYSTACK_ALLOC __builtin_alloca
+# endif
+# endif
+# endif
+
+# ifdef YYSTACK_ALLOC
+ /* Pacify GCC's `empty if-body' warning. */
+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+# else
+# if defined (__STDC__) || defined (__cplusplus)
+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+# define YYSIZE_T size_t
+# endif
+# define YYSTACK_ALLOC YYMALLOC
+# define YYSTACK_FREE YYFREE
+# 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
+{
+ short int yyss;
+ YYSTYPE yyvs;
+ };
+
+/* The size of the maximum gap between one aligned stack and the next. */
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+ N elements. */
+# define YYSTACK_BYTES(N) \
+ ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \
+ + YYSTACK_GAP_MAXIMUM)
+
+/* Copy COUNT objects from FROM to TO. The source and destination do
+ not overlap. */
+# ifndef YYCOPY
+# if defined (__GNUC__) && 1 < __GNUC__
+# define YYCOPY(To, From, Count) \
+ __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+# else
+# define YYCOPY(To, From, Count) \
+ do \
+ { \
+ register YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (To)[yyi] = (From)[yyi]; \
+ } \
+ while (0)
+# endif
+# endif
+
+/* 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) \
+ do \
+ { \
+ YYSIZE_T yynewbytes; \
+ YYCOPY (&yyptr->Stack, Stack, yysize); \
+ Stack = &yyptr->Stack; \
+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+ yyptr += yynewbytes / sizeof (*yyptr); \
+ } \
+ while (0)
+
+#endif
+
+#if defined (__STDC__) || defined (__cplusplus)
+ typedef signed char yysigned_char;
+#else
+ typedef short int yysigned_char;
+#endif
+
+/* YYFINAL -- State number of the termination state. */
+#define YYFINAL 3
+/* YYLAST -- Last index in YYTABLE. */
+#define YYLAST 10723
+
+/* YYNTOKENS -- Number of terminals. */
+#define YYNTOKENS 137
+/* YYNNTS -- Number of nonterminals. */
+#define YYNNTS 157
+/* YYNRULES -- Number of rules. */
+#define YYNRULES 536
+/* YYNRULES -- Number of states. */
+#define YYNSTATES 953
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+#define YYUNDEFTOK 2
+#define YYMAXUTOK 364
+
+#define YYTRANSLATE(YYX) \
+ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
+static const unsigned char yytranslate[] =
+{
+ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 136, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 135, 122, 2, 2, 2, 120, 115, 2,
+ 132, 133, 118, 116, 130, 117, 129, 119, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 110, 134,
+ 112, 108, 111, 109, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 127, 2, 128, 114, 2, 131, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 125, 113, 126, 123, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 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, 121, 124
+};
+
+#if YYDEBUG
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+ YYRHS. */
+static const unsigned short int yyprhs[] =
+{
+ 0, 0, 3, 4, 7, 12, 15, 17, 19, 23,
+ 26, 27, 32, 36, 40, 44, 47, 51, 55, 59,
+ 63, 67, 68, 74, 79, 83, 87, 91, 98, 104,
+ 110, 116, 120, 124, 128, 132, 134, 136, 140, 144,
+ 147, 150, 152, 154, 156, 158, 161, 164, 167, 169,
+ 174, 179, 180, 181, 188, 191, 195, 200, 206, 211,
+ 217, 220, 223, 225, 229, 231, 235, 237, 240, 244,
+ 247, 250, 252, 254, 258, 261, 265, 267, 272, 276,
+ 280, 284, 288, 291, 293, 295, 300, 304, 308, 312,
+ 316, 319, 321, 323, 325, 328, 330, 334, 336, 338,
+ 340, 342, 344, 346, 348, 350, 352, 354, 355, 360,
+ 362, 364, 366, 368, 370, 372, 374, 376, 378, 380,
+ 382, 384, 386, 388, 390, 392, 394, 396, 398, 400,
+ 402, 404, 406, 408, 410, 412, 414, 416, 418, 420,
+ 422, 424, 426, 428, 430, 432, 434, 436, 438, 440,
+ 442, 444, 446, 448, 450, 452, 454, 456, 458, 460,
+ 462, 464, 466, 468, 470, 472, 474, 476, 478, 480,
+ 482, 484, 486, 488, 490, 492, 494, 498, 504, 508,
+ 515, 521, 527, 533, 539, 544, 548, 552, 556, 560,
+ 564, 568, 572, 576, 580, 585, 590, 593, 596, 600,
+ 604, 608, 612, 616, 620, 624, 628, 632, 636, 640,
+ 644, 648, 651, 654, 658, 662, 666, 670, 671, 676,
+ 682, 684, 686, 688, 691, 694, 700, 703, 707, 711,
+ 715, 719, 725, 727, 729, 731, 734, 740, 743, 749,
+ 754, 762, 766, 768, 773, 777, 783, 791, 794, 800,
+ 805, 812, 820, 830, 834, 836, 837, 840, 842, 843,
+ 847, 848, 853, 856, 859, 861, 863, 867, 871, 876,
+ 879, 881, 883, 885, 887, 889, 891, 893, 895, 897,
+ 898, 903, 904, 909, 913, 917, 920, 924, 928, 930,
+ 935, 939, 941, 942, 949, 952, 954, 957, 960, 967,
+ 974, 975, 976, 984, 985, 986, 994, 1000, 1007, 1012,
+ 1018, 1019, 1020, 1030, 1031, 1038, 1039, 1040, 1049, 1050,
+ 1056, 1057, 1064, 1065, 1066, 1076, 1078, 1080, 1082, 1084,
+ 1086, 1088, 1090, 1092, 1095, 1097, 1099, 1101, 1103, 1109,
+ 1111, 1114, 1116, 1118, 1120, 1124, 1126, 1129, 1134, 1142,
+ 1149, 1154, 1158, 1164, 1169, 1172, 1174, 1177, 1179, 1181,
+ 1185, 1187, 1192, 1194, 1197, 1199, 1203, 1205, 1206, 1207,
+ 1208, 1214, 1219, 1222, 1226, 1230, 1231, 1232, 1239, 1242,
+ 1247, 1252, 1255, 1260, 1265, 1269, 1272, 1274, 1279, 1284,
+ 1285, 1286, 1293, 1294, 1295, 1302, 1305, 1311, 1313, 1318,
+ 1321, 1323, 1325, 1332, 1334, 1336, 1338, 1340, 1343, 1345,
+ 1348, 1350, 1352, 1354, 1356, 1358, 1360, 1363, 1367, 1371,
+ 1375, 1379, 1383, 1384, 1388, 1390, 1393, 1397, 1401, 1402,
+ 1406, 1407, 1410, 1411, 1414, 1416, 1417, 1421, 1422, 1427,
+ 1429, 1431, 1433, 1435, 1438, 1440, 1442, 1444, 1446, 1450,
+ 1452, 1454, 1457, 1460, 1462, 1464, 1466, 1468, 1470, 1472,
+ 1474, 1476, 1478, 1480, 1482, 1484, 1486, 1488, 1490, 1492,
+ 1493, 1498, 1501, 1505, 1508, 1515, 1520, 1525, 1528, 1533,
+ 1536, 1539, 1541, 1542, 1544, 1546, 1548, 1550, 1552, 1554,
+ 1558, 1562, 1564, 1568, 1570, 1572, 1575, 1577, 1579, 1581,
+ 1584, 1587, 1589, 1591, 1592, 1597, 1599, 1602, 1605, 1607,
+ 1611, 1615, 1618, 1620, 1622, 1624, 1626, 1628, 1630, 1632,
+ 1634, 1636, 1638, 1640, 1642, 1643, 1645, 1646, 1648, 1651,
+ 1652, 1654, 1656, 1658, 1660, 1662, 1665
+};
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+static const short int yyrhs[] =
+{
+ 138, 0, -1, -1, 139, 141, -1, 141, 236, 208,
+ 239, -1, 142, 287, -1, 293, -1, 143, -1, 142,
+ 292, 143, -1, 1, 143, -1, -1, 45, 165, 144,
+ 165, -1, 45, 53, 53, -1, 45, 53, 62, -1,
+ 45, 53, 61, -1, 6, 166, -1, 143, 40, 147,
+ -1, 143, 41, 147, -1, 143, 42, 147, -1, 143,
+ 43, 147, -1, 143, 44, 143, -1, -1, 47, 145,
+ 125, 141, 126, -1, 48, 125, 141, 126, -1, 160,
+ 108, 148, -1, 154, 108, 148, -1, 263, 85, 148,
+ -1, 204, 127, 173, 128, 85, 148, -1, 204, 129,
+ 51, 85, 148, -1, 204, 129, 55, 85, 148, -1,
+ 204, 83, 51, 85, 148, -1, 264, 85, 148, -1,
+ 160, 108, 186, -1, 154, 108, 172, -1, 154, 108,
+ 186, -1, 146, -1, 148, -1, 146, 37, 146, -1,
+ 146, 38, 146, -1, 39, 146, -1, 122, 148, -1,
+ 170, -1, 146, -1, 153, -1, 149, -1, 30, 176,
+ -1, 21, 176, -1, 22, 176, -1, 226, -1, 226,
+ 129, 284, 178, -1, 226, 83, 284, 178, -1, -1,
+ -1, 92, 151, 212, 152, 141, 126, -1, 283, 178,
+ -1, 283, 178, 150, -1, 204, 129, 284, 178, -1,
+ 204, 129, 284, 178, 150, -1, 204, 83, 284, 178,
+ -1, 204, 83, 284, 178, 150, -1, 32, 178, -1,
+ 31, 178, -1, 156, -1, 87, 155, 289, -1, 156,
+ -1, 87, 155, 289, -1, 158, -1, 158, 157, -1,
+ 158, 93, 159, -1, 158, 93, -1, 93, 159, -1,
+ 93, -1, 159, -1, 87, 155, 289, -1, 157, 130,
+ -1, 158, 157, 130, -1, 261, -1, 204, 127, 173,
+ 128, -1, 204, 129, 51, -1, 204, 83, 51, -1,
+ 204, 129, 55, -1, 204, 83, 55, -1, 84, 55,
+ -1, 264, -1, 261, -1, 204, 127, 173, 128, -1,
+ 204, 129, 51, -1, 204, 83, 51, -1, 204, 129,
+ 55, -1, 204, 83, 55, -1, 84, 55, -1, 264,
+ -1, 51, -1, 55, -1, 84, 161, -1, 161, -1,
+ 204, 83, 161, -1, 51, -1, 55, -1, 52, -1,
+ 168, -1, 169, -1, 163, -1, 257, -1, 164, -1,
+ 259, -1, 165, -1, -1, 166, 130, 167, 165, -1,
+ 113, -1, 114, -1, 115, -1, 67, -1, 68, -1,
+ 69, -1, 75, -1, 111, -1, 71, -1, 112, -1,
+ 72, -1, 81, -1, 82, -1, 116, -1, 117, -1,
+ 118, -1, 93, -1, 119, -1, 120, -1, 66, -1,
+ 123, -1, 64, -1, 65, -1, 79, -1, 80, -1,
+ 131, -1, 49, -1, 50, -1, 47, -1, 48, -1,
+ 45, -1, 37, -1, 7, -1, 21, -1, 16, -1,
+ 3, -1, 5, -1, 46, -1, 26, -1, 15, -1,
+ 14, -1, 10, -1, 9, -1, 36, -1, 20, -1,
+ 25, -1, 4, -1, 22, -1, 34, -1, 39, -1,
+ 38, -1, 23, -1, 8, -1, 24, -1, 30, -1,
+ 33, -1, 32, -1, 13, -1, 35, -1, 6, -1,
+ 17, -1, 31, -1, 40, -1, 41, -1, 42, -1,
+ 43, -1, 44, -1, 160, 108, 170, -1, 160, 108,
+ 170, 44, 170, -1, 263, 85, 170, -1, 204, 127,
+ 173, 128, 85, 170, -1, 204, 129, 51, 85, 170,
+ -1, 204, 129, 55, 85, 170, -1, 204, 83, 51,
+ 85, 170, -1, 204, 83, 55, 85, 170, -1, 84,
+ 55, 85, 170, -1, 264, 85, 170, -1, 170, 77,
+ 170, -1, 170, 78, 170, -1, 170, 116, 170, -1,
+ 170, 117, 170, -1, 170, 118, 170, -1, 170, 119,
+ 170, -1, 170, 120, 170, -1, 170, 66, 170, -1,
+ 121, 58, 66, 170, -1, 121, 59, 66, 170, -1,
+ 64, 170, -1, 65, 170, -1, 170, 113, 170, -1,
+ 170, 114, 170, -1, 170, 115, 170, -1, 170, 67,
+ 170, -1, 170, 111, 170, -1, 170, 71, 170, -1,
+ 170, 112, 170, -1, 170, 72, 170, -1, 170, 68,
+ 170, -1, 170, 69, 170, -1, 170, 70, 170, -1,
+ 170, 75, 170, -1, 170, 76, 170, -1, 122, 170,
+ -1, 123, 170, -1, 170, 81, 170, -1, 170, 82,
+ 170, -1, 170, 73, 170, -1, 170, 74, 170, -1,
+ -1, 46, 288, 171, 170, -1, 170, 109, 170, 110,
+ 170, -1, 187, -1, 170, -1, 293, -1, 153, 288,
+ -1, 185, 290, -1, 185, 130, 93, 170, 288, -1,
+ 281, 290, -1, 93, 170, 288, -1, 132, 293, 133,
+ -1, 132, 176, 289, -1, 132, 226, 289, -1, 132,
+ 185, 130, 226, 289, -1, 293, -1, 174, -1, 153,
+ -1, 185, 184, -1, 185, 130, 93, 172, 184, -1,
+ 281, 184, -1, 281, 130, 93, 172, 184, -1, 185,
+ 130, 281, 184, -1, 185, 130, 281, 130, 93, 170,
+ 184, -1, 93, 172, 184, -1, 183, -1, 172, 130,
+ 185, 184, -1, 172, 130, 183, -1, 172, 130, 93,
+ 172, 184, -1, 172, 130, 185, 130, 93, 172, 184,
+ -1, 281, 184, -1, 281, 130, 93, 172, 184, -1,
+ 172, 130, 281, 184, -1, 172, 130, 185, 130, 281,
+ 184, -1, 172, 130, 281, 130, 93, 172, 184, -1,
+ 172, 130, 185, 130, 281, 130, 93, 172, 184, -1,
+ 93, 172, 184, -1, 183, -1, -1, 179, 180, -1,
+ 176, -1, -1, 88, 181, 289, -1, -1, 88, 177,
+ 182, 289, -1, 94, 172, -1, 130, 183, -1, 293,
+ -1, 172, -1, 185, 130, 172, -1, 185, 130, 172,
+ -1, 185, 130, 93, 172, -1, 93, 172, -1, 240,
+ -1, 241, -1, 244, -1, 245, -1, 246, -1, 249,
+ -1, 262, -1, 264, -1, 52, -1, -1, 7, 188,
+ 140, 10, -1, -1, 88, 146, 189, 289, -1, 87,
+ 141, 133, -1, 204, 83, 55, -1, 84, 55, -1,
+ 90, 173, 128, -1, 91, 280, 126, -1, 30, -1,
+ 31, 132, 176, 289, -1, 31, 132, 289, -1, 31,
+ -1, -1, 46, 288, 132, 190, 146, 289, -1, 283,
+ 228, -1, 227, -1, 227, 228, -1, 95, 217, -1,
+ 11, 147, 205, 141, 207, 10, -1, 12, 147, 205,
+ 141, 208, 10, -1, -1, -1, 18, 191, 147, 206,
+ 192, 141, 10, -1, -1, -1, 19, 193, 147, 206,
+ 194, 141, 10, -1, 16, 147, 287, 233, 10, -1,
+ 16, 147, 287, 15, 141, 10, -1, 16, 287, 233,
+ 10, -1, 16, 287, 15, 141, 10, -1, -1, -1,
+ 20, 209, 25, 195, 147, 206, 196, 141, 10, -1,
+ -1, 3, 162, 265, 197, 140, 10, -1, -1, -1,
+ 3, 81, 146, 198, 291, 199, 140, 10, -1, -1,
+ 4, 162, 200, 140, 10, -1, -1, 5, 163, 201,
+ 267, 140, 10, -1, -1, -1, 5, 278, 286, 202,
+ 163, 203, 267, 140, 10, -1, 21, -1, 22, -1,
+ 23, -1, 24, -1, 187, -1, 291, -1, 110, -1,
+ 13, -1, 291, 13, -1, 291, -1, 110, -1, 27,
+ -1, 208, -1, 14, 147, 205, 141, 207, -1, 293,
+ -1, 15, 141, -1, 160, -1, 154, -1, 157, -1,
+ 210, 130, 157, -1, 210, -1, 210, 130, -1, 210,
+ 130, 94, 160, -1, 210, 130, 93, 160, 130, 94,
+ 160, -1, 210, 130, 93, 130, 94, 160, -1, 210,
+ 130, 93, 160, -1, 210, 130, 93, -1, 93, 160,
+ 130, 94, 160, -1, 93, 130, 94, 160, -1, 93,
+ 160, -1, 93, -1, 94, 160, -1, 293, -1, 213,
+ -1, 113, 214, 113, -1, 74, -1, 113, 211, 214,
+ 113, -1, 293, -1, 134, 215, -1, 216, -1, 215,
+ 130, 216, -1, 51, -1, -1, -1, -1, 218, 219,
+ 221, 220, 222, -1, 132, 268, 214, 289, -1, 268,
+ 214, -1, 106, 141, 126, -1, 29, 141, 10, -1,
+ -1, -1, 28, 224, 212, 225, 141, 10, -1, 153,
+ 223, -1, 226, 129, 284, 175, -1, 226, 83, 284,
+ 175, -1, 283, 174, -1, 204, 129, 284, 175, -1,
+ 204, 83, 284, 174, -1, 204, 83, 285, -1, 32,
+ 174, -1, 32, -1, 87, 141, 133, 174, -1, 204,
+ 127, 173, 128, -1, -1, -1, 125, 229, 212, 230,
+ 141, 126, -1, -1, -1, 26, 231, 212, 232, 141,
+ 10, -1, 96, 217, -1, 17, 234, 205, 141, 235,
+ -1, 185, -1, 185, 130, 93, 172, -1, 93, 172,
+ -1, 208, -1, 233, -1, 8, 237, 238, 205, 141,
+ 236, -1, 293, -1, 172, -1, 186, -1, 293, -1,
+ 86, 160, -1, 293, -1, 9, 141, -1, 293, -1,
+ 260, -1, 257, -1, 259, -1, 242, -1, 243, -1,
+ 242, 243, -1, 98, 251, 105, -1, 99, 252, 105,
+ -1, 100, 252, 63, -1, 101, 135, 105, -1, 101,
+ 247, 105, -1, -1, 247, 248, 135, -1, 253, -1,
+ 248, 253, -1, 102, 135, 105, -1, 102, 250, 105,
+ -1, -1, 250, 60, 135, -1, -1, 251, 253, -1,
+ -1, 252, 253, -1, 60, -1, -1, 104, 254, 256,
+ -1, -1, 103, 255, 141, 126, -1, 53, -1, 54,
+ -1, 56, -1, 264, -1, 97, 258, -1, 163, -1,
+ 54, -1, 53, -1, 56, -1, 97, 252, 105, -1,
+ 58, -1, 59, -1, 121, 58, -1, 121, 59, -1,
+ 51, -1, 54, -1, 53, -1, 55, -1, 56, -1,
+ 34, -1, 33, -1, 35, -1, 36, -1, 50, -1,
+ 49, -1, 261, -1, 261, -1, 61, -1, 62, -1,
+ 291, -1, -1, 112, 266, 147, 291, -1, 1, 291,
+ -1, 132, 268, 289, -1, 268, 291, -1, 270, 130,
+ 272, 130, 274, 277, -1, 270, 130, 272, 277, -1,
+ 270, 130, 274, 277, -1, 270, 277, -1, 272, 130,
+ 274, 277, -1, 272, 277, -1, 274, 277, -1, 276,
+ -1, -1, 55, -1, 54, -1, 53, -1, 56, -1,
+ 51, -1, 269, -1, 270, 130, 269, -1, 51, 108,
+ 172, -1, 271, -1, 272, 130, 271, -1, 118, -1,
+ 93, -1, 273, 51, -1, 273, -1, 115, -1, 94,
+ -1, 275, 51, -1, 130, 276, -1, 293, -1, 262,
+ -1, -1, 132, 279, 146, 289, -1, 293, -1, 281,
+ 290, -1, 185, 290, -1, 282, -1, 281, 130, 282,
+ -1, 172, 86, 172, -1, 57, 172, -1, 51, -1,
+ 55, -1, 52, -1, 51, -1, 55, -1, 52, -1,
+ 168, -1, 51, -1, 52, -1, 168, -1, 129, -1,
+ 83, -1, -1, 292, -1, -1, 136, -1, 288, 133,
+ -1, -1, 136, -1, 130, -1, 134, -1, 136, -1,
+ 291, -1, 292, 134, -1, -1
+};
+
+/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+static const unsigned short int yyrline[] =
+{
+ 0, 701, 701, 701, 733, 766, 777, 785, 793, 801,
+ 807, 807, 815, 823, 834, 844, 852, 865, 878, 894,
+ 910, 919, 918, 943, 958, 966, 976, 1005, 1029, 1046,
+ 1063, 1080, 1090, 1098, 1107, 1116, 1119, 1120, 1128, 1136,
+ 1144, 1152, 1155, 1166, 1167, 1168, 1176, 1184, 1194, 1195,
+ 1204, 1216, 1223, 1215, 1239, 1248, 1263, 1272, 1287, 1296,
+ 1311, 1320, 1331, 1332, 1342, 1343, 1353, 1361, 1369, 1377,
+ 1385, 1393, 1403, 1404, 1414, 1422, 1432, 1440, 1448, 1456,
+ 1464, 1472, 1484, 1494, 1506, 1514, 1522, 1530, 1538, 1546,
+ 1559, 1572, 1583, 1591, 1594, 1602, 1610, 1620, 1621, 1622,
+ 1623, 1633, 1645, 1646, 1649, 1657, 1660, 1668, 1668, 1678,
+ 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688,
+ 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698,
+ 1699, 1700, 1701, 1702, 1703, 1706, 1706, 1706, 1706, 1707,
+ 1707, 1707, 1707, 1707, 1707, 1707, 1708, 1708, 1708, 1708,
+ 1708, 1708, 1708, 1709, 1709, 1709, 1709, 1709, 1709, 1710,
+ 1710, 1710, 1710, 1710, 1710, 1710, 1711, 1711, 1711, 1711,
+ 1711, 1712, 1712, 1712, 1712, 1712, 1715, 1723, 1731, 1760,
+ 1784, 1801, 1818, 1835, 1846, 1857, 1868, 1885, 1902, 1910,
+ 1918, 1926, 1934, 1942, 1950, 1959, 1968, 1981, 1989, 1997,
+ 2005, 2013, 2021, 2029, 2037, 2045, 2053, 2061, 2069, 2077,
+ 2085, 2093, 2101, 2109, 2117, 2125, 2133, 2141, 2141, 2151,
+ 2160, 2166, 2177, 2178, 2188, 2192, 2201, 2209, 2220, 2228,
+ 2236, 2246, 2258, 2259, 2262, 2272, 2280, 2289, 2299, 2309,
+ 2318, 2329, 2337, 2346, 2354, 2362, 2372, 2382, 2391, 2401,
+ 2411, 2421, 2432, 2443, 2451, 2454, 2454, 2466, 2467, 2467,
+ 2476, 2476, 2487, 2497, 2501, 2504, 2512, 2522, 2530, 2538,
+ 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2565,
+ 2564, 2589, 2589, 2598, 2607, 2615, 2623, 2636, 2644, 2652,
+ 2660, 2668, 2676, 2676, 2686, 2697, 2698, 2709, 2713, 2730,
+ 2747, 2747, 2747, 2761, 2761, 2761, 2775, 2786, 2794, 2802,
+ 2810, 2810, 2810, 2822, 2821, 2845, 2854, 2844, 2880, 2879,
+ 2903, 2902, 2933, 2934, 2933, 2960, 2968, 2976, 2984, 2994,
+ 3005, 3010, 3015, 3016, 3023, 3028, 3033, 3036, 3037, 3050,
+ 3051, 3061, 3062, 3065, 3073, 3083, 3097, 3105, 3113, 3122,
+ 3131, 3139, 3147, 3156, 3165, 3173, 3181, 3191, 3198, 3201,
+ 3209, 3217, 3228, 3229, 3239, 3247, 3257, 3267, 3273, 3278,
+ 3267, 3294, 3302, 3312, 3316, 3323, 3330, 3322, 3350, 3361,
+ 3370, 3381, 3390, 3400, 3410, 3418, 3426, 3434, 3446, 3461,
+ 3468, 3460, 3487, 3494, 3486, 3512, 3524, 3535, 3536, 3544,
+ 3554, 3555, 3558, 3577, 3580, 3588, 3589, 3592, 3596, 3599,
+ 3607, 3610, 3611, 3619, 3622, 3639, 3640, 3650, 3660, 3687,
+ 3724, 3732, 3739, 3746, 3756, 3764, 3774, 3782, 3789, 3796,
+ 3807, 3814, 3825, 3832, 3842, 3844, 3843, 3860, 3859, 3881,
+ 3889, 3897, 3905, 3908, 3920, 3921, 3922, 3923, 3926, 3957,
+ 3958, 3959, 3967, 3977, 3978, 3979, 3980, 3981, 3982, 3983,
+ 3984, 3985, 3986, 3987, 3990, 4000, 4010, 4011, 4014, 4023,
+ 4022, 4030, 4042, 4054, 4060, 4068, 4076, 4084, 4092, 4100,
+ 4108, 4116, 4125, 4134, 4142, 4150, 4158, 4166, 4185, 4194,
+ 4209, 4225, 4234, 4244, 4245, 4248, 4262, 4277, 4278, 4281,
+ 4302, 4306, 4309, 4323, 4323, 4352, 4353, 4357, 4370, 4377,
+ 4387, 4395, 4405, 4406, 4407, 4410, 4411, 4412, 4413, 4416,
+ 4417, 4418, 4421, 4426, 4433, 4434, 4437, 4438, 4441, 4444,
+ 4445, 4446, 4449, 4450, 4453, 4454, 4458
+};
+#endif
+
+#if YYDEBUG || YYERROR_VERBOSE
+/* YYTNME[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", "kCLASS", "kMODULE", "kDEF", "kUNDEF",
+ "kBEGIN", "kRESCUE", "kENSURE", "kEND", "kIF", "kUNLESS", "kTHEN",
+ "kELSIF", "kELSE", "kCASE", "kWHEN", "kWHILE", "kUNTIL", "kFOR",
+ "kBREAK", "kNEXT", "kREDO", "kRETRY", "kIN", "kDO", "kDO_COND",
+ "kDO_BLOCK", "kDO_LAMBDA", "kRETURN", "kYIELD", "kSUPER", "kSELF",
+ "kNIL", "kTRUE", "kFALSE", "kAND", "kOR", "kNOT", "kIF_MOD",
+ "kUNLESS_MOD", "kWHILE_MOD", "kUNTIL_MOD", "kRESCUE_MOD", "kALIAS",
+ "kDEFINED", "klBEGIN", "klEND", "k__LINE__", "k__FILE__", "tIDENTIFIER",
+ "tFID", "tGVAR", "tIVAR", "tCONSTANT", "tCVAR", "tLABEL", "tINTEGER",
+ "tFLOAT", "tSTRING_CONTENT", "tNTH_REF", "tBACK_REF", "tREGEXP_END",
+ "tUPLUS", "tUMINUS", "tPOW", "tCMP", "tEQ", "tEQQ", "tNEQ", "tGEQ",
+ "tLEQ", "tANDOP", "tOROP", "tMATCH", "tNMATCH", "tDOT2", "tDOT3",
+ "tAREF", "tASET", "tLSHFT", "tRSHFT", "tCOLON2", "tCOLON3", "tOP_ASGN",
+ "tASSOC", "tLPAREN", "tLPAREN_ARG", "tRPAREN", "tLBRACK", "tLBRACE",
+ "tLBRACE_ARG", "tSTAR", "tAMPER", "tLAMBDA", "tLAMBDA_ARG", "tSYMBEG",
+ "tSTRING_BEG", "tXSTRING_BEG", "tREGEXP_BEG", "tWORDS_BEG",
+ "tQWORDS_BEG", "tSTRING_DBEG", "tSTRING_DVAR", "tSTRING_END", "tLAMBEG",
+ "tLOWEST", "'='", "'?'", "':'", "'>'", "'<'", "'|'", "'^'", "'&'", "'+'",
+ "'-'", "'*'", "'/'", "'%'", "tUMINUS_NUM", "'!'", "'~'", "tLAST_TOKEN",
+ "'{'", "'}'", "'['", "']'", "'.'", "','", "'`'", "'('", "')'", "';'",
+ "' '", "'\\n'", "$accept", "program", "@1", "bodystmt", "compstmt",
+ "stmts", "stmt", "@2", "@3", "expr", "expr_value", "command_call",
+ "block_command", "cmd_brace_block", "@4", "@5", "command", "mlhs",
+ "mlhs_entry", "mlhs_basic", "mlhs_item", "mlhs_head", "mlhs_node", "lhs",
+ "cname", "cpath", "fname", "fsym", "fitem", "undef_list", "@6", "op",
+ "reswords", "arg", "@7", "arg_value", "aref_args", "paren_args",
+ "opt_paren_args", "call_args", "call_args2", "command_args", "@8",
+ "open_args", "@9", "@10", "block_arg", "opt_block_arg", "args", "mrhs",
+ "primary", "@11", "@12", "@13", "@14", "@15", "@16", "@17", "@18", "@19",
+ "@20", "@21", "@22", "@23", "@24", "@25", "@26", "primary_value", "then",
+ "do", "if_tail", "opt_else", "for_var", "block_param0", "block_param",
+ "opt_block_param", "block_param_def", "opt_bv_decl", "bv_decls",
+ "bv_decl", "lambda", "@27", "@28", "@29", "f_larglist", "lambda_body",
+ "do_block", "@30", "@31", "block_call", "method_call", "brace_block",
+ "@32", "@33", "@34", "@35", "case_body", "when_args", "cases",
+ "opt_rescue", "exc_list", "exc_var", "opt_ensure", "literal", "strings",
+ "string", "string1", "xstring", "regexp", "words", "word_list", "word",
+ "qwords", "qword_list", "string_contents", "xstring_contents",
+ "string_content", "@36", "@37", "string_dvar", "symbol", "sym", "dsym",
+ "numeric", "variable", "var_ref", "var_lhs", "backref", "superclass",
+ "@38", "f_arglist", "f_args", "f_norm_arg", "f_arg", "f_opt", "f_optarg",
+ "restarg_mark", "f_rest_arg", "blkarg_mark", "f_block_arg",
+ "opt_f_block_arg", "singleton", "@39", "assoc_list", "assocs", "assoc",
+ "operation", "operation2", "operation3", "dot_or_colon", "opt_terms",
+ "opt_nl", "rparen", "trailer", "term", "terms", "none", 0
+};
+#endif
+
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+ token YYLEX-NUM. */
+static const unsigned short int 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, 61, 63,
+ 58, 62, 60, 124, 94, 38, 43, 45, 42, 47,
+ 37, 363, 33, 126, 364, 123, 125, 91, 93, 46,
+ 44, 96, 40, 41, 59, 32, 10
+};
+# endif
+
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+static const unsigned short int yyr1[] =
+{
+ 0, 137, 139, 138, 140, 141, 142, 142, 142, 142,
+ 144, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 143, 145, 143, 143, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 143, 146, 146, 146, 146,
+ 146, 146, 147, 148, 148, 148, 148, 148, 149, 149,
+ 149, 151, 152, 150, 153, 153, 153, 153, 153, 153,
+ 153, 153, 154, 154, 155, 155, 156, 156, 156, 156,
+ 156, 156, 157, 157, 158, 158, 159, 159, 159, 159,
+ 159, 159, 159, 159, 160, 160, 160, 160, 160, 160,
+ 160, 160, 161, 161, 162, 162, 162, 163, 163, 163,
+ 163, 163, 164, 164, 165, 165, 166, 167, 166, 168,
+ 168, 168, 168, 168, 168, 168, 168, 168, 168, 168,
+ 168, 168, 168, 168, 168, 168, 168, 168, 168, 168,
+ 168, 168, 168, 168, 168, 169, 169, 169, 169, 169,
+ 169, 169, 169, 169, 169, 169, 169, 169, 169, 169,
+ 169, 169, 169, 169, 169, 169, 169, 169, 169, 169,
+ 169, 169, 169, 169, 169, 169, 169, 169, 169, 169,
+ 169, 169, 169, 169, 169, 169, 170, 170, 170, 170,
+ 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
+ 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
+ 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
+ 170, 170, 170, 170, 170, 170, 170, 171, 170, 170,
+ 170, 172, 173, 173, 173, 173, 173, 173, 174, 174,
+ 174, 174, 175, 175, 176, 176, 176, 176, 176, 176,
+ 176, 176, 176, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 179, 178, 180, 181, 180,
+ 182, 180, 183, 184, 184, 185, 185, 186, 186, 186,
+ 187, 187, 187, 187, 187, 187, 187, 187, 187, 188,
+ 187, 189, 187, 187, 187, 187, 187, 187, 187, 187,
+ 187, 187, 190, 187, 187, 187, 187, 187, 187, 187,
+ 191, 192, 187, 193, 194, 187, 187, 187, 187, 187,
+ 195, 196, 187, 197, 187, 198, 199, 187, 200, 187,
+ 201, 187, 202, 203, 187, 187, 187, 187, 187, 204,
+ 205, 205, 205, 205, 206, 206, 206, 207, 207, 208,
+ 208, 209, 209, 210, 210, 211, 211, 211, 211, 211,
+ 211, 211, 211, 211, 211, 211, 211, 212, 212, 213,
+ 213, 213, 214, 214, 215, 215, 216, 218, 219, 220,
+ 217, 221, 221, 222, 222, 224, 225, 223, 226, 226,
+ 226, 227, 227, 227, 227, 227, 227, 227, 227, 229,
+ 230, 228, 231, 232, 228, 228, 233, 234, 234, 234,
+ 235, 235, 236, 236, 237, 237, 237, 238, 238, 239,
+ 239, 240, 240, 240, 241, 242, 242, 243, 244, 245,
+ 246, 246, 247, 247, 248, 248, 249, 249, 250, 250,
+ 251, 251, 252, 252, 253, 254, 253, 255, 253, 256,
+ 256, 256, 256, 257, 258, 258, 258, 258, 259, 260,
+ 260, 260, 260, 261, 261, 261, 261, 261, 261, 261,
+ 261, 261, 261, 261, 262, 263, 264, 264, 265, 266,
+ 265, 265, 267, 267, 268, 268, 268, 268, 268, 268,
+ 268, 268, 268, 269, 269, 269, 269, 269, 270, 270,
+ 271, 272, 272, 273, 273, 274, 274, 275, 275, 276,
+ 277, 277, 278, 279, 278, 280, 280, 280, 281, 281,
+ 282, 282, 283, 283, 283, 284, 284, 284, 284, 285,
+ 285, 285, 286, 286, 287, 287, 288, 288, 289, 290,
+ 290, 290, 291, 291, 292, 292, 293
+};
+
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+static const unsigned char yyr2[] =
+{
+ 0, 2, 0, 2, 4, 2, 1, 1, 3, 2,
+ 0, 4, 3, 3, 3, 2, 3, 3, 3, 3,
+ 3, 0, 5, 4, 3, 3, 3, 6, 5, 5,
+ 5, 3, 3, 3, 3, 1, 1, 3, 3, 2,
+ 2, 1, 1, 1, 1, 2, 2, 2, 1, 4,
+ 4, 0, 0, 6, 2, 3, 4, 5, 4, 5,
+ 2, 2, 1, 3, 1, 3, 1, 2, 3, 2,
+ 2, 1, 1, 3, 2, 3, 1, 4, 3, 3,
+ 3, 3, 2, 1, 1, 4, 3, 3, 3, 3,
+ 2, 1, 1, 1, 2, 1, 3, 1, 1, 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, 3, 5, 3, 6,
+ 5, 5, 5, 5, 4, 3, 3, 3, 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, 0, 4, 5,
+ 1, 1, 1, 2, 2, 5, 2, 3, 3, 3,
+ 3, 5, 1, 1, 1, 2, 5, 2, 5, 4,
+ 7, 3, 1, 4, 3, 5, 7, 2, 5, 4,
+ 6, 7, 9, 3, 1, 0, 2, 1, 0, 3,
+ 0, 4, 2, 2, 1, 1, 3, 3, 4, 2,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
+ 4, 0, 4, 3, 3, 2, 3, 3, 1, 4,
+ 3, 1, 0, 6, 2, 1, 2, 2, 6, 6,
+ 0, 0, 7, 0, 0, 7, 5, 6, 4, 5,
+ 0, 0, 9, 0, 6, 0, 0, 8, 0, 5,
+ 0, 6, 0, 0, 9, 1, 1, 1, 1, 1,
+ 1, 1, 1, 2, 1, 1, 1, 1, 5, 1,
+ 2, 1, 1, 1, 3, 1, 2, 4, 7, 6,
+ 4, 3, 5, 4, 2, 1, 2, 1, 1, 3,
+ 1, 4, 1, 2, 1, 3, 1, 0, 0, 0,
+ 5, 4, 2, 3, 3, 0, 0, 6, 2, 4,
+ 4, 2, 4, 4, 3, 2, 1, 4, 4, 0,
+ 0, 6, 0, 0, 6, 2, 5, 1, 4, 2,
+ 1, 1, 6, 1, 1, 1, 1, 2, 1, 2,
+ 1, 1, 1, 1, 1, 1, 2, 3, 3, 3,
+ 3, 3, 0, 3, 1, 2, 3, 3, 0, 3,
+ 0, 2, 0, 2, 1, 0, 3, 0, 4, 1,
+ 1, 1, 1, 2, 1, 1, 1, 1, 3, 1,
+ 1, 2, 2, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
+ 4, 2, 3, 2, 6, 4, 4, 2, 4, 2,
+ 2, 1, 0, 1, 1, 1, 1, 1, 1, 3,
+ 3, 1, 3, 1, 1, 2, 1, 1, 1, 2,
+ 2, 1, 1, 0, 4, 1, 2, 2, 1, 3,
+ 3, 2, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 0, 1, 0, 1, 2, 0,
+ 1, 1, 1, 1, 1, 2, 0
+};
+
+/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+ STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+ means the default is an error. */
+static const unsigned short int yydefact[] =
+{
+ 2, 0, 0, 1, 0, 0, 0, 0, 0, 279,
+ 0, 0, 524, 300, 303, 0, 325, 326, 327, 328,
+ 288, 291, 386, 459, 458, 460, 461, 0, 0, 526,
+ 21, 0, 463, 462, 453, 514, 455, 454, 456, 457,
+ 449, 450, 466, 467, 0, 0, 0, 0, 0, 536,
+ 536, 71, 367, 432, 430, 432, 432, 422, 428, 0,
+ 0, 0, 3, 524, 7, 35, 36, 44, 43, 0,
+ 62, 0, 66, 72, 0, 41, 220, 0, 48, 295,
+ 270, 271, 414, 415, 272, 273, 274, 275, 412, 413,
+ 411, 464, 276, 0, 277, 255, 6, 9, 325, 326,
+ 288, 291, 386, 526, 92, 93, 0, 0, 0, 0,
+ 95, 0, 329, 0, 464, 277, 0, 318, 144, 155,
+ 145, 168, 141, 161, 151, 150, 166, 149, 148, 143,
+ 169, 153, 142, 156, 160, 162, 154, 147, 163, 170,
+ 165, 164, 157, 167, 152, 140, 159, 158, 171, 172,
+ 173, 174, 175, 139, 146, 137, 138, 135, 136, 97,
+ 99, 98, 130, 131, 128, 112, 113, 114, 117, 119,
+ 115, 132, 133, 120, 121, 125, 116, 118, 109, 110,
+ 111, 122, 123, 124, 126, 127, 129, 134, 503, 320,
+ 100, 101, 502, 0, 164, 157, 167, 152, 135, 136,
+ 97, 98, 102, 104, 106, 15, 103, 105, 0, 0,
+ 42, 0, 0, 0, 464, 0, 277, 0, 532, 533,
+ 524, 0, 534, 525, 0, 0, 0, 342, 341, 0,
+ 0, 464, 277, 0, 0, 0, 0, 234, 221, 265,
+ 46, 242, 536, 536, 508, 47, 45, 526, 61, 0,
+ 536, 385, 60, 39, 0, 10, 527, 217, 0, 0,
+ 196, 0, 197, 285, 0, 0, 526, 64, 281, 0,
+ 526, 0, 529, 529, 222, 529, 0, 529, 505, 0,
+ 70, 0, 76, 83, 297, 368, 446, 445, 447, 444,
+ 0, 443, 0, 0, 0, 0, 0, 0, 0, 451,
+ 452, 40, 211, 212, 5, 525, 0, 0, 0, 0,
+ 0, 0, 0, 375, 378, 0, 74, 0, 69, 67,
+ 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, 536, 0,
+ 0, 0, 392, 367, 389, 296, 416, 0, 0, 381,
+ 54, 294, 0, 315, 92, 93, 94, 451, 452, 0,
+ 469, 313, 468, 0, 536, 0, 0, 0, 482, 523,
+ 522, 322, 107, 0, 536, 285, 332, 331, 0, 330,
+ 0, 0, 536, 0, 0, 0, 0, 0, 0, 0,
+ 0, 535, 0, 0, 285, 0, 536, 0, 310, 511,
+ 536, 262, 0, 0, 235, 264, 0, 237, 526, 0,
+ 290, 258, 257, 256, 234, 526, 536, 526, 0, 12,
+ 14, 13, 0, 292, 0, 0, 0, 0, 0, 0,
+ 526, 283, 63, 526, 526, 223, 286, 531, 530, 224,
+ 531, 226, 531, 507, 287, 506, 82, 0, 536, 0,
+ 482, 434, 437, 435, 448, 433, 417, 431, 418, 419,
+ 420, 421, 0, 424, 426, 0, 427, 0, 0, 8,
+ 16, 17, 18, 19, 20, 37, 38, 536, 0, 25,
+ 33, 0, 34, 526, 68, 75, 24, 176, 265, 32,
+ 193, 201, 206, 207, 208, 203, 205, 215, 216, 209,
+ 210, 186, 187, 213, 214, 0, 202, 204, 198, 199,
+ 200, 188, 189, 190, 191, 192, 515, 520, 516, 521,
+ 255, 384, 0, 515, 517, 516, 518, 536, 515, 516,
+ 255, 255, 536, 395, 536, 26, 178, 31, 185, 51,
+ 55, 0, 471, 0, 0, 92, 93, 96, 0, 0,
+ 536, 0, 526, 487, 485, 484, 483, 486, 494, 498,
+ 497, 493, 482, 0, 0, 488, 536, 491, 536, 496,
+ 536, 0, 481, 0, 0, 280, 536, 536, 403, 536,
+ 333, 176, 519, 284, 0, 515, 516, 536, 0, 0,
+ 0, 0, 397, 0, 308, 336, 335, 301, 334, 304,
+ 519, 284, 0, 515, 516, 0, 0, 241, 510, 0,
+ 266, 263, 536, 0, 0, 509, 289, 528, 0, 41,
+ 0, 260, 526, 254, 536, 229, 0, 0, 0, 230,
+ 228, 11, 0, 218, 0, 23, 184, 65, 387, 282,
+ 227, 0, 266, 79, 81, 0, 78, 80, 482, 369,
+ 536, 0, 0, 423, 425, 429, 194, 195, 360, 536,
+ 376, 358, 357, 269, 0, 73, 0, 0, 0, 0,
+ 383, 58, 388, 0, 0, 233, 382, 56, 232, 380,
+ 50, 379, 49, 393, 390, 536, 316, 0, 0, 388,
+ 319, 504, 0, 526, 0, 473, 0, 477, 501, 0,
+ 479, 495, 0, 480, 499, 323, 108, 404, 405, 536,
+ 406, 0, 536, 339, 0, 0, 337, 0, 388, 0,
+ 0, 0, 0, 306, 309, 399, 0, 0, 0, 0,
+ 388, 0, 536, 0, 239, 536, 536, 0, 526, 259,
+ 0, 247, 0, 526, 536, 536, 526, 22, 526, 77,
+ 536, 0, 0, 372, 362, 0, 439, 440, 441, 436,
+ 442, 355, 0, 343, 345, 536, 0, 0, 0, 267,
+ 177, 219, 30, 182, 183, 59, 0, 28, 180, 29,
+ 181, 57, 0, 0, 52, 0, 470, 314, 490, 472,
+ 321, 489, 536, 536, 500, 0, 492, 536, 482, 0,
+ 0, 408, 340, 0, 4, 410, 0, 298, 0, 299,
+ 307, 0, 536, 0, 0, 311, 236, 0, 238, 253,
+ 0, 244, 536, 536, 261, 0, 231, 293, 225, 526,
+ 0, 0, 370, 366, 363, 364, 438, 0, 0, 354,
+ 0, 84, 91, 356, 346, 0, 359, 0, 268, 27,
+ 179, 0, 0, 0, 0, 0, 475, 476, 478, 0,
+ 407, 0, 409, 0, 398, 400, 401, 396, 302, 305,
+ 0, 536, 536, 0, 243, 0, 249, 536, 371, 0,
+ 0, 0, 90, 0, 0, 0, 536, 0, 351, 0,
+ 344, 361, 377, 394, 391, 0, 317, 536, 0, 536,
+ 536, 0, 240, 245, 0, 536, 0, 248, 374, 373,
+ 365, 353, 0, 87, 89, 0, 515, 516, 0, 350,
+ 347, 53, 474, 324, 402, 338, 312, 536, 0, 250,
+ 536, 352, 85, 0, 0, 246, 0, 251, 349, 0,
+ 536, 348, 252
+};
+
+/* YYDEFGOTO[NTERM-NUM]. */
+static const short int yydefgoto[] =
+{
+ -1, 1, 2, 383, 384, 63, 64, 432, 258, 65,
+ 211, 66, 67, 550, 695, 863, 68, 69, 266, 70,
+ 71, 72, 73, 212, 110, 111, 202, 203, 204, 205,
+ 584, 536, 191, 75, 434, 239, 271, 685, 686, 240,
+ 631, 248, 249, 423, 632, 748, 621, 414, 272, 492,
+ 76, 208, 443, 642, 224, 738, 225, 739, 615, 880,
+ 554, 551, 795, 376, 378, 583, 808, 261, 388, 607,
+ 725, 726, 230, 774, 775, 670, 671, 763, 844, 845,
+ 284, 285, 460, 761, 659, 842, 314, 487, 777, 78,
+ 79, 361, 544, 793, 542, 792, 400, 603, 877, 587,
+ 719, 810, 814, 80, 81, 82, 83, 84, 85, 86,
+ 296, 472, 87, 298, 292, 290, 465, 662, 661, 769,
+ 88, 291, 89, 90, 214, 92, 215, 216, 371, 553,
+ 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
+ 707, 193, 377, 276, 273, 244, 116, 558, 531, 381,
+ 221, 419, 420, 449, 389, 223, 96
+};
+
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+#define YYPACT_NINF -656
+static const short int yypact[] =
+{
+ -656, 105, 2830, -656, 6404, 9100, 9412, 4589, 5946, -656,
+ 7916, 7916, 4251, -656, -656, 9204, 6620, 6620, -656, -656,
+ 6620, 5201, 5323, -656, -656, -656, -656, 7916, 5817, 75,
+ -656, -8, -656, -656, 4711, 2371, -656, -656, 4834, -656,
+ -656, -656, -656, -656, 8780, 8780, 118, 3685, 7916, 7808,
+ 8024, 9516, -656, 5688, -656, -656, -656, 5, 98, 290,
+ 8888, 8780, -656, 130, 687, 316, -656, -656, 179, 151,
+ -656, 150, 9308, -656, 182, 10548, 48, 172, 32, 72,
+ -656, -656, 196, -656, -656, -656, -656, -656, -656, -656,
+ -656, 187, -656, 243, 413, 56, -656, 687, -656, -656,
+ -656, 189, 226, 75, 429, 440, 7916, 65, 3793, 452,
+ -656, 68, -656, 193, -656, -656, 56, -656, -656, -656,
+ -656, -656, -656, -656, -656, -656, -656, -656, -656, -656,
+ -656, -656, -656, -656, -656, -656, -656, -656, -656, -656,
+ -656, 115, 142, 198, 240, -656, -656, -656, -656, -656,
+ -656, -656, -656, -656, -656, -656, -656, 268, 283, 288,
+ -656, 352, -656, -656, -656, -656, -656, -656, -656, -656,
+ -656, -656, -656, -656, -656, -656, -656, -656, -656, -656,
+ -656, -656, -656, -656, -656, -656, -656, -656, -656, -656,
+ -656, -656, -656, 385, -656, -656, -656, -656, -656, -656,
+ -656, -656, -656, -656, -656, 255, -656, -656, 3067, 350,
+ 316, 95, 335, 236, 49, 386, 86, 95, -656, -656,
+ 130, 175, -656, 342, 7916, 7916, 428, -656, -656, 294,
+ 469, 82, 88, 8780, 8780, 8780, 8780, -656, 10548, 414,
+ -656, -656, 383, 388, -656, -656, -656, 4143, -656, 6728,
+ 6620, -656, -656, -656, 230, -656, -656, 396, 390, 3901,
+ -656, 295, 467, 496, 3685, 408, 75, 451, 316, 8780,
+ 75, 419, 46, 63, -656, 298, 427, 63, -656, 505,
+ -656, 317, 343, 355, -656, -656, -656, -656, -656, -656,
+ 398, -656, 479, 497, 445, 457, 514, 471, 36, 512,
+ 520, -656, -656, -656, -656, 4359, 7916, 7916, 7916, 7916,
+ 6404, 7916, 7916, -656, -656, 8132, -656, 3685, 9516, 463,
+ 8132, 8780, 8780, 8780, 8780, 8780, 8780, 8780, 8780, 8780,
+ 8780, 8780, 8780, 8780, 8780, 8780, 8780, 8780, 8780, 8780,
+ 8780, 8780, 8780, 8780, 8780, 8780, 8780, 2235, 7808, 9678,
+ 9748, 9748, -656, -656, -656, -656, -656, 8888, 8888, -656,
+ 502, -656, 396, 316, -656, 380, -656, -656, -656, 130,
+ -656, -656, -656, 9818, 7808, 9748, 3067, 7916, 873, -656,
+ -656, -656, -656, 585, 595, 124, -656, -656, 3201, 598,
+ 8780, 9888, 7808, 9958, 8780, 8780, 3469, 401, 4035, 8240,
+ 618, -656, 103, 103, 111, 10028, 7808, 10098, -656, -656,
+ 499, -656, 8780, 6836, -656, -656, 6944, -656, 75, 498,
+ -656, 6512, -656, -656, 179, 75, 507, 26, 516, -656,
+ -656, -656, 5946, -656, 8780, 3901, 509, 9888, 9958, 8780,
+ 75, 226, 508, 75, 4464, -656, -656, 8348, -656, -656,
+ 8024, -656, 8780, -656, -656, -656, 380, 10168, 7808, 10238,
+ 995, -656, -656, -656, -656, -656, -656, -656, -656, -656,
+ -656, -656, 61, -656, -656, 510, -656, 8780, 8780, 687,
+ -656, -656, -656, -656, -656, -656, -656, 45, 8780, -656,
+ 517, 518, -656, 75, -656, -656, -656, 2694, -656, -656,
+ 467, 1067, 1067, 1067, 1067, 705, 705, 1724, 2353, 1067,
+ 1067, 10603, 10603, 504, 504, 10531, 705, 705, 575, 575,
+ 370, 66, 66, 467, 467, 467, 2933, 5445, 2565, 5567,
+ 226, -656, 511, 506, -656, 522, -656, 5323, -656, -656,
+ 1594, 1594, 45, -656, 45, -656, 10548, -656, 10548, -656,
+ -656, 130, -656, 7916, 3067, 448, 205, -656, 226, 523,
+ 226, 622, 91, 553, -656, -656, -656, -656, -656, -656,
+ -656, -656, 1008, 3067, 130, -656, 532, -656, 533, 613,
+ 540, 623, -656, 6075, 5946, -656, 8456, 660, -656, 515,
+ -656, 1126, 4957, 5079, 549, 178, 260, 660, 4035, 668,
+ 670, 8780, 554, 95, -656, -656, -656, -656, -656, -656,
+ 85, 108, 555, 112, 113, 7916, 594, -656, -656, 8780,
+ 414, -656, 566, 8780, 414, -656, -656, -656, 8780, 10444,
+ 170, -656, 75, -656, 569, -656, 7052, 9748, 9748, -656,
+ -656, -656, 7916, 10548, 574, -656, 10548, 271, -656, -656,
+ -656, 8780, -656, 448, 205, 573, 589, 627, 1008, -656,
+ 572, 3901, 651, -656, -656, -656, 467, 467, -656, 4467,
+ -656, -656, -656, -656, 8564, -656, 8780, 8780, 8888, 8780,
+ -656, 502, 525, 8888, 8888, -656, -656, 502, -656, -656,
+ -656, -656, -656, -656, -656, 45, -656, 130, 699, -656,
+ -656, -656, 8780, 75, 710, -656, 1008, -656, -656, 218,
+ -656, -656, 30, -656, -656, -656, -656, 517, -656, 629,
+ -656, 3577, 715, -656, 7916, 723, -656, 8780, 299, 8780,
+ 8780, 728, 729, -656, -656, -656, 8672, 3335, 4035, 4035,
+ 119, 103, 499, 7160, -656, 499, 499, 7268, 75, -656,
+ 7376, -656, 179, 26, 226, 226, 91, -656, 4464, 439,
+ 572, 64, 674, -656, -656, 615, -656, -656, -656, -656,
+ -656, 6196, 9620, -656, 614, 572, 632, 4035, 8780, 616,
+ 10548, 10548, -656, 10548, 10548, -656, 8888, -656, 10548, -656,
+ 10548, -656, 4035, 3901, -656, 3067, -656, -656, -656, -656,
+ -656, -656, 617, 540, -656, 553, -656, 540, 873, 9620,
+ 95, -656, -656, 4035, -656, -656, 95, -656, 8780, -656,
+ -656, 8780, 480, 739, 740, -656, -656, 8780, -656, -656,
+ 8780, -656, 630, 631, -656, 8780, -656, -656, -656, 75,
+ 4035, 3901, -656, -656, 633, -656, -656, 702, 672, 634,
+ 397, 343, 355, -656, 8996, 649, -656, 757, -656, -656,
+ 10548, 762, 648, 3901, 766, 218, -656, -656, -656, 3067,
+ -656, 3067, -656, 3201, -656, -656, -656, -656, -656, -656,
+ 4035, 10466, 499, 7484, -656, 7592, -656, 499, -656, 768,
+ 653, 674, 380, 9620, 686, 10308, 7808, 10378, 6300, 9620,
+ -656, -656, -656, -656, -656, 655, -656, 540, 772, 595,
+ 515, 775, -656, -656, 8780, 658, 8780, -656, -656, -656,
+ -656, -656, 9620, 448, 205, 661, 90, 257, 701, 666,
+ -656, -656, -656, -656, -656, -656, -656, 499, 7700, -656,
+ 499, -656, 439, 9620, 703, -656, 8780, -656, -656, 9620,
+ 499, -656, -656
+};
+
+/* YYPGOTO[NTERM-NUM]. */
+static const short int yypgoto[] =
+{
+ -656, -656, -656, -365, 291, -656, 37, -656, -656, 949,
+ 53, -18, -656, -515, -656, -656, 35, 783, -163, -30,
+ -71, -656, -29, 438, -75, 793, 9, -656, -21, -656,
+ -656, 59, -656, 1080, -656, 1909, -311, 58, -481, 94,
+ -656, -3, -656, -656, -656, -656, 4, 276, 11, -272,
+ 84, -656, -656, -656, -656, -656, -656, -656, -656, -656,
+ -656, -656, -656, -656, -656, -656, -656, -2, -211, -377,
+ -110, -547, -656, -656, -656, -459, -656, -597, -656, -90,
+ 449, -656, -656, -656, -656, -656, -656, -656, -656, -221,
+ -656, 724, -656, -656, -656, -656, -385, -656, -656, -105,
+ -656, -656, -656, -656, -656, -656, 730, -656, -656, -656,
+ -656, -656, -656, -656, -656, 534, -253, -656, -656, -656,
+ 25, -656, 28, -656, 71, 808, 1336, 144, -656, -656,
+ 8, -430, 121, -656, -655, 122, -656, -635, -656, -615,
+ -478, -656, -656, -656, 18, -393, 1877, -224, -656, -656,
+ -19, -24, -45, 200, 76, 767, 1200
+};
+
+/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
+ positive, shift that token. If negative, reduce the rule which
+ number is the opposite. If zero, do what YYDEFACT says.
+ If YYTABLE_NINF, syntax error. */
+#define YYTABLE_NINF -537
+static const short int yytable[] =
+{
+ 77, 319, 77, 113, 113, 257, 396, 255, 213, 213,
+ 213, 561, 599, 229, 213, 213, 189, 267, 213, 252,
+ 241, 241, 280, 625, 241, 213, 609, 242, 242, 427,
+ 660, 242, 366, 206, 243, 243, 207, 532, 243, 467,
+ 722, 97, 301, 473, 304, 77, 213, 213, 499, 281,
+ 731, 237, 237, 206, 806, 237, 207, 625, 213, 689,
+ 691, 275, 289, 559, 217, 220, 190, 190, 277, 369,
+ 281, 803, 776, 91, 807, 91, 114, 114, 114, 362,
+ 251, 594, 352, 693, 270, 694, 231, 190, 222, 112,
+ 112, 804, 360, 840, 804, 612, 475, 804, 352, 112,
+ 710, 440, 713, -86, 213, 3, 77, -84, 386, 637,
+ -87, 245, 190, -91, 246, 350, 364, 259, 91, 668,
+ 365, 461, 282, 530, 569, 537, 540, 541, 311, 312,
+ 605, -329, 321, -89, -465, 112, -90, -86, -88, 222,
+ 295, 476, 703, 282, -85, 570, 94, 655, 94, 115,
+ 115, 560, 353, 359, 493, 638, 112, -84, 669, 232,
+ 251, 351, 256, 839, 462, 463, 785, 530, 353, 537,
+ 841, 395, 791, 263, 359, -329, 447, -329, 855, 91,
+ 370, 354, 448, 560, 344, 345, 346, 372, 250, 698,
+ 398, 94, 399, 450, -91, 283, 663, 354, -459, 448,
+ -86, 397, 218, -86, 219, 387, 77, 313, 704, 439,
+ 806, 256, -76, 606, 560, -79, 283, -515, -83, 664,
+ -86, 442, 213, 213, -86, -458, -86, 256, 760, 218,
+ 907, 219, -90, 297, 267, 560, 794, 218, -81, 219,
+ -516, -82, -78, -80, -459, 213, 445, 213, 213, -77,
+ 804, 241, 94, 241, 241, 347, 412, 77, 242, 315,
+ 242, 426, 77, 729, 218, 243, 219, 243, 243, 805,
+ -88, -458, -465, 689, 691, 875, 373, 402, 403, 91,
+ 316, -460, 237, 429, 237, 424, -86, 267, -284, 494,
+ 320, 430, 431, 62, 54, -84, 222, 489, 557, 348,
+ 747, 349, 496, 77, 213, 213, 213, 213, 77, 213,
+ 213, 568, 569, 213, 718, 77, 281, -76, 213, 391,
+ 374, 247, 375, -461, 866, 867, 491, -460, 357, 868,
+ 91, 491, -284, 570, -284, 91, 571, -516, 265, 545,
+ 547, 418, 479, 422, 425, 730, 213, 484, 299, 300,
+ 625, -463, 94, 311, 312, 213, 213, 625, 250, 480,
+ 481, 482, 483, 392, 825, 393, -462, -88, -88, -461,
+ -88, -453, 213, 626, 77, 213, 91, 405, 437, -63,
+ 635, 91, 639, 270, 818, 382, 77, -88, 91, 282,
+ 213, -88, 737, -88, 77, 647, 77, -463, 649, 265,
+ 457, -73, 112, 94, 213, 385, 529, -85, 94, 270,
+ 602, 641, -462, 754, 755, 753, 598, -453, 399, 213,
+ 650, 406, 392, 407, 438, 633, -464, 270, 452, 932,
+ 864, 622, 529, 77, 448, -456, 321, 876, -277, 634,
+ 74, 270, 74, 390, 458, 552, 459, 91, 675, 94,
+ 529, 334, 335, 228, 94, -512, 213, 206, 461, 91,
+ 207, 94, 283, -285, 529, -388, -513, 91, 379, 91,
+ -464, 394, -464, 451, -519, 453, 401, 455, 608, 608,
+ 895, -456, -277, 404, -277, 74, 342, 343, 344, 345,
+ 346, 190, 625, 270, 408, 721, 529, 399, 358, 648,
+ 412, 462, 463, 464, 908, 461, 91, -285, 469, -285,
+ 367, 368, -453, 413, 380, 435, 529, 701, 416, 417,
+ 94, -91, -388, -456, 896, -512, 897, 681, 433, 724,
+ 721, -519, 94, 321, 687, -388, -513, 690, 692, 461,
+ 94, 441, 94, -83, -519, 625, 74, 446, 462, 463,
+ 436, 213, 77, 454, -512, 265, -453, 461, -453, -62,
+ 456, -512, 470, 716, -388, -513, -388, -456, -388, -456,
+ 321, 77, -513, -519, 461, -519, 474, -519, 477, 94,
+ -515, 439, 462, 463, 466, 925, 478, 749, 680, 293,
+ 294, 683, 715, 495, 549, 585, 77, 491, 773, 871,
+ 462, 463, 468, 586, -90, 873, 697, 684, 265, 206,
+ 786, 590, 207, 213, -86, -515, 680, 462, 463, 471,
+ 342, 343, 344, 345, 346, 91, -82, 696, 604, 616,
+ -88, 627, 700, -85, 213, 645, -78, 636, -73, 682,
+ 213, 321, 190, 190, 91, 665, 74, -265, 674, 640,
+ 705, 699, -80, -516, 622, -77, 334, 335, 799, 77,
+ 782, 702, 706, 709, 711, 787, 789, 281, 741, 91,
+ 712, 752, -515, 560, 714, 721, 213, 728, 733, 589,
+ 734, 213, 213, 740, 736, -515, 617, 597, 235, 600,
+ 341, 342, 343, 344, 345, 346, 743, 74, 94, 750,
+ 757, 759, 74, 834, 766, 767, 762, 768, 836, 797,
+ -516, 837, 42, 43, -515, 809, -515, 94, -515, 77,
+ 800, -515, 213, -516, 813, 843, 644, 306, 307, 308,
+ 309, 310, 91, 817, 838, 77, 77, 77, 819, 820,
+ 282, 846, 94, 74, 854, 856, -266, 865, 74, 878,
+ 879, 831, -516, 112, -516, 74, -516, 892, 832, -516,
+ 883, 885, 901, 891, 894, 833, 893, 902, 859, 850,
+ 850, 321, 903, 796, 904, 77, 906, 816, 918, 919,
+ 922, 931, 933, 900, 213, 936, 334, 335, 938, 942,
+ 77, 77, 91, 77, 888, 943, 944, 949, 227, 117,
+ 935, 920, 543, 355, 934, 94, 770, 850, 91, 91,
+ 91, 77, 356, 283, 74, 192, 869, 608, 339, 340,
+ 341, 342, 343, 344, 345, 346, 74, 801, 802, 0,
+ 305, 0, 0, 0, 74, 0, 74, 0, 77, 77,
+ 0, 0, 851, 851, 0, 0, 0, 0, 91, 0,
+ 0, 0, 281, 0, 0, 112, 112, 0, 0, 0,
+ 0, 77, 0, 91, 91, 94, 91, 77, 0, 77,
+ 0, 77, 0, 74, 0, 0, 0, 0, 77, 0,
+ 851, 94, 94, 94, 91, 0, 0, 0, 0, 732,
+ 0, 850, 0, 112, 213, 0, 850, 850, 744, 0,
+ 0, 915, 0, 0, 0, 0, 0, 0, 0, 0,
+ 751, 91, 91, 0, 0, 852, 852, 0, 0, 0,
+ 850, 94, 0, 0, 563, 282, 564, 565, 566, 567,
+ 0, 270, 0, 0, 91, 0, 94, 94, 112, 94,
+ 91, 850, 91, 0, 91, 0, 0, 850, 0, 0,
+ 0, 91, 765, 852, 529, 0, 0, 94, 0, 210,
+ 210, 210, 0, 0, 851, 0, 568, 569, 0, 851,
+ 851, 0, 0, 0, 0, 0, 253, 112, 0, 0,
+ 0, 0, 112, 112, 94, 94, 0, 0, 570, 0,
+ 0, 571, 74, 851, 0, 0, 0, 268, 283, 0,
+ 0, 0, 0, 0, 0, 572, 112, 94, 0, 0,
+ 0, 74, 812, 94, 851, 94, 0, 94, 826, 0,
+ 851, 828, 829, 0, 94, 0, 0, 112, 822, 823,
+ 824, 0, 0, 112, 0, 0, 74, 852, 0, 0,
+ 0, 0, 852, 852, 0, 0, 563, 0, 564, 565,
+ 566, 567, 0, 0, 0, 363, 0, 0, 0, 563,
+ 0, 564, 565, 566, 567, 0, 852, 0, 857, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 861, 862, 0, 0, 852, 568, 569,
+ 0, 0, 0, 852, 0, 0, 238, 238, 0, 74,
+ 238, 568, 569, 0, 872, 0, 0, 0, 884, 886,
+ 570, 0, 0, 571, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 570, 260, 262, 571, 658, 0, 238,
+ 238, 889, 890, 321, -537, -537, -537, -537, 326, 327,
+ 302, 303, -537, -537, 0, 0, 0, 0, 334, 335,
+ 0, 0, 0, 0, 905, 0, 0, 912, 913, 74,
+ 0, 0, 909, 917, 910, 0, 0, 0, 0, 0,
+ 676, 911, 0, 210, 210, 74, 74, 74, 337, 338,
+ 339, 340, 341, 342, 343, 344, 345, 346, 0, 0,
+ 0, 939, 321, 322, 323, 324, 325, 326, 327, 328,
+ 329, 330, 331, 332, 333, 0, 0, 334, 335, 849,
+ 853, 0, 0, 945, 0, 74, 947, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 952, 0, 0, 0,
+ 74, 74, 0, 74, 0, 336, 0, 337, 338, 339,
+ 340, 341, 342, 343, 344, 345, 346, 870, 0, 274,
+ 278, 74, 0, 0, 0, 210, 210, 210, 210, 0,
+ 485, 486, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 74, 74,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 74, 0, 0, 0, 0, 0, 74, 0, 74,
+ 0, 74, 0, 238, 238, 238, 302, 0, 74, 0,
+ 0, 0, 0, 0, 0, 0, 562, 238, 0, 238,
+ 238, 921, 0, 0, 0, 0, 929, 930, 93, 0,
+ 93, 0, 0, 0, 0, 0, 0, 0, 0, 444,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 941, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 268, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 948, 0, 93, 0, 0, 0, 951, 0, 0,
+ 0, 0, 0, 0, 0, 238, 0, 0, 0, 0,
+ 497, 500, 501, 502, 503, 504, 505, 506, 507, 508,
+ 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
+ 519, 520, 521, 522, 523, 524, 525, 0, 238, 0,
+ 0, 0, 0, 0, 0, 0, 0, 546, 548, 0,
+ 0, 0, 415, 415, 93, 0, 0, 0, 0, 0,
+ 428, 0, 0, 0, 238, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 591, 0, 238, 0, 546, 548, 0, 0, 0, 238,
+ 0, 0, 0, 0, 0, 0, 238, 0, 0, 0,
+ 0, 0, 238, 238, 0, 0, 238, 0, 0, 0,
+ 0, 629, 210, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 643, 0, 0, 0, 0, 646,
+ 0, 0, 0, 0, 0, 0, 0, 238, 0, 0,
+ 238, 0, 238, 0, 0, 0, 0, 0, 238, 0,
+ 0, 0, 0, 0, 93, 0, 0, 0, 274, 0,
+ 0, 0, 0, 0, 0, 0, 0, 666, 667, 0,
+ 0, 0, 0, 0, 210, 0, 0, 0, 238, 0,
+ 0, 0, 0, 0, 274, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 588, 0, 0, 0, 0, 0,
+ 0, 756, 274, 0, -536, 93, 0, 0, 0, 0,
+ 93, 0, -536, -536, -536, 0, 274, -536, -536, -536,
+ 415, -536, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -536, 0, 0, 0, 0, 415, 0, 0, 0,
+ 0, -536, -536, 0, -536, -536, -536, -536, -536, 0,
+ 0, 93, 0, 0, 0, 0, 93, 0, 0, 0,
+ 0, 0, 0, 93, 0, 0, 0, 0, 274, 0,
+ 0, 0, 0, 0, 0, 0, 238, 0, 0, 0,
+ 0, 0, 0, 210, 0, 0, 0, -536, 0, 0,
+ 0, 238, 0, 0, 0, 0, 0, 672, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 238,
+ 0, 0, 0, 238, -536, 0, 0, 0, 238, 0,
+ 0, 0, 93, 0, 0, 0, 238, 0, 0, 0,
+ -536, 0, 0, -536, 93, 0, 250, -536, -536, 0,
+ -536, 758, 93, 0, 93, 0, 0, 688, 0, 0,
+ 688, 688, 672, 0, 672, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 238, 0, 780, 781, 783, 784,
+ 688, 0, 0, 788, 790, 0, 0, 0, 0, 0,
+ 0, 93, 0, 0, 0, 0, 708, 0, 708, 0,
+ 708, 0, 238, 0, 0, 0, 720, 723, 0, 723,
+ 321, 322, 323, 324, 325, 326, 327, 723, 0, 330,
+ 331, 0, 0, 0, 0, 334, 335, 783, 0, 788,
+ 790, 0, 0, 0, 0, 0, 238, 0, 0, 0,
+ 0, 0, 415, 238, 0, 0, 0, 238, 0, 0,
+ 238, 0, 0, 0, 415, 337, 338, 339, 340, 341,
+ 342, 343, 344, 345, 346, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 238, 0,
+ 764, 0, 0, 0, 0, 0, 860, 0, 0, 764,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 95,
+ 0, 95, 0, 0, 0, 0, 0, 95, 95, 95,
+ 93, 0, 0, 95, 95, 672, 0, 95, 860, 0,
+ 0, 238, 0, 0, 95, 0, 0, 881, 0, 93,
+ 238, 0, 0, 0, 0, 238, 0, 0, 0, 811,
+ 0, 0, 815, 0, 95, 95, 95, 0, 0, 0,
+ 0, 0, 0, 0, 93, 0, 0, 95, 0, 0,
+ 0, 0, 415, 0, 0, 415, 415, 0, 0, 0,
+ 0, 0, 0, 0, 688, 688, 0, 0, 0, 0,
+ 764, 0, 0, 238, 0, 238, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 764, 238, 0, 0, 0,
+ 0, 0, 0, 95, 0, 95, 0, 0, 0, 0,
+ 0, 0, 0, 0, 238, 0, 238, 93, 0, 0,
+ 0, 0, 708, 708, 0, 0, 0, 708, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 238, 0,
+ 0, 0, 723, 0, 0, 0, 238, 0, 0, 0,
+ 0, 0, 415, 415, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 93, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 93, 93, 93, 0, 0, 0, 0,
+ 0, 415, 415, 0, 0, 95, 0, 415, 0, 0,
+ 0, 0, 0, 0, 0, 0, 274, 0, 0, 0,
+ 0, 95, 95, 0, 0, 0, 0, 708, 0, 588,
+ 723, 0, 0, 93, 0, 415, 0, 0, 0, 0,
+ 0, 0, 0, 0, 95, 0, 95, 95, 93, 93,
+ 0, 93, 0, 0, 0, 0, 95, 415, 0, 0,
+ 415, 95, 409, 410, 411, 0, 0, 0, 0, 93,
+ 415, 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, 93, 93, 0, 0,
+ 0, 0, 95, 95, 95, 95, 95, 95, 95, 95,
+ 0, 0, 95, 0, 95, 0, 0, 95, 0, 93,
+ 0, 0, 0, 0, 0, 93, 0, 93, 0, 93,
+ 0, 0, 0, 0, 0, 0, 93, 0, 0, 0,
+ 0, 0, 0, 0, 490, 95, 0, 0, 0, 498,
+ 0, 0, 0, 0, 95, 95, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 95, 0, 95, 95, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 95, 0, 0, 0, 95,
+ 0, 0, 0, 95, 0, 95, 0, 0, 0, 0,
+ 0, 0, 0, 95, 0, 0, 526, 527, 0, 0,
+ 528, 0, 0, 0, 0, 0, 0, 0, 95, 162,
+ 163, 164, 165, 166, 167, 0, 168, 169, 498, 0,
+ 170, 0, 95, 0, 171, 172, 173, 174, 0, 0,
+ 0, 618, 620, 0, 0, 624, 0, 0, 175, 0,
+ 630, 0, 0, 0, 0, 95, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 176, 177, 178, 179,
+ 180, 181, 182, 183, 184, 185, 652, 0, 186, 624,
+ 0, 652, 0, 0, 0, 0, 187, 0, 0, 0,
+ 0, -278, 0, 0, 0, 0, 0, 0, 0, -278,
+ -278, -278, 0, 0, -278, -278, -278, 0, -278, 0,
+ 0, 0, 0, 0, 0, 0, 0, 673, -278, -278,
+ -278, 0, 0, 0, 0, 0, 0, 0, -278, -278,
+ 0, -278, -278, -278, -278, -278, 0, 0, 0, 321,
+ 322, 323, 324, 325, 326, 327, 328, 0, 330, 331,
+ 95, 95, 0, 0, 334, 335, 0, -278, -278, -278,
+ -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
+ 95, 0, -278, -278, -278, 0, 0, -278, 0, 0,
+ 0, 0, 0, -278, 337, 338, 339, 340, 341, 342,
+ 343, 344, 345, 346, 0, 95, 0, -278, 0, 0,
+ -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
+ -278, -278, 95, 0, 0, 717, 0, -278, -278, -278,
+ -278, -278, 0, 0, -278, -278, 0, -278, 0, 0,
+ 735, 0, 0, 95, 0, 0, 0, 0, 0, 95,
+ 0, 0, 0, 0, 0, 0, 0, 0, 742, 0,
+ 0, 0, 745, 0, 0, 0, 0, 746, 95, 0,
+ 0, 0, 0, 0, 0, 620, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 95, 0, 0, 0, 0,
+ 95, 95, 0, 0, 0, -284, 0, 0, 0, 0,
+ 0, 0, 0, -284, -284, -284, 0, 0, 0, -284,
+ -284, 0, -284, 779, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 95, 0,
+ 0, 95, -284, -284, 0, -284, -284, -284, -284, -284,
+ 0, 798, 0, 0, 95, 95, 95, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -284, -284, -284, -284, -284, -284, -284, -284, -284,
+ -284, -284, -284, -284, 0, 652, -284, -284, -284, 0,
+ 679, 0, 624, 0, 95, 0, 0, 0, 0, 624,
+ 0, 0, 0, 95, 0, 0, 0, 0, 0, 95,
+ 95, 0, 95, -89, -284, 0, -284, -284, -284, -284,
+ -284, -284, -284, -284, -284, -284, 0, 858, 0, 0,
+ 95, -284, -284, 0, -284, -81, 0, 0, -284, -284,
+ 0, -284, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 95, 95, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 874, 0, 0, 0, 0, 0, 0, 0, 676, 882,
+ 95, 0, 0, 0, 887, 0, 95, 0, 95, 0,
+ 95, 0, 0, 0, 0, 0, 0, 95, 0, 0,
+ 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
+ 331, 332, 333, 95, 0, 334, 335, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 620, 0, 624, 0, 0, 0, 0, 0,
+ 0, 0, 0, 336, 0, 337, 338, 339, 340, 341,
+ 342, 343, 344, 345, 346, 0, 0, 0, 0, 0,
+ 0, 0, 0, 937, -221, 940, 0, 0, 0, 0,
+ -536, 4, 0, 5, 6, 7, 8, 9, 0, 0,
+ 0, 10, 11, 0, 0, 0, 12, 624, 13, 14,
+ 15, 16, 17, 18, 19, 950, 0, 0, 0, 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,
+ 0, 42, 43, 0, 44, 45, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 46, 0, 0, 47, 48, 0,
+ 49, 50, 0, 51, 0, 52, 0, 53, 54, 55,
+ 56, 57, 58, -519, 0, 0, 0, 0, 0, 0,
+ 0, -519, -519, -519, 0, 0, 0, -519, -519, 0,
+ -519, 59, 60, 61, 0, 0, 0, 0, 0, -519,
+ 0, 0, 0, 0, -536, 0, -536, 0, 0, 0,
+ -519, -519, 0, -519, -519, -519, -519, -519, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, -519,
+ -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
+ -519, -519, 0, 0, -519, -519, -519, 0, 678, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, -519,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -87, -519, 0, -519, -519, -519, -519, -519, -519,
+ -519, -519, -519, -519, 0, 0, 0, 0, -519, -519,
+ -519, 0, -519, -79, 0, 0, -519, -519, 4, -519,
+ 5, 6, 7, 8, 9, -536, -536, -536, 10, 11,
+ 0, 0, -536, 12, 0, 13, 14, 15, 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, 29, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 0, 40, 41, 0, 42, 43,
+ 0, 44, 45, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 46, 0, 0, 47, 48, 0, 49, 50, 0,
+ 51, 0, 52, 0, 53, 54, 55, 56, 57, 58,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 59, 60,
+ 61, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -536, 4, -536, 5, 6, 7, 8, 9, 0,
+ 0, -536, 10, 11, 0, -536, -536, 12, 0, 13,
+ 14, 15, 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, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 0, 40,
+ 41, 0, 42, 43, 0, 44, 45, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 46, 0, 0, 47, 48,
+ 0, 49, 50, 0, 51, 0, 52, 0, 53, 54,
+ 55, 56, 57, 58, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 59, 60, 61, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -536, 4, -536, 5, 6,
+ 7, 8, 9, 0, 0, -536, 10, 11, 0, 0,
+ -536, 12, -536, 13, 14, 15, 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, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 0, 40, 41, 0, 42, 43, 0, 44,
+ 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 46,
+ 0, 0, 47, 48, 0, 49, 50, 0, 51, 0,
+ 52, 0, 53, 54, 55, 56, 57, 58, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 59, 60, 61, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, -536,
+ 4, -536, 5, 6, 7, 8, 9, 0, 0, -536,
+ 10, 11, 0, 0, -536, 12, 0, 13, 14, 15,
+ 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, 29, 30, 31, 32, 33,
+ 34, 35, 36, 37, 38, 39, 0, 40, 41, 0,
+ 42, 43, 0, 44, 45, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 46, 0, 0, 47, 48, 0, 49,
+ 50, 0, 51, 0, 52, 0, 53, 54, 55, 56,
+ 57, 58, 0, 0, 0, 0, 0, 0, 4, 0,
+ 5, 6, 7, 8, 9, 0, -536, -536, 10, 11,
+ 59, 60, 61, 12, 0, 13, 14, 15, 16, 17,
+ 18, 19, 0, -536, 0, -536, 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, 0, 42, 43,
+ 0, 44, 45, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 46, 0, 0, 47, 48, 0, 49, 50, 0,
+ 51, 0, 52, 0, 53, 54, 55, 56, 57, 58,
+ 0, 0, 0, 0, 0, 0, 4, 0, 5, 6,
+ 7, 8, 9, 0, 0, 0, 10, 11, 59, 60,
+ 61, 12, 0, 13, 14, 15, 16, 17, 18, 19,
+ 0, -536, 0, -536, 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, 0, 42, 43, 0, 44,
+ 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 46,
+ 0, 0, 264, 48, 0, 49, 50, 0, 51, 0,
+ 52, 0, 53, 54, 55, 56, 57, 58, 0, 0,
+ 0, 0, 0, 0, 4, 0, 5, 6, 7, 8,
+ 9, 0, 0, 0, 10, 11, 59, 60, 61, 12,
+ 0, 13, 14, 15, 16, 17, 18, 19, -536, -536,
+ 0, -536, 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, 0, 42, 43, 0, 44, 45, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 46, 0, 0,
+ 47, 48, 0, 49, 50, 0, 51, 0, 52, 0,
+ 53, 54, 55, 56, 57, 58, 0, 0, 0, 0,
+ 0, 0, 4, 0, 5, 6, 7, 8, 9, 0,
+ 0, 0, 10, 11, 59, 60, 61, 12, 0, 13,
+ 14, 15, 16, 17, 18, 19, -536, -536, 0, -536,
+ 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, 0, 42, 43, 0, 44, 45, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 46, 0, 0, 47, 48,
+ 0, 49, 50, 0, 51, 0, 52, 0, 53, 54,
+ 55, 56, 57, 58, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 59, 60, 61, 0, 0, -536, 0, 0,
+ 0, 0, 0, 0, 0, -536, 4, -536, 5, 6,
+ 7, 8, 9, 0, 0, -536, 10, 11, 0, 0,
+ 0, 12, 0, 13, 14, 15, 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, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 0, 40, 41, 0, 42, 43, 0, 44,
+ 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 46,
+ 0, 0, 47, 48, 0, 49, 50, 0, 51, 0,
+ 52, 0, 53, 54, 55, 56, 57, 58, 0, 0,
+ 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
+ 9, 0, 0, 0, 10, 11, 59, 60, 61, 12,
+ 0, 13, 14, 15, 98, 99, 18, 19, 0, -536,
+ 0, -536, 0, 100, 21, 22, 23, 24, 25, 26,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 29,
+ 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
+ 233, 40, 41, 0, 42, 43, 0, 44, 45, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 209, 0, 0,
+ 108, 48, 0, 49, 50, 0, 234, 235, 52, 0,
+ 53, 54, 55, 56, 57, 58, 0, 0, 0, 0,
+ 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
+ 0, 0, 10, 11, 59, 236, 61, 12, 0, 13,
+ 14, 15, 16, 17, 18, 19, 0, 0, 0, 256,
+ 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
+ 27, 0, 0, 0, 0, 0, 0, 29, 0, 0,
+ 32, 33, 34, 35, 36, 37, 38, 39, 0, 40,
+ 41, 0, 42, 43, 0, 44, 45, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 209, 0, 0, 108, 48,
+ 0, 49, 50, 0, 0, 0, 52, 0, 53, 54,
+ 55, 56, 57, 58, 0, 0, 0, 0, 0, 0,
+ 0, 0, 5, 6, 7, 8, 9, 0, 0, 0,
+ 10, 11, 59, 60, 61, 12, 0, 13, 14, 15,
+ 16, 17, 18, 19, 0, 218, 0, 219, 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, 0,
+ 42, 43, 0, 44, 45, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 46, 0, 0, 47, 48, 0, 49,
+ 50, 0, 51, 0, 52, 0, 53, 54, 55, 56,
+ 57, 58, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
+ 59, 60, 61, 12, 0, 13, 14, 15, 98, 99,
+ 18, 19, 0, 401, 0, 0, 0, 100, 101, 102,
+ 23, 24, 25, 26, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 103, 0, 0, 32, 33, 34, 35,
+ 36, 37, 38, 39, 0, 40, 41, 0, 42, 43,
+ 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
+ 331, 332, 333, 0, 0, 334, 335, 0, 0, 0,
+ 0, 279, 0, 0, 317, 48, 0, 49, 50, 0,
+ 771, 772, 52, 0, 53, 54, 55, 56, 57, 58,
+ 0, 0, 0, 336, 0, 337, 338, 339, 340, 341,
+ 342, 343, 344, 345, 346, 0, 0, 0, 109, 0,
+ 0, 0, 118, 119, 120, 121, 122, 123, 124, 125,
+ 256, 762, 126, 127, 128, 129, 130, 0, 0, 131,
+ 132, 133, 134, 135, 136, 137, 0, 0, 0, 138,
+ 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
+ 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
+ 159, 160, 36, 37, 161, 39, 0, 0, 0, 0,
+ 0, 0, 0, 162, 163, 164, 165, 166, 167, 0,
+ 168, 169, 0, 0, 170, 0, 0, 0, 171, 172,
+ 173, 174, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
+ 0, 0, 186, 0, -512, -512, -512, 0, -512, 0,
+ 187, 188, -512, -512, 0, 0, 0, -512, 0, -512,
+ -512, -512, -512, -512, -512, -512, 0, -512, 0, 0,
+ 0, -512, -512, -512, -512, -512, -512, -512, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -512, 0, 0,
+ -512, -512, -512, -512, -512, -512, -512, -512, -512, -512,
+ -512, 0, -512, -512, 0, -512, -512, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -512, 0, 0, -512, -512,
+ 0, -512, -512, 0, -512, -512, -512, -512, -512, -512,
+ -512, -512, -512, -512, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -512, -512, -512, 0, -512, -513, -513, -513,
+ 0, -513, 0, -512, 0, -513, -513, 0, 0, 0,
+ -513, 0, -513, -513, -513, -513, -513, -513, -513, 0,
+ -513, 0, 0, 0, -513, -513, -513, -513, -513, -513,
+ -513, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ -513, 0, 0, -513, -513, -513, -513, -513, -513, -513,
+ -513, -513, -513, -513, 0, -513, -513, 0, -513, -513,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, -513, 0,
+ 0, -513, -513, 0, -513, -513, 0, -513, -513, -513,
+ -513, -513, -513, -513, -513, -513, -513, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -513, -513, -513, 0, -513,
+ -515, -515, -515, 0, -515, 0, -513, 0, -515, -515,
+ 0, 0, 0, -515, 0, -515, -515, -515, -515, -515,
+ -515, -515, 0, 0, 0, 0, 0, -515, -515, -515,
+ -515, -515, -515, -515, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -515, 0, 0, -515, -515, -515, -515,
+ -515, -515, -515, -515, -515, -515, -515, 0, -515, -515,
+ 0, -515, -515, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -515, 727, 0, -515, -515, 0, -515, -515, 0,
+ -515, -515, -515, 0, -515, -515, -515, -515, -515, -515,
+ 0, 0, 0, 0, 0, -87, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, -515, -515,
+ -515, 0, -516, -516, -516, 0, -516, 0, 0, -515,
+ -516, -516, 0, 0, 0, -516, 0, -516, -516, -516,
+ -516, -516, -516, -516, 0, 0, 0, 0, 0, -516,
+ -516, -516, -516, -516, -516, -516, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -516, 0, 0, -516, -516,
+ -516, -516, -516, -516, -516, -516, -516, -516, -516, 0,
+ -516, -516, 0, -516, -516, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -516, 679, 0, -516, -516, 0, -516,
+ -516, 0, -516, -516, -516, 0, -516, -516, -516, -516,
+ -516, -516, 0, 0, 0, 0, 0, -89, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ -516, -516, -516, 0, -255, -255, -255, 0, -255, 0,
+ 0, -516, -255, -255, 0, 0, 0, -255, 0, -255,
+ -255, -255, -255, -255, -255, -255, 0, 0, 0, 0,
+ 0, -255, -255, -255, -255, -255, -255, -255, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -255, 0, 0,
+ -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
+ -255, 0, -255, -255, 0, -255, -255, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -255, 0, 0, -255, -255,
+ 0, -255, -255, 0, -255, -255, -255, 0, -255, -255,
+ -255, -255, -255, -255, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -255, -255, -255, 0, -255, -255, -255, 0,
+ -255, 0, 0, 247, -255, -255, 0, 0, 0, -255,
+ 0, -255, -255, -255, -255, -255, -255, -255, 0, 0,
+ 0, 0, 0, -255, -255, -255, -255, -255, -255, -255,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, -255,
+ 0, 0, -255, -255, -255, -255, -255, -255, -255, -255,
+ -255, -255, -255, 0, -255, -255, 0, -255, -255, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -255, 0, 0,
+ -255, -255, 0, -255, -255, 0, -255, -255, -255, 0,
+ -255, -255, -255, -255, -255, -255, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -255, -255, -255, 0, -517, -517,
+ -517, 0, -517, 0, 0, 250, -517, -517, 0, 0,
+ 0, -517, 0, -517, -517, -517, -517, -517, -517, -517,
+ 0, 0, 0, 0, 0, -517, -517, -517, -517, -517,
+ -517, -517, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -517, 0, 0, -517, -517, -517, -517, -517, -517,
+ -517, -517, -517, -517, -517, 0, -517, -517, 0, -517,
+ -517, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, -517,
+ 0, 0, -517, -517, 0, -517, -517, 0, -517, -517,
+ -517, 0, -517, -517, -517, -517, -517, -517, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, -517, -517, -517, 0,
+ -518, -518, -518, 0, -518, 0, 0, -517, -518, -518,
+ 0, 0, 0, -518, 0, -518, -518, -518, -518, -518,
+ -518, -518, 0, 0, 0, 0, 0, -518, -518, -518,
+ -518, -518, -518, -518, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -518, 0, 0, -518, -518, -518, -518,
+ -518, -518, -518, -518, -518, -518, -518, 0, -518, -518,
+ 0, -518, -518, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -518, 0, 0, -518, -518, 0, -518, -518, 0,
+ -518, -518, -518, 0, -518, -518, -518, -518, -518, -518,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, -518, -518,
+ -518, 118, 119, 120, 121, 122, 123, 124, 125, -518,
+ 0, 126, 127, 128, 129, 130, 0, 0, 131, 132,
+ 133, 134, 135, 136, 137, 0, 0, 0, 138, 139,
+ 140, 194, 195, 196, 197, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 198, 199, 200,
+ 160, 286, 287, 201, 288, 0, 0, 0, 0, 0,
+ 0, 0, 162, 163, 164, 165, 166, 167, 0, 168,
+ 169, 0, 0, 170, 0, 0, 0, 171, 172, 173,
+ 174, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 175, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 176,
+ 177, 178, 179, 180, 181, 182, 183, 184, 185, 0,
+ 0, 186, 0, 0, 0, 0, 0, 0, 0, 187,
+ 118, 119, 120, 121, 122, 123, 124, 125, 0, 0,
+ 126, 127, 128, 129, 130, 0, 0, 131, 132, 133,
+ 134, 135, 136, 137, 0, 0, 0, 138, 139, 140,
+ 194, 195, 196, 197, 145, 146, 147, 148, 149, 150,
+ 151, 152, 153, 154, 155, 156, 198, 199, 200, 160,
+ 254, 0, 201, 0, 0, 0, 0, 0, 0, 0