50 #define YYBISON_VERSION "2.3" 53 #define YYSKELETON_NAME "yacc.c" 59 #define YYLSP_NEEDED 1 189 #define END_OF_INPUT 0 190 #define keyword_class 258 191 #define keyword_module 259 192 #define keyword_def 260 193 #define keyword_undef 261 194 #define keyword_begin 262 195 #define keyword_rescue 263 196 #define keyword_ensure 264 197 #define keyword_end 265 198 #define keyword_if 266 199 #define keyword_unless 267 200 #define keyword_then 268 201 #define keyword_elsif 269 202 #define keyword_else 270 203 #define keyword_case 271 204 #define keyword_when 272 205 #define keyword_while 273 206 #define keyword_until 274 207 #define keyword_for 275 208 #define keyword_break 276 209 #define keyword_next 277 210 #define keyword_redo 278 211 #define keyword_retry 279 212 #define keyword_in 280 213 #define keyword_do 281 214 #define keyword_do_cond 282 215 #define keyword_do_block 283 216 #define keyword_do_LAMBDA 284 217 #define keyword_return 285 218 #define keyword_yield 286 219 #define keyword_super 287 220 #define keyword_self 288 221 #define keyword_nil 289 222 #define keyword_true 290 223 #define keyword_false 291 224 #define keyword_and 292 225 #define keyword_or 293 226 #define keyword_not 294 227 #define modifier_if 295 228 #define modifier_unless 296 229 #define modifier_while 297 230 #define modifier_until 298 231 #define modifier_rescue 299 232 #define keyword_alias 300 233 #define keyword_defined 301 234 #define keyword_BEGIN 302 235 #define keyword_END 303 236 #define keyword__LINE__ 304 237 #define keyword__FILE__ 305 238 #define keyword__ENCODING__ 306 239 #define tIDENTIFIER 307 243 #define tCONSTANT 311 248 #define tRATIONAL 316 249 #define tIMAGINARY 317 250 #define tSTRING_CONTENT 318 253 #define tBACK_REF 321 254 #define tREGEXP_END 322 280 #define tLPAREN_ARG 327 284 #define tLBRACE_ARG 331 290 #define tSTRING_BEG 337 291 #define tXSTRING_BEG 338 292 #define tREGEXP_BEG 339 293 #define tWORDS_BEG 340 294 #define tQWORDS_BEG 341 295 #define tSYMBOLS_BEG 342 296 #define tQSYMBOLS_BEG 343 297 #define tSTRING_DBEG 344 298 #define tSTRING_DEND 345 299 #define tSTRING_DVAR 346 300 #define tSTRING_END 347 302 #define tLABEL_END 349 304 #define tUMINUS_NUM 351 305 #define tLAST_TOKEN 352 315 # error needs pure parser 318 #define PARSER_DEBUG 0 321 #define YYERROR_VERBOSE 1 322 #define YYSTACK_USE_ALLOCA 0 337 #ifndef WARN_PAST_SCOPE 338 # define WARN_PAST_SCOPE 0 343 #define YYMALLOC(size) rb_parser_malloc(parser, (size)) 344 #define YYREALLOC(ptr, size) rb_parser_realloc(parser, (ptr), (size)) 345 #define YYCALLOC(nelem, size) rb_parser_calloc(parser, (nelem), (size)) 346 #define YYFREE(ptr) rb_parser_free(parser, (ptr)) 347 #define YYFPRINTF rb_parser_printf 348 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL 349 # define YY_LOCATION_PRINT(File, Loc) \ 350 rb_parser_printf(parser, "%d.%d-%d.%d", \ 351 (Loc).first_line, (Loc).first_column, \ 352 (Loc).last_line, (Loc).last_column) 358 #define malloc YYMALLOC 359 #define realloc YYREALLOC 360 #define calloc YYCALLOC 381 #define DEF_EXPR(n) EXPR_##n = (1 << EXPR_##n##_bit) 400 #define IS_lex_state_for(x, ls) ((x) & (ls)) 401 #define IS_lex_state_all_for(x, ls) (((x) & (ls)) == (ls)) 402 #define IS_lex_state(ls) IS_lex_state_for(lex_state, (ls)) 403 #define IS_lex_state_all(ls) IS_lex_state_all_for(lex_state, (ls)) 405 # define SET_LEX_STATE(ls) \ 408 rb_parser_trace_lex_state(parser, lex_state, (ls), __LINE__) : \ 409 (enum lex_state_e)(ls))) 413 # define SHOW_BITSTACK(stack, name) (yydebug ? rb_parser_show_bitstack(parser, stack, name, __LINE__) : (void)0) 414 # define BITSTACK_PUSH(stack, n) (((stack) = ((stack)<<1)|((n)&1)), SHOW_BITSTACK(stack, #stack"(push)")) 415 # define BITSTACK_POP(stack) (((stack) = (stack) >> 1), SHOW_BITSTACK(stack, #stack"(pop)")) 416 # define BITSTACK_LEXPOP(stack) (((stack) = ((stack) >> 1) | ((stack) & 1)), SHOW_BITSTACK(stack, #stack"(lexpop)")) 417 # define BITSTACK_SET_P(stack) (SHOW_BITSTACK(stack, #stack), (stack)&1) 418 # define BITSTACK_SET(stack, n) ((stack)=(n), SHOW_BITSTACK(stack, #stack"(set)")) 420 #define COND_PUSH(n) BITSTACK_PUSH(cond_stack, (n)) 421 #define COND_POP() BITSTACK_POP(cond_stack) 422 #define COND_LEXPOP() BITSTACK_LEXPOP(cond_stack) 423 #define COND_P() BITSTACK_SET_P(cond_stack) 424 #define COND_SET(n) BITSTACK_SET(cond_stack, (n)) 426 #define CMDARG_PUSH(n) BITSTACK_PUSH(cmdarg_stack, (n)) 427 #define CMDARG_POP() BITSTACK_POP(cmdarg_stack) 428 #define CMDARG_LEXPOP() BITSTACK_LEXPOP(cmdarg_stack) 429 #define CMDARG_P() BITSTACK_SET_P(cmdarg_stack) 430 #define CMDARG_SET(n) BITSTACK_SET(cmdarg_stack, (n)) 450 #define DVARS_INHERIT ((void*)1) 451 #define DVARS_TOPSCOPE NULL 452 #define DVARS_SPECIAL_P(tbl) (!POINTER_P(tbl)) 453 #define POINTER_P(val) ((VALUE)(val) & ~(VALUE)3) 509 VALUE compile_option;
517 unsigned int eofp: 1;
520 unsigned int has_shebang: 1;
523 unsigned int in_kwarg: 1;
526 unsigned int token_seen: 1;
527 unsigned int token_info_enabled: 1;
529 unsigned int past_scope_enabled: 1;
531 unsigned int error_p: 1;
532 unsigned int cr_seen: 1;
537 NODE *eval_tree_begin;
552 VALUE parsing_thread;
557 #define intern_cstr(n,l,en) rb_intern3(n,l,en) 559 #define intern_cstr(n,l,en) rb_intern3(n,l,en) 562 #define STR_NEW(p,n) rb_enc_str_new((p),(n),current_enc) 563 #define STR_NEW0() rb_enc_str_new(0,0,current_enc) 564 #define STR_NEW2(p) rb_enc_str_new((p),strlen(p),current_enc) 565 #define STR_NEW3(p,n,e,func) parser_str_new((p),(n),(e),(func),current_enc) 566 #define TOK_INTERN() intern_cstr(tok(), toklen(), current_enc) 568 static int parser_yyerror(
struct parser_params*,
const char*);
569 #define yyerror0(msg) parser_yyerror(parser, (msg)) 570 #define yyerror(yylloc, parser, msg) yyerror0(msg) 571 #define token_flush(p) ((p)->lex.ptok = (p)->lex.pcur) 573 #define lex_strterm (parser->lex.strterm) 574 #define lex_state (parser->lex.state) 575 #define cond_stack (parser->cond_stack) 576 #define cmdarg_stack (parser->cmdarg_stack) 577 #define paren_nest (parser->lex.paren_nest) 578 #define lpar_beg (parser->lex.lpar_beg) 579 #define brace_nest (parser->lex.brace_nest) 580 #define in_single (parser->in_single) 581 #define in_def (parser->in_def) 582 #define in_main (parser->in_main) 583 #define in_defined (parser->in_defined) 584 #define tokenbuf (parser->tokenbuf) 585 #define tokidx (parser->tokidx) 586 #define toksiz (parser->toksiz) 587 #define tokline (parser->tokline) 588 #define lex_input (parser->lex.input) 589 #define lex_lastline (parser->lex.lastline) 590 #define lex_nextline (parser->lex.nextline) 591 #define lex_pbeg (parser->lex.pbeg) 592 #define lex_p (parser->lex.pcur) 593 #define lex_pend (parser->lex.pend) 594 #define heredoc_end (parser->heredoc_end) 595 #define heredoc_indent (parser->heredoc_indent) 596 #define heredoc_line_indent (parser->heredoc_line_indent) 597 #define command_start (parser->command_start) 598 #define lex_gets_ptr (parser->lex.gets_ptr) 599 #define lex_gets (parser->lex.gets) 600 #define lvtbl (parser->lvtbl) 601 #define ruby__end__seen (parser->ruby__end__seen) 602 #define ruby_sourceline (parser->ruby_sourceline) 603 #define ruby_sourcefile (parser->ruby_sourcefile) 604 #define ruby_sourcefile_string (parser->ruby_sourcefile_string) 605 #define current_enc (parser->enc) 606 #define current_arg (parser->cur_arg) 607 #define yydebug (parser->yydebug) 609 #define compile_for_eval (0) 611 #define compile_for_eval (parser->base_block != 0 && !in_main) 612 #define ruby_eval_tree (parser->eval_tree) 613 #define ruby_eval_tree_begin (parser->eval_tree_begin) 614 #define ruby_debug_lines (parser->debug_lines) 615 #define ruby_coverage (parser->coverage) 617 #define tokp lex.ptok 619 #define token_column ((int)(parser->tokp - lex_pbeg)) 621 #define CALL_Q_P(q) ((q) == TOKEN2VAL(tANDDOT)) 622 #define NODE_CALL_Q(q) (CALL_Q_P(q) ? NODE_QCALL : NODE_CALL) 623 #define NEW_QCALL(q,r,m,a) NEW_NODE(NODE_CALL_Q(q),r,m,a) 625 #define lambda_beginning_p() (lpar_beg && lpar_beg == paren_nest) 630 parser_set_line(
NODE *n,
int l)
637 set_line_body(
NODE *body,
int line)
647 #define yyparse ruby_yyparse 650 #define rb_node_newnode(type, a1, a2, a3) node_newnode(parser, (type), (a1), (a2), (a3)) 653 #define cond(node,column) cond_gen(parser, (node), FALSE, column) 654 #define method_cond(node,column) cond_gen(parser, (node), TRUE, column) 655 #define new_nil() NEW_NIL() 657 #define new_if(cc,left,right,column) new_if_gen(parser, (cc), (left), (right), (column)) 659 #define new_unless(cc,left,right,column) new_unless_gen(parser, (cc), (left), (right), (column)) 661 #define logop(id,node1,node2,column) \ 662 logop_gen(parser, ((id)==idAND||(id)==idANDOP)?NODE_AND:NODE_OR, \ 663 (node1), (node2), (column)) 671 static NODE *remove_begin_all(
NODE*);
672 #define value_expr(node) value_expr_gen(parser, (node) = remove_begin(node)) 673 #define void_expr0(node) void_expr_gen(parser, (node)) 674 #define void_expr(node) void_expr0((node) = remove_begin(node)) 676 #define void_stmts(node) void_stmts_gen(parser, (node)) 678 #define reduce_nodes(n) reduce_nodes_gen(parser,(n)) 680 #define block_dup_check(n1,n2) block_dup_check_gen(parser,(n1),(n2)) 683 #define block_append(h,t,column) block_append_gen(parser,(h),(t),(column)) 685 #define list_append(l,i,column) list_append_gen(parser,(l),(i),(column)) 688 #define arg_append(h,t,column) arg_append_gen(parser,(h),(t),(column)) 690 #define arg_concat(h,t,column) arg_concat_gen(parser,(h),(t),(column)) 692 #define literal_concat(h,t,column) literal_concat_gen(parser,(h),(t),(column)) 695 #define new_evstr(n, column) new_evstr_gen(parser,(n),(column)) 697 #define evstr2dstr(n,column) evstr2dstr_gen(parser,(n),(column)) 701 #define call_bin_op(recv,id,arg1,column) call_bin_op_gen(parser, (recv),(id),(arg1),(column)) 703 #define call_uni_op(recv,id,column) call_uni_op_gen(parser, (recv),(id),(column)) 705 #define new_qcall(q,r,m,a,column) new_qcall_gen(parser,q,r,m,a,column) 706 #define new_command_qcall(q,r,m,a,column) new_qcall_gen(parser,q,r,m,a,column) 708 #define new_command(m,a) new_command_gen(parser, m, a) 710 #define method_add_block(m,b) method_add_block_gen(parser, m, b) 713 #define new_args(f,o,r,p,t) new_args_gen(parser, (f),(o),(r),(p),(t)) 715 #define new_args_tail(k,kr,b,column) new_args_tail_gen(parser, (k),(kr),(b),(column)) 717 #define new_kw_arg(k,column) new_kw_arg_gen(parser, k, column) 720 #define negate_lit(lit) negate_lit_gen(parser, lit) 722 #define ret_args(node) ret_args_gen(parser, (node)) 725 #define new_yield(node,column) new_yield_gen(parser, (node), (column)) 727 #define dsym_node(node,column) dsym_node_gen(parser, (node), (column)) 730 #define gettable(id,column) gettable_gen(parser,(id),(column)) 732 #define assignable(id,node,column) assignable_gen(parser, (id), (node), (column)) 735 #define aryset(node1,node2,column) aryset_gen(parser, (node1), (node2), (column)) 737 #define attrset(node,q,id,column) attrset_gen(parser, (node), (q), (id), (column)) 740 #define rb_backref_error(n) rb_backref_error_gen(parser,(n)) 742 #define node_assign(node1, node2, column) node_assign_gen(parser, (node1), (node2), (column)) 745 #define new_op_assign(lhs, op, rhs, column) new_op_assign_gen(parser, (lhs), (op), (rhs), (column)) 747 #define new_attr_op_assign(lhs, type, attr, op, rhs, column) new_attr_op_assign_gen(parser, (lhs), (type), (attr), (op), (rhs), (column)) 749 #define new_const_op_assign(lhs, op, rhs, column) new_const_op_assign_gen(parser, (lhs), (op), (rhs), (column)) 752 #define const_path_field(w, n, column) const_path_field_gen(parser, w, n, column) 753 #define top_const_field(n) NEW_COLON3(n) 755 #define const_decl(path, column) const_decl_gen(parser, path, column) 757 #define var_field(n) (n) 758 #define backref_assign_error(n, a, column) (rb_backref_error(n), new_begin(0, column)) 763 #define new_hash(hash, column) new_hash_gen(parser, (hash), column) 766 #define new_defined(expr, column) new_defined_gen(parser, expr, column) 769 #define new_regexp(node, opt, column) new_regexp_gen(parser, node, opt, column) 772 #define new_lit(sym, column) new_lit_gen(parser, sym, column) 775 #define new_list(item, column) new_list_gen(parser, item, column) 778 #define new_str(s,column) new_str_gen(parser, s, column) 781 #define new_dvar(id, column) new_dvar_gen(parser, id, column) 784 #define new_resbody(e,s,r,column) new_resbody_gen(parser, (e),(s),(r),(column)) 787 #define new_errinfo(column) new_errinfo_gen(parser, column) 790 #define new_call(recv,mid,args,column) new_call_gen(parser, recv,mid,args,column) 793 #define new_fcall(mid,args,column) new_fcall_gen(parser, mid, args, column) 796 #define new_for(var,iter,body,column) new_for_gen(parser, var, iter, body, column) 799 #define new_gvar(id, column) new_gvar_gen(parser, id, column) 802 #define new_lvar(id, column) new_lvar_gen(parser, id, column) 805 #define new_dstr(s, column) new_dstr_gen(parser, s, column) 808 #define new_rescue(b,res,e,column) new_rescue_gen(parser,b,res,e,column) 811 #define new_undef(i, column) new_undef_gen(parser, i, column) 814 #define new_zarray(column) new_zarray_gen(parser, column) 817 #define new_ivar(id, column) new_ivar_gen(parser,id,column) 820 #define new_postarg(i,v,column) new_postarg_gen(parser,i,v,column) 823 #define new_cdecl(v,val,path,column) new_cdecl_gen(parser,v,val,path,column) 826 #define new_scope(a,b,column) new_scope_gen(parser,a,b,column) 829 #define new_begin(b,column) new_begin_gen(parser,b,column) 832 #define new_masgn(l,r,column) new_masgn_gen(parser,l,r,column) 835 #define new_xstring(node, column) new_xstring_gen(parser, node, column) 836 #define new_string1(str) (str) 839 #define new_brace_body(param, stmt, column) new_body_gen(parser, param, stmt, column) 840 #define new_do_body(param, stmt, column) new_body_gen(parser, param, stmt, column) 843 #define match_op(node1,node2,column) match_op_gen(parser, (node1), (node2), (column)) 846 #define local_tbl() local_tbl_gen(parser) 849 #define reg_compile(str,options) reg_compile_gen(parser, (str), (options)) 851 #define reg_fragment_setenc(str,options) reg_fragment_setenc_gen(parser, (str), (options)) 853 #define reg_fragment_check(str,options) reg_fragment_check_gen(parser, (str), (options)) 855 #define reg_named_capture_assign(regexp,column) reg_named_capture_assign_gen(parser,(regexp),column) 858 # define heredoc_dedent(str) parser_heredoc_dedent(parser, (str)) 860 #define get_id(id) (id) 861 #define get_value(val) (val) 863 #define NODE_RIPPER NODE_CDECL 872 ripper_is_node_yylval(
VALUE n)
877 #define value_expr(node) ((void)(node)) 878 #define remove_begin(node) (node) 879 #define rb_dvar_defined(id, base) 0 880 #define rb_local_defined(id, base) 0 881 static ID ripper_get_id(
VALUE);
882 #define get_id(id) ripper_get_id(id) 884 #define get_value(val) ripper_get_value(val) 886 #define assignable(lhs,node,column) assignable_gen(parser, (lhs)) 888 #define id_is_var(id) id_is_var_gen(parser, (id)) 890 #define method_cond(node,column) (node) 891 #define call_bin_op(recv,id,arg1,column) dispatch3(binary, (recv), STATIC_ID2SYM(id), (arg1)) 892 #define match_op(node1,node2,column) call_bin_op((node1), idEqTilde, (node2), -1) 893 #define call_uni_op(recv,id,column) dispatch2(unary, STATIC_ID2SYM(id), (recv)) 894 #define logop(id,node1,node2,column) call_bin_op((node1), (id), (node2), -1) 895 #define node_assign(node1, node2, column) dispatch2(assign, (node1), (node2)) 897 #define new_qcall(q,r,m,a,column) new_qcall_gen(parser, (r), (q), (m), (a)) 898 #define new_command_qcall(q,r,m,a,column) dispatch4(command_call, (r), (q), (m), (a)) 899 #define new_command_call(q,r,m,a) dispatch4(command_call, (r), (q), (m), (a)) 900 #define new_command(m,a) dispatch2(command, (m), (a)); 902 #define new_nil() Qnil 904 #define new_op_assign(lhs, op, rhs, column) new_op_assign_gen(parser, (lhs), (op), (rhs)) 906 #define new_attr_op_assign(lhs, type, attr, op, rhs, column) new_attr_op_assign_gen(parser, (lhs), (type), (attr), (op), (rhs)) 907 #define new_const_op_assign(lhs, op, rhs, column) new_op_assign(lhs, op, rhs, column) 910 #define new_regexp(node, opt, column) new_regexp_gen(parser, node, opt) 913 #define new_xstring(str, column) new_xstring_gen(parser, str) 914 #define new_string1(str) dispatch1(string_literal, str) 916 #define new_brace_body(param, stmt, column) dispatch2(brace_block, escape_Qundef(param), stmt) 917 #define new_do_body(param, stmt, column) dispatch2(do_block, escape_Qundef(param), stmt) 919 #define const_path_field(w, n, column) dispatch2(const_path_field, (w), (n)) 920 #define top_const_field(n) dispatch1(top_const_field, (n)) 922 #define const_decl(path, column) const_decl_gen(parser, path) 925 #define var_field(a) var_field_gen(parser, (a)) 927 #define assign_error(a) assign_error_gen(parser, (a)) 928 #define backref_assign_error(n, a, column) assign_error(a) 930 #define block_dup_check(n1,n2) ((void)(n1), (void)(n2)) 931 #define fixpos(n1,n2) ((void)(n1), (void)(n2)) 933 #define nd_set_line(n,l) ((void)(n)) 949 #define formal_argument(id) formal_argument_gen(parser, (id)) 951 #define shadowing_lvar(name) shadowing_lvar_gen(parser, (name)) 953 #define new_bv(id) new_bv_gen(parser, (id)) 956 #define local_push(top) local_push_gen(parser,(top)) 958 #define local_pop() local_pop_gen(parser) 960 #define local_var(id) local_var_gen(parser, (id)) 962 #define arg_var(id) arg_var_gen(parser, (id)) 964 #define local_id_ref(id, vidp) local_id_gen(parser, (id), &(vidp)) 965 #define local_id(id) local_id_gen(parser, (id), NULL) 967 #define internal_id() internal_id_gen(parser) 970 #define dyna_push() dyna_push_gen(parser) 972 #define dyna_pop(node) dyna_pop_gen(parser, (node)) 974 #define dyna_in_block() dyna_in_block_gen(parser) 975 #define dyna_var(id) local_var(id) 977 #define dvar_defined_ref(id, vidp) dvar_defined_gen(parser, (id), &(vidp)) 978 #define dvar_defined(id) dvar_defined_gen(parser, (id), NULL) 980 #define dvar_curr(id) dvar_curr_gen(parser, (id)) 983 #define lvar_defined(id) lvar_defined_gen(parser, (id)) 986 # define METHOD_NOT idNOT 988 # define METHOD_NOT '!' 991 #define RE_OPTION_ONCE (1<<16) 992 #define RE_OPTION_ENCODING_SHIFT 8 993 #define RE_OPTION_ENCODING(e) (((e)&0xff)<<RE_OPTION_ENCODING_SHIFT) 994 #define RE_OPTION_ENCODING_IDX(o) (((o)>>RE_OPTION_ENCODING_SHIFT)&0xff) 995 #define RE_OPTION_ENCODING_NONE(o) ((o)&RE_OPTION_ARG_ENCODING_NONE) 996 #define RE_OPTION_MASK 0xff 997 #define RE_OPTION_ARG_ENCODING_NONE 32 999 #define NODE_STRTERM NODE_ZARRAY 1000 #define NODE_HEREDOC NODE_ARRAY 1001 #define SIGN_EXTEND(x,n) (((1<<(n)-1)^((x)&~(~0<<(n))))-(1<<(n)-1)) 1002 #define nd_func u1.id 1003 #if SIZEOF_SHORT == 2 1004 #define nd_term(node) ((signed short)(node)->u2.id) 1006 #define nd_term(node) SIGN_EXTEND((node)->u2.id, CHAR_BIT*2) 1008 #define nd_paren(node) (char)((node)->u2.id >> CHAR_BIT*2) 1009 #define nd_nest u3.cnt 1011 #define TOKEN2ID(tok) ( \ 1012 tTOKEN_LOCAL_BEGIN<(tok)&&(tok)<tTOKEN_LOCAL_END ? TOKEN2LOCALID(tok) : \ 1013 tTOKEN_INSTANCE_BEGIN<(tok)&&(tok)<tTOKEN_INSTANCE_END ? TOKEN2INSTANCEID(tok) : \ 1014 tTOKEN_GLOBAL_BEGIN<(tok)&&(tok)<tTOKEN_GLOBAL_END ? TOKEN2GLOBALID(tok) : \ 1015 tTOKEN_CONST_BEGIN<(tok)&&(tok)<tTOKEN_CONST_END ? TOKEN2CONSTID(tok) : \ 1016 tTOKEN_CLASS_BEGIN<(tok)&&(tok)<tTOKEN_CLASS_END ? TOKEN2CLASSID(tok) : \ 1017 tTOKEN_ATTRSET_BEGIN<(tok)&&(tok)<tTOKEN_ATTRSET_END ? TOKEN2ATTRSETID(tok) : \ 1018 ((tok) / ((tok)<tPRESERVED_ID_END && ((tok)>=128 || rb_ispunct(tok))))) 1023 #define RIPPER_VERSION "0.1.0" 1025 static inline VALUE intern_sym(
const char *
name);
1038 #define ripper_error() ripper_error_gen(parser) 1040 #define dispatch0(n) ripper_dispatch0(parser, TOKEN_PASTE(ripper_id_, n)) 1041 #define dispatch1(n,a) ripper_dispatch1(parser, TOKEN_PASTE(ripper_id_, n), (a)) 1042 #define dispatch2(n,a,b) ripper_dispatch2(parser, TOKEN_PASTE(ripper_id_, n), (a), (b)) 1043 #define dispatch3(n,a,b,c) ripper_dispatch3(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c)) 1044 #define dispatch4(n,a,b,c,d) ripper_dispatch4(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d)) 1045 #define dispatch5(n,a,b,c,d,e) ripper_dispatch5(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e)) 1046 #define dispatch7(n,a,b,c,d,e,f,g) ripper_dispatch7(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e), (f), (g)) 1048 #define yyparse ripper_yyparse 1050 #define ID2VAL(id) STATIC_ID2SYM(id) 1051 #define TOKEN2VAL(t) ID2VAL(TOKEN2ID(t)) 1052 #define KWD2EID(t, v) ripper_new_yylval(keyword_##t, get_value(v), 0) 1054 #define arg_new() dispatch0(args_new) 1055 #define arg_add(l,a) dispatch2(args_add, (l), (a)) 1056 #define arg_add_star(l,a) dispatch2(args_add_star, (l), (a)) 1057 #define arg_add_block(l,b) dispatch2(args_add_block, (l), (b)) 1058 #define arg_add_optblock(l,b) ((b)==Qundef? (l) : dispatch2(args_add_block, (l), (b))) 1059 #define bare_assoc(v) dispatch1(bare_assoc_hash, (v)) 1060 #define arg_add_assocs(l,b) arg_add((l), bare_assoc(b)) 1062 #define args2mrhs(a) dispatch1(mrhs_new_from_args, (a)) 1063 #define mrhs_new() dispatch0(mrhs_new) 1064 #define mrhs_add(l,a) dispatch2(mrhs_add, (l), (a)) 1065 #define mrhs_add_star(l,a) dispatch2(mrhs_add_star, (l), (a)) 1067 #define mlhs_new() dispatch0(mlhs_new) 1068 #define mlhs_add(l,a) dispatch2(mlhs_add, (l), (a)) 1069 #define mlhs_add_star(l,a) dispatch2(mlhs_add_star, (l), (a)) 1070 #define mlhs_add_post(l,a) dispatch2(mlhs_add_post, (l), (a)) 1072 #define params_new(pars, opts, rest, pars2, kws, kwrest, blk) \ 1073 dispatch7(params, (pars), (opts), (rest), (pars2), (kws), (kwrest), (blk)) 1075 #define blockvar_new(p,v) dispatch2(block_var, (p), (v)) 1077 #define method_optarg(m,a) ((a)==Qundef ? (m) : dispatch2(method_add_arg,(m),(a))) 1078 #define method_arg(m,a) dispatch2(method_add_arg,(m),(a)) 1079 #define method_add_block(m,b) dispatch2(method_add_block, (m), (b)) 1081 #define escape_Qundef(x) ((x)==Qundef ? Qnil : (x)) 1088 return params_new(f, o, r, p, k, kr, escape_Qundef(b));
1090 #define new_args(f,o,r,p,t) new_args_gen(parser, (f),(o),(r),(p),(t)) 1097 #define new_args_tail(k,kr,b,column) new_args_tail_gen(parser, (k),(kr),(b)) 1099 #define new_defined(expr,column) dispatch1(defined, (expr)) 1102 # define heredoc_dedent(str) parser_heredoc_dedent(parser, (str)) 1107 #define ID2VAL(id) ((VALUE)(id)) 1108 #define TOKEN2VAL(t) ID2VAL(t) 1109 #define KWD2EID(t, v) keyword_##t 1115 # define ifndef_ripper(x) (x) 1118 # define Qnull Qundef 1119 # define ifndef_ripper(x) 1122 # define rb_warn0(fmt) WARN_CALL(WARN_ARGS(fmt, 1)) 1123 # define rb_warn1(fmt,a) WARN_CALL(WARN_ARGS(fmt, 2), (a)) 1124 # define rb_warn2(fmt,a,b) WARN_CALL(WARN_ARGS(fmt, 3), (a), (b)) 1125 # define rb_warn3(fmt,a,b,c) WARN_CALL(WARN_ARGS(fmt, 4), (a), (b), (c)) 1126 # define rb_warn4(fmt,a,b,c,d) WARN_CALL(WARN_ARGS(fmt, 5), (a), (b), (c), (d)) 1127 # define rb_warning0(fmt) WARNING_CALL(WARNING_ARGS(fmt, 1)) 1128 # define rb_warning1(fmt,a) WARNING_CALL(WARNING_ARGS(fmt, 2), (a)) 1129 # define rb_warning2(fmt,a,b) WARNING_CALL(WARNING_ARGS(fmt, 3), (a), (b)) 1130 # define rb_warning3(fmt,a,b,c) WARNING_CALL(WARNING_ARGS(fmt, 4), (a), (b), (c)) 1131 # define rb_warning4(fmt,a,b,c,d) WARNING_CALL(WARNING_ARGS(fmt, 5), (a), (b), (c), (d)) 1132 # define rb_warn0L(l,fmt) WARN_CALL(WARN_ARGS_L(l, fmt, 1)) 1133 # define rb_warn1L(l,fmt,a) WARN_CALL(WARN_ARGS_L(l, fmt, 2), (a)) 1134 # define rb_warn2L(l,fmt,a,b) WARN_CALL(WARN_ARGS_L(l, fmt, 3), (a), (b)) 1135 # define rb_warn3L(l,fmt,a,b,c) WARN_CALL(WARN_ARGS_L(l, fmt, 4), (a), (b), (c)) 1136 # define rb_warn4L(l,fmt,a,b,c,d) WARN_CALL(WARN_ARGS_L(l, fmt, 5), (a), (b), (c), (d)) 1137 # define rb_warning0L(l,fmt) WARNING_CALL(WARNING_ARGS_L(l, fmt, 1)) 1138 # define rb_warning1L(l,fmt,a) WARNING_CALL(WARNING_ARGS_L(l, fmt, 2), (a)) 1139 # define rb_warning2L(l,fmt,a,b) WARNING_CALL(WARNING_ARGS_L(l, fmt, 3), (a), (b)) 1140 # define rb_warning3L(l,fmt,a,b,c) WARNING_CALL(WARNING_ARGS_L(l, fmt, 4), (a), (b), (c)) 1141 # define rb_warning4L(l,fmt,a,b,c,d) WARNING_CALL(WARNING_ARGS_L(l, fmt, 5), (a), (b), (c), (d)) 1143 static ID id_warn, id_warning, id_gets;
1144 # define WARN_S_L(s,l) STR_NEW(s,l) 1145 # define WARN_S(s) STR_NEW2(s) 1146 # define WARN_I(i) INT2NUM(i) 1147 # define WARN_ID(i) rb_id2str(i) 1148 # define PRIsWARN "s" 1149 # define WARN_ARGS(fmt,n) parser->value, id_warn, n, rb_usascii_str_new_lit(fmt) 1150 # define WARN_ARGS_L(l,fmt,n) WARN_ARGS(fmt,n) 1151 # ifdef HAVE_VA_ARGS_MACRO 1152 # define WARN_CALL(...) rb_funcall(__VA_ARGS__) 1154 # define WARN_CALL rb_funcall 1156 # define WARNING_ARGS(fmt,n) parser->value, id_warning, n, rb_usascii_str_new_lit(fmt) 1157 # define WARNING_ARGS_L(l, fmt,n) WARNING_ARGS(fmt,n) 1158 # ifdef HAVE_VA_ARGS_MACRO 1159 # define WARNING_CALL(...) rb_funcall(__VA_ARGS__) 1161 # define WARNING_CALL rb_funcall 1164 # define compile_error ripper_compile_error 1165 # define PARSER_ARG parser, 1167 # define WARN_S_L(s,l) s 1168 # define WARN_S(s) s 1169 # define WARN_I(i) i 1170 # define WARN_ID(i) rb_id2name(i) 1171 # define PRIsWARN PRIsVALUE 1172 # define WARN_ARGS(fmt,n) WARN_ARGS_L(ruby_sourceline,fmt,n) 1173 # define WARN_ARGS_L(l,fmt,n) ruby_sourcefile, (l), (fmt) 1174 # define WARN_CALL rb_compile_warn 1175 # define WARNING_ARGS(fmt,n) WARN_ARGS(fmt,n) 1176 # define WARNING_ARGS_L(l,fmt,n) WARN_ARGS_L(l,fmt,n) 1177 # define WARNING_CALL rb_compile_warning 1179 # define compile_error parser_compile_error 1180 # define PARSER_ARG parser, 1188 #define YYMAXDEPTH 10000 1194 #define token_info_push(token) token_info_push_gen(parser, (token), rb_strlen_lit(token)) 1195 #define token_info_pop(token) token_info_pop_gen(parser, (token), rb_strlen_lit(token)) 1204 #ifdef YYERROR_VERBOSE 1205 # undef YYERROR_VERBOSE 1206 # define YYERROR_VERBOSE 1 1208 # define YYERROR_VERBOSE 0 1212 #ifndef YYTOKEN_TABLE 1213 # define YYTOKEN_TABLE 0 1216 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 1224 const struct vtable *vars;
1227 #line 1228 "parse.c" 1229 # define yystype YYSTYPE 1230 # define YYSTYPE_IS_DECLARED 1 1231 # define YYSTYPE_IS_TRIVIAL 1 1234 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED 1242 # define yyltype YYLTYPE 1243 # define YYLTYPE_IS_DECLARED 1 1244 # define YYLTYPE_IS_TRIVIAL 1 1252 #line 1253 "parse.c" 1266 #elif (defined __STDC__ || defined __C99__FUNC__ \ 1267 || defined __cplusplus || defined _MSC_VER) 1273 #ifdef YYTYPE_UINT16 1286 # ifdef __SIZE_TYPE__ 1287 # define YYSIZE_T __SIZE_TYPE__ 1288 # elif defined size_t 1289 # define YYSIZE_T size_t 1290 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ 1291 || defined __cplusplus || defined _MSC_VER) 1292 # include <stddef.h> 1293 # define YYSIZE_T size_t 1295 # define YYSIZE_T unsigned int 1299 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) 1302 # if defined YYENABLE_NLS && YYENABLE_NLS 1304 # include <libintl.h> 1305 # define YY_(msgid) dgettext ("bison-runtime", msgid) 1309 # define YY_(msgid) msgid 1314 #if ! defined lint || defined __GNUC__ 1315 # define YYUSE(e) ((void) (e)) 1322 # define YYID(n) (n) 1324 #if (defined __STDC__ || defined __C99__FUNC__ \ 1325 || defined __cplusplus || defined _MSC_VER) 1338 #if ! defined yyoverflow || YYERROR_VERBOSE 1342 # ifdef YYSTACK_USE_ALLOCA 1343 # if YYSTACK_USE_ALLOCA 1345 # define YYSTACK_ALLOC __builtin_alloca 1346 # elif defined __BUILTIN_VA_ARG_INCR 1347 # include <alloca.h> 1349 # define YYSTACK_ALLOC __alloca 1350 # elif defined _MSC_VER 1351 # include <malloc.h> 1352 # define alloca _alloca 1354 # define YYSTACK_ALLOC alloca 1355 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ 1356 || defined __cplusplus || defined _MSC_VER) 1357 # include <stdlib.h> 1359 # define _STDLIB_H 1 1366 # ifdef YYSTACK_ALLOC 1368 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0)) 1369 # ifndef YYSTACK_ALLOC_MAXIMUM 1374 # define YYSTACK_ALLOC_MAXIMUM 4032 1377 # define YYSTACK_ALLOC YYMALLOC 1378 # define YYSTACK_FREE YYFREE 1379 # ifndef YYSTACK_ALLOC_MAXIMUM 1380 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 1382 # if (defined __cplusplus && ! defined _STDLIB_H \ 1383 && ! ((defined YYMALLOC || defined malloc) \ 1384 && (defined YYFREE || defined free))) 1385 # include <stdlib.h> 1387 # define _STDLIB_H 1 1391 # define YYMALLOC malloc 1392 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ 1393 || defined __cplusplus || defined _MSC_VER) 1398 # define YYFREE free 1399 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ 1400 || defined __cplusplus || defined _MSC_VER) 1408 #if (! defined yyoverflow \ 1409 && (! defined __cplusplus \ 1410 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \ 1411 && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 1422 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) 1426 # define YYSTACK_BYTES(N) \ 1427 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ 1428 + 2 * YYSTACK_GAP_MAXIMUM) 1433 # if defined __GNUC__ && 1 < __GNUC__ 1434 # define YYCOPY(To, From, Count) \ 1435 __builtin_memcpy (To, From, (Count) * sizeof (*(From))) 1437 # define YYCOPY(To, From, Count) \ 1441 for (yyi = 0; yyi < (Count); yyi++) \ 1442 (To)[yyi] = (From)[yyi]; \ 1453 # define YYSTACK_RELOCATE(Stack) \ 1456 YYSIZE_T yynewbytes; \ 1457 YYCOPY (&yyptr->Stack, Stack, yysize); \ 1458 Stack = &yyptr->Stack; \ 1459 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 1460 yyptr += yynewbytes / sizeof (*yyptr); \ 1469 #define YYLAST 11649 1472 #define YYNTOKENS 146 1476 #define YYNRULES 645 1478 #define YYNSTATES 1086 1481 #define YYUNDEFTOK 2 1482 #define YYMAXUTOK 352 1484 #define YYTRANSLATE(YYX) \ 1485 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 1488 static const yytype_uint8 yytranslate[] =
1490 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1491 145, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1492 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1493 2, 2, 143, 131, 2, 2, 2, 129, 124, 2,
1494 139, 140, 127, 125, 137, 126, 144, 128, 2, 2,
1495 2, 2, 2, 2, 2, 2, 2, 2, 119, 142,
1496 121, 117, 120, 118, 2, 2, 2, 2, 2, 2,
1497 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1498 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1499 2, 136, 2, 141, 123, 2, 138, 2, 2, 2,
1500 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1501 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1502 2, 2, 2, 134, 122, 135, 132, 2, 81, 82,
1503 68, 69, 70, 71, 85, 86, 76, 75, 72, 73,
1504 74, 79, 80, 83, 84, 88, 77, 78, 87, 2,
1505 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1506 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1507 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1508 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1509 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1510 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1511 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1512 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1513 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1514 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1515 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1516 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1517 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1518 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1519 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1520 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1521 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1522 65, 66, 67, 89, 90, 91, 92, 93, 94, 95,
1523 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1524 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1531 static const yytype_uint16 yyprhs[] =
1533 0, 0, 3, 4, 7, 10, 12, 14, 18, 21,
1534 23, 24, 30, 35, 38, 40, 42, 46, 49, 51,
1535 52, 58, 59, 64, 68, 72, 76, 79, 83, 87,
1536 91, 95, 99, 104, 106, 110, 114, 118, 120, 124,
1537 128, 135, 141, 147, 153, 159, 163, 165, 169, 171,
1538 173, 177, 181, 185, 188, 190, 192, 194, 196, 198,
1539 203, 204, 209, 211, 214, 218, 223, 229, 234, 240,
1540 243, 246, 249, 252, 255, 257, 261, 263, 267, 269,
1541 272, 276, 282, 285, 290, 293, 298, 300, 304, 306,
1542 310, 313, 317, 319, 323, 325, 327, 332, 336, 340,
1543 344, 348, 351, 353, 355, 357, 362, 366, 370, 374,
1544 378, 381, 383, 385, 387, 390, 392, 396, 398, 400,
1545 402, 404, 406, 408, 410, 412, 414, 416, 417, 422,
1546 424, 426, 428, 430, 432, 434, 436, 438, 440, 442,
1547 444, 446, 448, 450, 452, 454, 456, 458, 460, 462,
1548 464, 466, 468, 470, 472, 474, 476, 478, 480, 482,
1549 484, 486, 488, 490, 492, 494, 496, 498, 500, 502,
1550 504, 506, 508, 510, 512, 514, 516, 518, 520, 522,
1551 524, 526, 528, 530, 532, 534, 536, 538, 540, 542,
1552 544, 546, 548, 550, 552, 554, 556, 558, 560, 562,
1553 564, 568, 572, 579, 585, 591, 597, 603, 608, 612,
1554 616, 620, 624, 628, 632, 636, 640, 644, 649, 652,
1555 655, 659, 663, 667, 671, 673, 677, 681, 685, 689,
1556 693, 696, 699, 703, 707, 711, 715, 716, 721, 728,
1557 730, 732, 734, 736, 738, 742, 746, 748, 750, 753,
1558 758, 761, 763, 767, 771, 773, 775, 777, 779, 782,
1559 787, 790, 792, 795, 798, 803, 805, 806, 809, 812,
1560 815, 817, 819, 822, 826, 831, 833, 835, 839, 844,
1561 847, 849, 851, 853, 855, 857, 859, 861, 863, 865,
1562 867, 869, 870, 875, 876, 880, 881, 882, 888, 892,
1563 896, 899, 903, 907, 909, 914, 918, 920, 921, 928,
1564 933, 937, 940, 942, 945, 948, 955, 962, 963, 964,
1565 972, 973, 974, 982, 988, 993, 994, 995, 1005, 1006,
1566 1013, 1014, 1022, 1023, 1029, 1030, 1031, 1039, 1040, 1041,
1567 1051, 1053, 1055, 1057, 1059, 1061, 1063, 1065, 1067, 1069,
1568 1071, 1073, 1075, 1077, 1079, 1081, 1083, 1085, 1087, 1090,
1569 1092, 1094, 1096, 1102, 1104, 1107, 1109, 1111, 1113, 1117,
1570 1119, 1123, 1125, 1130, 1137, 1141, 1147, 1150, 1155, 1157,
1571 1161, 1166, 1169, 1172, 1174, 1177, 1178, 1185, 1194, 1199,
1572 1206, 1211, 1214, 1221, 1224, 1229, 1236, 1239, 1244, 1247,
1573 1252, 1254, 1256, 1258, 1262, 1264, 1269, 1271, 1276, 1278,
1574 1282, 1284, 1286, 1287, 1288, 1289, 1290, 1297, 1302, 1304,
1575 1308, 1312, 1313, 1318, 1321, 1326, 1332, 1338, 1341, 1342,
1576 1348, 1349, 1355, 1359, 1360, 1365, 1366, 1371, 1374, 1376,
1577 1381, 1382, 1387, 1388, 1393, 1394, 1395, 1400, 1401, 1402,
1578 1407, 1413, 1415, 1417, 1424, 1426, 1428, 1430, 1432, 1435,
1579 1437, 1440, 1442, 1444, 1446, 1448, 1450, 1452, 1454, 1457,
1580 1461, 1465, 1469, 1473, 1477, 1478, 1482, 1484, 1487, 1491,
1581 1495, 1496, 1500, 1504, 1508, 1512, 1516, 1517, 1521, 1522,
1582 1526, 1527, 1530, 1531, 1534, 1535, 1538, 1540, 1541, 1545,
1583 1546, 1547, 1548, 1549, 1550, 1559, 1561, 1563, 1565, 1567,
1584 1570, 1572, 1574, 1576, 1578, 1582, 1584, 1587, 1589, 1591,
1585 1593, 1595, 1597, 1599, 1601, 1603, 1605, 1607, 1609, 1611,
1586 1613, 1615, 1617, 1619, 1621, 1623, 1625, 1627, 1629, 1631,
1587 1632, 1637, 1638, 1642, 1643, 1647, 1652, 1655, 1658, 1660,
1588 1663, 1664, 1671, 1680, 1685, 1692, 1697, 1704, 1707, 1712,
1589 1719, 1722, 1727, 1730, 1735, 1737, 1738, 1740, 1742, 1744,
1590 1746, 1748, 1750, 1752, 1754, 1758, 1760, 1764, 1766, 1769,
1591 1771, 1774, 1776, 1778, 1782, 1784, 1788, 1790, 1792, 1795,
1592 1797, 1801, 1805, 1807, 1811, 1813, 1817, 1819, 1821, 1824,
1593 1826, 1828, 1830, 1833, 1836, 1838, 1840, 1841, 1846, 1848,
1594 1851, 1853, 1857, 1861, 1864, 1869, 1872, 1874, 1876, 1878,
1595 1880, 1882, 1884, 1886, 1888, 1890, 1892, 1894, 1896, 1898,
1596 1900, 1902, 1904, 1905, 1907, 1908, 1910, 1913, 1916, 1917,
1597 1919, 1921, 1923, 1925, 1927, 1930
1601 static const yytype_int16 yyrhs[] =
1603 147, 0, -1, -1, 148, 149, -1, 150, 357, -1,
1604 364, -1, 151, -1, 150, 363, 151, -1, 1, 151,
1605 -1, 158, -1, -1, 47, 152, 134, 149, 135, -1,
1606 154, 278, 239, 281, -1, 155, 357, -1, 364, -1,
1607 156, -1, 155, 363, 156, -1, 1, 158, -1, 158,
1608 -1, -1, 47, 157, 134, 149, 135, -1, -1, 45,
1609 182, 159, 182, -1, 45, 54, 54, -1, 45, 54,
1610 66, -1, 45, 54, 65, -1, 6, 183, -1, 158,
1611 40, 163, -1, 158, 41, 163, -1, 158, 42, 163,
1612 -1, 158, 43, 163, -1, 158, 44, 158, -1, 48,
1613 134, 154, 135, -1, 160, -1, 170, 117, 164, -1,
1614 177, 117, 204, -1, 170, 117, 203, -1, 162, -1,
1615 177, 117, 161, -1, 316, 90, 161, -1, 224, 136,
1616 196, 360, 90, 161, -1, 224, 355, 52, 90, 161,
1617 -1, 224, 355, 56, 90, 161, -1, 224, 88, 56,
1618 90, 161, -1, 224, 88, 52, 90, 161, -1, 317,
1619 90, 161, -1, 164, -1, 164, 44, 158, -1, 160,
1620 -1, 164, -1, 162, 37, 162, -1, 162, 38, 162,
1621 -1, 39, 358, 162, -1, 131, 164, -1, 187, -1,
1622 162, -1, 169, -1, 165, -1, 261, -1, 261, 356,
1623 352, 198, -1, -1, 97, 167, 270, 135, -1, 351,
1624 -1, 168, 198, -1, 168, 198, 166, -1, 224, 355,
1625 352, 198, -1, 224, 355, 352, 198, 166, -1, 224,
1626 88, 352, 198, -1, 224, 88, 352, 198, 166, -1,
1627 32, 198, -1, 31, 198, -1, 30, 197, -1, 21,
1628 197, -1, 22, 197, -1, 172, -1, 92, 171, 359,
1629 -1, 172, -1, 92, 171, 359, -1, 174, -1, 174,
1630 173, -1, 174, 98, 176, -1, 174, 98, 176, 137,
1631 175, -1, 174, 98, -1, 174, 98, 137, 175, -1,
1632 98, 176, -1, 98, 176, 137, 175, -1, 98, -1,
1633 98, 137, 175, -1, 176, -1, 92, 171, 359, -1,
1634 173, 137, -1, 174, 173, 137, -1, 173, -1, 175,
1635 137, 173, -1, 313, -1, 314, -1, 224, 136, 196,
1636 360, -1, 224, 355, 52, -1, 224, 88, 52, -1,
1637 224, 355, 56, -1, 224, 88, 56, -1, 89, 56,
1638 -1, 317, -1, 313, -1, 314, -1, 224, 136, 196,
1639 360, -1, 224, 355, 52, -1, 224, 88, 52, -1,
1640 224, 355, 56, -1, 224, 88, 56, -1, 89, 56,
1641 -1, 317, -1, 52, -1, 56, -1, 89, 178, -1,
1642 178, -1, 224, 88, 178, -1, 52, -1, 56, -1,
1643 53, -1, 185, -1, 186, -1, 180, -1, 308, -1,
1644 181, -1, 310, -1, 182, -1, -1, 183, 137, 184,
1645 182, -1, 122, -1, 123, -1, 124, -1, 71, -1,
1646 72, -1, 73, -1, 79, -1, 80, -1, 120, -1,
1647 75, -1, 121, -1, 76, -1, 74, -1, 85, -1,
1648 86, -1, 125, -1, 126, -1, 127, -1, 98, -1,
1649 128, -1, 129, -1, 70, -1, 99, -1, 131, -1,
1650 132, -1, 68, -1, 69, -1, 83, -1, 84, -1,
1651 138, -1, 49, -1, 50, -1, 51, -1, 47, -1,
1652 48, -1, 45, -1, 37, -1, 7, -1, 21, -1,
1653 16, -1, 3, -1, 5, -1, 46, -1, 26, -1,
1654 15, -1, 14, -1, 10, -1, 9, -1, 36, -1,
1655 20, -1, 25, -1, 4, -1, 22, -1, 34, -1,
1656 39, -1, 38, -1, 23, -1, 8, -1, 24, -1,
1657 30, -1, 33, -1, 32, -1, 13, -1, 35, -1,
1658 6, -1, 17, -1, 31, -1, 11, -1, 12, -1,
1659 18, -1, 19, -1, 177, 117, 193, -1, 316, 90,
1660 193, -1, 224, 136, 196, 360, 90, 193, -1, 224,
1661 355, 52, 90, 193, -1, 224, 355, 56, 90, 193,
1662 -1, 224, 88, 52, 90, 193, -1, 224, 88, 56,
1663 90, 193, -1, 89, 56, 90, 193, -1, 317, 90,
1664 193, -1, 187, 81, 187, -1, 187, 82, 187, -1,
1665 187, 125, 187, -1, 187, 126, 187, -1, 187, 127,
1666 187, -1, 187, 128, 187, -1, 187, 129, 187, -1,
1667 187, 70, 187, -1, 130, 312, 70, 187, -1, 68,
1668 187, -1, 69, 187, -1, 187, 122, 187, -1, 187,
1669 123, 187, -1, 187, 124, 187, -1, 187, 71, 187,
1670 -1, 190, -1, 187, 72, 187, -1, 187, 73, 187,
1671 -1, 187, 74, 187, -1, 187, 79, 187, -1, 187,
1672 80, 187, -1, 131, 187, -1, 132, 187, -1, 187,
1673 85, 187, -1, 187, 86, 187, -1, 187, 77, 187,
1674 -1, 187, 78, 187, -1, -1, 46, 358, 188, 187,
1675 -1, 187, 118, 187, 358, 119, 187, -1, 205, -1,
1676 120, -1, 121, -1, 75, -1, 76, -1, 187, 189,
1677 187, -1, 190, 189, 187, -1, 187, -1, 364, -1,
1678 202, 361, -1, 202, 137, 349, 361, -1, 349, 361,
1679 -1, 187, -1, 187, 44, 187, -1, 139, 196, 359,
1680 -1, 364, -1, 194, -1, 364, -1, 197, -1, 202,
1681 137, -1, 202, 137, 349, 137, -1, 349, 137, -1,
1682 169, -1, 202, 201, -1, 349, 201, -1, 202, 137,
1683 349, 201, -1, 200, -1, -1, 199, 197, -1, 100,
1684 191, -1, 137, 200, -1, 364, -1, 191, -1, 98,
1685 191, -1, 202, 137, 191, -1, 202, 137, 98, 191,
1686 -1, 204, -1, 191, -1, 202, 137, 191, -1, 202,
1687 137, 98, 191, -1, 98, 191, -1, 282, -1, 283,
1688 -1, 286, -1, 287, -1, 288, -1, 293, -1, 291,
1689 -1, 294, -1, 315, -1, 317, -1, 53, -1, -1,
1690 225, 206, 153, 235, -1, -1, 93, 207, 359, -1,
1691 -1, -1, 93, 208, 158, 209, 359, -1, 92, 154,
1692 140, -1, 224, 88, 56, -1, 89, 56, -1, 95,
1693 192, 141, -1, 96, 348, 135, -1, 30, -1, 31,
1694 139, 197, 359, -1, 31, 139, 359, -1, 31, -1,
1695 -1, 46, 358, 139, 210, 162, 359, -1, 39, 139,
1696 162, 359, -1, 39, 139, 359, -1, 168, 267, -1,
1697 262, -1, 262, 267, -1, 101, 252, -1, 226, 163,
1698 236, 154, 238, 235, -1, 227, 163, 236, 154, 239,
1699 235, -1, -1, -1, 228, 211, 163, 237, 212, 154,
1700 235, -1, -1, -1, 229, 213, 163, 237, 214, 154,
1701 235, -1, 230, 163, 357, 276, 235, -1, 230, 357,
1702 276, 235, -1, -1, -1, 231, 240, 25, 215, 163,
1703 237, 216, 154, 235, -1, -1, 232, 179, 318, 217,
1704 153, 235, -1, -1, 232, 85, 162, 218, 362, 153,
1705 235, -1, -1, 233, 179, 219, 153, 235, -1, -1,
1706 -1, 234, 180, 220, 221, 320, 153, 235, -1, -1,
1707 -1, 234, 346, 354, 222, 180, 223, 320, 153, 235,
1708 -1, 21, -1, 22, -1, 23, -1, 24, -1, 205,
1709 -1, 7, -1, 11, -1, 12, -1, 18, -1, 19,
1710 -1, 16, -1, 20, -1, 3, -1, 4, -1, 5,
1711 -1, 10, -1, 362, -1, 13, -1, 362, 13, -1,
1712 362, -1, 27, -1, 239, -1, 14, 163, 236, 154,
1713 238, -1, 364, -1, 15, 154, -1, 177, -1, 170,
1714 -1, 326, -1, 92, 243, 359, -1, 241, -1, 242,
1715 137, 241, -1, 242, -1, 242, 137, 98, 326, -1,
1716 242, 137, 98, 326, 137, 242, -1, 242, 137, 98,
1717 -1, 242, 137, 98, 137, 242, -1, 98, 326, -1,
1718 98, 326, 137, 242, -1, 98, -1, 98, 137, 242,
1719 -1, 333, 137, 336, 345, -1, 333, 345, -1, 336,
1720 345, -1, 344, -1, 137, 244, -1, -1, 329, 137,
1721 339, 137, 342, 245, -1, 329, 137, 339, 137, 342,
1722 137, 329, 245, -1, 329, 137, 339, 245, -1, 329,
1723 137, 339, 137, 329, 245, -1, 329, 137, 342, 245,
1724 -1, 329, 137, -1, 329, 137, 342, 137, 329, 245,
1725 -1, 329, 245, -1, 339, 137, 342, 245, -1, 339,
1726 137, 342, 137, 329, 245, -1, 339, 245, -1, 339,
1727 137, 329, 245, -1, 342, 245, -1, 342, 137, 329,
1728 245, -1, 244, -1, 364, -1, 248, -1, 122, 249,
1729 122, -1, 78, -1, 122, 246, 249, 122, -1, 358,
1730 -1, 358, 142, 250, 358, -1, 251, -1, 250, 137,
1731 251, -1, 52, -1, 325, -1, -1, -1, -1, -1,
1732 253, 254, 257, 255, 256, 258, -1, 139, 324, 249,
1733 140, -1, 324, -1, 114, 154, 135, -1, 29, 154,
1734 235, -1, -1, 28, 260, 273, 10, -1, 169, 259,
1735 -1, 261, 356, 352, 195, -1, 261, 356, 352, 195,
1736 267, -1, 261, 356, 352, 198, 259, -1, 168, 194,
1737 -1, -1, 224, 355, 352, 263, 195, -1, -1, 224,
1738 88, 352, 264, 194, -1, 224, 88, 353, -1, -1,
1739 224, 355, 265, 194, -1, -1, 224, 88, 266, 194,
1740 -1, 32, 194, -1, 32, -1, 224, 136, 196, 360,
1741 -1, -1, 134, 268, 270, 135, -1, -1, 26, 269,
1742 273, 10, -1, -1, -1, 271, 272, 247, 154, -1,
1743 -1, -1, 274, 275, 247, 153, -1, 17, 202, 236,
1744 154, 277, -1, 239, -1, 276, -1, 8, 279, 280,
1745 236, 154, 278, -1, 364, -1, 191, -1, 204, -1,
1746 364, -1, 91, 177, -1, 364, -1, 9, 154, -1,
1747 364, -1, 311, -1, 308, -1, 310, -1, 284, -1,
1748 64, -1, 285, -1, 284, 285, -1, 103, 297, 113,
1749 -1, 104, 298, 113, -1, 105, 299, 67, -1, 106,
1750 143, 113, -1, 106, 289, 113, -1, -1, 289, 290,
1751 143, -1, 300, -1, 290, 300, -1, 108, 143, 113,
1752 -1, 108, 292, 113, -1, -1, 292, 290, 143, -1,
1753 107, 143, 113, -1, 107, 295, 113, -1, 109, 143,
1754 113, -1, 109, 296, 113, -1, -1, 295, 63, 143,
1755 -1, -1, 296, 63, 143, -1, -1, 297, 300, -1,
1756 -1, 298, 300, -1, -1, 299, 300, -1, 63, -1,
1757 -1, 112, 301, 307, -1, -1, -1, -1, -1, -1,
1758 110, 302, 303, 304, 305, 306, 154, 111, -1, 54,
1759 -1, 55, -1, 57, -1, 317, -1, 102, 309, -1,
1760 180, -1, 55, -1, 54, -1, 57, -1, 102, 298,
1761 113, -1, 312, -1, 130, 312, -1, 59, -1, 60,
1762 -1, 61, -1, 62, -1, 52, -1, 55, -1, 54,
1763 -1, 56, -1, 57, -1, 34, -1, 33, -1, 35,
1764 -1, 36, -1, 50, -1, 49, -1, 51, -1, 313,
1765 -1, 314, -1, 313, -1, 314, -1, 65, -1, 66,
1766 -1, -1, 121, 319, 163, 362, -1, -1, 139, 324,
1767 359, -1, -1, 321, 324, 362, -1, 334, 137, 336,
1768 345, -1, 334, 345, -1, 336, 345, -1, 344, -1,
1769 137, 322, -1, -1, 329, 137, 340, 137, 342, 323,
1770 -1, 329, 137, 340, 137, 342, 137, 329, 323, -1,
1771 329, 137, 340, 323, -1, 329, 137, 340, 137, 329,
1772 323, -1, 329, 137, 342, 323, -1, 329, 137, 342,
1773 137, 329, 323, -1, 329, 323, -1, 340, 137, 342,
1774 323, -1, 340, 137, 342, 137, 329, 323, -1, 340,
1775 323, -1, 340, 137, 329, 323, -1, 342, 323, -1,
1776 342, 137, 329, 323, -1, 322, -1, -1, 56, -1,
1777 55, -1, 54, -1, 57, -1, 325, -1, 52, -1,
1778 326, -1, 327, -1, 92, 243, 359, -1, 328, -1,
1779 329, 137, 328, -1, 58, -1, 330, 191, -1, 330,
1780 -1, 330, 224, -1, 330, -1, 332, -1, 333, 137,
1781 332, -1, 331, -1, 334, 137, 331, -1, 70, -1,
1782 99, -1, 335, 52, -1, 335, -1, 327, 117, 191,
1783 -1, 327, 117, 224, -1, 338, -1, 339, 137, 338,
1784 -1, 337, -1, 340, 137, 337, -1, 127, -1, 98,
1785 -1, 341, 52, -1, 341, -1, 124, -1, 100, -1,
1786 343, 52, -1, 137, 344, -1, 364, -1, 315, -1,
1787 -1, 139, 347, 162, 359, -1, 364, -1, 349, 361,
1788 -1, 350, -1, 349, 137, 350, -1, 191, 91, 191,
1789 -1, 58, 191, -1, 103, 297, 115, 191, -1, 99,
1790 191, -1, 52, -1, 56, -1, 53, -1, 52, -1,
1791 56, -1, 53, -1, 185, -1, 52, -1, 53, -1,
1792 185, -1, 144, -1, 88, -1, 144, -1, 87, -1,
1793 355, -1, 88, -1, -1, 363, -1, -1, 145, -1,
1794 358, 140, -1, 358, 141, -1, -1, 145, -1, 137,
1795 -1, 142, -1, 145, -1, 362, -1, 363, 142, -1,
1800 static const yytype_uint16 yyrline[] =
1802 0, 1064, 1064, 1064, 1095, 1105, 1114, 1122, 1130, 1136,
1803 1138, 1137, 1158, 1194, 1204, 1213, 1221, 1229, 1235, 1240,
1804 1239, 1261, 1261, 1270, 1279, 1291, 1302, 1310, 1319, 1328,
1805 1342, 1356, 1366, 1383, 1384, 1394, 1399, 1408, 1411, 1416,
1806 1421, 1443, 1448, 1453, 1458, 1463, 1470, 1478, 1487, 1490,
1807 1491, 1495, 1499, 1503, 1507, 1510, 1522, 1523, 1526, 1527,
1808 1534, 1533, 1549, 1559, 1568, 1575, 1580, 1587, 1592, 1599,
1809 1609, 1618, 1627, 1636, 1647, 1648, 1658, 1659, 1669, 1677,
1810 1685, 1693, 1702, 1710, 1719, 1727, 1736, 1744, 1755, 1756,
1811 1766, 1774, 1784, 1792, 1802, 1806, 1810, 1818, 1826, 1834,
1812 1842, 1846, 1850, 1857, 1865, 1873, 1881, 1889, 1897, 1905,
1813 1909, 1913, 1920, 1929, 1932, 1940, 1949, 1960, 1961, 1962,
1814 1963, 1968, 1975, 1976, 1979, 1987, 1990, 1998, 1998, 2009,
1815 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019,
1816 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029,
1817 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2041,
1818 2041, 2041, 2042, 2042, 2043, 2043, 2043, 2044, 2044, 2044,
1819 2044, 2045, 2045, 2045, 2045, 2046, 2046, 2046, 2047, 2047,
1820 2047, 2047, 2048, 2048, 2048, 2048, 2049, 2049, 2049, 2049,
1821 2050, 2050, 2050, 2050, 2051, 2051, 2051, 2051, 2052, 2052,
1822 2055, 2059, 2063, 2091, 2096, 2101, 2106, 2111, 2116, 2121,
1823 2132, 2143, 2147, 2151, 2155, 2159, 2163, 2167, 2171, 2175,
1824 2179, 2183, 2187, 2191, 2195, 2196, 2200, 2204, 2208, 2212,
1825 2216, 2220, 2224, 2228, 2232, 2236, 2240, 2240, 2245, 2255,
1826 2261, 2262, 2263, 2264, 2267, 2271, 2278, 2290, 2291, 2295,
1827 2303, 2313, 2321, 2332, 2342, 2343, 2346, 2347, 2348, 2352,
1828 2360, 2370, 2379, 2387, 2397, 2406, 2415, 2415, 2427, 2438,
1829 2442, 2448, 2456, 2465, 2479, 2495, 2496, 2499, 2513, 2528,
1830 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548,
1831 2549, 2558, 2557, 2584, 2584, 2593, 2597, 2592, 2606, 2614,
1832 2623, 2632, 2645, 2654, 2663, 2671, 2680, 2689, 2689, 2694,
1833 2698, 2702, 2712, 2713, 2723, 2727, 2739, 2751, 2751, 2751,
1834 2763, 2763, 2763, 2775, 2787, 2798, 2800, 2797, 2850, 2849,
1835 2874, 2873, 2898, 2897, 2922, 2927, 2921, 2950, 2951, 2950,
1836 2978, 2987, 2996, 3005, 3016, 3028, 3034, 3040, 3046, 3052,
1837 3058, 3068, 3074, 3080, 3086, 3096, 3102, 3107, 3108, 3115,
1838 3120, 3123, 3124, 3137, 3138, 3148, 3149, 3152, 3159, 3169,
1839 3177, 3187, 3195, 3204, 3214, 3222, 3231, 3240, 3250, 3258,
1840 3270, 3274, 3278, 3282, 3288, 3293, 3298, 3302, 3306, 3310,
1841 3314, 3318, 3326, 3330, 3334, 3338, 3342, 3346, 3350, 3354,
1842 3358, 3364, 3365, 3371, 3381, 3390, 3402, 3406, 3416, 3423,
1843 3432, 3440, 3446, 3449, 3454, 3457, 3446, 3478, 3486, 3492,
1844 3497, 3504, 3503, 3518, 3534, 3538, 3550, 3564, 3574, 3573,
1845 3585, 3584, 3595, 3600, 3599, 3611, 3610, 3621, 3630, 3639,
1846 3654, 3653, 3667, 3666, 3681, 3682, 3681, 3691, 3692, 3691,
1847 3701, 3714, 3715, 3718, 3737, 3740, 3748, 3756, 3759, 3763,
1848 3766, 3774, 3777, 3778, 3786, 3789, 3806, 3813, 3814, 3824,
1849 3830, 3836, 3842, 3851, 3862, 3869, 3879, 3887, 3897, 3906,
1850 3917, 3924, 3942, 3951, 3961, 3970, 3981, 3988, 4000, 4007,
1851 4023, 4030, 4041, 4048, 4059, 4066, 4107, 4115, 4114, 4131,
1852 4137, 4141, 4145, 4149, 4130, 4171, 4179, 4187, 4196, 4199,
1853 4210, 4211, 4212, 4213, 4216, 4227, 4228, 4239, 4246, 4253,
1854 4260, 4269, 4270, 4271, 4272, 4273, 4276, 4277, 4278, 4279,
1855 4280, 4281, 4282, 4285, 4298, 4308, 4312, 4318, 4325, 4335,
1856 4334, 4344, 4353, 4363, 4363, 4377, 4381, 4385, 4389, 4395,
1857 4400, 4405, 4409, 4413, 4417, 4421, 4425, 4429, 4433, 4437,
1858 4441, 4445, 4449, 4453, 4457, 4462, 4468, 4478, 4488, 4498,
1859 4510, 4511, 4518, 4527, 4536, 4555, 4562, 4576, 4585, 4595,
1860 4607, 4616, 4627, 4635, 4646, 4654, 4664, 4665, 4668, 4677,
1861 4688, 4701, 4714, 4722, 4738, 4746, 4762, 4763, 4766, 4779,
1862 4790, 4791, 4794, 4811, 4815, 4825, 4835, 4835, 4865, 4866,
1863 4876, 4883, 4907, 4919, 4927, 4935, 4949, 4950, 4951, 4954,
1864 4955, 4956, 4957, 4960, 4961, 4962, 4965, 4966, 4969, 4973,
1865 4979, 4980, 4986, 4987, 4990, 4991, 4994, 4997, 5000, 5001,
1866 5002, 5005, 5006, 5009, 5010, 5014
1870 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE 1873 static const char *
const yytname[] =
1875 "\"end-of-input\"",
"error",
"$undefined",
"keyword_class",
1876 "keyword_module",
"keyword_def",
"keyword_undef",
"keyword_begin",
1877 "keyword_rescue",
"keyword_ensure",
"keyword_end",
"keyword_if",
1878 "keyword_unless",
"keyword_then",
"keyword_elsif",
"keyword_else",
1879 "keyword_case",
"keyword_when",
"keyword_while",
"keyword_until",
1880 "keyword_for",
"keyword_break",
"keyword_next",
"keyword_redo",
1881 "keyword_retry",
"keyword_in",
"keyword_do",
"keyword_do_cond",
1882 "keyword_do_block",
"keyword_do_LAMBDA",
"keyword_return",
1883 "keyword_yield",
"keyword_super",
"keyword_self",
"keyword_nil",
1884 "keyword_true",
"keyword_false",
"keyword_and",
"keyword_or",
1885 "keyword_not",
"modifier_if",
"modifier_unless",
"modifier_while",
1886 "modifier_until",
"modifier_rescue",
"keyword_alias",
"keyword_defined",
1887 "keyword_BEGIN",
"keyword_END",
"keyword__LINE__",
"keyword__FILE__",
1888 "keyword__ENCODING__",
"tIDENTIFIER",
"tFID",
"tGVAR",
"tIVAR",
1889 "tCONSTANT",
"tCVAR",
"tLABEL",
"tINTEGER",
"tFLOAT",
"tRATIONAL",
1890 "tIMAGINARY",
"tSTRING_CONTENT",
"tCHAR",
"tNTH_REF",
"tBACK_REF",
1891 "tREGEXP_END",
"\"unary+\"",
"\"unary-\"",
"\"**\"",
"\"<=>\"",
"\"==\"",
1892 "\"===\"",
"\"!=\"",
"\">=\"",
"\"<=\"",
"\"&&\"",
"\"||\"",
"\"=~\"",
1893 "\"!~\"",
"\"..\"",
"\"...\"",
"\"[]\"",
"\"[]=\"",
"\"<<\"",
"\">>\"",
1894 "\"&.\"",
"\"::\"",
"\":: at EXPR_BEG\"",
"tOP_ASGN",
"\"=>\"",
"\"(\"",
1895 "\"( arg\"",
"\")\"",
"\"[\"",
"\"{\"",
"\"{ arg\"",
"\"*\"",
1896 "\"**arg\"",
"\"&\"",
"\"->\"",
"tSYMBEG",
"tSTRING_BEG",
"tXSTRING_BEG",
1897 "tREGEXP_BEG",
"tWORDS_BEG",
"tQWORDS_BEG",
"tSYMBOLS_BEG",
1898 "tQSYMBOLS_BEG",
"tSTRING_DBEG",
"tSTRING_DEND",
"tSTRING_DVAR",
1899 "tSTRING_END",
"tLAMBEG",
"tLABEL_END",
"tLOWEST",
"'='",
"'?'",
"':'",
1900 "'>'",
"'<'",
"'|'",
"'^'",
"'&'",
"'+'",
"'-'",
"'*'",
"'/'",
"'%'",
1901 "tUMINUS_NUM",
"'!'",
"'~'",
"tLAST_TOKEN",
"'{'",
"'}'",
"'['",
"','",
1902 "'`'",
"'('",
"')'",
"']'",
"';'",
"' '",
"'.'",
"'\\n'",
"$accept",
1903 "program",
"@1",
"top_compstmt",
"top_stmts",
"top_stmt",
"@2",
1904 "bodystmt",
"compstmt",
"stmts",
"stmt_or_begin",
"@3",
"stmt",
"@4",
1905 "command_asgn",
"command_rhs",
"expr",
"expr_value",
"command_call",
1906 "block_command",
"cmd_brace_block",
"@5",
"fcall",
"command",
"mlhs",
1907 "mlhs_inner",
"mlhs_basic",
"mlhs_item",
"mlhs_head",
"mlhs_post",
1908 "mlhs_node",
"lhs",
"cname",
"cpath",
"fname",
"fsym",
"fitem",
1909 "undef_list",
"@6",
"op",
"reswords",
"arg",
"@7",
"relop",
"rel_expr",
1910 "arg_value",
"aref_args",
"arg_rhs",
"paren_args",
"opt_paren_args",
1911 "opt_call_args",
"call_args",
"command_args",
"@8",
"block_arg",
1912 "opt_block_arg",
"args",
"mrhs_arg",
"mrhs",
"primary",
"@9",
"@10",
1913 "@11",
"@12",
"@13",
"@14",
"@15",
"@16",
"@17",
"@18",
"@19",
"@20",
1914 "@21",
"@22",
"@23",
"@24",
"@25",
"@26",
"primary_value",
"k_begin",
1915 "k_if",
"k_unless",
"k_while",
"k_until",
"k_case",
"k_for",
"k_class",
1916 "k_module",
"k_def",
"k_end",
"then",
"do",
"if_tail",
"opt_else",
1917 "for_var",
"f_marg",
"f_marg_list",
"f_margs",
"block_args_tail",
1918 "opt_block_args_tail",
"block_param",
"opt_block_param",
1919 "block_param_def",
"opt_bv_decl",
"bv_decls",
"bvar",
"lambda",
"@27",
1920 "@28",
"@29",
"@30",
"f_larglist",
"lambda_body",
"do_block",
"@31",
1921 "block_call",
"method_call",
"@32",
"@33",
"@34",
"@35",
"brace_block",
1922 "@36",
"@37",
"brace_body",
"@38",
"@39",
"do_body",
"@40",
"@41",
1923 "case_body",
"cases",
"opt_rescue",
"exc_list",
"exc_var",
"opt_ensure",
1924 "literal",
"strings",
"string",
"string1",
"xstring",
"regexp",
"words",
1925 "word_list",
"word",
"symbols",
"symbol_list",
"qwords",
"qsymbols",
1926 "qword_list",
"qsym_list",
"string_contents",
"xstring_contents",
1927 "regexp_contents",
"string_content",
"@42",
"@43",
"@44",
"@45",
"@46",
1928 "@47",
"string_dvar",
"symbol",
"sym",
"dsym",
"numeric",
1929 "simple_numeric",
"user_variable",
"keyword_variable",
"var_ref",
1930 "var_lhs",
"backref",
"superclass",
"@48",
"f_arglist",
"@49",
1931 "args_tail",
"opt_args_tail",
"f_args",
"f_bad_arg",
"f_norm_arg",
1932 "f_arg_asgn",
"f_arg_item",
"f_arg",
"f_label",
"f_kw",
"f_block_kw",
1933 "f_block_kwarg",
"f_kwarg",
"kwrest_mark",
"f_kwrest",
"f_opt",
1934 "f_block_opt",
"f_block_optarg",
"f_optarg",
"restarg_mark",
1935 "f_rest_arg",
"blkarg_mark",
"f_block_arg",
"opt_f_block_arg",
1936 "singleton",
"@50",
"assoc_list",
"assocs",
"assoc",
"operation",
1937 "operation2",
"operation3",
"dot_or_colon",
"call_op",
"call_op2",
1938 "opt_terms",
"opt_nl",
"rparen",
"rbracket",
"trailer",
"term",
"terms",
1946 static const yytype_uint16 yytoknum[] =
1948 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1949 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1950 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1951 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1952 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1953 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1954 315, 316, 317, 318, 319, 320, 321, 322, 130, 131,
1955 132, 133, 138, 139, 140, 137, 136, 146, 147, 141,
1956 142, 128, 129, 143, 144, 134, 135, 148, 145, 323,
1957 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
1958 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
1959 344, 345, 346, 347, 348, 349, 350, 61, 63, 58,
1960 62, 60, 124, 94, 38, 43, 45, 42, 47, 37,
1961 351, 33, 126, 352, 123, 125, 91, 44, 96, 40,
1962 41, 93, 59, 32, 46, 10
1967 static const yytype_uint16 yyr1[] =
1969 0, 146, 148, 147, 149, 150, 150, 150, 150, 151,
1970 152, 151, 153, 154, 155, 155, 155, 155, 156, 157,
1971 156, 159, 158, 158, 158, 158, 158, 158, 158, 158,
1972 158, 158, 158, 158, 158, 158, 158, 158, 160, 160,
1973 160, 160, 160, 160, 160, 160, 161, 161, 161, 162,
1974 162, 162, 162, 162, 162, 163, 164, 164, 165, 165,
1975 167, 166, 168, 169, 169, 169, 169, 169, 169, 169,
1976 169, 169, 169, 169, 170, 170, 171, 171, 172, 172,
1977 172, 172, 172, 172, 172, 172, 172, 172, 173, 173,
1978 174, 174, 175, 175, 176, 176, 176, 176, 176, 176,
1979 176, 176, 176, 177, 177, 177, 177, 177, 177, 177,
1980 177, 177, 178, 178, 179, 179, 179, 180, 180, 180,
1981 180, 180, 181, 181, 182, 182, 183, 184, 183, 185,
1982 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
1983 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
1984 185, 185, 185, 185, 185, 185, 185, 185, 185, 186,
1985 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
1986 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
1987 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
1988 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
1989 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
1990 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
1991 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
1992 187, 187, 187, 187, 187, 187, 188, 187, 187, 187,
1993 189, 189, 189, 189, 190, 190, 191, 192, 192, 192,
1994 192, 193, 193, 194, 195, 195, 196, 196, 196, 196,
1995 196, 197, 197, 197, 197, 197, 199, 198, 200, 201,
1996 201, 202, 202, 202, 202, 203, 203, 204, 204, 204,
1997 205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
1998 205, 206, 205, 207, 205, 208, 209, 205, 205, 205,
1999 205, 205, 205, 205, 205, 205, 205, 210, 205, 205,
2000 205, 205, 205, 205, 205, 205, 205, 211, 212, 205,
2001 213, 214, 205, 205, 205, 215, 216, 205, 217, 205,
2002 218, 205, 219, 205, 220, 221, 205, 222, 223, 205,
2003 205, 205, 205, 205, 224, 225, 226, 227, 228, 229,
2004 230, 231, 232, 233, 234, 235, 236, 236, 236, 237,
2005 237, 238, 238, 239, 239, 240, 240, 241, 241, 242,
2006 242, 243, 243, 243, 243, 243, 243, 243, 243, 243,
2007 244, 244, 244, 244, 245, 245, 246, 246, 246, 246,
2008 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
2009 246, 247, 247, 248, 248, 248, 249, 249, 250, 250,
2010 251, 251, 253, 254, 255, 256, 252, 257, 257, 258,
2011 258, 260, 259, 261, 261, 261, 261, 262, 263, 262,
2012 264, 262, 262, 265, 262, 266, 262, 262, 262, 262,
2013 268, 267, 269, 267, 271, 272, 270, 274, 275, 273,
2014 276, 277, 277, 278, 278, 279, 279, 279, 280, 280,
2015 281, 281, 282, 282, 282, 283, 284, 284, 284, 285,
2016 286, 287, 288, 288, 289, 289, 290, 290, 291, 291,
2017 292, 292, 293, 293, 294, 294, 295, 295, 296, 296,
2018 297, 297, 298, 298, 299, 299, 300, 301, 300, 302,
2019 303, 304, 305, 306, 300, 307, 307, 307, 307, 308,
2020 309, 309, 309, 309, 310, 311, 311, 312, 312, 312,
2021 312, 313, 313, 313, 313, 313, 314, 314, 314, 314,
2022 314, 314, 314, 315, 315, 316, 316, 317, 317, 319,
2023 318, 318, 320, 321, 320, 322, 322, 322, 322, 323,
2024 323, 324, 324, 324, 324, 324, 324, 324, 324, 324,
2025 324, 324, 324, 324, 324, 324, 325, 325, 325, 325,
2026 326, 326, 327, 328, 328, 329, 329, 330, 331, 331,
2027 332, 332, 333, 333, 334, 334, 335, 335, 336, 336,
2028 337, 338, 339, 339, 340, 340, 341, 341, 342, 342,
2029 343, 343, 344, 345, 345, 346, 347, 346, 348, 348,
2030 349, 349, 350, 350, 350, 350, 351, 351, 351, 352,
2031 352, 352, 352, 353, 353, 353, 354, 354, 355, 355,
2032 356, 356, 357, 357, 358, 358, 359, 360, 361, 361,
2033 361, 362, 362, 363, 363, 364
2037 static const yytype_uint8 yyr2[] =
2039 0, 2, 0, 2, 2, 1, 1, 3, 2, 1,
2040 0, 5, 4, 2, 1, 1, 3, 2, 1, 0,
2041 5, 0, 4, 3, 3, 3, 2, 3, 3, 3,
2042 3, 3, 4, 1, 3, 3, 3, 1, 3, 3,
2043 6, 5, 5, 5, 5, 3, 1, 3, 1, 1,
2044 3, 3, 3, 2, 1, 1, 1, 1, 1, 4,
2045 0, 4, 1, 2, 3, 4, 5, 4, 5, 2,
2046 2, 2, 2, 2, 1, 3, 1, 3, 1, 2,
2047 3, 5, 2, 4, 2, 4, 1, 3, 1, 3,
2048 2, 3, 1, 3, 1, 1, 4, 3, 3, 3,
2049 3, 2, 1, 1, 1, 4, 3, 3, 3, 3,
2050 2, 1, 1, 1, 2, 1, 3, 1, 1, 1,
2051 1, 1, 1, 1, 1, 1, 1, 0, 4, 1,
2052 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2053 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2054 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2055 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2056 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2057 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2058 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2059 3, 3, 6, 5, 5, 5, 5, 4, 3, 3,
2060 3, 3, 3, 3, 3, 3, 3, 4, 2, 2,
2061 3, 3, 3, 3, 1, 3, 3, 3, 3, 3,
2062 2, 2, 3, 3, 3, 3, 0, 4, 6, 1,
2063 1, 1, 1, 1, 3, 3, 1, 1, 2, 4,
2064 2, 1, 3, 3, 1, 1, 1, 1, 2, 4,
2065 2, 1, 2, 2, 4, 1, 0, 2, 2, 2,
2066 1, 1, 2, 3, 4, 1, 1, 3, 4, 2,
2067 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2068 1, 0, 4, 0, 3, 0, 0, 5, 3, 3,
2069 2, 3, 3, 1, 4, 3, 1, 0, 6, 4,
2070 3, 2, 1, 2, 2, 6, 6, 0, 0, 7,
2071 0, 0, 7, 5, 4, 0, 0, 9, 0, 6,
2072 0, 7, 0, 5, 0, 0, 7, 0, 0, 9,
2073 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2074 1, 1, 1, 1, 1, 1, 1, 1, 2, 1,
2075 1, 1, 5, 1, 2, 1, 1, 1, 3, 1,
2076 3, 1, 4, 6, 3, 5, 2, 4, 1, 3,
2077 4, 2, 2, 1, 2, 0, 6, 8, 4, 6,
2078 4, 2, 6, 2, 4, 6, 2, 4, 2, 4,
2079 1, 1, 1, 3, 1, 4, 1, 4, 1, 3,
2080 1, 1, 0, 0, 0, 0, 6, 4, 1, 3,
2081 3, 0, 4, 2, 4, 5, 5, 2, 0, 5,
2082 0, 5, 3, 0, 4, 0, 4, 2, 1, 4,
2083 0, 4, 0, 4, 0, 0, 4, 0, 0, 4,
2084 5, 1, 1, 6, 1, 1, 1, 1, 2, 1,
2085 2, 1, 1, 1, 1, 1, 1, 1, 2, 3,
2086 3, 3, 3, 3, 0, 3, 1, 2, 3, 3,
2087 0, 3, 3, 3, 3, 3, 0, 3, 0, 3,
2088 0, 2, 0, 2, 0, 2, 1, 0, 3, 0,
2089 0, 0, 0, 0, 8, 1, 1, 1, 1, 2,
2090 1, 1, 1, 1, 3, 1, 2, 1, 1, 1,
2091 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2092 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
2093 4, 0, 3, 0, 3, 4, 2, 2, 1, 2,
2094 0, 6, 8, 4, 6, 4, 6, 2, 4, 6,
2095 2, 4, 2, 4, 1, 0, 1, 1, 1, 1,
2096 1, 1, 1, 1, 3, 1, 3, 1, 2, 1,
2097 2, 1, 1, 3, 1, 3, 1, 1, 2, 1,
2098 3, 3, 1, 3, 1, 3, 1, 1, 2, 1,
2099 1, 1, 2, 2, 1, 1, 0, 4, 1, 2,
2100 1, 3, 3, 2, 4, 2, 1, 1, 1, 1,
2101 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2102 1, 1, 0, 1, 0, 1, 2, 2, 0, 1,
2109 static const yytype_uint16 yydefact[] =
2111 2, 0, 0, 1, 0, 352, 353, 354, 0, 345,
2112 346, 347, 350, 348, 349, 351, 340, 341, 342, 343,
2113 303, 266, 266, 527, 526, 528, 529, 634, 0, 634,
2114 10, 0, 531, 530, 532, 616, 618, 523, 522, 617,
2115 525, 517, 518, 519, 520, 466, 537, 538, 0, 0,
2116 0, 0, 295, 645, 645, 86, 412, 492, 490, 492,
2117 494, 474, 486, 480, 488, 0, 0, 0, 3, 632,
2118 6, 9, 33, 37, 49, 57, 266, 56, 0, 74,
2119 0, 78, 88, 0, 54, 224, 239, 0, 291, 0,
2120 0, 317, 320, 632, 0, 0, 0, 0, 58, 312,
2121 280, 281, 465, 467, 282, 283, 284, 286, 285, 287,
2122 463, 464, 462, 515, 533, 534, 288, 0, 289, 62,
2123 5, 8, 169, 180, 170, 193, 166, 186, 176, 175,
2124 196, 197, 191, 174, 173, 168, 194, 198, 199, 178,
2125 167, 181, 185, 187, 179, 172, 188, 195, 190, 189,
2126 182, 192, 177, 165, 184, 183, 164, 171, 162, 163,
2127 159, 160, 161, 117, 119, 118, 154, 155, 150, 132,
2128 133, 134, 141, 138, 140, 135, 136, 156, 157, 142,
2129 143, 147, 151, 137, 139, 129, 130, 131, 144, 145,
2130 146, 148, 149, 152, 153, 158, 122, 124, 126, 26,
2131 120, 121, 123, 125, 0, 0, 0, 0, 0, 0,
2132 0, 490, 0, 261, 0, 246, 271, 72, 265, 645,
2133 0, 533, 534, 0, 289, 645, 610, 73, 71, 634,
2134 70, 0, 645, 437, 69, 634, 635, 0, 0, 21,
2135 236, 0, 0, 340, 341, 303, 306, 438, 0, 218,
2136 0, 219, 300, 0, 19, 0, 0, 632, 15, 18,
2137 634, 76, 14, 634, 0, 0, 638, 638, 247, 0,
2138 0, 638, 608, 634, 0, 0, 0, 84, 344, 0,
2139 94, 95, 102, 314, 413, 512, 511, 513, 510, 0,
2140 509, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2141 0, 0, 516, 53, 230, 231, 641, 642, 4, 643,
2142 633, 0, 0, 0, 0, 0, 0, 0, 442, 440,
2143 427, 63, 311, 421, 423, 0, 90, 0, 82, 79,
2144 0, 0, 0, 0, 0, 0, 242, 243, 0, 0,
2145 0, 0, 0, 0, 0, 0, 0, 240, 241, 0,
2146 0, 0, 0, 0, 0, 0, 0, 0, 0, 629,
2147 435, 645, 628, 433, 0, 55, 0, 0, 0, 0,
2148 632, 0, 633, 0, 366, 365, 0, 0, 533, 534,
2149 289, 112, 113, 0, 0, 115, 541, 0, 533, 534,
2150 289, 332, 189, 182, 192, 177, 159, 160, 161, 117,
2151 118, 606, 334, 605, 0, 631, 630, 0, 313, 468,
2152 0, 0, 127, 613, 300, 272, 615, 268, 0, 0,
2153 0, 0, 262, 270, 435, 645, 433, 0, 0, 0,
2154 263, 634, 0, 305, 267, 634, 257, 645, 645, 256,
2155 634, 310, 52, 23, 25, 24, 0, 307, 0, 0,
2156 0, 435, 433, 0, 17, 0, 634, 298, 13, 633,
2157 75, 294, 296, 301, 640, 639, 248, 640, 250, 302,
2158 609, 0, 101, 516, 92, 87, 0, 435, 645, 433,
2159 565, 496, 499, 497, 514, 493, 469, 491, 470, 471,
2160 495, 472, 473, 0, 476, 482, 0, 483, 478, 479,
2161 0, 484, 0, 485, 0, 644, 7, 27, 28, 29,
2162 30, 31, 50, 51, 447, 444, 60, 64, 447, 0,
2163 34, 276, 0, 36, 275, 634, 0, 80, 91, 48,
2164 38, 46, 0, 251, 271, 200, 35, 0, 289, 216,
2165 223, 225, 226, 227, 234, 235, 228, 229, 209, 210,
2166 232, 233, 634, 220, 221, 222, 211, 212, 213, 214,
2167 215, 244, 245, 619, 621, 620, 622, 0, 266, 432,
2168 634, 619, 621, 620, 622, 0, 266, 0, 645, 357,
2169 0, 356, 0, 0, 0, 0, 0, 0, 300, 435,
2170 645, 433, 325, 330, 112, 113, 114, 539, 328, 435,
2171 645, 433, 0, 0, 335, 627, 626, 337, 619, 620,
2172 266, 39, 251, 201, 45, 208, 0, 0, 612, 0,
2173 273, 269, 645, 619, 620, 634, 619, 620, 611, 304,
2174 636, 253, 258, 260, 309, 22, 0, 237, 0, 32,
2175 430, 428, 207, 0, 77, 16, 634, 638, 0, 85,
2176 623, 100, 634, 619, 620, 571, 568, 567, 566, 569,
2177 577, 586, 0, 597, 587, 601, 600, 596, 565, 414,
2178 564, 418, 570, 572, 573, 575, 550, 579, 584, 645,
2179 589, 645, 594, 550, 599, 550, 0, 548, 500, 0,
2180 475, 477, 487, 481, 489, 217, 0, 448, 0, 445,
2181 444, 0, 279, 0, 89, 83, 0, 0, 0, 0,
2182 435, 645, 433, 0, 0, 0, 436, 67, 0, 0,
2183 439, 0, 0, 434, 65, 645, 355, 292, 645, 645,
2184 454, 645, 358, 645, 360, 318, 359, 321, 0, 0,
2185 324, 623, 299, 634, 619, 620, 0, 0, 0, 0,
2186 112, 113, 116, 634, 0, 634, 543, 0, 255, 424,
2187 59, 254, 128, 614, 274, 264, 0, 0, 439, 0,
2188 0, 645, 634, 11, 0, 297, 249, 93, 439, 0,
2189 378, 369, 371, 634, 367, 634, 415, 0, 0, 557,
2190 578, 0, 546, 604, 588, 0, 547, 0, 560, 598,
2191 0, 562, 602, 501, 505, 506, 507, 498, 508, 443,
2192 645, 441, 645, 0, 422, 0, 277, 81, 47, 252,
2193 619, 620, 634, 619, 620, 0, 44, 205, 43, 206,
2194 68, 431, 637, 0, 41, 203, 42, 204, 66, 429,
2195 455, 456, 645, 457, 0, 645, 363, 0, 0, 361,
2196 0, 0, 0, 323, 0, 0, 439, 0, 0, 0,
2197 0, 439, 333, 607, 565, 0, 565, 338, 425, 426,
2198 0, 259, 308, 20, 634, 0, 376, 0, 574, 0,
2199 406, 0, 590, 549, 576, 550, 550, 585, 645, 603,
2200 550, 595, 550, 573, 550, 502, 404, 634, 0, 402,
2201 401, 0, 61, 278, 439, 238, 40, 202, 0, 0,
2202 459, 364, 0, 12, 461, 0, 315, 316, 0, 0,
2203 273, 645, 326, 0, 540, 329, 634, 0, 0, 543,
2204 368, 379, 0, 374, 370, 417, 0, 0, 0, 416,
2205 0, 553, 0, 555, 545, 0, 561, 0, 558, 563,
2206 503, 400, 634, 0, 573, 385, 581, 582, 645, 645,
2207 592, 385, 385, 383, 449, 446, 0, 458, 0, 533,
2208 534, 289, 0, 460, 0, 319, 322, 451, 452, 450,
2209 0, 331, 542, 336, 544, 0, 0, 377, 0, 372,
2210 410, 634, 408, 411, 0, 0, 550, 550, 550, 550,
2211 0, 0, 403, 0, 391, 393, 0, 580, 0, 381,
2212 382, 0, 396, 0, 398, 300, 435, 645, 433, 645,
2213 645, 0, 0, 375, 0, 0, 407, 420, 419, 554,
2214 0, 551, 556, 559, 0, 405, 591, 384, 385, 385,
2215 300, 435, 583, 645, 385, 593, 385, 385, 623, 299,
2216 634, 619, 620, 453, 362, 327, 339, 373, 409, 550,
2217 504, 0, 388, 0, 390, 623, 299, 380, 0, 397,
2218 0, 394, 399, 439, 552, 385, 385, 385, 385, 389,
2219 0, 386, 392, 395, 385, 387
2223 static const yytype_int16 yydefgoto[] =
2225 -1, 1, 2, 68, 69, 70, 241, 577, 578, 257,
2226 258, 455, 259, 446, 72, 530, 73, 366, 74, 75,
2227 517, 700, 76, 77, 78, 260, 79, 80, 81, 475,
2228 82, 214, 385, 386, 196, 197, 198, 199, 616, 566,
2229 201, 84, 448, 357, 85, 216, 265, 535, 233, 759,
2230 435, 436, 230, 231, 218, 422, 437, 523, 524, 86,
2231 364, 263, 264, 646, 636, 368, 851, 369, 852, 746,
2232 980, 749, 747, 602, 604, 756, 757, 929, 250, 88,
2233 89, 90, 91, 92, 93, 94, 95, 96, 97, 727,
2234 580, 735, 848, 849, 377, 781, 782, 783, 1037, 1005,
2235 952, 898, 899, 879, 991, 992, 283, 284, 480, 786,
2236 881, 669, 939, 324, 518, 98, 99, 725, 718, 575,
2237 567, 322, 515, 514, 698, 699, 812, 696, 697, 810,
2238 587, 979, 729, 842, 909, 913, 100, 101, 102, 103,
2239 104, 105, 106, 295, 493, 107, 299, 108, 109, 297,
2240 301, 291, 289, 293, 485, 689, 688, 803, 895, 950,
2241 1000, 807, 110, 290, 111, 112, 113, 221, 222, 116,
2242 223, 224, 598, 748, 865, 866, 883, 789, 671, 672,
2243 673, 893, 675, 676, 677, 678, 957, 958, 679, 680,
2244 681, 682, 960, 961, 683, 684, 685, 686, 687, 792,
2245 404, 603, 270, 438, 226, 119, 640, 569, 607, 601,
2246 407, 308, 432, 433, 720, 466, 581, 372, 262
2251 #define YYPACT_NINF -884 2252 static const yytype_int16 yypact[] =
2254 -884, 88, 2724, -884, 7808, -884, -884, -884, 7302, -884,
2255 -884, -884, -884, -884, -884, -884, 7925, 7925, -884, -884,
2256 7925, 4141, 3727, -884, -884, -884, -884, 47, 7166, -14,
2257 -884, 76, -884, -884, -884, 3037, 3865, -884, -884, 3175,
2258 -884, -884, -884, -884, -884, -884, -884, -884, 9329, 9329,
2259 64, 5501, 198, 8276, 8627, 7568, -884, 7030, -884, -884,
2260 -884, 19, 77, 111, 162, 796, 9446, 9329, -884, 383,
2261 -884, 1130, -884, 400, -884, -884, 106, 121, 99, -884,
2262 187, 9680, -884, 108, 3291, 472, 378, 566, -884, 9563,
2263 9563, -884, -884, 6402, 9793, 9906, 10019, 6893, 305, 84,
2264 -884, -884, 241, -884, -884, -884, -884, -884, -884, -884,
2265 -884, -884, -884, -884, 415, 621, -884, 285, 653, -884,
2266 -884, -884, -884, -884, -884, -884, -884, -884, -884, -884,
2267 -884, -884, -884, -884, -884, -884, -884, -884, -884, -884,
2268 -884, -884, -884, -884, -884, -884, -884, -884, -884, -884,
2269 -884, -884, -884, -884, -884, -884, -884, -884, -884, -884,
2270 -884, -884, -884, -884, -884, -884, -884, -884, -884, -884,
2271 -884, -884, -884, -884, -884, -884, -884, -884, -884, -884,
2272 -884, -884, -884, -884, -884, -884, -884, -884, -884, -884,
2273 -884, -884, -884, -884, -884, -884, -884, -884, -884, 240,
2274 -884, -884, -884, -884, 244, 9329, 332, 5633, 9329, 9329,
2275 9329, -884, 9329, -884, 280, 3291, 312, -884, -884, 276,
2276 610, 51, 355, 371, 387, 292, -884, -884, -884, 6285,
2277 -884, 7925, 7925, -884, -884, 6519, -884, 9563, 647, -884,
2278 278, 361, 5765, -884, -884, -884, 358, 401, 106, -884,
2279 693, 456, 714, 8042, -884, 5501, 404, 383, -884, 1130,
2280 -14, 424, -884, -14, 8042, 408, -21, -11, -884, 312,
2281 422, -11, -884, -14, 524, 796, 10132, 478, -884, 731,
2282 735, 758, 762, -884, -884, -884, -884, -884, -884, 729,
2283 -884, 891, 911, 452, 496, 957, 518, 80, 532, 977,
2284 539, 252, 564, -884, -884, -884, -884, -884, -884, -884,
2285 6636, 9563, 9563, 9563, 9563, 8042, 9563, 9563, -884, -884,
2286 -884, 568, -884, -884, -884, 8744, -884, 5501, 7688, 530,
2287 8744, 9329, 9329, 9329, 9329, 9329, -884, -884, 9329, 9329,
2288 9329, 9329, 9329, 9329, 9329, 9329, 9329, -884, -884, 9329,
2289 9329, 9329, 9329, 9329, 9329, 9329, 9329, 9329, 9329, -884,
2290 2448, 7925, -884, 10421, 4838, 400, 148, 148, 9563, 9563,
2291 383, 658, 536, 630, -884, -884, 790, 663, 59, 75,
2292 92, 67, 463, 9563, 356, -884, 578, 795, -884, -884,
2293 -884, -884, 4, 27, 31, 97, 266, 327, 339, 344,
2294 414, -884, -884, -884, 443, -884, -884, 10502, -884, -884,
2295 9446, 9446, -884, -884, 473, -884, -884, -884, 699, 9329,
2296 9329, 8159, -884, -884, 10583, 7925, 10664, 9329, 9329, 8393,
2297 -884, -14, 577, -884, -884, -14, -884, 567, 582, -884,
2298 157, -884, -884, -884, -884, -884, 7302, -884, 9329, 5908,
2299 585, 10583, 10664, 9329, 1130, 591, -14, -884, -884, 6753,
2300 593, -884, 1130, -884, 8510, -884, -884, 8627, -884, -884,
2301 -884, 278, 805, -884, -884, 604, 10132, 10745, 7925, 10826,
2302 1469, -884, -884, -884, -884, -884, -884, -884, -884, -884,
2303 -884, -884, -884, 331, -884, -884, 602, -884, -884, -884,
2304 493, -884, 605, -884, 9329, -884, -884, -884, -884, -884,
2305 -884, -884, -884, -884, -884, -884, -884, -884, -884, 9329,
2306 -884, 612, 616, -884, -884, -14, 10132, 619, -884, -884,
2307 -884, 713, 644, 1889, -884, -884, -884, 808, 489, 456,
2308 2576, 2576, 2576, 2576, 3705, 3567, 2576, 2576, 3429, 3429,
2309 544, 544, 11504, 835, 835, 1112, 352, 352, 456, 456,
2310 456, 1188, 1188, 4279, 3313, 4555, 3451, 401, 627, -884,
2311 -14, 780, -884, 893, -884, 401, 4003, 763, 768, -884,
2312 4981, 769, 5267, 140, 140, 658, 8861, 763, 96, 10907,
2313 7925, 10988, -884, 400, -884, 805, -884, -884, -884, 11069,
2314 7925, 10502, 4838, 9563, -884, -884, -884, -884, -884, -884,
2315 2107, -884, 3153, -884, -884, -884, 7302, 9329, -884, 9329,
2316 312, -884, 292, 2899, 3589, -14, 504, 521, -884, -884,
2317 -884, -884, 8159, 8393, -884, -884, 9563, 3291, 650, -884,
2318 -884, -884, -884, 5908, 28, -884, -14, -11, 10132, 604,
2319 384, 596, -14, 437, 444, -884, -884, -884, -884, -884,
2320 -884, -884, 1169, -884, -884, -884, -884, -884, 1619, -884,
2321 -884, -884, -884, -884, 685, -884, 670, 9329, -884, 690,
2322 778, 695, -884, 698, 792, 710, 800, -884, -884, 1153,
2323 -884, -884, -884, -884, -884, 456, 838, -884, 725, -884,
2324 -884, 851, 727, 8978, -884, 604, 10132, 8042, 9446, 9329,
2325 11150, 7925, 11231, 746, 9446, 9446, -884, 568, 401, 728,
2326 959, 9446, 9446, -884, 568, 401, -884, -884, 9095, 858,
2327 -884, 440, -884, 858, -884, -884, -884, -884, 763, 101,
2328 -884, 65, 164, -14, 112, 147, 9563, 383, 9563, 4838,
2329 603, 596, -884, -14, 763, 157, 741, 7438, -884, 84,
2330 121, -884, -884, -884, -884, -884, 9329, 9329, 527, 9329,
2331 9329, 747, 157, -884, 753, -884, -884, -884, 495, 1169,
2332 482, -884, 752, -14, -884, -14, -884, 9329, 1619, -884,
2333 -884, 60, -884, -884, -884, 33, -884, 1619, -884, -884,
2334 1227, -884, -884, -884, -884, -884, -884, -884, -884, -884,
2335 18, -884, 18, 756, -884, 9329, 766, 604, -884, 3291,
2336 4417, 4693, -14, 586, 599, 9329, -884, -884, -884, -884,
2337 -884, -884, -884, 9446, -884, -884, -884, -884, -884, -884,
2338 612, -884, 816, -884, 5384, 890, -884, 9563, 763, -884,
2339 763, 6051, 6051, -884, 9212, 5124, 154, 140, 4838, 383,
2340 763, -884, -884, -884, 1619, 4838, 1619, -884, -884, -884,
2341 9329, 8393, -884, -884, -14, 1108, 776, 1314, -884, 774,
2342 786, 68, -884, -884, -884, 801, 806, -884, 695, -884,
2343 809, -884, 811, -884, 809, -884, -884, 1236, 4838, -884,
2344 -884, 5765, -884, 813, 617, 3291, -884, -884, 10245, 148,
2345 -884, -884, 6051, -884, -884, 148, -884, -884, 763, 763,
2346 -884, 308, -884, 763, -884, -884, -14, 763, 383, 741,
2347 -884, 814, 1108, 744, -884, -884, 1195, 6051, 5765, -884,
2348 1619, -884, 1227, -884, -884, 1227, -884, 1227, -884, -884,
2349 -884, -884, -14, 810, 850, 831, 10358, -884, 841, 695,
2350 -884, 843, 849, -884, -884, -884, 877, -884, 900, 208,
2351 218, 234, 4838, -884, 4981, -884, -884, -884, -884, -884,
2352 6051, -884, -884, -884, -884, 4838, 1108, 814, 1108, 853,
2353 -884, 169, -884, -884, 763, 856, 809, 855, 809, 809,
2354 6168, 875, -884, 10358, 1619, -884, 944, 918, 60, -884,
2355 -884, 1619, -884, 1227, -884, 256, 11312, 7925, 11393, 768,
2356 440, 763, 763, 814, 1108, 1195, -884, -884, -884, -884,
2357 1227, -884, -884, -884, 897, -884, 918, -884, 865, 872,
2358 -884, 11474, -884, 695, 885, -884, 889, 885, 260, 318,
2359 -14, 348, 367, -884, -884, -884, -884, 814, -884, 809,
2360 -884, 1619, -884, 1227, -884, 888, 896, -884, 1227, -884,
2361 1227, -884, -884, 368, -884, 885, 909, 885, 885, -884,
2362 1227, -884, -884, -884, 885, -884
2366 static const yytype_int16 yypgoto[] =
2368 -884, -884, -884, -380, -884, 39, -884, -412, -27, -884,
2369 569, -884, 81, -884, -223, -374, -61, -52, -59, -884,
2370 -378, -884, 2134, -5, 961, -169, 15, -76, -884, -432,
2371 0, 1449, -319, 955, -49, -884, -12, -884, -884, 32,
2372 -884, 767, -884, 973, -884, 1135, -884, 215, -67, 336,
2373 -322, 89, -9, -884, -375, -206, 5, -884, -304, -32,
2374 -884, -884, -884, -884, -884, -884, -884, -884, -884, -884,
2375 -884, -884, -884, -884, -884, -884, -884, -884, 57, -884,
2376 -884, -884, -884, -884, -884, -884, -884, -884, -884, -168,
2377 -349, -531, 43, -642, -884, -809, -805, 286, 171, 91,
2378 -884, 263, -884, -786, -884, 53, -884, -884, -884, -884,
2379 -884, -884, -884, 319, -884, -884, -884, -884, -884, -884,
2380 -884, -98, -884, -884, 372, -884, -884, 562, -884, -884,
2381 -543, -884, 63, -884, -884, -884, -884, -884, -884, 986,
2382 -884, -884, -884, -884, 794, -884, -884, -884, -884, -884,
2383 -884, 880, 1035, -884, -86, -884, -884, -884, -884, -884,
2384 -884, -884, 2, -884, 6, -884, -8, 1181, 1352, 998,
2385 1693, 938, -884, -884, 174, -884, -460, 153, -589, -861,
2386 -211, -433, -706, 259, 73, 313, 107, -884, -884, -884,
2387 3, -741, -883, 110, 338, -884, -675, -884, -145, -601,
2388 -884, -884, -884, 82, -396, -884, -282, -884, -884, -81,
2389 -884, -43, -25, -159, -580, -236, -66, 26, -2
2396 #define YYTABLE_NINF -646 2397 static const yytype_int16 yytable[] =
2399 120, 408, 237, 309, 240, 329, 363, 303, 288, 320,
2400 202, 213, 213, 234, 203, 213, 239, 406, 582, 430,
2401 670, 219, 219, 278, 256, 219, 536, 309, 365, 365,
2402 202, 468, 365, 628, 203, 470, 611, 614, 367, 570,
2403 200, 370, 738, 121, 649, 768, 621, 674, 402, 278,
2404 371, 268, 272, 737, 621, 277, 891, 302, 266, 87,
2405 200, 87, 278, 278, 278, 596, 261, 321, 934, 638,
2406 931, 628, 778, 220, 220, 993, 441, 220, 568, 785,
2407 796, 576, 884, 71, -103, 71, 456, 845, 3, 200,
2408 -107, 850, -527, -616, 705, 310, 896, 937, 225, 225,
2409 -104, 460, 225, 625, 461, 217, 227, 529, 87, 228,
2410 318, 953, 279, 886, 579, -526, 464, -111, 660, -528,
2411 252, -110, 892, 220, 465, 610, 467, 987, 1045, 200,
2412 661, 236, 318, 665, 465, 267, 271, -106, 279, 426,
2413 897, -535, 568, 496, 576, -75, 220, 220, -527, 323,
2414 220, 376, 387, 387, -521, -521, 652, 666, 525, 664,
2415 665, 579, 294, 856, 993, -89, 1001, 734, -103, 452,
2416 641, -526, -108, 861, 440, -528, 442, 934, 1045, -105,
2417 256, 320, 938, 1023, 666, -529, 235, 529, 529, -109,
2418 754, 309, 236, 497, 316, 317, -94, 641, 479, 891,
2419 474, -616, -98, -521, -619, 487, -616, 490, 670, 494,
2420 242, -521, -95, 494, 458, 450, 325, 423, 319, 1057,
2421 296, -103, 962, 423, 213, 330, 213, 213, 256, -102,
2422 439, -104, 430, -101, 219, 674, 219, 628, 854, 884,
2423 319, -529, 904, 306, 278, 232, 307, -111, 471, -97,
2424 365, 365, 365, 365, 298, 512, 513, 621, 621, 507,
2425 508, 509, 510, 774, 87, 997, 520, 473, 743, -110,
2426 261, 531, 629, -107, 817, 926, 631, 928, 753, 977,
2427 752, 634, 306, 459, -99, 307, 220, 944, 220, 220,
2428 306, -96, 220, 307, 220, 591, 278, 644, 884, 87,
2429 256, -100, 236, -620, 309, 300, 1025, 365, 365, 641,
2430 87, 225, 87, 225, 236, 502, 583, 584, 431, 641,
2431 434, 87, 593, 844, 326, 586, 922, 585, 527, 1039,
2432 522, -109, 487, 279, 454, 522, 1046, 860, -293, 830,
2433 826, 828, 261, -293, 58, 462, 838, 834, 836, 506,
2434 -103, 531, 531, -103, -531, 674, 213, 1009, 1010, 439,
2435 -104, -106, 884, -104, 674, 503, 704, 87, 220, 220,
2436 220, 220, 87, 220, 220, 410, -111, 412, 978, -111,
2437 -108, -105, 220, 235, 87, 279, 1076, 537, 414, 822,
2438 855, 71, 359, 405, 481, 574, 511, 419, -110, -619,
2439 474, -110, -107, 420, 670, -107, 670, 691, 594, -98,
2440 -531, 776, 595, 421, 691, -530, 765, 447, 220, 740,
2441 213, 87, 331, 439, 841, 220, 220, -532, 568, 429,
2442 576, 674, -521, 674, 635, 423, 423, 316, 317, 574,
2443 220, 482, 1067, 483, 278, -536, 923, 120, 202, 362,
2444 474, 784, 203, 927, 847, 844, 712, -620, 574, 906,
2445 -109, 427, -97, -109, 954, -344, -344, 537, 537, -99,
2446 1073, -530, -104, 213, 690, 628, 439, 428, 200, 354,
2447 355, 356, 220, -532, 574, 529, 964, 775, -521, -617,
2448 -106, 529, 529, -106, 278, 449, 621, 229, 529, 529,
2449 716, -98, -524, 622, -111, -535, 87, 674, 723, -108,
2450 -105, 574, -108, -105, -344, 481, 87, 736, 736, 489,
2451 -96, -98, -344, -619, -98, 306, 331, 713, 307, -98,
2452 71, 605, -103, 279, 655, 220, 656, 657, 658, 659,
2453 232, -74, 755, 758, 457, 719, 647, 336, 337, 463,
2454 -524, -524, -94, 731, -97, 733, 481, 469, -524, 717,
2455 972, -99, 482, 453, 483, 765, 974, 724, 784, 876,
2456 853, 954, 777, 1022, -97, 772, 730, -97, 954, 411,
2457 472, -99, -97, 279, -99, 213, 862, 606, 439, -99,
2458 -110, 739, 347, 348, 769, 213, 863, -617, 439, -524,
2459 719, 760, -617, 482, 762, 483, -111, -524, 761, 491,
2460 529, 770, -96, 872, 331, 476, 278, 870, 202, 875,
2461 423, -106, 203, 574, 878, 613, 615, 719, 954, -623,
2462 474, 495, -96, 574, 504, -96, 693, 87, -108, 87,
2463 -96, 120, 613, 615, -105, 498, 889, 220, 200, 531,
2464 889, 831, 501, 359, 360, 531, 531, 220, 758, 87,
2465 220, 868, 531, 531, 784, 516, 784, 528, 642, 352,
2466 353, 354, 355, 356, 278, 586, 721, 793, 505, 793,
2467 916, 858, 917, -299, -299, 365, 588, 365, 592, 722,
2468 -623, -623, 925, 220, 857, 1050, 859, 359, 424, 597,
2469 87, 443, 361, -106, 632, 279, 213, 833, 867, 439,
2470 362, -536, 444, 445, 771, 930, -108, 630, 719, 633,
2471 639, 784, 989, 761, 71, 643, 843, 846, 719, 846,
2472 -89, 846, -299, 522, -105, -620, 641, -623, -104, -623,
2473 -299, 648, -619, 411, 574, 692, 425, -623, 694, -271,
2474 975, 976, 963, 703, 362, 981, 706, 707, -95, 983,
2475 880, 708, 481, 279, 87, 537, -430, 982, 220, 423,
2476 -111, 537, 537, 726, 531, 784, 728, 784, 537, 537,
2477 359, 451, 732, 215, 215, 773, 365, 215, 818, 200,
2478 -102, 736, 481, 924, 888, 915, 655, 719, 656, 657,
2479 658, 659, 787, 220, 453, 220, 87, 788, 900, 482,
2480 900, 483, 486, 784, 617, 249, 251, 911, 359, 477,
2481 215, 215, -533, -533, 918, 919, 1027, 791, 921, 425,
2482 794, -110, 795, 304, 305, 797, 798, 362, 801, 482,
2483 910, 483, 484, 914, 799, -534, -534, 800, 809, -289,
2484 -289, -101, 802, 1055, 1056, 41, 42, 43, 44, 963,
2485 811, 814, 984, 889, -272, 825, 963, 478, 963, 832,
2486 721, -533, 880, 844, 965, 362, 278, 359, 589, -533,
2487 864, 988, 359, 599, 871, 973, 793, 1018, 873, 877,
2488 537, 902, -300, -300, -534, 359, 710, -106, -289, 912,
2489 959, 87, -534, -273, 220, 331, -289, 908, 87, 87,
2490 994, 995, 87, 932, 935, 87, 963, -97, 963, 846,
2491 344, 345, 87, 963, 278, 963, 590, 880, 936, 827,
2492 829, 600, 1002, 1015, 362, 963, 835, 837, 940, 362,
2493 118, -300, 118, 942, 711, 1019, 945, 1020, 947, -300,
2494 -274, 986, 362, 1021, 481, 87, 793, 793, 87, 351,
2495 352, 353, 354, 355, 356, 968, 1026, 1003, 1004, 87,
2496 956, 278, 215, 1034, 481, 215, 215, 215, 1008, 304,
2497 1011, 827, 829, 722, 835, 837, 1013, 359, 1016, 118,
2498 1024, 1028, 1030, 282, 87, 87, 215, 1035, 215, 215,
2499 1040, 482, 1061, 483, 486, 359, 1041, 959, 1060, 1063,
2500 -108, 1043, 213, 1007, 959, 439, 959, 730, 846, 282,
2501 481, 482, 1068, 483, 488, 719, 1070, -619, 645, 87,
2502 -99, 87, 380, 390, 390, -620, 1017, 87, 941, 943,
2503 481, 793, 87, 946, 362, 948, 1080, 949, 907, 833,
2504 574, 391, 1012, 1014, 600, 374, 890, 87, 358, 894,
2505 1036, 839, 362, 1054, 959, 874, 959, 482, 951, 483,
2506 492, 959, 813, 959, 220, 901, -105, 956, 1058, 869,
2507 701, 956, 1053, 959, 956, 907, 956, 482, 409, 483,
2508 499, 418, 215, 500, 292, 403, -96, 533, 539, 540,
2509 541, 542, 543, 985, 887, 544, 545, 546, 547, 548,
2510 549, 550, 551, 552, 1038, 1042, 553, 554, 555, 556,
2511 557, 558, 559, 560, 561, 562, 885, 0, 215, 1062,
2512 1064, 0, 0, 0, 956, 1069, 956, 1071, 1072, 0,
2513 0, 956, 0, 956, 0, 118, 0, 0, 0, 1029,
2514 1031, 1032, 1033, 956, 0, 0, 955, 0, 0, 0,
2515 655, 0, 656, 657, 658, 659, 1079, 1081, 1082, 1083,
2516 311, 312, 313, 314, 315, 1085, 0, 612, 612, 0,
2517 118, 0, 331, 114, 0, 114, 612, 215, 215, 269,
2518 0, 118, 215, 118, 612, 612, 215, 344, 345, 996,
2519 779, 998, 118, 0, 0, 0, 999, 804, 805, 0,
2520 806, 0, 1074, 0, 282, 637, 0, 0, 46, 47,
2521 612, 655, 0, 656, 657, 658, 659, 0, 0, 0,
2522 0, 215, 114, 0, 215, 0, 280, 352, 353, 354,
2523 355, 356, 0, 0, 0, 215, 0, 990, 118, 656,
2524 657, 658, 659, 118, 0, 0, 0, 0, 331, 0,
2525 0, 779, 280, 0, 0, 118, 282, 780, 538, 0,
2526 1044, 695, 1047, 344, 345, 378, 388, 388, 388, 655,
2527 0, 656, 657, 658, 659, 660, 215, 0, 655, 1059,
2528 656, 657, 658, 659, 660, 0, 0, 661, 0, 0,
2529 0, 0, 118, 0, 0, 0, 661, 0, 0, 0,
2530 349, 350, 351, 352, 353, 354, 355, 356, 0, 662,
2531 1075, 0, 1077, 0, 0, 0, 664, 665, 662, 1078,
2532 0, 0, 0, 0, 663, 664, 665, 0, 0, 1084,
2533 413, 0, 0, 415, 416, 417, 0, 0, 538, 538,
2534 0, 666, 0, 215, 115, 0, 115, 215, 0, 0,
2535 666, 0, 0, 667, 0, 0, 655, 215, 656, 657,
2536 658, 659, 0, 0, 0, 0, 0, 0, 0, 0,
2537 0, 236, 0, 0, 215, 0, 215, 118, 114, 0,
2538 0, 0, 0, 0, 0, 0, 0, 118, 0, 215,
2539 215, 0, 0, 115, 0, 0, 779, 281, 0, 0,
2540 0, 0, 933, 0, 282, 0, 0, 0, 0, 0,
2541 0, 0, 0, 114, 0, 0, 0, 0, 0, 0,
2542 0, 0, 0, 281, 114, 0, 114, 0, 0, 0,
2543 0, 0, 0, 0, 215, 114, 379, 389, 389, 389,
2544 0, 83, 0, 83, 0, 0, 0, 280, 0, 0,
2545 521, 0, 0, 0, 282, 534, 0, 0, 0, 0,
2546 215, 0, 0, 0, 0, 612, 819, 0, 215, 0,
2547 0, 612, 612, 0, 0, 0, 0, 0, 612, 612,
2548 0, 114, 0, 0, 0, 215, 114, 0, 0, 0,
2549 83, 0, 0, 0, 0, 0, 0, 0, 114, 280,
2550 0, 0, 0, 0, 0, 0, 0, 0, 118, 0,
2551 118, 655, 0, 656, 657, 658, 659, 660, 0, 0,
2552 0, 0, 0, 612, 612, 0, 612, 612, 0, 661,
2553 118, 0, 0, 375, 0, 114, 0, 0, 0, 0,
2554 0, 0, 0, 0, 215, 618, 620, 0, 0, 115,
2555 0, 662, 0, 0, 269, 0, 0, 663, 664, 665,
2556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2557 0, 118, 215, 0, 0, 0, 282, 0, 0, 0,
2558 0, 0, 905, 666, 115, 0, 667, 0, 0, 620,
2559 612, 0, 269, 0, 0, 115, 0, 115, 668, 0,
2560 0, 0, 0, 0, 0, 0, 115, 0, 0, 0,
2561 0, 215, 0, 0, 0, 0, 0, 808, 281, 0,
2562 114, 0, 0, 0, 0, 0, 0, 612, 215, 0,
2563 114, 0, 0, 0, 282, 118, 538, 0, 0, 0,
2564 0, 0, 538, 538, 702, 0, 83, 280, 0, 538,
2565 538, 0, 115, 0, 0, 0, 0, 115, 0, 0,
2566 0, 655, 0, 656, 657, 658, 659, 660, 0, 115,
2567 281, 0, 0, 0, 0, 0, 0, 118, 0, 661,
2568 0, 83, 0, 0, 0, 117, 0, 117, 0, 0,
2569 0, 0, 83, 0, 83, 0, 0, 280, 0, 0,
2570 0, 662, 0, 83, 0, 0, 115, 663, 664, 665,
2571 0, 534, 0, 0, 0, 0, 0, 0, 0, 0,
2572 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2573 0, 0, 0, 666, 117, 0, 667, 0, 0, 0,
2574 0, 0, 763, 0, 764, 0, 0, 0, 0, 83,
2575 0, 114, 0, 114, 83, 0, 0, 620, 269, 0,
2576 0, 538, 0, 0, 0, 0, 83, 0, 0, 532,
2577 0, 0, 118, 114, 215, 0, 0, 0, 0, 118,
2578 118, 0, 0, 118, 0, 0, 118, 0, 0, 0,
2579 0, 115, 0, 118, 0, 0, 0, 0, 0, 0,
2580 0, 115, 790, 83, 0, 0, 0, 0, 0, 0,
2581 0, 0, 0, 0, 114, 0, 0, 0, 281, 280,
2582 0, 0, 0, 0, 0, 0, 118, 0, 816, 118,
2583 0, 0, 0, 0, 0, 0, 971, 0, 0, 0,
2584 118, 0, 0, 0, 0, 0, 0, 0, 0, 532,
2585 532, 0, 0, 840, 0, 0, 0, 0, 0, 0,
2586 0, 0, 0, 0, 0, 118, 118, 0, 281, 0,
2587 0, 0, 0, 0, 0, 0, 0, 280, 114, 0,
2588 0, 0, 0, 0, 390, 0, 0, 0, 83, 0,
2589 117, 0, 0, 0, 0, 0, 0, 0, 83, 0,
2590 118, 0, 118, 0, 0, 0, 0, 0, 118, 0,
2591 0, 0, 882, 118, 0, 0, 0, 0, 0, 0,
2592 114, 0, 115, 709, 115, 117, 0, 0, 118, 0,
2593 0, 390, 0, 0, 0, 0, 117, 0, 117, 0,
2594 903, 0, 0, 0, 115, 0, 0, 117, 0, 331,
2595 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
2596 342, 343, 0, 0, 344, 345, 0, 0, 0, 0,
2597 0, 0, 0, 0, 0, 0, 0, 0, 0, 920,
2598 0, 0, 0, 0, 0, 115, 0, 0, 0, 0,
2599 281, 0, 0, 117, 0, 0, 269, 346, 117, 347,
2600 348, 349, 350, 351, 352, 353, 354, 355, 356, 0,
2601 117, 0, 0, 117, 0, 114, -246, 0, 0, 83,
2602 0, 83, 114, 114, 0, 0, 114, 0, 0, 114,
2603 0, 0, 0, 0, 0, 0, 114, 0, 0, 0,
2604 0, 83, 0, 0, 0, 0, 0, 117, 281, 115,
2605 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2606 0, 0, 0, 0, 0, 0, 0, 0, 0, 114,
2607 0, 0, 114, 0, 0, 0, 0, 0, 0, 969,
2608 0, 0, 83, 114, 0, 0, 0, 0, 0, 0,
2609 0, 115, 0, 117, 117, 0, 0, -645, 0, 0,
2610 0, 0, 0, 0, 0, -645, -645, -645, 114, 114,
2611 -645, -645, -645, 0, -645, 0, 0, 0, 0, 0,
2612 0, 0, 0, -645, -645, 0, 0, 388, 0, 0,
2613 0, 0, 117, 0, -645, -645, 0, -645, -645, -645,
2614 -645, -645, 117, 114, 0, 114, 83, 532, 0, 0,
2615 0, 114, 0, 532, 532, 0, 114, 0, 0, 0,
2616 532, 532, 0, 0, 0, 0, 0, 0, 0, 0,
2617 0, 114, 248, 248, 388, 0, 0, 248, 248, 248,
2618 0, 0, 0, 0, -645, -645, 115, 0, 83, 0,
2619 0, 248, 0, 115, 115, 0, 0, 115, 0, 0,
2620 115, 0, 0, 0, 0, 248, 0, 115, -645, 0,
2621 0, 0, 0, 0, 0, 0, 0, 0, 248, 248,
2622 248, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2623 0, -645, -645, 0, 0, 0, 232, -645, 0, -645,
2624 115, -645, -645, 115, 0, 0, 0, 0, 0, 0,
2625 970, 0, 0, 0, 115, 0, 0, 0, 0, 0,
2626 0, 0, 0, 117, 0, 117, 0, 0, 0, 0,
2627 0, 0, 532, 0, 0, 0, 0, 0, 0, 115,
2628 115, 0, 0, 83, 0, 117, 0, 0, 0, 0,
2629 83, 83, 0, 0, 83, 0, 0, 83, 389, 0,
2630 0, 0, 0, 0, 83, 0, 0, 0, 0, 0,
2631 0, 0, 0, 0, 115, 0, 115, 0, 0, 0,
2632 0, 0, 115, 0, 0, 0, 117, 115, 0, 248,
2633 0, 0, 248, 248, 248, 0, 248, 83, 0, 0,
2634 83, 0, 115, 0, 0, 389, 0, 967, 0, 0,
2635 0, 83, 0, 0, 0, 0, 0, 0, 0, 0,
2636 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2637 0, 0, 0, 0, 0, 0, 83, 83, 0, 0,
2638 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2639 117, 117, 0, 0, 0, 0, 0, 117, 117, 0,
2640 248, 0, 0, 0, 117, 117, 0, 0, 0, 0,
2641 0, 83, 0, 83, 0, 0, 0, 0, 0, 83,
2642 0, 0, 0, 0, 83, 0, 0, 0, 0, 0,
2643 0, 0, 117, 0, 0, 0, 0, 0, 0, 83,
2644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2645 0, 0, 248, 0, 0, 248, 248, 248, 248, 248,
2646 0, 0, 248, 248, 248, 248, 248, 248, 248, 248,
2647 248, 0, 0, 248, 248, 248, 248, 248, 248, 248,
2648 248, 248, 248, 0, 0, 0, 0, 0, 0, 0,
2649 563, 564, 0, 0, 565, 0, 0, 0, 0, 0,
2650 0, 0, 0, 0, 0, 0, 166, 167, 168, 169,
2651 170, 171, 172, 173, 174, 0, 117, 175, 176, 0,
2652 0, 177, 178, 179, 180, 0, 0, 117, 0, 0,
2653 0, 0, 0, 0, 117, 117, 181, 182, 117, 0,
2654 0, 117, 0, 248, 248, 248, 0, 0, 117, 0,
2655 0, 248, 248, 248, 0, 0, 0, 0, 183, 184,
2656 185, 186, 187, 188, 189, 190, 191, 192, 0, 193,
2657 194, 0, 248, 0, 0, 0, 195, 248, 0, 0,
2658 0, 117, 0, 0, 117, 0, 0, 0, 248, 0,
2659 0, 248, 0, 0, 0, 117, 0, 0, 0, 0,
2660 248, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2662 117, 117, 0, 0, 0, 0, 0, 0, 248, 0,
2663 0, 0, 0, 0, 0, 0, 331, -646, -646, -646,
2664 -646, 336, 337, 248, 0, -646, -646, 0, 0, 0,
2665 248, 344, 345, 0, 0, 117, 0, 117, 0, 0,
2666 0, 0, 0, 117, 0, 0, 0, 0, 117, 0,
2667 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2668 0, 0, 0, 117, 0, 0, 347, 348, 349, 350,
2669 351, 352, 353, 354, 355, 356, 0, 0, 0, 0,
2670 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2671 248, 0, 0, 0, -645, 4, 0, 5, 6, 7,
2672 8, 9, 0, 0, 0, 10, 11, 0, 0, 0,
2673 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2674 0, 248, 0, 248, 20, 21, 22, 23, 24, 25,
2675 26, 0, 0, 27, 0, 0, 248, 248, 0, 28,
2676 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
2677 39, 40, 248, 41, 42, 43, 44, 0, 45, 46,
2678 47, 0, 48, 49, 0, 0, 0, 0, 0, 0,
2679 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2680 0, 248, 0, 50, 0, 0, 51, 52, 0, 53,
2681 54, 0, 55, 0, 0, 56, 57, 58, 59, 60,
2682 61, 62, 63, 64, 0, 0, 0, 248, 0, 0,
2683 248, 0, 0, 248, 0, 0, 0, 0, 0, 0,
2684 0, 0, 0, 0, 65, 66, 67, 0, 0, 0,
2685 0, 0, 248, 0, 0, 0, -645, 0, 0, -645,
2686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2687 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2688 0, 0, 0, 0, 0, 0, 0, 0, 0, -623,
2689 248, 248, 0, 248, 248, 0, 0, -623, -623, -623,
2690 0, 0, -623, -623, -623, 0, -623, 0, 0, 0,
2691 0, 248, 0, 0, 0, -623, -623, -623, -623, 0,
2692 0, 0, 0, 0, 0, 0, -623, -623, 0, -623,
2693 -623, -623, -623, -623, 0, 0, 0, 0, 0, 248,
2694 0, 0, 0, 0, 0, 0, 0, 0, 0, 248,
2695 0, 0, 0, 0, 0, 0, 0, 0, 0, -623,
2696 -623, -623, -623, -623, -623, -623, -623, -623, -623, -623,
2697 -623, -623, 0, 0, -623, -623, -623, -623, 248, 766,
2698 -623, 0, 0, 0, 0, 0, -623, 0, 0, 0,
2699 0, 0, 0, 0, 248, 248, 0, 0, 0, 0,
2700 -623, 0, 0, -623, 0, 0, -107, -623, -623, -623,
2701 -623, -623, -623, -623, -623, -623, -623, -623, -623, 0,
2702 0, 0, 0, -623, -623, -623, -623, -521, 0, -623,
2703 -623, -623, 248, -623, -623, -521, -521, -521, 0, 0,
2704 -521, -521, -521, 0, -521, 0, 0, 0, 0, 0,
2705 0, 0, -521, 0, -521, -521, -521, 0, 0, 0,
2706 0, 0, 0, 0, -521, -521, 0, -521, -521, -521,
2707 -521, -521, 0, 0, 0, 0, 0, 0, 0, 0,
2708 248, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2709 0, 0, 0, 0, 0, 0, 0, -521, -521, -521,
2710 -521, -521, -521, -521, -521, -521, -521, -521, -521, -521,
2711 0, 0, -521, -521, -521, -521, 0, -521, -521, 0,
2712 0, 0, 0, 0, -521, 0, 0, 248, 0, 0,
2713 0, 0, 0, 0, 0, 0, 0, 0, -521, 0,
2714 0, -521, 0, 0, -521, -521, -521, -521, -521, -521,
2715 -521, -521, -521, -521, -521, -521, -521, 0, 0, 0,
2716 0, 0, -521, -521, -521, -524, 0, -521, -521, -521,
2717 0, -521, -521, -524, -524, -524, 0, 0, -524, -524,
2718 -524, 0, -524, 0, 0, 0, 0, 709, 0, 0,
2719 -524, 0, -524, -524, -524, 0, 0, 0, 0, 0,
2720 0, 0, -524, -524, 0, -524, -524, -524, -524, -524,
2721 0, 0, 0, 331, 332, 333, 334, 335, 336, 337,
2722 338, 339, 340, 341, 342, 343, 0, 0, 344, 345,
2723 0, 0, 0, 0, 0, -524, -524, -524, -524, -524,
2724 -524, -524, -524, -524, -524, -524, -524, -524, 0, 0,
2725 -524, -524, -524, -524, 0, -524, -524, 0, 0, 0,
2726 0, 346, -524, 347, 348, 349, 350, 351, 352, 353,
2727 354, 355, 356, 0, 0, 0, -524, 0, 0, -524,
2728 0, 0, -524, -524, -524, -524, -524, -524, -524, -524,
2729 -524, -524, -524, -524, -524, 0, 0, 0, 0, 0,
2730 -524, -524, -524, -624, 0, -524, -524, -524, 0, -524,
2731 -524, -624, -624, -624, 0, 0, -624, -624, -624, 0,
2732 -624, 0, 0, 0, 0, 0, 0, 0, 0, -624,
2733 -624, -624, -624, 0, 0, 0, 0, 0, 0, 0,
2734 -624, -624, 0, -624, -624, -624, -624, -624, 0, 0,
2735 0, 331, 332, 333, 334, 335, 336, 337, 338, 339,
2736 340, 341, 342, 343, 0, 0, 344, 345, 0, 0,
2737 0, 0, 0, -624, -624, -624, -624, -624, -624, -624,
2738 -624, -624, -624, -624, -624, -624, 0, 0, -624, -624,
2739 -624, -624, 0, 0, -624, 0, 0, 0, 0, 346,
2740 -624, 347, 348, 349, 350, 351, 352, 353, 354, 355,
2741 356, 0, 0, 0, -624, 0, 0, -624, 0, 0,
2742 0, -624, -624, -624, -624, -624, -624, -624, -624, -624,
2743 -624, -624, -624, 0, 0, 0, 0, -624, -624, -624,
2744 -624, -625, 0, -624, -624, -624, 0, -624, -624, -625,
2745 -625, -625, 0, 0, -625, -625, -625, 0, -625, 0,
2746 0, 0, 0, 0, 0, 0, 0, -625, -625, -625,
2747 -625, 0, 0, 0, 0, 0, 0, 0, -625, -625,
2748 0, -625, -625, -625, -625, -625, 0, 0, 0, 331,
2749 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
2750 -646, -646, 0, 0, 344, 345, 0, 0, 0, 0,
2751 0, -625, -625, -625, -625, -625, -625, -625, -625, -625,
2752 -625, -625, -625, -625, 0, 0, -625, -625, -625, -625,
2753 0, 0, -625, 0, 0, 0, 0, 0, -625, 347,
2754 348, 349, 350, 351, 352, 353, 354, 355, 356, 0,
2755 0, 0, -625, 0, 0, -625, 0, 0, 0, -625,
2756 -625, -625, -625, -625, -625, -625, -625, -625, -625, -625,
2757 -625, 0, 0, 0, 0, -625, -625, -625, -625, -299,
2758 0, -625, -625, -625, 0, -625, -625, -299, -299, -299,
2759 0, 0, -299, -299, -299, 0, -299, 0, 0, 0,
2760 0, 0, 0, 0, 0, 0, -299, -299, -299, 0,
2761 0, 0, 0, 0, 0, 0, -299, -299, 0, -299,
2762 -299, -299, -299, -299, 0, 0, 0, 331, 332, 333,
2763 334, 335, 336, 337, 338, 0, 340, 341, 0, 0,
2764 0, 0, 344, 345, 0, 0, 0, 0, 0, -299,
2765 -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
2766 -299, -299, 0, 0, -299, -299, -299, -299, 0, 767,
2767 -299, 0, 0, 0, 0, 0, -299, 347, 348, 349,
2768 350, 351, 352, 353, 354, 355, 356, 0, 0, 0,
2769 -299, 0, 0, -299, 0, 0, -109, -299, -299, -299,
2770 -299, -299, -299, -299, -299, -299, -299, -299, -299, 0,
2771 0, 0, 0, 0, -299, -299, -299, -438, 0, -299,
2772 -299, -299, 0, -299, -299, -438, -438, -438, 0, 0,
2773 -438, -438, -438, 0, -438, 0, 0, 0, 0, 0,
2774 0, 0, 0, -438, -438, -438, 0, 0, 0, 0,
2775 0, 0, 0, 0, -438, -438, 0, -438, -438, -438,
2776 -438, -438, 0, 0, 0, 331, 332, 333, 334, 335,
2777 336, 337, 0, 0, 340, 341, 0, 0, 0, 0,
2778 344, 345, 0, 0, 0, 0, 0, -438, -438, -438,
2779 -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
2780 0, 0, -438, -438, -438, -438, 0, 0, -438, 0,
2781 0, 0, 0, 0, -438, 347, 348, 349, 350, 351,
2782 352, 353, 354, 355, 356, 0, 0, 0, -438, 0,
2783 0, 0, 0, 0, 0, -438, 0, -438, -438, -438,
2784 -438, -438, -438, -438, -438, -438, -438, 0, 0, 0,
2785 0, -438, -438, -438, -438, -290, 232, -438, -438, -438,
2786 0, -438, -438, -290, -290, -290, 0, 0, -290, -290,
2787 -290, 0, -290, 0, 0, 0, 0, 0, 0, 0,
2788 0, 0, -290, -290, -290, 0, 0, 0, 0, 0,
2789 0, 0, -290, -290, 0, -290, -290, -290, -290, -290,
2790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2792 0, 0, 0, 0, 0, -290, -290, -290, -290, -290,
2793 -290, -290, -290, -290, -290, -290, -290, -290, 0, 0,
2794 -290, -290, -290, -290, 0, 0, -290, 0, 0, 0,
2795 0, 0, -290, 0, 0, 0, 0, 0, 0, 0,
2796 0, 0, 0, 0, 0, 0, -290, 0, 0, -290,
2797 0, 0, 0, -290, -290, -290, -290, -290, -290, -290,
2798 -290, -290, -290, -290, -290, 0, 0, 0, 0, 0,
2799 -290, -290, -290, -428, 0, -290, -290, -290, 0, -290,
2800 -290, -428, -428, -428, 0, 0, -428, -428, -428, 0,
2801 -428, 0, 0, 0, 0, 0, 0, 0, 0, -428,
2802 -428, -428, 0, 0, 0, 0, 0, 0, 0, 0,
2803 -428, -428, 0, -428, -428, -428, -428, -428, 0, 0,
2804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2806 0, 0, 0, -428, -428, -428, -428, -428, -428, -428,
2807 -428, -428, -428, -428, -428, -428, 0, 0, -428, -428,
2808 -428, -428, 0, 0, -428, 0, 0, 0, 0, 0,
2809 -428, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2810 0, 0, 0, 0, -428, 0, 0, 0, 0, 0,
2811 0, -428, 0, -428, -428, -428, -428, -428, -428, -428,
2812 -428, -428, -428, 0, 0, 0, 0, -428, -428, -428,
2813 -428, -306, -428, -428, -428, -428, 0, -428, -428, -306,
2814 -306, -306, 0, 0, -306, -306, -306, 0, -306, 0,
2815 0, 0, 0, 0, 0, 0, 0, 0, -306, -306,
2816 0, 0, 0, 0, 0, 0, 0, 0, -306, -306,
2817 0, -306, -306, -306, -306, -306, 0, 0, 0, 0,
2818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2820 0, -306, -306, -306, -306, -306, -306, -306, -306, -306,
2821 -306, -306, -306, -306, 0, 0, -306, -306, -306, -306,
2822 0, 0, -306, 0, 0, 0, 0, 0, -306, 0,
2823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2824 0, 0, -306, 0, 0, 0, 0, 0, 0, -306,
2825 0, -306, -306, -306, -306, -306, -306, -306, -306, -306,
2826 -306, 0, 0, 0, 0, 0, -306, -306, -306, -623,
2827 229, -306, -306, -306, 0, -306, -306, -623, -623, -623,
2828 0, 0, 0, -623, -623, 0, -623, 0, 0, 0,
2829 0, 0, 0, 0, 0, -623, 0, 0, 0, 0,
2830 0, 0, 0, 0, 0, 0, -623, -623, 0, -623,
2831 -623, -623, -623, -623, 0, 0, 0, 0, 0, 0,
2832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2833 0, 0, 0, 0, 0, 0, 0, 0, 0, -623,
2834 -623, -623, -623, -623, -623, -623, -623, -623, -623, -623,
2835 -623, -623, 0, 0, -623, -623, -623, -623, 0, 714,
2836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2838 -623, 0, 0, 0, 0, 0, -107, -623, 0, -623,
2839 -623, -623, -623, -623, -623, -623, -623, -623, -623, 0,
2840 0, 0, 0, -623, -623, -623, -98, -623, 0, -623,
2841 0, -623, 0, -623, -623, -623, -623, -623, 0, 0,
2842 0, -623, -623, 0, -623, 0, 0, 0, 0, 0,
2843 0, 0, 0, -623, 0, 0, 0, 0, 0, 0,
2844 0, 0, 0, 0, -623, -623, 0, -623, -623, -623,
2845 -623, -623, 0, 0, 0, 0, 0, 0, 0, 0,
2846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2847 0, 0, 0, 0, 0, 0, 0, -623, -623, -623,
2848 -623, -623, -623, -623, -623, -623, -623, -623, -623, -623,
2849 0, 0, -623, -623, -623, -623, 0, 714, 0, 0,
2850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2851 0, 0, 0, 0, 0, 0, 0, 0, -623, 0,
2852 0, 0, 0, 0, -107, -623, 0, -623, -623, -623,
2853 -623, -623, -623, -623, -623, -623, -623, 0, 0, 0,
2854 0, -623, -623, -623, -623, -299, 0, -623, 0, -623,
2855 0, -623, -623, -299, -299, -299, 0, 0, 0, -299,
2856 -299, 0, -299, 0, 0, 0, 0, 0, 0, 0,
2857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2858 0, 0, -299, -299, 0, -299, -299, -299, -299, -299,
2859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2861 0, 0, 0, 0, 0, -299, -299, -299, -299, -299,
2862 -299, -299, -299, -299, -299, -299, -299, -299, 0, 0,
2863 -299, -299, -299, -299, 0, 715, 0, 0, 0, 0,
2864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2865 0, 0, 0, 0, 0, 0, -299, 0, 0, 0,
2866 0, 0, -109, -299, 0, -299, -299, -299, -299, -299,
2867 -299, -299, -299, -299, -299, 0, 0, 0, 0, 0,
2868 -299, -299, -100, -299, 0, -299, 0, -299, 0, -299,
2869 -299, -299, -299, -299, 0, 0, 0, -299, -299, 0,
2870 -299, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2872 -299, -299, 0, -299, -299, -299, -299, -299, 0, 0,
2873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2875 0, 0, 0, -299, -299, -299, -299, -299, -299, -299,
2876 -299, -299, -299, -299, -299, -299, 0, 0, -299, -299,
2877 -299, -299, 0, 715, 0, 0, 0, 0, 0, 0,
2878 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2879 0, 0, 0, 0, -299, 0, 0, 0, 0, 0,
2880 -109, -299, 0, -299, -299, -299, -299, -299, -299, -299,
2881 -299, -299, -299, 0, 0, 0, 0, 0, -299, -299,
2882 -299, 0, 0, -299, 0, -299, 0, -299, -299, 253,
2883 0, 5, 6, 7, 8, 9, -645, -645, -645, 10,
2884 11, 0, 0, -645, 12, 0, 13, 14, 15, 16,
2885 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2886 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2887 0, 0, 0, 28, 29, 254, 31, 32, 33, 34,
2888 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
2889 44, 0, 45, 46, 47, 0, 48, 49, 0, 0,
2890 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2891 0, 0, 0, 0, 0, 0, 0, 50, 0, 0,
2892 51, 52, 0, 53, 54, 0, 55, 0, 0, 56,
2893 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
2894 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2895 0, 0, 0, 0, 0, 0, 0, 0, 65, 66,
2896 67, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2897 -645, 0, 253, -645, 5, 6, 7, 8, 9, 0,
2898 0, -645, 10, 11, 0, -645, -645, 12, 0, 13,
2899 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2900 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2901 27, 0, 0, 0, 0, 0, 28, 29, 254, 31,
2902 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2903 41, 42, 43, 44, 0, 45, 46, 47, 0, 48,
2904 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2906 50, 0, 0, 51, 52, 0, 53, 54, 0, 55,
2907 0, 0, 56, 57, 58, 59, 60, 61, 62, 63,
2908 64, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2910 0, 65, 66, 67, 0, 0, 0, 0, 0, 0,
2911 0, 0, 0, -645, 0, 253, -645, 5, 6, 7,
2912 8, 9, 0, 0, -645, 10, 11, 0, 0, -645,
2913 12, -645, 13, 14, 15, 16, 17, 18, 19, 0,
2914 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2915 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2916 29, 254, 31, 32, 33, 34, 35, 36, 37, 38,
2917 39, 40, 0, 41, 42, 43, 44, 0, 45, 46,
2918 47, 0, 48, 49, 0, 0, 0, 0, 0, 0,
2919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2920 0, 0, 0, 50, 0, 0, 51, 52, 0, 53,
2921 54, 0, 55, 0, 0, 56, 57, 58, 59, 60,
2922 61, 62, 63, 64, 0, 0, 0, 0, 0, 0,
2923 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2924 0, 0, 0, 0, 65, 66, 67, 0, 0, 0,
2925 0, 0, 0, 0, 0, 0, -645, 0, 253, -645,
2926 5, 6, 7, 8, 9, 0, 0, -645, 10, 11,
2927 0, 0, -645, 12, 0, 13, 14, 15, 16, 17,
2928 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2929 23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
2930 0, 0, 28, 29, 254, 31, 32, 33, 34, 35,
2931 36, 37, 38, 39, 40, 0, 41, 42, 43, 44,
2932 0, 45, 46, 47, 0, 48, 49, 0, 0, 0,
2933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2934 0, 0, 0, 0, 0, 0, 50, 0, 0, 51,
2935 52, 0, 53, 54, 0, 55, 0, 0, 56, 57,
2936 58, 59, 60, 61, 62, 63, 64, 0, 0, 0,
2937 0, 0, 0, 0, 0, 253, 0, 5, 6, 7,
2938 8, 9, 0, -645, -645, 10, 11, 65, 66, 67,
2939 12, 0, 13, 14, 15, 16, 17, 18, 19, -645,
2940 0, 0, -645, 0, 20, 21, 22, 23, 24, 25,
2941 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2942 29, 254, 31, 32, 33, 34, 35, 36, 37, 38,
2943 39, 40, 0, 41, 42, 43, 44, 0, 45, 46,
2944 47, 0, 48, 49, 0, 0, 0, 0, 0, 0,
2945 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2946 0, 0, 0, 50, 0, 0, 51, 52, 0, 53,
2947 54, 0, 55, 0, 0, 56, 57, 58, 59, 60,
2948 61, 62, 63, 64, 0, 0, 0, 0, 0, 0,
2949 0, 0, 253, 0, 5, 6, 7, 8, 9, 0,
2950 0, 0, 10, 11, 65, 66, 67, 12, 0, 13,
2951 14, 15, 16, 17, 18, 19, -645, 0, 0, -645,
2952 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2953 27, 0, 0, 0, 0, 0, 28, 29, 254, 31,
2954 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2955 41, 42, 43, 44, 0, 45, 46, 47, 0, 48,
2956 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2957 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2958 50, 0, 0, 255, 52, 0, 53, 54, 0, 55,
2959 0, 0, 56, 57, 58, 59, 60, 61, 62, 63,
2960 64, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2961 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2962 0, 65, 66, 67, 253, 0, 5, 6, 7, 8,
2963 9, -645, 0, -645, 10, 11, -645, 0, 0, 12,
2964 0, 13, 14, 15, 16, 17, 18, 19, 0, 0,
2965 0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
2966 0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
2967 254, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2968 40, 0, 41, 42, 43, 44, 0, 45, 46, 47,
2969 0, 48, 49, 0, 0, 0, 0, 0, 0, 0,
2970 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2971 0, 0, 50, 0, 0, 51, 52, 0, 53, 54,
2972 0, 55, 0, 0, 56, 57, 58, 59, 60, 61,
2973 62, 63, 64, 0, 0, 0, 0, 0, 0, 0,
2974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2975 0, 0, 0, 65, 66, 67, 253, 0, 5, 6,
2976 7, 8, 9, -645, 0, -645, 10, 11, -645, 0,
2977 0, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2978 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
2979 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2980 28, 29, 254, 31, 32, 33, 34, 35, 36, 37,
2981 38, 39, 40, 0, 41, 42, 43, 44, 0, 45,
2982 46, 47, 0, 48, 49, 0, 0, 0, 0, 0,
2983 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2984 0, 0, 0, 0, 50, 0, 0, 51, 52, 0,
2985 53, 54, 0, 55, 0, 0, 56, 57, 58, 59,
2986 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
2987 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2988 0, 0, 0, 0, 0, 65, 66, 67, 0, 0,
2989 -645, 0, 0, 0, 0, 0, 0, -645, 0, 4,
2990 -645, 5, 6, 7, 8, 9, 0, 0, 0, 10,
2991 11, 0, 0, 0, 12, 0, 13, 14, 15, 16,
2992 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2993 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2994 0, 0, 0, 28, 29, 30, 31, 32, 33, 34,
2995 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
2996 44, 0, 45, 46, 47, 0, 48, 49, 0, 0,
2997 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2998 0, 0, 0, 0, 0, 0, 0, 50, 0, 0,
2999 51, 52, 0, 53, 54, 0, 55, 0, 0, 56,
3000 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
3001 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3002 0, 0, 0, 0, 0, 0, 0, 0, 65, 66,
3003 67, 0, 0, -645, 0, 0, 0, 0, 0, 0,
3004 -645, 0, 253, -645, 5, 6, 7, 8, 9, 0,
3005 0, -645, 10, 11, 0, 0, 0, 12, 0, 13,
3006 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
3007 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
3008 27, 0, 0, 0, 0, 0, 28, 29, 254, 31,
3009 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
3010 41, 42, 43, 44, 0, 45, 46, 47, 0, 48,
3011 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3012 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3013 50, 0, 0, 51, 52, 0, 53, 54, 0, 55,
3014 0, 0, 56, 57, 58, 59, 60, 61, 62, 63,
3015 64, 0, 0, 0, 0, 0, 0, 0, 0, 253,
3016 0, 5, 6, 7, 8, 9, 0, 0, 0, 10,
3017 11, 65, 66, 67, 12, 0, 13, 14, 15, 16,
3018 17, 18, 19, -645, 0, 0, -645, 0, 20, 21,
3019 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
3020 0, 0, 0, 28, 29, 254, 31, 32, 33, 34,
3021 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
3022 44, 0, 45, 46, 47, 0, 48, 49, 0, 0,
3023 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3024 0, 0, 0, 0, 0, 0, 0, 50, 0, 0,
3025 51, 52, 0, 53, 54, 0, 55, 0, 0, 56,
3026 57, 58, 59, 60, 61, 62, 63, 64, 0, -645,
3027 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
3028 7, 0, 9, 0, 0, 0, 10, 11, 65, 66,
3029 67, 12, 0, 13, 14, 15, 16, 17, 18, 19,
3030 -645, 0, 0, -645, 0, 20, 21, 22, 23, 24,
3031 25, 26, 0, 0, 204, 0, 0, 0, 0, 0,
3032 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
3033 38, 39, 40, 205, 41, 42, 43, 44, 0, 45,
3034 46, 47, 0, 48, 49, 0, 0, 0, 0, 0,
3035 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3036 0, 0, 0, 0, 206, 0, 0, 207, 52, 0,
3037 53, 54, 0, 208, 209, 210, 56, 57, 211, 59,
3038 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
3039 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
3040 0, 0, 0, 10, 11, 65, 212, 67, 12, 0,
3041 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
3042 236, 0, 20, 21, 22, 23, 24, 25, 26, 0,
3043 0, 27, 0, 0, 0, 0, 0, 0, 29, 0,
3044 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
3045 0, 41, 42, 43, 44, 0, 45, 46, 47, 0,
3046 48, 49, 0, 0, 0, 0, 0, 0, 0, 0,
3047 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3048 0, 206, 0, 0, 207, 52, 0, 53, 54, 0,
3049 0, 0, 0, 56, 57, 58, 59, 60, 61, 62,
3050 63, 64, 0, 0, 0, 0, 0, 0, 0, 0,
3051 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
3052 10, 11, 65, 66, 67, 12, 0, 13, 14, 15,
3053 16, 17, 18, 19, 306, 0, 0, 307, 0, 20,
3054 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
3055 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
3056 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
3057 43, 44, 0, 45, 46, 47, 0, 48, 49, 0,
3058 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3059 0, 0, 0, 0, 0, 0, 0, 0, 206, 0,
3060 0, 207, 52, 0, 53, 54, 0, 0, 0, 0,
3061 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
3062 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
3063 6, 7, 8, 9, 0, 0, 0, 10, 11, 65,
3064 66, 67, 12, 0, 13, 14, 15, 16, 17, 18,
3065 19, 0, 0, 0, 236, 0, 20, 21, 22, 23,
3066 24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
3067 0, 28, 29, 30, 31, 32, 33, 34, 35, 36,
3068 37, 38, 39, 40, 0, 41, 42, 43, 44, 0,
3069 45, 46, 47, 0, 48, 49, 0, 0, 0, 0,
3070 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3071 0, 0, 0, 0, 0, 50, 0, 0, 51, 52,
3072 0, 53, 54, 0, 55, 0, 0, 56, 57, 58,
3073 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
3074 0, 0, 0, 0, 0, 0, 5, 6, 7, 8,
3075 9, 0, 0, 0, 10, 11, 65, 66, 67, 12,
3076 0, 13, 14, 15, 16, 17, 18, 19, 505, 0,
3077 0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
3078 0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
3079 254, 31, 32, 33, 34, 35, 36, 37, 38, 39,
3080 40, 0, 41, 42, 43, 44, 0, 45, 46, 47,
3081 0, 48, 49, 0, 0, 0, 0, 0, 0, 0,
3082 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3083 0, 0, 50, 0, 0, 51, 52, 0, 53, 54,
3084 0, 55, 0, 0, 56, 57, 58, 59, 60, 61,
3085 62, 63, 64, 0, 0, 0, 0, 0, 0, 0,
3086 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3087 0, 0, 0, 65, 66, 67, 0, 0, 0, 0,
3088 0, 0, 0, 0, 0, 505, 122, 123, 124, 125,
3089 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
3090 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
3091 0, 0, 0, 146, 147, 148, 392, 393, 394, 395,
3092 153, 154, 155, 0, 0, 0, 0, 0, 156, 157,
3093 158, 159, 396, 397, 398, 399, 164, 37, 38, 400,
3094 40, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3095 0, 166, 167, 168, 169, 170, 171, 172, 173, 174,
3096 0, 0, 175, 176, 0, 0, 177, 178, 179, 180,
3097 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3098 0, 181, 182, 0, 0, 0, 0, 0, 0, 0,
3099 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3100 0, 0, 0, 183, 184, 185, 186, 187, 188, 189,
3101 190, 191, 192, 0, 193, 194, 0, 0, 0, 0,
3102 0, 195, 401, 122, 123, 124, 125, 126, 127, 128,
3103 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
3104 139, 140, 141, 142, 143, 144, 145, 0, 0, 0,
3105 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
3106 0, 0, 0, 0, 0, 156, 157, 158, 159, 160,
3107 161, 162, 163, 164, 285, 286, 165, 287, 0, 0,
3108 0, 0, 0, 0, 0, 0, 0, 0, 166, 167,
3109 168, 169, 170, 171, 172, 173, 174, 0, 0, 175,
3110 176, 0, 0, 177, 178, 179, 180, 0, 0, 0,
3111 0, 0, 0, 0, 0, 0, 0, 0, 181, 182,
3112 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3113 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3114 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
3115 0, 193, 194, 0, 0, 0, 0, 0, 195, 122,
3116 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
3117 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
3118 143, 144, 145, 0, 0, 0, 146, 147, 148, 149,
3119 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
3120 0, 156, 157, 158, 159, 160, 161, 162, 163, 164,
3121 238, 0, 165, 0, 0, 0, 0, 0, 0, 0,
3122 0, 0, 0, 0, 166, 167, 168, 169, 170, 171,
3123 172, 173, 174, 0, 0, 175, 176, 0, 0, 177,
3124 178, 179, 180, 0, 0, 0, 0, 0, 0, 0,
3125 0, 0, 0, 0, 181, 182, 0, 0, 57, 0,
3126 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3127 0, 0, 0, 0, 0, 0, 183, 184, 185, 186,
3128 187, 188, 189, 190, 191, 192, 0, 193, 194, 0,
3129 0, 0, 0, 0, 195, 122, 123, 124, 125, 126,
3130 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
3131 137, 138, 139, 140, 141, 142, 143, 144, 145, 0,
3132 0, 0, 146, 147, 148, 149, 150, 151, 152, 153,
3133 154, 155, 0, 0, 0, 0, 0, 156, 157, 158,
3134 159, 160, 161, 162, 163, 164, 0, 0, 165, 0,
3135 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3136 166, 167, 168, 169, 170, 171, 172, 173, 174, 0,
3137 0, 175, 176, 0, 0, 177, 178, 179, 180, 0,
3138 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3139 181, 182, 0, 0, 57, 0, 0, 0, 0, 0,
3140 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3141 0, 0, 183, 184, 185, 186, 187, 188, 189, 190,
3142 191, 192, 0, 193, 194, 0, 0, 0, 0, 0,
3143 195, 122, 123, 124, 125, 126, 127, 128, 129, 130,
3144 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
3145 141, 142, 143, 144, 145, 0, 0, 0, 146, 147,
3146 148, 149, 150, 151, 152, 153, 154, 155, 0, 0,
3147 0, 0, 0, 156, 157, 158, 159, 160, 161, 162,
3148 163, 164, 0, 0, 165, 0, 0, 0, 0, 0,
3149 0, 0, 0, 0, 0, 0, 166, 167, 168, 169,
3150 170, 171, 172, 173, 174, 0, 0, 175, 176, 0,
3151 0, 177, 178, 179, 180, 0, 0, 0, 0, 0,
3152 0, 0, 0, 0, 0, 0, 181, 182, 0, 0,
3153 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3154 0, 0, 0, 0, 0, 0, 0, 0, 183, 184,
3155 185, 186, 187, 188, 189, 190, 191, 192, 0, 193,
3156 194, 5, 6, 7, 0, 9, 195, 0, 0, 10,
3157 11, 0, 0, 0, 12, 0, 13, 14, 15, 243,
3158 244, 18, 19, 0, 0, 0, 0, 0, 245, 246,
3159 247, 23, 24, 25, 26, 0, 0, 204, 0, 0,
3160 0, 0, 0, 0, 273, 0, 0, 32, 33, 34,
3161 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
3162 44, 0, 45, 46, 47, 0, 0, 0, 0, 0,
3163 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3164 0, 0, 0, 0, 0, 0, 0, 274, 0, 0,
3165 207, 52, 0, 53, 54, 0, 0, 0, 0, 56,
3166 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
3167 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3168 0, 5, 6, 7, 0, 9, 0, 0, 275, 10,
3169 11, 0, 0, 0, 12, 276, 13, 14, 15, 243,
3170 244, 18, 19, 0, 0, 0, 0, 0, 245, 246,
3171 247, 23, 24, 25, 26, 0, 0, 204, 0, 0,
3172 0, 0, 0, 0, 273, 0, 0, 32, 33, 34,
3173 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
3174 44, 0, 45, 46, 47, 0, 0, 0, 0, 0,
3175 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3176 0, 0, 0, 0, 0, 0, 0, 274, 0, 0,
3177 207, 52, 0, 53, 54, 0, 0, 0, 0, 56,
3178 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
3179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3180 0, 5, 6, 7, 8, 9, 0, 0, 275, 10,
3181 11, 0, 0, 0, 12, 526, 13, 14, 15, 16,
3182 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
3183 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
3184 0, 0, 0, 28, 29, 30, 31, 32, 33, 34,
3185 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
3186 44, 0, 45, 46, 47, 0, 48, 49, 0, 0,
3187 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3188 0, 0, 0, 0, 0, 0, 0, 50, 0, 0,
3189 51, 52, 0, 53, 54, 0, 55, 0, 0, 56,
3190 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
3191 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
3192 7, 0, 9, 0, 0, 0, 10, 11, 65, 66,
3193 67, 12, 0, 13, 14, 15, 16, 17, 18, 19,
3194 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
3195 25, 26, 0, 0, 204, 0, 0, 0, 0, 0,
3196 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
3197 38, 39, 40, 205, 41, 42, 43, 44, 0, 45,
3198 46, 47, 0, 48, 49, 0, 0, 0, 0, 0,
3199 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3200 0, 0, 0, 0, 206, 0, 0, 207, 52, 0,
3201 53, 54, 0, 208, 209, 210, 56, 57, 211, 59,
3202 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
3203 0, 0, 0, 0, 0, 5, 6, 7, 8, 9,
3204 0, 0, 0, 10, 11, 65, 212, 67, 12, 0,
3205 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
3206 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
3207 0, 27, 0, 0, 0, 0, 0, 28, 29, 0,
3208 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
3209 0, 41, 42, 43, 44, 0, 45, 46, 47, 0,
3210 48, 49, 0, 0, 0, 0, 0, 0, 0, 0,
3211 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3212 0, 50, 0, 0, 51, 52, 0, 53, 54, 0,
3213 55, 0, 0, 56, 57, 58, 59, 60, 61, 62,
3214 63, 64, 0, 0, 0, 0, 0, 0, 0, 0,
3215 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
3216 10, 11, 65, 66, 67, 12, 0, 13, 14, 15,
3217 243, 244, 18, 19, 0, 0, 0, 0, 0, 245,
3218 246, 247, 23, 24, 25, 26, 0, 0, 204, 0,
3219 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
3220 34, 35, 36, 37, 38, 39, 40, 205, 41, 42,
3221 43, 44, 0, 45, 46, 47, 0, 48, 49, 0,
3222 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3223 0, 0, 0, 0, 0, 0, 0, 0, 206, 0,
3224 0, 207, 52, 0, 53, 54, 0, 619, 209, 210,
3225 56, 57, 211, 59, 60, 61, 62, 63, 64, 0,
3226 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
3227 6, 7, 0, 9, 0, 0, 0, 10, 11, 65,
3228 212, 67, 12, 0, 13, 14, 15, 243, 244, 18,
3229 19, 0, 0, 0, 0, 0, 245, 246, 247, 23,
3230 24, 25, 26, 0, 0, 204, 0, 0, 0, 0,
3231 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
3232 37, 38, 39, 40, 205, 41, 42, 43, 44, 0,
3233 45, 46, 47, 0, 48, 49, 0, 0, 0, 0,
3234 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3235 0, 0, 0, 0, 0, 206, 0, 0, 207, 52,
3236 0, 53, 54, 0, 208, 209, 0, 56, 57, 211,
3237 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
3238 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
3239 9, 0, 0, 0, 10, 11, 65, 212, 67, 12,
3240 0, 13, 14, 15, 243, 244, 18, 19, 0, 0,
3241 0, 0, 0, 245, 246, 247, 23, 24, 25, 26,
3242 0, 0, 204, 0, 0, 0, 0, 0, 0, 29,
3243 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
3244 40, 205, 41, 42, 43, 44, 0, 45, 46, 47,
3245 0, 48, 49, 0, 0, 0, 0, 0, 0, 0,
3246 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3247 0, 0, 206, 0, 0, 207, 52, 0, 53, 54,
3248 0, 0, 209, 210, 56, 57, 211, 59, 60, 61,
3249 62, 63, 64, 0, 0, 0, 0, 0, 0, 0,
3250 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
3251 0, 10, 11, 65, 212, 67, 12, 0, 13, 14,
3252 15, 243, 244, 18, 19, 0, 0, 0, 0, 0,
3253 245, 246, 247, 23, 24, 25, 26, 0, 0, 204,
3254 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
3255 33, 34, 35, 36, 37, 38, 39, 40, 205, 41,
3256 42, 43, 44, 0, 45, 46, 47, 0, 48, 49,
3257 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3258 0, 0, 0, 0, 0, 0, 0, 0, 0, 206,
3259 0, 0, 207, 52, 0, 53, 54, 0, 619, 209,
3260 0, 56, 57, 211, 59, 60, 61, 62, 63, 64,
3261 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3262 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
3263 65, 212, 67, 12, 0, 13, 14, 15, 243, 244,
3264 18, 19, 0, 0, 0, 0, 0, 245, 246, 247,
3265 23, 24, 25, 26, 0, 0, 204, 0, 0, 0,
3266 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
3267 36, 37, 38, 39, 40, 205, 41, 42, 43, 44,
3268 0, 45, 46, 47, 0, 48, 49, 0, 0, 0,
3269 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3270 0, 0, 0, 0, 0, 0, 206, 0, 0, 207,
3271 52, 0, 53, 54, 0, 0, 209, 0, 56, 57,
3272 211, 59, 60, 61, 62, 63, 64, 0, 0, 0,
3273 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
3274 0, 9, 0, 0, 0, 10, 11, 65, 212, 67,
3275 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
3276 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
3277 26, 0, 0, 204, 0, 0, 0, 0, 0, 0,
3278 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
3279 39, 40, 0, 41, 42, 43, 44, 0, 45, 46,
3280 47, 0, 48, 49, 0, 0, 0, 0, 0, 0,
3281 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3282 0, 0, 0, 206, 0, 0, 207, 52, 0, 53,
3283 54, 0, 519, 0, 0, 56, 57, 58, 59, 60,
3284 61, 62, 63, 64, 0, 0, 0, 0, 0, 0,
3285 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
3286 0, 0, 10, 11, 65, 212, 67, 12, 0, 13,
3287 14, 15, 243, 244, 18, 19, 0, 0, 0, 0,
3288 0, 245, 246, 247, 23, 24, 25, 26, 0, 0,
3289 204, 0, 0, 0, 0, 0, 0, 29, 0, 0,
3290 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
3291 41, 42, 43, 44, 0, 45, 46, 47, 0, 48,
3292 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3293 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3294 206, 0, 0, 207, 52, 0, 53, 54, 0, 208,
3295 0, 0, 56, 57, 58, 59, 60, 61, 62, 63,
3296 64, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3297 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
3298 11, 65, 212, 67, 12, 0, 13, 14, 15, 243,
3299 244, 18, 19, 0, 0, 0, 0, 0, 245, 246,
3300 247, 23, 24, 25, 26, 0, 0, 204, 0, 0,
3301 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
3302 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
3303 44, 0, 45, 46, 47, 0, 48, 49, 0, 0,
3304 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3305 0, 0, 0, 0, 0, 0, 0, 206, 0, 0,
3306 207, 52, 0, 53, 54, 0, 815, 0, 0, 56,
3307 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
3308 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
3309 7, 0, 9, 0, 0, 0, 10, 11, 65, 212,
3310 67, 12, 0, 13, 14, 15, 243, 244, 18, 19,
3311 0, 0, 0, 0, 0, 245, 246, 247, 23, 24,
3312 25, 26, 0, 0, 204, 0, 0, 0, 0, 0,
3313 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
3314 38, 39, 40, 0, 41, 42, 43, 44, 0, 45,
3315 46, 47, 0, 48, 49, 0, 0, 0, 0, 0,
3316 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3317 0, 0, 0, 0, 206, 0, 0, 207, 52, 0,
3318 53, 54, 0, 519, 0, 0, 56, 57, 58, 59,
3319 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
3320 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
3321 0, 0, 0, 10, 11, 65, 212, 67, 12, 0,
3322 13, 14, 15, 243, 244, 18, 19, 0, 0, 0,
3323 0, 0, 245, 246, 247, 23, 24, 25, 26, 0,
3324 0, 204, 0, 0, 0, 0, 0, 0, 29, 0,
3325 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
3326 0, 41, 42, 43, 44, 0, 45, 46, 47, 0,
3327 48, 49, 0, 0, 0, 0, 0, 0, 0, 0,
3328 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3329 0, 206, 0, 0, 207, 52, 0, 53, 54, 0,
3330 619, 0, 0, 56, 57, 58, 59, 60, 61, 62,
3331 63, 64, 0, 0, 0, 0, 0, 0, 0, 0,
3332 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
3333 10, 11, 65, 212, 67, 12, 0, 13, 14, 15,
3334 243, 244, 18, 19, 0, 0, 0, 0, 0, 245,
3335 246, 247, 23, 24, 25, 26, 0, 0, 204, 0,
3336 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
3337 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
3338 43, 44, 0, 45, 46, 47, 0, 48, 49, 0,
3339 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3340 0, 0, 0, 0, 0, 0, 0, 0, 206, 0,
3341 0, 207, 52, 0, 53, 54, 0, 0, 0, 0,
3342 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
3343 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
3344 6, 7, 0, 9, 0, 0, 0, 10, 11, 65,
3345 212, 67, 12, 0, 13, 14, 15, 16, 17, 18,
3346 19, 0, 0, 0, 0, 0, 20, 21, 22, 23,
3347 24, 25, 26, 0, 0, 204, 0, 0, 0, 0,
3348 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
3349 37, 38, 39, 40, 0, 41, 42, 43, 44, 0,
3350 45, 46, 47, 0, 48, 49, 0, 0, 0, 0,
3351 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3352 0, 0, 0, 0, 0, 206, 0, 0, 207, 52,
3353 0, 53, 54, 0, 0, 0, 0, 56, 57, 58,
3354 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
3355 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
3356 9, 0, 0, 0, 10, 11, 65, 212, 67, 12,
3357 0, 13, 14, 15, 16, 17, 18, 19, 0, 0,
3358 0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
3359 0, 0, 27, 0, 0, 0, 0, 0, 0, 29,
3360 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
3361 40, 0, 41, 42, 43, 44, 0, 45, 46, 47,
3362 0, 48, 49, 0, 0, 0, 0, 0, 0, 0,
3363 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3364 0, 0, 206, 0, 0, 207, 52, 0, 53, 54,
3365 0, 0, 0, 0, 56, 57, 58, 59, 60, 61,
3366 62, 63, 64, 0, 0, 0, 0, 0, 0, 0,
3367 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
3368 0, 10, 11, 65, 66, 67, 12, 0, 13, 14,
3369 15, 243, 244, 18, 19, 0, 0, 0, 0, 0,
3370 245, 246, 247, 23, 24, 25, 26, 0, 0, 204,
3371 0, 0, 0, 0, 0, 0, 273, 0, 0, 32,
3372 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
3373 42, 43, 44, 0, 45, 46, 47, 0, 0, 0,
3374 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3375 0, 0, 0, 0, 0, 0, 0, 0, 0, 274,
3376 0, 0, 327, 52, 0, 53, 54, 0, 328, 0,
3377 0, 56, 57, 58, 59, 60, 61, 62, 63, 64,
3378 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
3379 9, 0, 0, 0, 10, 11, 0, 0, 0, 12,
3380 275, 13, 14, 15, 243, 244, 18, 19, 0, 0,
3381 0, 0, 0, 245, 246, 247, 23, 24, 25, 26,
3382 0, 0, 204, 0, 0, 0, 0, 0, 0, 273,
3383 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
3384 40, 0, 41, 42, 43, 44, 0, 45, 46, 47,
3385 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3386 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3387 0, 0, 373, 0, 0, 51, 52, 0, 53, 54,
3388 0, 55, 0, 0, 56, 57, 58, 59, 60, 61,
3389 62, 63, 64, 0, 0, 0, 0, 0, 0, 5,
3390 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
3391 0, 0, 12, 275, 13, 14, 15, 243, 244, 18,
3392 19, 0, 0, 0, 0, 0, 245, 246, 247, 23,
3393 24, 25, 26, 0, 0, 204, 0, 0, 0, 0,
3394 0, 0, 273, 0, 0, 32, 33, 34, 381, 36,
3395 37, 38, 382, 40, 0, 41, 42, 43, 44, 0,
3396 45, 46, 47, 0, 0, 0, 0, 0, 0, 0,
3397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3398 0, 383, 0, 0, 0, 384, 0, 0, 207, 52,
3399 0, 53, 54, 0, 0, 0, 0, 56, 57, 58,
3400 59, 60, 61, 62, 63, 64, 0, 0, 0, 0,
3401 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
3402 10, 11, 0, 0, 0, 12, 275, 13, 14, 15,
3403 243, 244, 18, 19, 0, 0, 0, 0, 0, 245,
3404 246, 247, 23, 24, 25, 26, 0, 0, 204, 0,
3405 0, 0, 0, 0, 0, 273, 0, 0, 32, 33,
3406 34, 381, 36, 37, 38, 382, 40, 0, 41, 42,
3407 43, 44, 0, 45, 46, 47, 0, 0, 0, 0,
3408 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3409 0, 0, 0, 0, 0, 0, 0, 0, 384, 0,
3410 0, 207, 52, 0, 53, 54, 0, 0, 0, 0,
3411 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
3412 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
3413 0, 0, 0, 10, 11, 0, 0, 0, 12, 275,
3414 13, 14, 15, 243, 244, 18, 19, 0, 0, 0,
3415 0, 0, 245, 246, 247, 23, 24, 25, 26, 0,
3416 0, 204, 0, 0, 0, 0, 0, 0, 273, 0,
3417 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
3418 0, 41, 42, 43, 44, 0, 45, 46, 47, 0,
3419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3421 0, 274, 0, 0, 327, 52, 0, 53, 54, 0,
3422 0, 0, 0, 56, 57, 58, 59, 60, 61, 62,
3423 63, 64, 0, 0, 0, 0, 0, 0, 5, 6,
3424 7, 0, 9, 0, 0, 0, 10, 11, 0, 0,
3425 0, 12, 275, 13, 14, 15, 243, 244, 18, 19,
3426 0, 0, 0, 0, 0, 245, 246, 247, 23, 24,
3427 25, 26, 0, 0, 204, 0, 0, 0, 0, 0,
3428 0, 273, 0, 0, 32, 33, 34, 35, 36, 37,
3429 38, 39, 40, 0, 41, 42, 43, 44, 0, 45,
3430 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
3431 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3432 0, 0, 0, 0, 966, 0, 0, 207, 52, 0,
3433 53, 54, 0, 0, 0, 0, 56, 57, 58, 59,
3434 60, 61, 62, 63, 64, 0, 0, 0, 0, 0,
3435 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
3436 11, 0, 0, 0, 12, 275, 13, 14, 15, 243,
3437 244, 18, 19, 0, 0, 0, 0, 0, 245, 246,
3438 247, 23, 24, 25, 26, 0, 0, 204, 0, 0,
3439 0, 0, 0, 0, 273, 0, 0, 32, 33, 34,
3440 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
3441 44, 0, 45, 46, 47, 0, 0, 0, 0, 0,
3442 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3443 0, 0, 0, 0, 0, 0, 0, 1006, 0, 0,
3444 207, 52, 0, 53, 54, 0, 0, 0, 0, 56,
3445 57, 58, 59, 60, 61, 62, 63, 64, 0, 0,
3446 0, 0, 0, 571, 572, 0, 0, 573, 0, 0,
3447 0, 0, 0, 0, 0, 0, 0, 0, 275, 166,
3448 167, 168, 169, 170, 171, 172, 173, 174, 0, 0,
3449 175, 176, 0, 0, 177, 178, 179, 180, 0, 0,
3450 0, 0, 0, 0, 0, 0, 0, 0, 0, 181,
3451 182, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3453 0, 183, 184, 185, 186, 187, 188, 189, 190, 191,
3454 192, 0, 193, 194, 608, 572, 0, 0, 609, 195,
3455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3456 166, 167, 168, 169, 170, 171, 172, 173, 174, 0,
3457 0, 175, 176, 0, 0, 177, 178, 179, 180, 0,
3458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3459 181, 182, 0, 0, 0, 0, 0, 0, 0, 0,
3460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3461 0, 0, 183, 184, 185, 186, 187, 188, 189, 190,
3462 191, 192, 0, 193, 194, 623, 564, 0, 0, 624,
3463 195, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3464 0, 166, 167, 168, 169, 170, 171, 172, 173, 174,
3465 0, 0, 175, 176, 0, 0, 177, 178, 179, 180,
3466 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3467 0, 181, 182, 0, 0, 0, 0, 0, 0, 0,
3468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3469 0, 0, 0, 183, 184, 185, 186, 187, 188, 189,
3470 190, 191, 192, 0, 193, 194, 626, 572, 0, 0,
3471 627, 195, 0, 0, 0, 0, 0, 0, 0, 0,
3472 0, 0, 166, 167, 168, 169, 170, 171, 172, 173,
3473 174, 0, 0, 175, 176, 0, 0, 177, 178, 179,
3474 180, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3475 0, 0, 181, 182, 0, 0, 0, 0, 0, 0,
3476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3477 0, 0, 0, 0, 183, 184, 185, 186, 187, 188,
3478 189, 190, 191, 192, 0, 193, 194, 650, 564, 0,
3479 0, 651, 195, 0, 0, 0, 0, 0, 0, 0,
3480 0, 0, 0, 166, 167, 168, 169, 170, 171, 172,
3481 173, 174, 0, 0, 175, 176, 0, 0, 177, 178,
3482 179, 180, 0, 0, 0, 0, 0, 0, 0, 0,
3483 0, 0, 0, 181, 182, 0, 0, 0, 0, 0,
3484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3485 0, 0, 0, 0, 0, 183, 184, 185, 186, 187,
3486 188, 189, 190, 191, 192, 0, 193, 194, 653, 572,
3487 0, 0, 654, 195, 0, 0, 0, 0, 0, 0,
3488 0, 0, 0, 0, 166, 167, 168, 169, 170, 171,
3489 172, 173, 174, 0, 0, 175, 176, 0, 0, 177,
3490 178, 179, 180, 0, 0, 0, 0, 0, 0, 0,
3491 0, 0, 0, 0, 181, 182, 0, 0, 0, 0,
3492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3493 0, 0, 0, 0, 0, 0, 183, 184, 185, 186,
3494 187, 188, 189, 190, 191, 192, 0, 193, 194, 741,
3495 564, 0, 0, 742, 195, 0, 0, 0, 0, 0,
3496 0, 0, 0, 0, 0, 166, 167, 168, 169, 170,
3497 171, 172, 173, 174, 0, 0, 175, 176, 0, 0,
3498 177, 178, 179, 180, 0, 0, 0, 0, 0, 0,
3499 0, 0, 0, 0, 0, 181, 182, 0, 0, 0,
3500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3501 0, 0, 0, 0, 0, 0, 0, 183, 184, 185,
3502 186, 187, 188, 189, 190, 191, 192, 0, 193, 194,
3503 744, 572, 0, 0, 745, 195, 0, 0, 0, 0,
3504 0, 0, 0, 0, 0, 0, 166, 167, 168, 169,
3505 170, 171, 172, 173, 174, 0, 0, 175, 176, 0,
3506 0, 177, 178, 179, 180, 0, 0, 0, 0, 0,
3507 0, 0, 0, 0, 0, 0, 181, 182, 0, 0,
3508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3509 0, 0, 0, 0, 0, 0, 0, 0, 183, 184,
3510 185, 186, 187, 188, 189, 190, 191, 192, 0, 193,
3511 194, 750, 564, 0, 0, 751, 195, 0, 0, 0,
3512 0, 0, 0, 0, 0, 0, 0, 166, 167, 168,
3513 169, 170, 171, 172, 173, 174, 0, 0, 175, 176,
3514 0, 0, 177, 178, 179, 180, 0, 0, 0, 0,
3515 0, 0, 0, 0, 0, 0, 0, 181, 182, 0,
3516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3517 0, 0, 0, 0, 0, 0, 0, 0, 0, 183,
3518 184, 185, 186, 187, 188, 189, 190, 191, 192, 0,
3519 193, 194, 820, 564, 0, 0, 821, 195, 0, 0,
3520 0, 0, 0, 0, 0, 0, 0, 0, 166, 167,
3521 168, 169, 170, 171, 172, 173, 174, 0, 0, 175,
3522 176, 0, 0, 177, 178, 179, 180, 0, 0, 0,
3523 0, 0, 0, 0, 0, 0, 0, 0, 181, 182,
3524 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3526 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
3527 0, 193, 194, 823, 572, 0, 0, 824, 195, 0,
3528 0, 0, 0, 0, 0, 0, 0, 0, 0, 166,
3529 167, 168, 169, 170, 171, 172, 173, 174, 0, 0,
3530 175, 176, 0, 0, 177, 178, 179, 180, 0, 0,
3531 0, 0, 0, 0, 0, 0, 0, 0, 0, 181,
3532 182, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3534 0, 183, 184, 185, 186, 187, 188, 189, 190, 191,
3535 192, 0, 193, 194, 1048, 564, 0, 0, 1049, 195,
3536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3537 166, 167, 168, 169, 170, 171, 172, 173, 174, 0,
3538 0, 175, 176, 0, 0, 177, 178, 179, 180, 0,
3539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3540 181, 182, 0, 0, 0, 0, 0, 0, 0, 0,
3541 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3542 0, 0, 183, 184, 185, 186, 187, 188, 189, 190,
3543 191, 192, 0, 193, 194, 1051, 572, 0, 0, 1052,
3544 195, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3545 0, 166, 167, 168, 169, 170, 171, 172, 173, 174,
3546 0, 0, 175, 176, 0, 0, 177, 178, 179, 180,
3547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3548 0, 181, 182, 0, 0, 0, 0, 0, 0, 0,
3549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3550 0, 0, 0, 183, 184, 185, 186, 187, 188, 189,
3551 190, 191, 192, 0, 193, 194, 1065, 564, 0, 0,
3552 1066, 195, 0, 0, 0, 0, 0, 0, 0, 0,
3553 0, 0, 166, 167, 168, 169, 170, 171, 172, 173,
3554 174, 0, 0, 175, 176, 0, 0, 177, 178, 179,
3555 180, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3556 0, 0, 181, 182, 331, 332, 333, 334, 335, 336,
3557 337, 338, 339, 340, 341, 342, 343, 0, 0, 344,
3558 345, 0, 0, 0, 183, 184, 185, 186, 187, 188,
3559 189, 190, 191, 192, 0, 193, 194, 0, 0, 0,
3560 0, 0, 195, 0, 0, 0, 0, 0, 0, 0,
3561 0, 0, 346, 0, 347, 348, 349, 350, 351, 352,
3562 353, 354, 355, 356, 0, 0, 0, 0, 0, 0,
3563 0, 0, 0, 0, 0, 0, 0, 0, 0, 236
3566 static const yytype_int16 yycheck[] =
3568 2, 99, 27, 69, 29, 81, 87, 66, 57, 76,
3569 8, 16, 17, 22, 8, 20, 28, 98, 367, 225,
3570 480, 16, 17, 55, 51, 20, 330, 93, 89, 90,
3571 28, 267, 93, 429, 28, 271, 410, 411, 90, 361,
3572 8, 93, 585, 4, 476, 625, 421, 480, 97, 81,
3573 93, 53, 54, 584, 429, 55, 797, 65, 53, 2,
3574 28, 4, 94, 95, 96, 384, 51, 76, 877, 449,
3575 875, 467, 652, 16, 17, 936, 235, 20, 360, 668,
3576 681, 363, 788, 2, 25, 4, 255, 729, 0, 57,
3577 25, 733, 88, 26, 526, 69, 78, 29, 16, 17,
3578 25, 260, 20, 425, 263, 16, 17, 330, 51, 20,
3579 26, 897, 55, 788, 13, 88, 137, 25, 58, 88,
3580 56, 25, 797, 66, 145, 407, 137, 932, 1011, 97,
3581 70, 145, 26, 100, 145, 53, 54, 25, 81, 220,
3582 122, 90, 424, 63, 426, 117, 89, 90, 144, 28,
3583 93, 94, 95, 96, 87, 88, 478, 124, 327, 99,
3584 100, 13, 143, 743, 1025, 137, 952, 27, 117, 250,
3585 452, 144, 25, 753, 235, 144, 237, 986, 1061, 25,
3586 207, 248, 114, 988, 124, 88, 139, 410, 411, 25,
3587 602, 257, 145, 113, 37, 38, 137, 479, 279, 940,
3588 276, 134, 137, 136, 139, 291, 139, 293, 668, 295,
3589 134, 144, 137, 299, 257, 242, 117, 219, 134, 1024,
3590 143, 13, 897, 225, 229, 117, 231, 232, 255, 137,
3591 232, 13, 438, 137, 229, 668, 231, 633, 137, 945,
3592 134, 144, 822, 142, 276, 139, 145, 13, 273, 137,
3593 311, 312, 313, 314, 143, 316, 317, 632, 633, 311,
3594 312, 313, 314, 643, 207, 940, 325, 275, 590, 13,
3595 255, 330, 431, 13, 706, 864, 435, 866, 600, 921,
3596 599, 440, 142, 257, 137, 145, 229, 888, 231, 232,
3597 142, 137, 235, 145, 237, 376, 328, 456, 1004, 242,
3598 327, 137, 145, 139, 370, 143, 137, 368, 369, 591,
3599 253, 229, 255, 231, 145, 63, 368, 369, 229, 601,
3600 231, 264, 383, 15, 137, 17, 857, 370, 328, 1004,
3601 325, 13, 418, 276, 253, 330, 1011, 749, 140, 717,
3602 714, 715, 327, 145, 103, 264, 724, 721, 722, 310,
3603 142, 410, 411, 145, 88, 788, 361, 958, 959, 361,
3604 142, 13, 1068, 145, 797, 113, 525, 310, 311, 312,
3605 313, 314, 315, 316, 317, 90, 142, 137, 921, 145,
3606 13, 13, 325, 139, 327, 328, 1061, 330, 56, 711,
3607 739, 310, 87, 88, 63, 363, 315, 117, 142, 139,
3608 476, 145, 142, 91, 864, 145, 866, 493, 52, 25,
3609 144, 647, 56, 137, 500, 88, 622, 139, 361, 587,
3610 425, 364, 70, 425, 728, 368, 369, 88, 710, 137,
3611 712, 864, 88, 866, 446, 437, 438, 37, 38, 407,
3612 383, 110, 1043, 112, 476, 90, 858, 449, 446, 144,
3613 526, 662, 446, 865, 14, 15, 537, 139, 426, 833,
3614 142, 90, 25, 145, 897, 87, 88, 410, 411, 25,
3615 1050, 144, 117, 478, 143, 871, 478, 90, 446, 127,
3616 128, 129, 425, 144, 452, 708, 898, 646, 144, 26,
3617 142, 714, 715, 145, 526, 134, 871, 139, 721, 722,
3618 567, 117, 88, 421, 117, 90, 449, 940, 575, 142,
3619 142, 479, 145, 145, 136, 63, 459, 583, 584, 67,
3620 25, 137, 144, 139, 140, 142, 70, 552, 145, 145,
3621 449, 88, 117, 476, 52, 478, 54, 55, 56, 57,
3622 139, 117, 603, 610, 140, 570, 464, 75, 76, 141,
3623 87, 88, 137, 580, 117, 582, 63, 135, 144, 568,
3624 909, 117, 110, 90, 112, 771, 915, 576, 779, 780,
3625 738, 1004, 648, 985, 137, 636, 578, 140, 1011, 90,
3626 56, 137, 145, 526, 140, 590, 754, 144, 590, 145,
3627 117, 586, 120, 121, 90, 600, 755, 134, 600, 136,
3628 625, 610, 139, 110, 616, 112, 117, 144, 610, 113,
3629 833, 90, 117, 772, 70, 137, 648, 90, 616, 137,
3630 622, 117, 616, 591, 783, 410, 411, 652, 1061, 26,
3631 706, 113, 137, 601, 70, 140, 143, 580, 117, 582,
3632 145, 643, 427, 428, 117, 113, 791, 590, 616, 708,
3633 795, 718, 113, 87, 88, 714, 715, 600, 725, 602,
3634 603, 759, 721, 722, 875, 97, 877, 137, 453, 125,
3635 126, 127, 128, 129, 706, 17, 90, 679, 142, 681,
3636 848, 747, 850, 87, 88, 746, 56, 748, 25, 90,
3637 87, 88, 860, 636, 746, 1017, 748, 87, 88, 121,
3638 643, 54, 136, 117, 137, 648, 711, 90, 757, 711,
3639 144, 90, 65, 66, 632, 874, 117, 140, 743, 137,
3640 135, 932, 933, 725, 643, 134, 728, 729, 753, 731,
3641 137, 733, 136, 728, 117, 139, 1018, 134, 117, 136,
3642 144, 137, 139, 90, 712, 143, 136, 144, 143, 137,
3643 918, 919, 897, 137, 144, 923, 137, 44, 137, 927,
3644 785, 117, 63, 706, 707, 708, 139, 926, 711, 771,
3645 117, 714, 715, 10, 833, 986, 8, 988, 721, 722,
3646 87, 88, 13, 16, 17, 135, 847, 20, 707, 757,
3647 137, 857, 63, 859, 791, 847, 52, 822, 54, 55,
3648 56, 57, 117, 746, 90, 748, 749, 137, 810, 110,
3649 812, 112, 113, 1024, 115, 48, 49, 844, 87, 88,
3650 53, 54, 87, 88, 851, 852, 994, 137, 855, 136,
3651 52, 117, 137, 66, 67, 137, 683, 144, 685, 110,
3652 842, 112, 113, 845, 52, 87, 88, 137, 10, 87,
3653 88, 137, 52, 1021, 1022, 59, 60, 61, 62, 1004,
3654 135, 10, 928, 1008, 137, 119, 1011, 136, 1013, 141,
3655 90, 136, 897, 15, 901, 144, 908, 87, 88, 144,
3656 139, 137, 87, 88, 137, 912, 888, 968, 135, 137,
3657 833, 135, 87, 88, 136, 87, 88, 117, 136, 9,
3658 897, 844, 144, 137, 847, 70, 144, 91, 851, 852,
3659 937, 938, 855, 137, 140, 858, 1061, 137, 1063, 921,
3660 85, 86, 865, 1068, 956, 1070, 136, 952, 142, 714,
3661 715, 136, 122, 56, 144, 1080, 721, 722, 137, 144,
3662 2, 136, 4, 137, 136, 972, 137, 974, 137, 144,
3663 137, 137, 144, 980, 63, 898, 958, 959, 901, 124,
3664 125, 126, 127, 128, 129, 908, 991, 117, 137, 912,
3665 897, 1003, 205, 1000, 63, 208, 209, 210, 137, 212,
3666 137, 766, 767, 90, 769, 770, 137, 87, 88, 51,
3667 137, 135, 137, 55, 937, 938, 229, 122, 231, 232,
3668 56, 110, 137, 112, 113, 87, 88, 1004, 111, 137,
3669 117, 1008, 1017, 956, 1011, 1017, 1013, 1019, 1020, 81,
3670 63, 110, 137, 112, 113, 1050, 137, 139, 459, 972,
3671 137, 974, 94, 95, 96, 139, 136, 980, 885, 886,
3672 63, 1043, 985, 890, 144, 892, 137, 894, 833, 90,
3673 1018, 96, 961, 962, 136, 94, 797, 1000, 85, 800,
3674 1003, 725, 144, 1020, 1061, 779, 1063, 110, 897, 112,
3675 113, 1068, 700, 1070, 1017, 812, 117, 1004, 1025, 760,
3676 518, 1008, 1019, 1080, 1011, 870, 1013, 110, 102, 112,
3677 113, 211, 325, 299, 59, 97, 137, 330, 331, 332,
3678 333, 334, 335, 929, 791, 338, 339, 340, 341, 342,
3679 343, 344, 345, 346, 1004, 1008, 349, 350, 351, 352,
3680 353, 354, 355, 356, 357, 358, 788, -1, 361, 1038,
3681 1039, -1, -1, -1, 1061, 1044, 1063, 1046, 1047, -1,
3682 -1, 1068, -1, 1070, -1, 207, -1, -1, -1, 996,
3683 997, 998, 999, 1080, -1, -1, 897, -1, -1, -1,
3684 52, -1, 54, 55, 56, 57, 1075, 1076, 1077, 1078,
3685 40, 41, 42, 43, 44, 1084, -1, 410, 411, -1,
3686 242, -1, 70, 2, -1, 4, 419, 420, 421, 54,
3687 -1, 253, 425, 255, 427, 428, 429, 85, 86, 940,
3688 92, 942, 264, -1, -1, -1, 947, 54, 55, -1,
3689 57, -1, 1059, -1, 276, 448, -1, -1, 65, 66,
3690 453, 52, -1, 54, 55, 56, 57, -1, -1, -1,
3691 -1, 464, 51, -1, 467, -1, 55, 125, 126, 127,
3692 128, 129, -1, -1, -1, 478, -1, 52, 310, 54,
3693 55, 56, 57, 315, -1, -1, -1, -1, 70, -1,
3694 -1, 92, 81, -1, -1, 327, 328, 98, 330, -1,
3695 1011, 504, 1013, 85, 86, 94, 95, 96, 97, 52,
3696 -1, 54, 55, 56, 57, 58, 519, -1, 52, 1030,
3697 54, 55, 56, 57, 58, -1, -1, 70, -1, -1,
3698 -1, -1, 364, -1, -1, -1, 70, -1, -1, -1,
3699 122, 123, 124, 125, 126, 127, 128, 129, -1, 92,
3700 1061, -1, 1063, -1, -1, -1, 99, 100, 92, 1070,
3701 -1, -1, -1, -1, 98, 99, 100, -1, -1, 1080,
3702 205, -1, -1, 208, 209, 210, -1, -1, 410, 411,
3703 -1, 124, -1, 586, 2, -1, 4, 590, -1, -1,
3704 124, -1, -1, 127, -1, -1, 52, 600, 54, 55,
3705 56, 57, -1, -1, -1, -1, -1, -1, -1, -1,
3706 -1, 145, -1, -1, 617, -1, 619, 449, 207, -1,
3707 -1, -1, -1, -1, -1, -1, -1, 459, -1, 632,
3708 633, -1, -1, 51, -1, -1, 92, 55, -1, -1,
3709 -1, -1, 98, -1, 476, -1, -1, -1, -1, -1,
3710 -1, -1, -1, 242, -1, -1, -1, -1, -1, -1,
3711 -1, -1, -1, 81, 253, -1, 255, -1, -1, -1,
3712 -1, -1, -1, -1, 677, 264, 94, 95, 96, 97,
3713 -1, 2, -1, 4, -1, -1, -1, 276, -1, -1,
3714 325, -1, -1, -1, 526, 330, -1, -1, -1, -1,
3715 703, -1, -1, -1, -1, 708, 709, -1, 711, -1,
3716 -1, 714, 715, -1, -1, -1, -1, -1, 721, 722,
3717 -1, 310, -1, -1, -1, 728, 315, -1, -1, -1,
3718 51, -1, -1, -1, -1, -1, -1, -1, 327, 328,
3719 -1, -1, -1, -1, -1, -1, -1, -1, 580, -1,
3720 582, 52, -1, 54, 55, 56, 57, 58, -1, -1,
3721 -1, -1, -1, 766, 767, -1, 769, 770, -1, 70,
3722 602, -1, -1, 94, -1, 364, -1, -1, -1, -1,
3723 -1, -1, -1, -1, 787, 420, 421, -1, -1, 207,
3724 -1, 92, -1, -1, 429, -1, -1, 98, 99, 100,
3725 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3726 -1, 643, 815, -1, -1, -1, 648, -1, -1, -1,
3727 -1, -1, 825, 124, 242, -1, 127, -1, -1, 464,
3728 833, -1, 467, -1, -1, 253, -1, 255, 139, -1,
3729 -1, -1, -1, -1, -1, -1, 264, -1, -1, -1,
3730 -1, 854, -1, -1, -1, -1, -1, 689, 276, -1,
3731 449, -1, -1, -1, -1, -1, -1, 870, 871, -1,
3732 459, -1, -1, -1, 706, 707, 708, -1, -1, -1,
3733 -1, -1, 714, 715, 519, -1, 207, 476, -1, 721,
3734 722, -1, 310, -1, -1, -1, -1, 315, -1, -1,
3735 -1, 52, -1, 54, 55, 56, 57, 58, -1, 327,
3736 328, -1, -1, -1, -1, -1, -1, 749, -1, 70,
3737 -1, 242, -1, -1, -1, 2, -1, 4, -1, -1,
3738 -1, -1, 253, -1, 255, -1, -1, 526, -1, -1,
3739 -1, 92, -1, 264, -1, -1, 364, 98, 99, 100,
3740 -1, 586, -1, -1, -1, -1, -1, -1, -1, -1,
3741 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3742 -1, -1, -1, 124, 51, -1, 127, -1, -1, -1,
3743 -1, -1, 617, -1, 619, -1, -1, -1, -1, 310,
3744 -1, 580, -1, 582, 315, -1, -1, 632, 633, -1,
3745 -1, 833, -1, -1, -1, -1, 327, -1, -1, 330,
3746 -1, -1, 844, 602, 1017, -1, -1, -1, -1, 851,
3747 852, -1, -1, 855, -1, -1, 858, -1, -1, -1,
3748 -1, 449, -1, 865, -1, -1, -1, -1, -1, -1,
3749 -1, 459, 677, 364, -1, -1, -1, -1, -1, -1,
3750 -1, -1, -1, -1, 643, -1, -1, -1, 476, 648,
3751 -1, -1, -1, -1, -1, -1, 898, -1, 703, 901,
3752 -1, -1, -1, -1, -1, -1, 908, -1, -1, -1,
3753 912, -1, -1, -1, -1, -1, -1, -1, -1, 410,
3754 411, -1, -1, 728, -1, -1, -1, -1, -1, -1,
3755 -1, -1, -1, -1, -1, 937, 938, -1, 526, -1,
3756 -1, -1, -1, -1, -1, -1, -1, 706, 707, -1,
3757 -1, -1, -1, -1, 956, -1, -1, -1, 449, -1,
3758 207, -1, -1, -1, -1, -1, -1, -1, 459, -1,
3759 972, -1, 974, -1, -1, -1, -1, -1, 980, -1,
3760 -1, -1, 787, 985, -1, -1, -1, -1, -1, -1,
3761 749, -1, 580, 44, 582, 242, -1, -1, 1000, -1,
3762 -1, 1003, -1, -1, -1, -1, 253, -1, 255, -1,
3763 815, -1, -1, -1, 602, -1, -1, 264, -1, 70,
3764 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3765 81, 82, -1, -1, 85, 86, -1, -1, -1, -1,
3766 -1, -1, -1, -1, -1, -1, -1, -1, -1, 854,
3767 -1, -1, -1, -1, -1, 643, -1, -1, -1, -1,
3768 648, -1, -1, 310, -1, -1, 871, 118, 315, 120,
3769 121, 122, 123, 124, 125, 126, 127, 128, 129, -1,
3770 327, -1, -1, 330, -1, 844, 137, -1, -1, 580,
3771 -1, 582, 851, 852, -1, -1, 855, -1, -1, 858,
3772 -1, -1, -1, -1, -1, -1, 865, -1, -1, -1,
3773 -1, 602, -1, -1, -1, -1, -1, 364, 706, 707,
3774 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3775 -1, -1, -1, -1, -1, -1, -1, -1, -1, 898,
3776 -1, -1, 901, -1, -1, -1, -1, -1, -1, 908,
3777 -1, -1, 643, 912, -1, -1, -1, -1, -1, -1,
3778 -1, 749, -1, 410, 411, -1, -1, 0, -1, -1,
3779 -1, -1, -1, -1, -1, 8, 9, 10, 937, 938,
3780 13, 14, 15, -1, 17, -1, -1, -1, -1, -1,
3781 -1, -1, -1, 26, 27, -1, -1, 956, -1, -1,
3782 -1, -1, 449, -1, 37, 38, -1, 40, 41, 42,
3783 43, 44, 459, 972, -1, 974, 707, 708, -1, -1,
3784 -1, 980, -1, 714, 715, -1, 985, -1, -1, -1,
3785 721, 722, -1, -1, -1, -1, -1, -1, -1, -1,
3786 -1, 1000, 48, 49, 1003, -1, -1, 53, 54, 55,
3787 -1, -1, -1, -1, 87, 88, 844, -1, 749, -1,
3788 -1, 67, -1, 851, 852, -1, -1, 855, -1, -1,
3789 858, -1, -1, -1, -1, 81, -1, 865, 111, -1,
3790 -1, -1, -1, -1, -1, -1, -1, -1, 94, 95,
3791 96, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3792 -1, 134, 135, -1, -1, -1, 139, 140, -1, 142,
3793 898, 144, 145, 901, -1, -1, -1, -1, -1, -1,
3794 908, -1, -1, -1, 912, -1, -1, -1, -1, -1,
3795 -1, -1, -1, 580, -1, 582, -1, -1, -1, -1,
3796 -1, -1, 833, -1, -1, -1, -1, -1, -1, 937,
3797 938, -1, -1, 844, -1, 602, -1, -1, -1, -1,
3798 851, 852, -1, -1, 855, -1, -1, 858, 956, -1,
3799 -1, -1, -1, -1, 865, -1, -1, -1, -1, -1,
3800 -1, -1, -1, -1, 972, -1, 974, -1, -1, -1,
3801 -1, -1, 980, -1, -1, -1, 643, 985, -1, 205,
3802 -1, -1, 208, 209, 210, -1, 212, 898, -1, -1,
3803 901, -1, 1000, -1, -1, 1003, -1, 908, -1, -1,
3804 -1, 912, -1, -1, -1, -1, -1, -1, -1, -1,
3805 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3806 -1, -1, -1, -1, -1, -1, 937, 938, -1, -1,
3807 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3808 707, 708, -1, -1, -1, -1, -1, 714, 715, -1,
3809 276, -1, -1, -1, 721, 722, -1, -1, -1, -1,
3810 -1, 972, -1, 974, -1, -1, -1, -1, -1, 980,
3811 -1, -1, -1, -1, 985, -1, -1, -1, -1, -1,
3812 -1, -1, 749, -1, -1, -1, -1, -1, -1, 1000,
3813 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3814 -1, -1, 328, -1, -1, 331, 332, 333, 334, 335,
3815 -1, -1, 338, 339, 340, 341, 342, 343, 344, 345,
3816 346, -1, -1, 349, 350, 351, 352, 353, 354, 355,
3817 356, 357, 358, -1, -1, -1, -1, -1, -1, -1,
3818 52, 53, -1, -1, 56, -1, -1, -1, -1, -1,
3819 -1, -1, -1, -1, -1, -1, 68, 69, 70, 71,
3820 72, 73, 74, 75, 76, -1, 833, 79, 80, -1,
3821 -1, 83, 84, 85, 86, -1, -1, 844, -1, -1,
3822 -1, -1, -1, -1, 851, 852, 98, 99, 855, -1,
3823 -1, 858, -1, 419, 420, 421, -1, -1, 865, -1,
3824 -1, 427, 428, 429, -1, -1, -1, -1, 120, 121,
3825 122, 123, 124, 125, 126, 127, 128, 129, -1, 131,
3826 132, -1, 448, -1, -1, -1, 138, 453, -1, -1,
3827 -1, 898, -1, -1, 901, -1, -1, -1, 464, -1,
3828 -1, 467, -1, -1, -1, 912, -1, -1, -1, -1,
3829 476, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3830 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3831 937, 938, -1, -1, -1, -1, -1, -1, 504, -1,
3832 -1, -1, -1, -1, -1, -1, 70, 71, 72, 73,
3833 74, 75, 76, 519, -1, 79, 80, -1, -1, -1,
3834 526, 85, 86, -1, -1, 972, -1, 974, -1, -1,
3835 -1, -1, -1, 980, -1, -1, -1, -1, 985, -1,
3836 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3837 -1, -1, -1, 1000, -1, -1, 120, 121, 122, 123,
3838 124, 125, 126, 127, 128, 129, -1, -1, -1, -1,
3839 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3840 586, -1, -1, -1, 0, 1, -1, 3, 4, 5,
3841 6, 7, -1, -1, -1, 11, 12, -1, -1, -1,
3842 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3843 -1, 617, -1, 619, 30, 31, 32, 33, 34, 35,
3844 36, -1, -1, 39, -1, -1, 632, 633, -1, 45,
3845 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
3846 56, 57, 648, 59, 60, 61, 62, -1, 64, 65,
3847 66, -1, 68, 69, -1, -1, -1, -1, -1, -1,
3848 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3849 -1, 677, -1, 89, -1, -1, 92, 93, -1, 95,
3850 96, -1, 98, -1, -1, 101, 102, 103, 104, 105,
3851 106, 107, 108, 109, -1, -1, -1, 703, -1, -1,
3852 706, -1, -1, 709, -1, -1, -1, -1, -1, -1,
3853 -1, -1, -1, -1, 130, 131, 132, -1, -1, -1,
3854 -1, -1, 728, -1, -1, -1, 142, -1, -1, 145,
3855 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3856 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3857 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0,
3858 766, 767, -1, 769, 770, -1, -1, 8, 9, 10,
3859 -1, -1, 13, 14, 15, -1, 17, -1, -1, -1,
3860 -1, 787, -1, -1, -1, 26, 27, 28, 29, -1,
3861 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3862 41, 42, 43, 44, -1, -1, -1, -1, -1, 815,
3863 -1, -1, -1, -1, -1, -1, -1, -1, -1, 825,
3864 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
3865 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3866 81, 82, -1, -1, 85, 86, 87, 88, 854, 90,
3867 91, -1, -1, -1, -1, -1, 97, -1, -1, -1,
3868 -1, -1, -1, -1, 870, 871, -1, -1, -1, -1,
3869 111, -1, -1, 114, -1, -1, 117, 118, 119, 120,
3870 121, 122, 123, 124, 125, 126, 127, 128, 129, -1,
3871 -1, -1, -1, 134, 135, 136, 137, 0, -1, 140,
3872 141, 142, 908, 144, 145, 8, 9, 10, -1, -1,
3873 13, 14, 15, -1, 17, -1, -1, -1, -1, -1,
3874 -1, -1, 25, -1, 27, 28, 29, -1, -1, -1,
3875 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
3876 43, 44, -1, -1, -1, -1, -1, -1, -1, -1,
3877 956, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3878 -1, -1, -1, -1, -1, -1, -1, 70, 71, 72,
3879 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3880 -1, -1, 85, 86, 87, 88, -1, 90, 91, -1,
3881 -1, -1, -1, -1, 97, -1, -1, 1003, -1, -1,
3882 -1, -1, -1, -1, -1, -1, -1, -1, 111, -1,
3883 -1, 114, -1, -1, 117, 118, 119, 120, 121, 122,
3884 123, 124, 125, 126, 127, 128, 129, -1, -1, -1,
3885 -1, -1, 135, 136, 137, 0, -1, 140, 141, 142,
3886 -1, 144, 145, 8, 9, 10, -1, -1, 13, 14,
3887 15, -1, 17, -1, -1, -1, -1, 44, -1, -1,
3888 25, -1, 27, 28, 29, -1, -1, -1, -1, -1,
3889 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3890 -1, -1, -1, 70, 71, 72, 73, 74, 75, 76,
3891 77, 78, 79, 80, 81, 82, -1, -1, 85, 86,
3892 -1, -1, -1, -1, -1, 70, 71, 72, 73, 74,
3893 75, 76, 77, 78, 79, 80, 81, 82, -1, -1,
3894 85, 86, 87, 88, -1, 90, 91, -1, -1, -1,
3895 -1, 118, 97, 120, 121, 122, 123, 124, 125, 126,
3896 127, 128, 129, -1, -1, -1, 111, -1, -1, 114,
3897 -1, -1, 117, 118, 119, 120, 121, 122, 123, 124,
3898 125, 126, 127, 128, 129, -1, -1, -1, -1, -1,
3899 135, 136, 137, 0, -1, 140, 141, 142, -1, 144,
3900 145, 8, 9, 10, -1, -1, 13, 14, 15, -1,
3901 17, -1, -1, -1, -1, -1, -1, -1, -1, 26,
3902 27, 28, 29, -1, -1, -1, -1, -1, -1, -1,
3903 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
3904 -1, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3905 79, 80, 81, 82, -1, -1, 85, 86, -1, -1,
3906 -1, -1, -1, 70, 71, 72, 73, 74, 75, 76,
3907 77, 78, 79, 80, 81, 82, -1, -1, 85, 86,
3908 87, 88, -1, -1, 91, -1, -1, -1, -1, 118,
3909 97, 120, 121, 122, 123, 124, 125, 126, 127, 128,
3910 129, -1, -1, -1, 111, -1, -1, 114, -1, -1,
3911 -1, 118, 119, 120, 121, 122, 123, 124, 125, 126,
3912 127, 128, 129, -1, -1, -1, -1, 134, 135, 136,
3913 137, 0, -1, 140, 141, 142, -1, 144, 145, 8,
3914 9, 10, -1, -1, 13, 14, 15, -1, 17, -1,
3915 -1, -1, -1, -1, -1, -1, -1, 26, 27, 28,
3916 29, -1, -1, -1, -1, -1, -1, -1, 37, 38,
3917 -1, 40, 41, 42, 43, 44, -1, -1, -1, 70,
3918 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3919 81, 82, -1, -1, 85, 86, -1, -1, -1, -1,
3920 -1, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3921 79, 80, 81, 82, -1, -1, 85, 86, 87, 88,
3922 -1, -1, 91, -1, -1, -1, -1, -1, 97, 120,
3923 121, 122, 123, 124, 125, 126, 127, 128, 129, -1,
3924 -1, -1, 111, -1, -1, 114, -1, -1, -1, 118,
3925 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
3926 129, -1, -1, -1, -1, 134, 135, 136, 137, 0,
3927 -1, 140, 141, 142, -1, 144, 145, 8, 9, 10,
3928 -1, -1, 13, 14, 15, -1, 17, -1, -1, -1,
3929 -1, -1, -1, -1, -1, -1, 27, 28, 29, -1,
3930 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3931 41, 42, 43, 44, -1, -1, -1, 70, 71, 72,
3932 73, 74, 75, 76, 77, -1, 79, 80, -1, -1,
3933 -1, -1, 85, 86, -1, -1, -1, -1, -1, 70,
3934 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3935 81, 82, -1, -1, 85, 86, 87, 88, -1, 90,
3936 91, -1, -1, -1, -1, -1, 97, 120, 121, 122,
3937 123, 124, 125, 126, 127, 128, 129, -1, -1, -1,
3938 111, -1, -1, 114, -1, -1, 117, 118, 119, 120,
3939 121, 122, 123, 124, 125, 126, 127, 128, 129, -1,
3940 -1, -1, -1, -1, 135, 136, 137, 0, -1, 140,
3941 141, 142, -1, 144, 145, 8, 9, 10, -1, -1,
3942 13, 14, 15, -1, 17, -1, -1, -1, -1, -1,
3943 -1, -1, -1, 26, 27, 28, -1, -1, -1, -1,
3944 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
3945 43, 44, -1, -1, -1, 70, 71, 72, 73, 74,
3946 75, 76, -1, -1, 79, 80, -1, -1, -1, -1,
3947 85, 86, -1, -1, -1, -1, -1, 70, 71, 72,
3948 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3949 -1, -1, 85, 86, 87, 88, -1, -1, 91, -1,
3950 -1, -1, -1, -1, 97, 120, 121, 122, 123, 124,
3951 125, 126, 127, 128, 129, -1, -1, -1, 111, -1,
3952 -1, -1, -1, -1, -1, 118, -1, 120, 121, 122,
3953 123, 124, 125, 126, 127, 128, 129, -1, -1, -1,
3954 -1, 134, 135, 136, 137, 0, 139, 140, 141, 142,
3955 -1, 144, 145, 8, 9, 10, -1, -1, 13, 14,
3956 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3957 -1, -1, 27, 28, 29, -1, -1, -1, -1, -1,
3958 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3959 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3960 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3961 -1, -1, -1, -1, -1, 70, 71, 72, 73, 74,
3962 75, 76, 77, 78, 79, 80, 81, 82, -1, -1,
3963 85, 86, 87, 88, -1, -1, 91, -1, -1, -1,
3964 -1, -1, 97, -1, -1, -1, -1, -1, -1, -1,
3965 -1, -1, -1, -1, -1, -1, 111, -1, -1, 114,
3966 -1, -1, -1, 118, 119, 120, 121, 122, 123, 124,
3967 125, 126, 127, 128, 129, -1, -1, -1, -1, -1,
3968 135, 136, 137, 0, -1, 140, 141, 142, -1, 144,
3969 145, 8, 9, 10, -1, -1, 13, 14, 15, -1,
3970 17, -1, -1, -1, -1, -1, -1, -1, -1, 26,
3971 27, 28, -1, -1, -1, -1, -1, -1, -1, -1,
3972 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
3973 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3974 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3975 -1, -1, -1, 70, 71, 72, 73, 74, 75, 76,
3976 77, 78, 79, 80, 81, 82, -1, -1, 85, 86,
3977 87, 88, -1, -1, 91, -1, -1, -1, -1, -1,
3978 97, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3979 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1,
3980 -1, 118, -1, 120, 121, 122, 123, 124, 125, 126,
3981 127, 128, 129, -1, -1, -1, -1, 134, 135, 136,
3982 137, 0, 139, 140, 141, 142, -1, 144, 145, 8,
3983 9, 10, -1, -1, 13, 14, 15, -1, 17, -1,
3984 -1, -1, -1, -1, -1, -1, -1, -1, 27, 28,
3985 -1, -1, -1, -1, -1, -1, -1, -1, 37, 38,
3986 -1, 40, 41, 42, 43, 44, -1, -1, -1, -1,
3987 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3988 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3989 -1, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3990 79, 80, 81, 82, -1, -1, 85, 86, 87, 88,
3991 -1, -1, 91, -1, -1, -1, -1, -1, 97, -1,
3992 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3993 -1, -1, 111, -1, -1, -1, -1, -1, -1, 118,
3994 -1, 120, 121, 122, 123, 124, 125, 126, 127, 128,
3995 129, -1, -1, -1, -1, -1, 135, 136, 137, 0,
3996 139, 140, 141, 142, -1, 144, 145, 8, 9, 10,
3997 -1, -1, -1, 14, 15, -1, 17, -1, -1, -1,
3998 -1, -1, -1, -1, -1, 26, -1, -1, -1, -1,
3999 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
4000 41, 42, 43, 44, -1, -1, -1, -1, -1, -1,
4001 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4002 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
4003 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
4004 81, 82, -1, -1, 85, 86, 87, 88, -1, 90,
4005 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4006 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4007 111, -1, -1, -1, -1, -1, 117, 118, -1, 120,
4008 121, 122, 123, 124, 125, 126, 127, 128, 129, -1,
4009 -1, -1, -1, 134, 135, 136, 137, 0, -1, 140,
4010 -1, 142, -1, 144, 145, 8, 9, 10, -1, -1,
4011 -1, 14, 15, -1, 17, -1, -1, -1, -1, -1,
4012 -1, -1, -1, 26, -1, -1, -1, -1, -1, -1,
4013 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
4014 43, 44, -1, -1, -1, -1, -1, -1, -1, -1,
4015 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4016 -1, -1, -1, -1, -1, -1, -1, 70, 71, 72,
4017 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
4018 -1, -1, 85, 86, 87, 88, -1, 90, -1, -1,
4019 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4020 -1, -1, -1, -1, -1, -1, -1, -1, 111, -1,
4021 -1, -1, -1, -1, 117, 118, -1, 120, 121, 122,
4022 123, 124, 125, 126, 127, 128, 129, -1, -1, -1,
4023 -1, 134, 135, 136, 137, 0, -1, 140, -1, 142,
4024 -1, 144, 145, 8, 9, 10, -1, -1, -1, 14,
4025 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
4026 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4027 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
4028 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4029 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4030 -1, -1, -1, -1, -1, 70, 71, 72, 73, 74,
4031 75, 76, 77, 78, 79, 80, 81, 82, -1, -1,
4032 85, 86, 87, 88, -1, 90, -1, -1, -1, -1,
4033 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4034 -1, -1, -1, -1, -1, -1, 111, -1, -1, -1,
4035 -1, -1, 117, 118, -1, 120, 121, 122, 123, 124,
4036 125, 126, 127, 128, 129, -1, -1, -1, -1, -1,
4037 135, 136, 137, 0, -1, 140, -1, 142, -1, 144,
4038 145, 8, 9, 10, -1, -1, -1, 14, 15, -1,
4039 17, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4040 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4041 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
4042 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4043 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4044 -1, -1, -1, 70, 71, 72, 73, 74, 75, 76,
4045 77, 78, 79, 80, 81, 82, -1, -1, 85, 86,
4046 87, 88, -1, 90, -1, -1, -1, -1, -1, -1,
4047 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4048 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1,
4049 117, 118, -1, 120, 121, 122, 123, 124, 125, 126,
4050 127, 128, 129, -1, -1, -1, -1, -1, 135, 136,
4051 137, -1, -1, 140, -1, 142, -1, 144, 145, 1,
4052 -1, 3, 4, 5, 6, 7, 8, 9, 10, 11,
4053 12, -1, -1, 15, 16, -1, 18, 19, 20, 21,
4054 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4055 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4056 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
4057 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
4058 62, -1, 64, 65, 66, -1, 68, 69, -1, -1,
4059 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4060 -1, -1, -1, -1, -1, -1, -1, 89, -1, -1,
4061 92, 93, -1, 95, 96, -1, 98, -1, -1, 101,
4062 102, 103, 104, 105, 106, 107, 108, 109, -1, -1,
4063 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4064 -1, -1, -1, -1, -1, -1, -1, -1, 130, 131,
4065 132, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4066 142, -1, 1, 145, 3, 4, 5, 6, 7, -1,
4067 -1, 10, 11, 12, -1, 14, 15, 16, -1, 18,
4068 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4069 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4070 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
4071 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4072 59, 60, 61, 62, -1, 64, 65, 66, -1, 68,
4073 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4074 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4075 89, -1, -1, 92, 93, -1, 95, 96, -1, 98,
4076 -1, -1, 101, 102, 103, 104, 105, 106, 107, 108,
4077 109, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4078 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4079 -1, 130, 131, 132, -1, -1, -1, -1, -1, -1,
4080 -1, -1, -1, 142, -1, 1, 145, 3, 4, 5,
4081 6, 7, -1, -1, 10, 11, 12, -1, -1, 15,
4082 16, 17, 18, 19, 20, 21, 22, 23, 24, -1,
4083 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4084 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
4085 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
4086 56, 57, -1, 59, 60, 61, 62, -1, 64, 65,
4087 66, -1, 68, 69, -1, -1, -1, -1, -1, -1,
4088 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4089 -1, -1, -1, 89, -1, -1, 92, 93, -1, 95,
4090 96, -1, 98, -1, -1, 101, 102, 103, 104, 105,
4091 106, 107, 108, 109, -1, -1, -1, -1, -1, -1,
4092 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4093 -1, -1, -1, -1, 130, 131, 132, -1, -1, -1,
4094 -1, -1, -1, -1, -1, -1, 142, -1, 1, 145,
4095 3, 4, 5, 6, 7, -1, -1, 10, 11, 12,
4096 -1, -1, 15, 16, -1, 18, 19, 20, 21, 22,
4097 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4098 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4099 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
4100 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
4101 -1, 64, 65, 66, -1, 68, 69, -1, -1, -1,
4102 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4103 -1, -1, -1, -1, -1, -1, 89, -1, -1, 92,
4104 93, -1, 95, 96, -1, 98, -1, -1, 101, 102,
4105 103, 104, 105, 106, 107, 108, 109, -1, -1, -1,
4106 -1, -1, -1, -1, -1, 1, -1, 3, 4, 5,
4107 6, 7, -1, 9, 10, 11, 12, 130, 131, 132,
4108 16, -1, 18, 19, 20, 21, 22, 23, 24, 142,
4109 -1, -1, 145, -1, 30, 31, 32, 33, 34, 35,
4110 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
4111 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
4112 56, 57, -1, 59, 60, 61, 62, -1, 64, 65,
4113 66, -1, 68, 69, -1, -1, -1, -1, -1, -1,
4114 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4115 -1, -1, -1, 89, -1, -1, 92, 93, -1, 95,
4116 96, -1, 98, -1, -1, 101, 102, 103, 104, 105,
4117 106, 107, 108, 109, -1, -1, -1, -1, -1, -1,
4118 -1, -1, 1, -1, 3, 4, 5, 6, 7, -1,
4119 -1, -1, 11, 12, 130, 131, 132, 16, -1, 18,
4120 19, 20, 21, 22, 23, 24, 142, -1, -1, 145,
4121 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4122 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
4123 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4124 59, 60, 61, 62, -1, 64, 65, 66, -1, 68,
4125 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4126 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4127 89, -1, -1, 92, 93, -1, 95, 96, -1, 98,
4128 -1, -1, 101, 102, 103, 104, 105, 106, 107, 108,
4129 109, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4130 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4131 -1, 130, 131, 132, 1, -1, 3, 4, 5, 6,
4132 7, 140, -1, 142, 11, 12, 145, -1, -1, 16,
4133 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
4134 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4135 -1, -1, 39, -1, -1, -1, -1, -1, 45, 46,
4136 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4137 57, -1, 59, 60, 61, 62, -1, 64, 65, 66,
4138 -1, 68, 69, -1, -1, -1, -1, -1, -1, -1,
4139 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4140 -1, -1, 89, -1, -1, 92, 93, -1, 95, 96,
4141 -1, 98, -1, -1, 101, 102, 103, 104, 105, 106,
4142 107, 108, 109, -1, -1, -1, -1, -1, -1, -1,
4143 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4144 -1, -1, -1, 130, 131, 132, 1, -1, 3, 4,
4145 5, 6, 7, 140, -1, 142, 11, 12, 145, -1,
4146 -1, 16, -1, 18, 19, 20, 21, 22, 23, 24,
4147 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4148 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4149 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
4150 55, 56, 57, -1, 59, 60, 61, 62, -1, 64,
4151 65, 66, -1, 68, 69, -1, -1, -1, -1, -1,
4152 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4153 -1, -1, -1, -1, 89, -1, -1, 92, 93, -1,
4154 95, 96, -1, 98, -1, -1, 101, 102, 103, 104,
4155 105, 106, 107, 108, 109, -1, -1, -1, -1, -1,
4156 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4157 -1, -1, -1, -1, -1, 130, 131, 132, -1, -1,
4158 135, -1, -1, -1, -1, -1, -1, 142, -1, 1,
4159 145, 3, 4, 5, 6, 7, -1, -1, -1, 11,
4160 12, -1, -1, -1, 16, -1, 18, 19, 20, 21,
4161 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4162 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4163 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
4164 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
4165 62, -1, 64, 65, 66, -1, 68, 69, -1, -1,
4166 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4167 -1, -1, -1, -1, -1, -1, -1, 89, -1, -1,
4168 92, 93, -1, 95, 96, -1, 98, -1, -1, 101,
4169 102, 103, 104, 105, 106, 107, 108, 109, -1, -1,
4170 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4171 -1, -1, -1, -1, -1, -1, -1, -1, 130, 131,
4172 132, -1, -1, 135, -1, -1, -1, -1, -1, -1,
4173 142, -1, 1, 145, 3, 4, 5, 6, 7, -1,
4174 -1, 10, 11, 12, -1, -1, -1, 16, -1, 18,
4175 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4176 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4177 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
4178 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4179 59, 60, 61, 62, -1, 64, 65, 66, -1, 68,
4180 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4181 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4182 89, -1, -1, 92, 93, -1, 95, 96, -1, 98,
4183 -1, -1, 101, 102, 103, 104, 105, 106, 107, 108,
4184 109, -1, -1, -1, -1, -1, -1, -1, -1, 1,
4185 -1, 3, 4, 5, 6, 7, -1, -1, -1, 11,
4186 12, 130, 131, 132, 16, -1, 18, 19, 20, 21,
4187 22, 23, 24, 142, -1, -1, 145, -1, 30, 31,
4188 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4189 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
4190 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
4191 62, -1, 64, 65, 66, -1, 68, 69, -1, -1,
4192 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4193 -1, -1, -1, -1, -1, -1, -1, 89, -1, -1,
4194 92, 93, -1, 95, 96, -1, 98, -1, -1, 101,
4195 102, 103, 104, 105, 106, 107, 108, 109, -1, 111,
4196 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
4197 5, -1, 7, -1, -1, -1, 11, 12, 130, 131,
4198 132, 16, -1, 18, 19, 20, 21, 22, 23, 24,
4199 142, -1, -1, 145, -1, 30, 31, 32, 33, 34,
4200 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4201 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
4202 55, 56, 57, 58, 59, 60, 61, 62, -1, 64,
4203 65, 66, -1, 68, 69, -1, -1, -1, -1, -1,
4204 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4205 -1, -1, -1, -1, 89, -1, -1, 92, 93, -1,
4206 95, 96, -1, 98, 99, 100, 101, 102, 103, 104,
4207 105, 106, 107, 108, 109, -1, -1, -1, -1, -1,
4208 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
4209 -1, -1, -1, 11, 12, 130, 131, 132, 16, -1,
4210 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4211 145, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4212 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
4213 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4214 -1, 59, 60, 61, 62, -1, 64, 65, 66, -1,
4215 68, 69, -1, -1, -1, -1, -1, -1, -1, -1,
4216 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4217 -1, 89, -1, -1, 92, 93, -1, 95, 96, -1,
4218 -1, -1, -1, 101, 102, 103, 104, 105, 106, 107,
4219 108, 109, -1, -1, -1, -1, -1, -1, -1, -1,
4220 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4221 11, 12, 130, 131, 132, 16, -1, 18, 19, 20,
4222 21, 22, 23, 24, 142, -1, -1, 145, -1, 30,
4223 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4224 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4225 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4226 61, 62, -1, 64, 65, 66, -1, 68, 69, -1,
4227 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4228 -1, -1, -1, -1, -1, -1, -1, -1, 89, -1,
4229 -1, 92, 93, -1, 95, 96, -1, -1, -1, -1,
4230 101, 102, 103, 104, 105, 106, 107, 108, 109, -1,
4231 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
4232 4, 5, 6, 7, -1, -1, -1, 11, 12, 130,
4233 131, 132, 16, -1, 18, 19, 20, 21, 22, 23,
4234 24, -1, -1, -1, 145, -1, 30, 31, 32, 33,
4235 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4236 -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
4237 54, 55, 56, 57, -1, 59, 60, 61, 62, -1,
4238 64, 65, 66, -1, 68, 69, -1, -1, -1, -1,
4239 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4240 -1, -1, -1, -1, -1, 89, -1, -1, 92, 93,
4241 -1, 95, 96, -1, 98, -1, -1, 101, 102, 103,
4242 104, 105, 106, 107, 108, 109, -1, -1, -1, -1,
4243 -1, -1, -1, -1, -1, -1, 3, 4, 5, 6,
4244 7, -1, -1, -1, 11, 12, 130, 131, 132, 16,
4245 -1, 18, 19, 20, 21, 22, 23, 24, 142, -1,
4246 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4247 -1, -1, 39, -1, -1, -1, -1, -1, 45, 46,
4248 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4249 57, -1, 59, 60, 61, 62, -1, 64, 65, 66,
4250 -1, 68, 69, -1, -1, -1, -1, -1, -1, -1,
4251 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4252 -1, -1, 89, -1, -1, 92, 93, -1, 95, 96,
4253 -1, 98, -1, -1, 101, 102, 103, 104, 105, 106,
4254 107, 108, 109, -1, -1, -1, -1, -1, -1, -1,
4255 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4256 -1, -1, -1, 130, 131, 132, -1, -1, -1, -1,
4257 -1, -1, -1, -1, -1, 142, 3, 4, 5, 6,
4258 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
4259 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
4260 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4261 37, 38, 39, -1, -1, -1, -1, -1, 45, 46,
4262 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4263 57, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4264 -1, 68, 69, 70, 71, 72, 73, 74, 75, 76,
4265 -1, -1, 79, 80, -1, -1, 83, 84, 85, 86,
4266 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4267 -1, 98, 99, -1, -1, -1, -1, -1, -1, -1,
4268 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4269 -1, -1, -1, 120, 121, 122, 123, 124, 125, 126,
4270 127, 128, 129, -1, 131, 132, -1, -1, -1, -1,
4271 -1, 138, 139, 3, 4, 5, 6, 7, 8, 9,
4272 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
4273 20, 21, 22, 23, 24, 25, 26, -1, -1, -1,
4274 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
4275 -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
4276 50, 51, 52, 53, 54, 55, 56, 57, -1, -1,
4277 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
4278 70, 71, 72, 73, 74, 75, 76, -1, -1, 79,
4279 80, -1, -1, 83, 84, 85, 86, -1, -1, -1,
4280 -1, -1, -1, -1, -1, -1, -1, -1, 98, 99,
4281 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4282 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4283 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
4284 -1, 131, 132, -1, -1, -1, -1, -1, 138, 3,
4285 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
4286 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
4287 24, 25, 26, -1, -1, -1, 30, 31, 32, 33,
4288 34, 35, 36, 37, 38, 39, -1, -1, -1, -1,
4289 -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
4290 54, -1, 56, -1, -1, -1, -1, -1, -1, -1,
4291 -1, -1, -1, -1, 68, 69, 70, 71, 72, 73,
4292 74, 75, 76, -1, -1, 79, 80, -1, -1, 83,
4293 84, 85, 86, -1, -1, -1, -1, -1, -1, -1,
4294 -1, -1, -1, -1, 98, 99, -1, -1, 102, -1,
4295 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4296 -1, -1, -1, -1, -1, -1, 120, 121, 122, 123,
4297 124, 125, 126, 127, 128, 129, -1, 131, 132, -1,
4298 -1, -1, -1, -1, 138, 3, 4, 5, 6, 7,
4299 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
4300 18, 19, 20, 21, 22, 23, 24, 25, 26, -1,
4301 -1, -1, 30, 31, 32, 33, 34, 35, 36, 37,
4302 38, 39, -1, -1, -1, -1, -1, 45, 46, 47,
4303 48, 49, 50, 51, 52, 53, -1, -1, 56, -1,
4304 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4305 68, 69, 70, 71, 72, 73, 74, 75, 76, -1,
4306 -1, 79, 80, -1, -1, 83, 84, 85, 86, -1,
4307 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4308 98, 99, -1, -1, 102, -1, -1, -1, -1, -1,
4309 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4310 -1, -1, 120, 121, 122, 123, 124, 125, 126, 127,
4311 128, 129, -1, 131, 132, -1, -1, -1, -1, -1,
4312 138, 3, 4, 5, 6, 7, 8, 9, 10, 11,
4313 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
4314 22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
4315 32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
4316 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
4317 52, 53, -1, -1, 56, -1, -1, -1, -1, -1,
4318 -1, -1, -1, -1, -1, -1, 68, 69, 70, 71,
4319 72, 73, 74, 75, 76, -1, -1, 79, 80, -1,
4320 -1, 83, 84, 85, 86, -1, -1, -1, -1, -1,
4321 -1, -1, -1, -1, -1, -1, 98, 99, -1, -1,
4322 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4323 -1, -1, -1, -1, -1, -1, -1, -1, 120, 121,
4324 122, 123, 124, 125, 126, 127, 128, 129, -1, 131,
4325 132, 3, 4, 5, -1, 7, 138, -1, -1, 11,
4326 12, -1, -1, -1, 16, -1, 18, 19, 20, 21,
4327 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4328 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4329 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
4330 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
4331 62, -1, 64, 65, 66, -1, -1, -1, -1, -1,
4332 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4333 -1, -1, -1, -1, -1, -1, -1, 89, -1, -1,
4334 92, 93, -1, 95, 96, -1, -1, -1, -1, 101,
4335 102, 103, 104, 105, 106, 107, 108, 109, -1, -1,
4336 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4337 -1, 3, 4, 5, -1, 7, -1, -1, 130, 11,
4338 12, -1, -1, -1, 16, 137, 18, 19, 20, 21,
4339 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4340 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4341 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
4342 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
4343 62, -1, 64, 65, 66, -1, -1, -1, -1, -1,
4344 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4345 -1, -1, -1, -1, -1, -1, -1, 89, -1, -1,
4346 92, 93, -1, 95, 96, -1, -1, -1, -1, 101,
4347 102, 103, 104, 105, 106, 107, 108, 109, -1, -1,
4348 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4349 -1, 3, 4, 5, 6, 7, -1, -1, 130, 11,
4350 12, -1, -1, -1, 16, 137, 18, 19, 20, 21,
4351 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4352 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4353 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
4354 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
4355 62, -1, 64, 65, 66, -1, 68, 69, -1, -1,
4356 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4357 -1, -1, -1, -1, -1, -1, -1, 89, -1, -1,
4358 92, 93, -1, 95, 96, -1, 98, -1, -1, 101,
4359 102, 103, 104, 105, 106, 107, 108, 109, -1, -1,
4360 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
4361 5, -1, 7, -1, -1, -1, 11, 12, 130, 131,
4362 132, 16, -1, 18, 19, 20, 21, 22, 23, 24,
4363 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4364 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4365 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
4366 55, 56, 57, 58, 59, 60, 61, 62, -1, 64,
4367 65, 66, -1, 68, 69, -1, -1, -1, -1, -1,
4368 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4369 -1, -1, -1, -1, 89, -1, -1, 92, 93, -1,
4370 95, 96, -1, 98, 99, 100, 101, 102, 103, 104,
4371 105, 106, 107, 108, 109, -1, -1, -1, -1, -1,
4372 -1, -1, -1, -1, -1, 3, 4, 5, 6, 7,
4373 -1, -1, -1, 11, 12, 130, 131, 132, 16, -1,
4374 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4375 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4376 -1, 39, -1, -1, -1, -1, -1, 45, 46, -1,
4377 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4378 -1, 59, 60, 61, 62, -1, 64, 65, 66, -1,
4379 68, 69, -1, -1, -1, -1, -1, -1, -1, -1,
4380 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4381 -1, 89, -1, -1, 92, 93, -1, 95, 96, -1,
4382 98, -1, -1, 101, 102, 103, 104, 105, 106, 107,
4383 108, 109, -1, -1, -1, -1, -1, -1, -1, -1,
4384 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4385 11, 12, 130, 131, 132, 16, -1, 18, 19, 20,
4386 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4387 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4388 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4389 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
4390 61, 62, -1, 64, 65, 66, -1, 68, 69, -1,
4391 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4392 -1, -1, -1, -1, -1, -1, -1, -1, 89, -1,
4393 -1, 92, 93, -1, 95, 96, -1, 98, 99, 100,
4394 101, 102, 103, 104, 105, 106, 107, 108, 109, -1,
4395 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
4396 4, 5, -1, 7, -1, -1, -1, 11, 12, 130,
4397 131, 132, 16, -1, 18, 19, 20, 21, 22, 23,
4398 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4399 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4400 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4401 54, 55, 56, 57, 58, 59, 60, 61, 62, -1,
4402 64, 65, 66, -1, 68, 69, -1, -1, -1, -1,
4403 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4404 -1, -1, -1, -1, -1, 89, -1, -1, 92, 93,
4405 -1, 95, 96, -1, 98, 99, -1, 101, 102, 103,
4406 104, 105, 106, 107, 108, 109, -1, -1, -1, -1,
4407 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
4408 7, -1, -1, -1, 11, 12, 130, 131, 132, 16,
4409 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
4410 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4411 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
4412 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
4413 57, 58, 59, 60, 61, 62, -1, 64, 65, 66,
4414 -1, 68, 69, -1, -1, -1, -1, -1, -1, -1,
4415 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4416 -1, -1, 89, -1, -1, 92, 93, -1, 95, 96,
4417 -1, -1, 99, 100, 101, 102, 103, 104, 105, 106,
4418 107, 108, 109, -1, -1, -1, -1, -1, -1, -1,
4419 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4420 -1, 11, 12, 130, 131, 132, 16, -1, 18, 19,
4421 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4422 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4423 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4424 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
4425 60, 61, 62, -1, 64, 65, 66, -1, 68, 69,
4426 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4427 -1, -1, -1, -1, -1, -1, -1, -1, -1, 89,
4428 -1, -1, 92, 93, -1, 95, 96, -1, 98, 99,
4429 -1, 101, 102, 103, 104, 105, 106, 107, 108, 109,
4430 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4431 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4432 130, 131, 132, 16, -1, 18, 19, 20, 21, 22,
4433 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4434 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4435 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4436 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
4437 -1, 64, 65, 66, -1, 68, 69, -1, -1, -1,
4438 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4439 -1, -1, -1, -1, -1, -1, 89, -1, -1, 92,
4440 93, -1, 95, 96, -1, -1, 99, -1, 101, 102,
4441 103, 104, 105, 106, 107, 108, 109, -1, -1, -1,
4442 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
4443 -1, 7, -1, -1, -1, 11, 12, 130, 131, 132,
4444 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
4445 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4446 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
4447 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
4448 56, 57, -1, 59, 60, 61, 62, -1, 64, 65,
4449 66, -1, 68, 69, -1, -1, -1, -1, -1, -1,
4450 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4451 -1, -1, -1, 89, -1, -1, 92, 93, -1, 95,
4452 96, -1, 98, -1, -1, 101, 102, 103, 104, 105,
4453 106, 107, 108, 109, -1, -1, -1, -1, -1, -1,
4454 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4455 -1, -1, 11, 12, 130, 131, 132, 16, -1, 18,
4456 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4457 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4458 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4459 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4460 59, 60, 61, 62, -1, 64, 65, 66, -1, 68,
4461 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4462 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4463 89, -1, -1, 92, 93, -1, 95, 96, -1, 98,
4464 -1, -1, 101, 102, 103, 104, 105, 106, 107, 108,
4465 109, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4466 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
4467 12, 130, 131, 132, 16, -1, 18, 19, 20, 21,
4468 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4469 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4470 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
4471 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
4472 62, -1, 64, 65, 66, -1, 68, 69, -1, -1,
4473 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4474 -1, -1, -1, -1, -1, -1, -1, 89, -1, -1,
4475 92, 93, -1, 95, 96, -1, 98, -1, -1, 101,
4476 102, 103, 104, 105, 106, 107, 108, 109, -1, -1,
4477 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
4478 5, -1, 7, -1, -1, -1, 11, 12, 130, 131,
4479 132, 16, -1, 18, 19, 20, 21, 22, 23, 24,
4480 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4481 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4482 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
4483 55, 56, 57, -1, 59, 60, 61, 62, -1, 64,
4484 65, 66, -1, 68, 69, -1, -1, -1, -1, -1,
4485 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4486 -1, -1, -1, -1, 89, -1, -1, 92, 93, -1,
4487 95, 96, -1, 98, -1, -1, 101, 102, 103, 104,
4488 105, 106, 107, 108, 109, -1, -1, -1, -1, -1,
4489 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
4490 -1, -1, -1, 11, 12, 130, 131, 132, 16, -1,
4491 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4492 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4493 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
4494 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4495 -1, 59, 60, 61, 62, -1, 64, 65, 66, -1,
4496 68, 69, -1, -1, -1, -1, -1, -1, -1, -1,
4497 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4498 -1, 89, -1, -1, 92, 93, -1, 95, 96, -1,
4499 98, -1, -1, 101, 102, 103, 104, 105, 106, 107,
4500 108, 109, -1, -1, -1, -1, -1, -1, -1, -1,
4501 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4502 11, 12, 130, 131, 132, 16, -1, 18, 19, 20,
4503 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4504 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4505 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4506 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4507 61, 62, -1, 64, 65, 66, -1, 68, 69, -1,
4508 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4509 -1, -1, -1, -1, -1, -1, -1, -1, 89, -1,
4510 -1, 92, 93, -1, 95, 96, -1, -1, -1, -1,
4511 101, 102, 103, 104, 105, 106, 107, 108, 109, -1,
4512 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
4513 4, 5, -1, 7, -1, -1, -1, 11, 12, 130,
4514 131, 132, 16, -1, 18, 19, 20, 21, 22, 23,
4515 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4516 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4517 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4518 54, 55, 56, 57, -1, 59, 60, 61, 62, -1,
4519 64, 65, 66, -1, 68, 69, -1, -1, -1, -1,
4520 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4521 -1, -1, -1, -1, -1, 89, -1, -1, 92, 93,
4522 -1, 95, 96, -1, -1, -1, -1, 101, 102, 103,
4523 104, 105, 106, 107, 108, 109, -1, -1, -1, -1,
4524 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
4525 7, -1, -1, -1, 11, 12, 130, 131, 132, 16,
4526 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
4527 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4528 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
4529 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
4530 57, -1, 59, 60, 61, 62, -1, 64, 65, 66,
4531 -1, 68, 69, -1, -1, -1, -1, -1, -1, -1,
4532 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4533 -1, -1, 89, -1, -1, 92, 93, -1, 95, 96,
4534 -1, -1, -1, -1, 101, 102, 103, 104, 105, 106,
4535 107, 108, 109, -1, -1, -1, -1, -1, -1, -1,
4536 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4537 -1, 11, 12, 130, 131, 132, 16, -1, 18, 19,
4538 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4539 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4540 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4541 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4542 60, 61, 62, -1, 64, 65, 66, -1, -1, -1,
4543 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4544 -1, -1, -1, -1, -1, -1, -1, -1, -1, 89,
4545 -1, -1, 92, 93, -1, 95, 96, -1, 98, -1,
4546 -1, 101, 102, 103, 104, 105, 106, 107, 108, 109,
4547 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
4548 7, -1, -1, -1, 11, 12, -1, -1, -1, 16,
4549 130, 18, 19, 20, 21, 22, 23, 24, -1, -1,
4550 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4551 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
4552 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
4553 57, -1, 59, 60, 61, 62, -1, 64, 65, 66,
4554 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4555 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4556 -1, -1, 89, -1, -1, 92, 93, -1, 95, 96,
4557 -1, 98, -1, -1, 101, 102, 103, 104, 105, 106,
4558 107, 108, 109, -1, -1, -1, -1, -1, -1, 3,
4559 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
4560 -1, -1, 16, 130, 18, 19, 20, 21, 22, 23,
4561 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4562 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4563 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4564 54, 55, 56, 57, -1, 59, 60, 61, 62, -1,
4565 64, 65, 66, -1, -1, -1, -1, -1, -1, -1,
4566 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4567 -1, 85, -1, -1, -1, 89, -1, -1, 92, 93,
4568 -1, 95, 96, -1, -1, -1, -1, 101, 102, 103,
4569 104, 105, 106, 107, 108, 109, -1, -1, -1, -1,
4570 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4571 11, 12, -1, -1, -1, 16, 130, 18, 19, 20,
4572 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4573 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4574 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4575 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4576 61, 62, -1, 64, 65, 66, -1, -1, -1, -1,
4577 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4578 -1, -1, -1, -1, -1, -1, -1, -1, 89, -1,
4579 -1, 92, 93, -1, 95, 96, -1, -1, -1, -1,
4580 101, 102, 103, 104, 105, 106, 107, 108, 109, -1,
4581 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
4582 -1, -1, -1, 11, 12, -1, -1, -1, 16, 130,
4583 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4584 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4585 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
4586 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4587 -1, 59, 60, 61, 62, -1, 64, 65, 66, -1,
4588 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4589 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4590 -1, 89, -1, -1, 92, 93, -1, 95, 96, -1,
4591 -1, -1, -1, 101, 102, 103, 104, 105, 106, 107,
4592 108, 109, -1, -1, -1, -1, -1, -1, 3, 4,
4593 5, -1, 7, -1, -1, -1, 11, 12, -1, -1,
4594 -1, 16, 130, 18, 19, 20, 21, 22, 23, 24,
4595 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4596 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4597 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
4598 55, 56, 57, -1, 59, 60, 61, 62, -1, 64,
4599 65, 66, -1, -1, -1, -1, -1, -1, -1, -1,
4600 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4601 -1, -1, -1, -1, 89, -1, -1, 92, 93, -1,
4602 95, 96, -1, -1, -1, -1, 101, 102, 103, 104,
4603 105, 106, 107, 108, 109, -1, -1, -1, -1, -1,
4604 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
4605 12, -1, -1, -1, 16, 130, 18, 19, 20, 21,
4606 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4607 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4608 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
4609 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
4610 62, -1, 64, 65, 66, -1, -1, -1, -1, -1,
4611 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4612 -1, -1, -1, -1, -1, -1, -1, 89, -1, -1,
4613 92, 93, -1, 95, 96, -1, -1, -1, -1, 101,
4614 102, 103, 104, 105, 106, 107, 108, 109, -1, -1,
4615 -1, -1, -1, 52, 53, -1, -1, 56, -1, -1,
4616 -1, -1, -1, -1, -1, -1, -1, -1, 130, 68,
4617 69, 70, 71, 72, 73, 74, 75, 76, -1, -1,
4618 79, 80, -1, -1, 83, 84, 85, 86, -1, -1,
4619 -1, -1, -1, -1, -1, -1, -1, -1, -1, 98,
4620 99, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4621 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4622 -1, 120, 121, 122, 123, 124, 125, 126, 127, 128,
4623 129, -1, 131, 132, 52, 53, -1, -1, 56, 138,
4624 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4625 68, 69, 70, 71, 72, 73, 74, 75, 76, -1,
4626 -1, 79, 80, -1, -1, 83, 84, 85, 86, -1,
4627 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4628 98, 99, -1, -1, -1, -1, -1, -1, -1, -1,
4629 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4630 -1, -1, 120, 121, 122, 123, 124, 125, 126, 127,
4631 128, 129, -1, 131, 132, 52, 53, -1, -1, 56,
4632 138, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4633 -1, 68, 69, 70, 71, 72, 73, 74, 75, 76,
4634 -1, -1, 79, 80, -1, -1, 83, 84, 85, 86,
4635 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4636 -1, 98, 99, -1, -1, -1, -1, -1, -1, -1,
4637 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4638 -1, -1, -1, 120, 121, 122, 123, 124, 125, 126,
4639 127, 128, 129, -1, 131, 132, 52, 53, -1, -1,
4640 56, 138, -1, -1, -1, -1, -1, -1, -1, -1,
4641 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
4642 76, -1, -1, 79, 80, -1, -1, 83, 84, 85,
4643 86, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4644 -1, -1, 98, 99, -1, -1, -1, -1, -1, -1,
4645 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4646 -1, -1, -1, -1, 120, 121, 122, 123, 124, 125,
4647 126, 127, 128, 129, -1, 131, 132, 52, 53, -1,
4648 -1, 56, 138, -1, -1, -1, -1, -1, -1, -1,
4649 -1, -1, -1, 68, 69, 70, 71, 72, 73, 74,
4650 75, 76, -1, -1, 79, 80, -1, -1, 83, 84,
4651 85, 86, -1, -1, -1, -1, -1, -1, -1, -1,
4652 -1, -1, -1, 98, 99, -1, -1, -1, -1, -1,
4653 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4654 -1, -1, -1, -1, -1, 120, 121, 122, 123, 124,
4655 125, 126, 127, 128, 129, -1, 131, 132, 52, 53,
4656 -1, -1, 56, 138, -1, -1, -1, -1, -1, -1,
4657 -1, -1, -1, -1, 68, 69, 70, 71, 72, 73,
4658 74, 75, 76, -1, -1, 79, 80, -1, -1, 83,
4659 84, 85, 86, -1, -1, -1, -1, -1, -1, -1,
4660 -1, -1, -1, -1, 98, 99, -1, -1, -1, -1,
4661 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4662 -1, -1, -1, -1, -1, -1, 120, 121, 122, 123,
4663 124, 125, 126, 127, 128, 129, -1, 131, 132, 52,
4664 53, -1, -1, 56, 138, -1, -1, -1, -1, -1,
4665 -1, -1, -1, -1, -1, 68, 69, 70, 71, 72,
4666 73, 74, 75, 76, -1, -1, 79, 80, -1, -1,
4667 83, 84, 85, 86, -1, -1, -1, -1, -1, -1,
4668 -1, -1, -1, -1, -1, 98, 99, -1, -1, -1,
4669 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4670 -1, -1, -1, -1, -1, -1, -1, 120, 121, 122,
4671 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
4672 52, 53, -1, -1, 56, 138, -1, -1, -1, -1,
4673 -1, -1, -1, -1, -1, -1, 68, 69, 70, 71,
4674 72, 73, 74, 75, 76, -1, -1, 79, 80, -1,
4675 -1, 83, 84, 85, 86, -1, -1, -1, -1, -1,
4676 -1, -1, -1, -1, -1, -1, 98, 99, -1, -1,
4677 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4678 -1, -1, -1, -1, -1, -1, -1, -1, 120, 121,
4679 122, 123, 124, 125, 126, 127, 128, 129, -1, 131,
4680 132, 52, 53, -1, -1, 56, 138, -1, -1, -1,
4681 -1, -1, -1, -1, -1, -1, -1, 68, 69, 70,
4682 71, 72, 73, 74, 75, 76, -1, -1, 79, 80,
4683 -1, -1, 83, 84, 85, 86, -1, -1, -1, -1,
4684 -1, -1, -1, -1, -1, -1, -1, 98, 99, -1,
4685 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4686 -1, -1, -1, -1, -1, -1, -1, -1, -1, 120,
4687 121, 122, 123, 124, 125, 126, 127, 128, 129, -1,
4688 131, 132, 52, 53, -1, -1, 56, 138, -1, -1,
4689 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69,
4690 70, 71, 72, 73, 74, 75, 76, -1, -1, 79,
4691 80, -1, -1, 83, 84, 85, 86, -1, -1, -1,
4692 -1, -1, -1, -1, -1, -1, -1, -1, 98, 99,
4693 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4694 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4695 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
4696 -1, 131, 132, 52, 53, -1, -1, 56, 138, -1,
4697 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68,
4698 69, 70, 71, 72, 73, 74, 75, 76, -1, -1,
4699 79, 80, -1, -1, 83, 84, 85, 86, -1, -1,
4700 -1, -1, -1, -1, -1, -1, -1, -1, -1, 98,
4701 99, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4702 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4703 -1, 120, 121, 122, 123, 124, 125, 126, 127, 128,
4704 129, -1, 131, 132, 52, 53, -1, -1, 56, 138,
4705 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4706 68, 69, 70, 71, 72, 73, 74, 75, 76, -1,
4707 -1, 79, 80, -1, -1, 83, 84, 85, 86, -1,
4708 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4709 98, 99, -1, -1, -1, -1, -1, -1, -1, -1,
4710 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4711 -1, -1, 120, 121, 122, 123, 124, 125, 126, 127,
4712 128, 129, -1, 131, 132, 52, 53, -1, -1, 56,
4713 138, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4714 -1, 68, 69, 70, 71, 72, 73, 74, 75, 76,
4715 -1, -1, 79, 80, -1, -1, 83, 84, 85, 86,
4716 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4717 -1, 98, 99, -1, -1, -1, -1, -1, -1, -1,
4718 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4719 -1, -1, -1, 120, 121, 122, 123, 124, 125, 126,
4720 127, 128, 129, -1, 131, 132, 52, 53, -1, -1,
4721 56, 138, -1, -1, -1, -1, -1, -1, -1, -1,
4722 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
4723 76, -1, -1, 79, 80, -1, -1, 83, 84, 85,
4724 86, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4725 -1, -1, 98, 99, 70, 71, 72, 73, 74, 75,
4726 76, 77, 78, 79, 80, 81, 82, -1, -1, 85,
4727 86, -1, -1, -1, 120, 121, 122, 123, 124, 125,
4728 126, 127, 128, 129, -1, 131, 132, -1, -1, -1,
4729 -1, -1, 138, -1, -1, -1, -1, -1, -1, -1,
4730 -1, -1, 118, -1, 120, 121, 122, 123, 124, 125,
4731 126, 127, 128, 129, -1, -1, -1, -1, -1, -1,
4732 -1, -1, -1, -1, -1, -1, -1, -1, -1, 145
4737 static const yytype_uint16 yystos[] =
4739 0, 147, 148, 0, 1, 3, 4, 5, 6, 7,
4740 11, 12, 16, 18, 19, 20, 21, 22, 23, 24,
4741 30, 31, 32, 33, 34, 35, 36, 39, 45, 46,
4742 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4743 57, 59, 60, 61, 62, 64, 65, 66, 68, 69,
4744 89, 92, 93, 95, 96, 98, 101, 102, 103, 104,
4745 105, 106, 107, 108, 109, 130, 131, 132, 149, 150,
4746 151, 158, 160, 162, 164, 165, 168, 169, 170, 172,
4747 173, 174, 176, 177, 187, 190, 205, 224, 225, 226,
4748 227, 228, 229, 230, 231, 232, 233, 234, 261, 262,
4749 282, 283, 284, 285, 286, 287, 288, 291, 293, 294,
4750 308, 310, 311, 312, 313, 314, 315, 316, 317, 351,
4751 364, 151, 3, 4, 5, 6, 7, 8, 9, 10,
4752 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
4753 21, 22, 23, 24, 25, 26, 30, 31, 32, 33,
4754 34, 35, 36, 37, 38, 39, 45, 46, 47, 48,
4755 49, 50, 51, 52, 53, 56, 68, 69, 70, 71,
4756 72, 73, 74, 75, 76, 79, 80, 83, 84, 85,
4757 86, 98, 99, 120, 121, 122, 123, 124, 125, 126,
4758 127, 128, 129, 131, 132, 138, 180, 181, 182, 183,
4759 185, 186, 308, 310, 39, 58, 89, 92, 98, 99,
4760 100, 103, 131, 169, 177, 187, 191, 197, 200, 202,
4761 224, 313, 314, 316, 317, 349, 350, 197, 197, 139,
4762 198, 199, 139, 194, 198, 139, 145, 358, 54, 182,
4763 358, 152, 134, 21, 22, 30, 31, 32, 168, 187,
4764 224, 187, 56, 1, 47, 92, 154, 155, 156, 158,
4765 171, 172, 364, 207, 208, 192, 202, 349, 364, 191,
4766 348, 349, 364, 46, 89, 130, 137, 176, 205, 224,
4767 313, 314, 317, 252, 253, 54, 55, 57, 180, 298,
4768 309, 297, 298, 299, 143, 289, 143, 295, 143, 292,
4769 143, 296, 312, 164, 187, 187, 142, 145, 357, 362,
4770 363, 40, 41, 42, 43, 44, 37, 38, 26, 134,
4771 194, 198, 267, 28, 259, 117, 137, 92, 98, 173,
4772 117, 70, 71, 72, 73, 74, 75, 76, 77, 78,
4773 79, 80, 81, 82, 85, 86, 118, 120, 121, 122,
4774 123, 124, 125, 126, 127, 128, 129, 189, 189, 87,
4775 88, 136, 144, 355, 206, 162, 163, 163, 211, 213,
4776 163, 357, 363, 89, 170, 177, 224, 240, 313, 314,
4777 317, 52, 56, 85, 89, 178, 179, 224, 313, 314,
4778 317, 179, 33, 34, 35, 36, 49, 50, 51, 52,
4779 56, 139, 180, 315, 346, 88, 355, 356, 267, 285,
4780 90, 90, 137, 191, 56, 191, 191, 191, 297, 117,
4781 91, 137, 201, 364, 88, 136, 355, 90, 90, 137,
4782 201, 197, 358, 359, 197, 196, 197, 202, 349, 364,
4783 162, 359, 162, 54, 65, 66, 159, 139, 188, 134,
4784 154, 88, 355, 90, 158, 157, 171, 140, 357, 363,
4785 359, 359, 158, 141, 137, 145, 361, 137, 361, 135,
4786 361, 358, 56, 312, 173, 175, 137, 88, 136, 355,
4787 254, 63, 110, 112, 113, 300, 113, 300, 113, 67,
4788 300, 113, 113, 290, 300, 113, 63, 113, 113, 113,
4789 290, 113, 63, 113, 70, 142, 151, 163, 163, 163,
4790 163, 158, 162, 162, 269, 268, 97, 166, 260, 98,
4791 164, 191, 202, 203, 204, 171, 137, 176, 137, 160,
4792 161, 164, 177, 187, 191, 193, 204, 224, 317, 187,
4793 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
4794 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
4795 187, 187, 187, 52, 53, 56, 185, 266, 352, 353,
4796 196, 52, 53, 56, 185, 265, 352, 153, 154, 13,
4797 236, 362, 236, 163, 163, 357, 17, 276, 56, 88,
4798 136, 355, 25, 162, 52, 56, 178, 121, 318, 88,
4799 136, 355, 219, 347, 220, 88, 144, 354, 52, 56,
4800 352, 161, 187, 193, 161, 193, 184, 115, 191, 98,
4801 191, 200, 349, 52, 56, 196, 52, 56, 350, 359,
4802 140, 359, 137, 137, 359, 182, 210, 187, 149, 135,
4803 352, 352, 193, 134, 359, 156, 209, 349, 137, 175,
4804 52, 56, 196, 52, 56, 52, 54, 55, 56, 57,
4805 58, 70, 92, 98, 99, 100, 124, 127, 139, 257,
4806 322, 324, 325, 326, 327, 328, 329, 330, 331, 334,
4807 335, 336, 337, 340, 341, 342, 343, 344, 302, 301,
4808 143, 300, 143, 143, 143, 187, 273, 274, 270, 271,
4809 167, 273, 191, 137, 359, 175, 137, 44, 117, 44,
4810 88, 136, 355, 358, 90, 90, 194, 198, 264, 358,
4811 360, 90, 90, 194, 198, 263, 10, 235, 8, 278,
4812 364, 154, 13, 154, 27, 237, 362, 237, 276, 202,
4813 235, 52, 56, 196, 52, 56, 215, 218, 319, 217,
4814 52, 56, 178, 196, 153, 162, 221, 222, 194, 195,
4815 198, 364, 182, 191, 191, 201, 90, 90, 360, 90,
4816 90, 349, 162, 135, 149, 359, 361, 173, 360, 92,
4817 98, 241, 242, 243, 326, 324, 255, 117, 137, 323,
4818 191, 137, 345, 364, 52, 137, 345, 137, 323, 52,
4819 137, 323, 52, 303, 54, 55, 57, 307, 317, 10,
4820 275, 135, 272, 270, 10, 98, 191, 175, 158, 187,
4821 52, 56, 196, 52, 56, 119, 161, 193, 161, 193,
4822 166, 194, 141, 90, 161, 193, 161, 193, 166, 195,
4823 191, 204, 279, 364, 15, 239, 364, 14, 238, 239,
4824 239, 212, 214, 235, 137, 236, 360, 163, 362, 163,
4825 153, 360, 235, 359, 139, 320, 321, 180, 267, 259,
4826 90, 137, 359, 135, 243, 137, 326, 137, 359, 249,
4827 358, 256, 191, 322, 328, 340, 342, 331, 336, 344,
4828 329, 337, 342, 327, 329, 304, 78, 122, 247, 248,
4829 364, 247, 135, 191, 360, 187, 161, 193, 91, 280,
4830 364, 154, 9, 281, 364, 163, 235, 235, 154, 154,
4831 191, 154, 237, 153, 362, 235, 324, 153, 324, 223,
4832 359, 242, 137, 98, 241, 140, 142, 29, 114, 258,
4833 137, 323, 137, 323, 345, 137, 323, 137, 323, 323,
4834 305, 244, 246, 249, 327, 329, 330, 332, 333, 336,
4835 338, 339, 342, 344, 153, 154, 89, 177, 224, 313,
4836 314, 317, 236, 154, 236, 235, 235, 239, 276, 277,
4837 216, 235, 359, 235, 362, 320, 137, 242, 137, 326,
4838 52, 250, 251, 325, 154, 154, 329, 342, 329, 329,
4839 306, 249, 122, 117, 137, 245, 89, 224, 137, 345,
4840 345, 137, 245, 137, 245, 56, 88, 136, 355, 154,
4841 154, 154, 153, 242, 137, 137, 358, 235, 135, 323,
4842 137, 323, 323, 323, 154, 122, 224, 244, 339, 342,
4843 56, 88, 332, 336, 329, 338, 342, 329, 52, 56,
4844 196, 52, 56, 278, 238, 235, 235, 242, 251, 329,
4845 111, 137, 245, 137, 245, 52, 56, 345, 137, 245,
4846 137, 245, 245, 360, 323, 329, 342, 329, 329, 245,
4847 137, 245, 245, 245, 329, 245
4850 #define yyerrok (yyerrstatus = 0) 4851 #define yyclearin (yychar = YYEMPTY) 4852 #define YYEMPTY (-2) 4855 #define YYACCEPT goto yyacceptlab 4856 #define YYABORT goto yyabortlab 4857 #define YYERROR goto yyerrorlab 4864 #define YYFAIL goto yyerrlab 4866 #define YYRECOVERING() (!!yyerrstatus) 4868 #define YYBACKUP(Token, Value) \ 4870 if (yychar == YYEMPTY && yylen == 1) \ 4874 yytoken = YYTRANSLATE (yychar); \ 4880 yyerror (&yylloc, parser, YY_("syntax error: cannot back up")); \ 4887 #define YYERRCODE 256 4894 #define YYRHSLOC(Rhs, K) ((Rhs)[K]) 4895 #ifndef YYLLOC_DEFAULT 4896 # define YYLLOC_DEFAULT(Current, Rhs, N) \ 4900 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ 4901 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ 4902 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ 4903 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ 4907 (Current).first_line = (Current).last_line = \ 4908 YYRHSLOC (Rhs, 0).last_line; \ 4909 (Current).first_column = (Current).last_column = \ 4910 YYRHSLOC (Rhs, 0).last_column; \ 4920 #ifndef YY_LOCATION_PRINT 4921 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL 4922 # define YY_LOCATION_PRINT(File, Loc) \ 4923 fprintf (File, "%d.%d-%d.%d", \ 4924 (Loc).first_line, (Loc).first_column, \ 4925 (Loc).last_line, (Loc).last_column) 4927 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 4935 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) 4937 # define YYLEX yylex (&yylval, &yylloc, parser) 4945 # define YYFPRINTF fprintf 4948 # define YYDPRINTF(Args) \ 4954 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 4958 YYFPRINTF (parser, "%s ", Title); \ 4959 yy_symbol_print (stderr, \ 4960 Type, Value, Location, parser); \ 4961 YYFPRINTF (parser, "\n"); \ 4971 #if (defined __STDC__ || defined __C99__FUNC__ \ 4972 || defined __cplusplus || defined _MSC_VER) 4977 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, parser)
4980 YYSTYPE const *
const yyvaluep;
4981 YYLTYPE const *
const yylocationp;
4987 YYUSE (yylocationp);
4991 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
5007 #if (defined __STDC__ || defined __C99__FUNC__ \ 5008 || defined __cplusplus || defined _MSC_VER) 5013 yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, parser)
5016 YYSTYPE const *
const yyvaluep;
5017 YYLTYPE const *
const yylocationp;
5022 YYFPRINTF (parser,
"token %s (", yytname[yytype]);
5024 YYFPRINTF (parser,
"nterm %s (", yytname[yytype]);
5028 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, parser);
5037 #if (defined __STDC__ || defined __C99__FUNC__ \ 5038 || defined __cplusplus || defined _MSC_VER) 5040 yy_stack_print (yytype_int16 *bottom, yytype_int16 *
top,
struct parser_params *parser)
5043 yy_stack_print (bottom, top, parser)
5044 yytype_int16 *bottom;
5049 for (; bottom <=
top; ++bottom)
5054 # define YY_STACK_PRINT(Bottom, Top) \ 5057 yy_stack_print ((Bottom), (Top), parser); \ 5065 #if (defined __STDC__ || defined __C99__FUNC__ \ 5066 || defined __cplusplus || defined _MSC_VER) 5071 yy_reduce_print (yyvsp, yylsp, yyrule, parser)
5078 int yynrhs = yyr2[yyrule];
5080 unsigned long int yylno = yyrline[yyrule];
5081 YYFPRINTF (parser,
"Reducing stack by rule %d (line %lu):\n",
5084 for (yyi = 0; yyi < yynrhs; yyi++)
5087 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
5088 &(yyvsp[(yyi + 1) - (yynrhs)])
5089 , &(yylsp[(yyi + 1) - (yynrhs)]) , parser);
5094 # define YY_REDUCE_PRINT(Rule) \ 5097 yy_reduce_print (yyvsp, yylsp, Rule, parser); \ 5106 # define YYDPRINTF(Args) 5107 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) 5108 # define YY_STACK_PRINT(Bottom, Top) 5109 # define YY_REDUCE_PRINT(Rule) 5115 # define YYINITDEPTH 200 5126 # define YYMAXDEPTH 10000 5134 # if defined __GLIBC__ && defined _STRING_H 5135 # define yystrlen strlen 5138 #if (defined __STDC__ || defined __C99__FUNC__ \ 5139 || defined __cplusplus || defined _MSC_VER) 5141 yystrlen (
const char *yystr)
5149 for (yylen = 0; yystr[yylen]; yylen++)
5157 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE 5158 # define yystpcpy stpcpy 5162 #if (defined __STDC__ || defined __C99__FUNC__ \ 5163 || defined __cplusplus || defined _MSC_VER) 5165 yystpcpy (
char *yydest,
const char *yysrc)
5168 yystpcpy (yydest, yysrc)
5174 const char *yys = yysrc;
5176 while ((*yyd++ = *yys++) !=
'\0')
5193 yytnamerr (
char *yyres,
const char *yystr)
5198 char const *yyp = yystr;
5205 goto do_not_strip_quotes;
5209 goto do_not_strip_quotes;
5222 do_not_strip_quotes: ;
5226 return yystrlen (yystr);
5228 return yystpcpy (yyres, yystr) - yyres;
5240 yysyntax_error (
char *yyresult,
int yystate,
int yychar)
5242 int yyn = yypact[yystate];
5249 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
5252 int yysize_overflow = 0;
5253 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
5254 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
5260 YY_(
"syntax error, unexpected %s");
5261 YY_(
"syntax error, unexpected %s, expecting %s");
5262 YY_(
"syntax error, unexpected %s, expecting %s or %s");
5263 YY_(
"syntax error, unexpected %s, expecting %s or %s or %s");
5264 YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s");
5268 static char const yyunexpected[] =
"syntax error, unexpected %s";
5269 static char const yyexpecting[] =
", expecting %s";
5270 static char const yyor[] =
" or %s";
5271 char yyformat[
sizeof yyunexpected
5272 +
sizeof yyexpecting - 1
5273 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
5274 * (
sizeof yyor - 1))];
5275 char const *yyprefix = yyexpecting;
5279 int yyxbegin = yyn < 0 ? -yyn : 0;
5282 int yychecklim =
YYLAST - yyn + 1;
5286 yyarg[0] = yytname[yytype];
5287 yyfmt = yystpcpy (yyformat, yyunexpected);
5289 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
5290 if (yycheck[yyx + yyn] == yyx && yyx !=
YYTERROR)
5292 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
5296 yyformat[
sizeof yyunexpected - 1] =
'\0';
5299 yyarg[yycount++] = yytname[yyx];
5300 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
5301 yysize_overflow |= (yysize1 < yysize);
5303 yyfmt = yystpcpy (yyfmt, yyprefix);
5307 yyf =
YY_(yyformat);
5308 yysize1 = yysize + yystrlen (yyf);
5309 yysize_overflow |= (yysize1 < yysize);
5312 if (yysize_overflow)
5320 char *yyp = yyresult;
5322 while ((*yyp = *yyf) !=
'\0')
5324 if (*yyp ==
'%' && yyf[1] ==
's' && yyi < yycount)
5326 yyp += yytnamerr (yyp, yyarg[yyi++]);
5347 #if (defined __STDC__ || defined __C99__FUNC__ \ 5348 || defined __cplusplus || defined _MSC_VER) 5353 yydestruct (yymsg, yytype, yyvaluep, yylocationp, parser)
5362 YYUSE (yylocationp);
5380 #ifdef YYPARSE_PARAM 5381 #if defined __STDC__ || defined __cplusplus 5382 int yyparse (
void *YYPARSE_PARAM);
5387 #if defined __STDC__ || defined __cplusplus 5403 #ifdef YYPARSE_PARAM 5404 #if (defined __STDC__ || defined __C99__FUNC__ \ 5405 || defined __cplusplus || defined _MSC_VER) 5411 void *YYPARSE_PARAM;
5414 #if (defined __STDC__ || defined __C99__FUNC__ \ 5415 || defined __cplusplus || defined _MSC_VER) 5446 char *yymsg = yymsgbuf;
5447 YYSIZE_T yymsg_alloc =
sizeof yymsgbuf;
5460 yytype_int16 *yyss = yyssa;
5461 yytype_int16 *yyssp;
5475 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) 5488 YYDPRINTF ((parser,
"Starting parse\n"));
5503 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL 5522 if (yyss + yystacksize - 1 <= yyssp)
5525 YYSIZE_T yysize = yyssp - yyss + 1;
5533 yytype_int16 *yyss1 = yyss;
5540 yyoverflow (
YY_(
"memory exhausted"),
5541 &yyss1, yysize *
sizeof (*yyssp),
5542 &yyvs1, yysize *
sizeof (*yyvsp),
5543 &yyls1, yysize *
sizeof (*yylsp),
5550 # ifndef YYSTACK_RELOCATE 5551 goto yyexhaustedlab;
5555 goto yyexhaustedlab;
5561 yytype_int16 *yyss1 = yyss;
5565 goto yyexhaustedlab;
5569 # undef YYSTACK_RELOCATE 5576 yyssp = yyss + yysize - 1;
5577 yyvsp = yyvs + yysize - 1;
5578 yylsp = yyls + yysize - 1;
5580 YYDPRINTF ((parser,
"Stack size increased to %lu\n",
5581 (
unsigned long int) yystacksize));
5583 if (yyss + yystacksize - 1 <= yyssp)
5587 YYDPRINTF ((parser,
"Entering state %d\n", yystate));
5600 yyn = yypact[yystate];
5609 YYDPRINTF ((parser,
"Reading a token: "));
5613 if (yychar <=
YYEOF)
5615 yychar = yytoken =
YYEOF;
5616 YYDPRINTF ((parser,
"Now at end of input.\n"));
5627 if (yyn < 0 ||
YYLAST < yyn || yycheck[yyn] != yytoken)
5650 if (yychar !=
YYEOF)
5663 yyn = yydefact[yystate];
5684 yyval = yyvsp[1-yylen];
5692 #line 1064 "parse.y" 5704 #line 1073 "parse.y" 5711 NODE *node = (yyvsp[(2) - (2)].
node);
5712 while (node->nd_next) {
5713 node = node->nd_next;
5728 #line 1096 "parse.y" 5734 (yyval.
node) = (yyvsp[(1) - (2)].node);
5739 #line 1106 "parse.y" 5742 (yyval.
node) =
new_begin(0, (yylsp[(1) - (1)]).first_column);
5751 #line 1115 "parse.y" 5754 (yyval.
node) = newline_node((yyvsp[(1) - (1)].node));
5762 #line 1123 "parse.y" 5765 (yyval.
node) =
block_append((yyvsp[(1) - (3)].node), newline_node((yyvsp[(3) - (3)].node)), (yylsp[(1) - (3)]).first_column);
5773 #line 1131 "parse.y" 5775 (yyval.
node) = remove_begin((yyvsp[(2) - (2)].node));
5780 #line 1138 "parse.y" 5790 #line 1145 "parse.y" 5794 (yyvsp[(4) - (5)].node), (yylsp[(1) - (5)]).first_column);
5797 (yyval.
node) =
new_begin(0, (yylsp[(1) - (5)]).first_column);
5805 #line 1162 "parse.y" 5808 (yyval.
node) = (yyvsp[(1) - (4)].node);
5809 if ((yyvsp[(2) - (4)].node)) {
5810 (yyval.
node) =
new_rescue((yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].
node), (yyvsp[(3) - (4)].node), (yylsp[(1) - (4)]).first_column);
5812 else if ((yyvsp[(3) - (4)].node)) {
5813 rb_warn0(
"else without rescue is useless");
5816 if ((yyvsp[(4) - (4)].node)) {
5824 (yyval.
node) =
block_append((yyvsp[(4) - (4)].node), nil, (yylsp[(1) - (4)]).first_column);
5827 fixpos((yyval.
node), (yyvsp[(1) - (4)].
node));
5839 #line 1195 "parse.y" 5845 (yyval.
node) = (yyvsp[(1) - (2)].node);
5850 #line 1205 "parse.y" 5853 (yyval.
node) =
new_begin(0, (yylsp[(1) - (1)]).first_column);
5862 #line 1214 "parse.y" 5865 (yyval.
node) = newline_node((yyvsp[(1) - (1)].node));
5873 #line 1222 "parse.y" 5876 (yyval.
node) =
block_append((yyvsp[(1) - (3)].node), newline_node((yyvsp[(3) - (3)].node)), (yylsp[(1) - (3)]).first_column);
5884 #line 1230 "parse.y" 5886 (yyval.
node) = remove_begin((yyvsp[(2) - (2)].node));
5891 #line 1236 "parse.y" 5893 (yyval.
node) = (yyvsp[(1) - (1)].node);
5898 #line 1240 "parse.y" 5900 yyerror0(
"BEGIN is permitted only at toplevel");
5909 #line 1248 "parse.y" 5913 (yyvsp[(4) - (5)].node), (yylsp[(1) - (5)]).first_column);
5916 (yyval.
node) =
new_begin(0, (yylsp[(1) - (5)]).first_column);
5924 #line 1261 "parse.y" 5929 #line 1262 "parse.y" 5941 #line 1271 "parse.y" 5953 #line 1280 "parse.y" 5958 buf[1] = (char)(yyvsp[(3) - (3)].node)->nd_nth;
5968 #line 1292 "parse.y" 5971 yyerror0(
"can't make alias for the number variables");
5972 (yyval.
node) =
new_begin(0, (yylsp[(1) - (3)]).first_column);
5982 #line 1303 "parse.y" 5985 (yyval.
node) = (yyvsp[(2) - (2)].node);
5993 #line 1311 "parse.y" 5996 (yyval.
node) =
new_if((yyvsp[(3) - (3)].node), remove_begin((yyvsp[(1) - (3)].node)), 0, (yylsp[(1) - (3)]).first_column);
5997 fixpos((yyval.
node), (yyvsp[(3) - (3)].
node));
6005 #line 1320 "parse.y" 6008 (yyval.
node) =
new_unless((yyvsp[(3) - (3)].node), remove_begin((yyvsp[(1) - (3)].node)), 0, (yylsp[(1) - (3)]).first_column);
6009 fixpos((yyval.
node), (yyvsp[(3) - (3)].
node));
6017 #line 1329 "parse.y" 6020 if ((yyvsp[(1) - (3)].node) &&
nd_type((yyvsp[(1) - (3)].node)) ==
NODE_BEGIN) {
6024 (yyval.
node) =
NEW_WHILE(
cond((yyvsp[(3) - (3)].node), (yylsp[(1) - (3)]).first_column), (yyvsp[(1) - (3)].
node), 1);
6034 #line 1343 "parse.y" 6037 if ((yyvsp[(1) - (3)].node) &&
nd_type((yyvsp[(1) - (3)].node)) ==
NODE_BEGIN) {
6041 (yyval.
node) =
NEW_UNTIL(
cond((yyvsp[(3) - (3)].node), (yylsp[(1) - (3)]).first_column), (yyvsp[(1) - (3)].
node), 1);
6051 #line 1357 "parse.y" 6054 NODE *resq =
new_resbody(0, remove_begin((yyvsp[(3) - (3)].node)), 0, (yylsp[(1) - (3)]).first_column);
6055 (yyval.
node) =
new_rescue(remove_begin((yyvsp[(1) - (3)].node)), resq, 0, (yylsp[(1) - (3)]).first_column);
6064 #line 1367 "parse.y" 6067 rb_warn0(
"END in method; use at_exit");
6072 NODE_SCOPE, 0 , (yyvsp[(3) - (4)].node) , 0 );
6084 #line 1385 "parse.y" 6088 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
6089 (yyval.
node) = (yyvsp[(1) - (3)].node);
6097 #line 1395 "parse.y" 6100 (yyval.
node) =
node_assign((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
6105 #line 1400 "parse.y" 6108 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
6109 (yyval.
node) = (yyvsp[(1) - (3)].node);
6117 #line 1412 "parse.y" 6120 (yyval.
node) =
node_assign((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
6125 #line 1417 "parse.y" 6128 (yyval.
node) =
new_op_assign((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)]).first_column);
6133 #line 1422 "parse.y" 6139 if (!(yyvsp[(3) - (6)].node)) (yyvsp[(3) - (6)].
node) =
new_zarray((yylsp[(1) - (6)]).first_column);
6140 args =
arg_concat((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(1) - (6)]).first_column);
6141 if ((yyvsp[(5) - (6)].
id) ==
tOROP) {
6142 (yyvsp[(5) - (6)].
id) = 0;
6144 else if ((yyvsp[(5) - (6)].
id) ==
tANDOP) {
6145 (yyvsp[(5) - (6)].
id) = 1;
6148 fixpos((yyval.
node), (yyvsp[(1) - (6)].
node));
6158 #line 1444 "parse.y" 6161 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), (yyvsp[(2) - (5)].
id), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].node), (yylsp[(1) - (5)]).first_column);
6166 #line 1449 "parse.y" 6169 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), (yyvsp[(2) - (5)].
id), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].node), (yylsp[(1) - (5)]).first_column);
6174 #line 1454 "parse.y" 6176 (yyval.
node) =
const_path_field((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yylsp[(1) - (5)]).first_column);
6182 #line 1459 "parse.y" 6190 #line 1464 "parse.y" 6192 (yyvsp[(1) - (3)].
node) =
var_field((yyvsp[(1) - (3)].node));
6193 (yyval.
node) =
backref_assign_error((yyvsp[(1) - (3)].node),
node_assign((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)]).first_column), (yylsp[(1) - (3)]).first_column);
6198 #line 1471 "parse.y" 6202 (yyval.
node) = (yyvsp[(1) - (1)].node);
6209 #line 1479 "parse.y" 6213 (yyval.
node) =
new_rescue((yyvsp[(1) - (3)].node),
new_resbody(0, remove_begin((yyvsp[(3) - (3)].node)), 0, (yylsp[(1) - (3)]).first_column), 0, (yylsp[(1) - (3)]).first_column);
6221 #line 1492 "parse.y" 6223 (yyval.
node) =
logop(idAND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
6228 #line 1496 "parse.y" 6230 (yyval.
node) =
logop(idOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
6235 #line 1500 "parse.y" 6242 #line 1504 "parse.y" 6244 (yyval.
node) =
call_uni_op(
method_cond((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)]).first_column),
'!', (yylsp[(1) - (2)]).first_column);
6249 #line 1511 "parse.y" 6253 (yyval.
node) = (yyvsp[(1) - (1)].node);
6262 #line 1528 "parse.y" 6264 (yyval.
node) =
new_qcall((yyvsp[(2) - (4)].
id), (yyvsp[(1) - (4)].
node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].
node), (yylsp[(1) - (4)]).first_column);
6269 #line 1534 "parse.y" 6279 #line 1541 "parse.y" 6281 (yyval.
node) = (yyvsp[(3) - (4)].node);
6289 #line 1550 "parse.y" 6292 (yyval.
node) =
new_fcall((yyvsp[(1) - (1)].
id), 0, (yylsp[(1) - (1)]).first_column);
6300 #line 1560 "parse.y" 6303 (yyval.
node) = (yyvsp[(1) - (2)].node);
6312 #line 1569 "parse.y" 6317 fixpos((yyval.
node), (yyvsp[(1) - (3)].
node));
6322 #line 1576 "parse.y" 6324 (yyval.
node) =
new_command_qcall((yyvsp[(2) - (4)].
id), (yyvsp[(1) - (4)].
node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].
node), (yylsp[(1) - (4)]).first_column);
6325 fixpos((yyval.
node), (yyvsp[(1) - (4)].
node));
6330 #line 1581 "parse.y" 6333 (yyval.
node) =
new_command_qcall((yyvsp[(2) - (5)].
id), (yyvsp[(1) - (5)].
node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
node), (yylsp[(1) - (5)]).first_column);
6335 fixpos((yyval.
node), (yyvsp[(1) - (5)].
node));
6340 #line 1588 "parse.y" 6343 fixpos((yyval.
node), (yyvsp[(1) - (4)].
node));
6348 #line 1593 "parse.y" 6353 fixpos((yyval.
node), (yyvsp[(1) - (5)].
node));
6358 #line 1600 "parse.y" 6362 fixpos((yyval.
node), (yyvsp[(2) - (2)].
node));
6371 #line 1610 "parse.y" 6374 (yyval.
node) =
new_yield((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)]).first_column);
6375 fixpos((yyval.
node), (yyvsp[(2) - (2)].
node));
6383 #line 1619 "parse.y" 6395 #line 1628 "parse.y" 6407 #line 1637 "parse.y" 6419 #line 1649 "parse.y" 6422 (yyval.
node) = (yyvsp[(2) - (3)].node);
6430 #line 1660 "parse.y" 6433 (yyval.
node) =
new_masgn(
new_list((yyvsp[(2) - (3)].node), (yylsp[(1) - (3)]).first_column), 0, (yylsp[(1) - (3)]).first_column);
6441 #line 1670 "parse.y" 6444 (yyval.
node) =
new_masgn((yyvsp[(1) - (1)].node), 0, (yylsp[(1) - (1)]).first_column);
6452 #line 1678 "parse.y" 6455 (yyval.
node) =
new_masgn(
list_append((yyvsp[(1) - (2)].node),(yyvsp[(2) - (2)].
node),(yylsp[(1) - (2)]).first_column), 0, (yylsp[(1) - (2)]).first_column);
6463 #line 1686 "parse.y" 6466 (yyval.
node) =
new_masgn((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
6474 #line 1694 "parse.y" 6477 (yyval.
node) =
new_masgn((yyvsp[(1) - (5)].node),
new_postarg((yyvsp[(3) - (5)].node),(yyvsp[(5) - (5)].node),(yylsp[(1) - (5)]).first_column), (yylsp[(1) - (5)]).first_column);
6486 #line 1703 "parse.y" 6489 (yyval.
node) =
new_masgn((yyvsp[(1) - (2)].node), (
NODE *)-1, (yylsp[(1) - (2)]).first_column);
6497 #line 1711 "parse.y" 6500 (yyval.
node) =
new_masgn((yyvsp[(1) - (4)].node),
new_postarg((
NODE *)-1, (yyvsp[(4) - (4)].node), (yylsp[(1) - (4)]).first_column), (yylsp[(1) - (4)]).first_column);
6509 #line 1720 "parse.y" 6512 (yyval.
node) =
new_masgn(0, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)]).first_column);
6520 #line 1728 "parse.y" 6523 (yyval.
node) =
new_masgn(0,
new_postarg((yyvsp[(2) - (4)].node),(yyvsp[(4) - (4)].
node),(yylsp[(1) - (4)]).first_column), (yylsp[(1) - (4)]).first_column);
6532 #line 1737 "parse.y" 6543 #line 1745 "parse.y" 6555 #line 1757 "parse.y" 6558 (yyval.
node) = (yyvsp[(2) - (3)].node);
6566 #line 1767 "parse.y" 6569 (yyval.
node) =
new_list((yyvsp[(1) - (2)].node), (yylsp[(1) - (2)]).first_column);
6577 #line 1775 "parse.y" 6580 (yyval.
node) =
list_append((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
node), (yylsp[(1) - (3)]).first_column);
6588 #line 1785 "parse.y" 6591 (yyval.
node) =
new_list((yyvsp[(1) - (1)].node), (yylsp[(1) - (1)]).first_column);
6599 #line 1793 "parse.y" 6602 (yyval.
node) =
list_append((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
6610 #line 1803 "parse.y" 6617 #line 1807 "parse.y" 6624 #line 1811 "parse.y" 6627 (yyval.
node) =
aryset((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
node), (yylsp[(1) - (4)]).first_column);
6635 #line 1819 "parse.y" 6638 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].
id), (yylsp[(1) - (3)]).first_column);
6646 #line 1827 "parse.y" 6649 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node),
idCOLON2, (yyvsp[(3) - (3)].
id), (yylsp[(1) - (3)]).first_column);
6657 #line 1835 "parse.y" 6660 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].
id), (yylsp[(1) - (3)]).first_column);
6668 #line 1843 "parse.y" 6670 (yyval.
node) =
const_decl(
const_path_field((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id), (yylsp[(1) - (3)]).first_column), (yylsp[(1) - (3)]).first_column);
6675 #line 1847 "parse.y" 6682 #line 1851 "parse.y" 6684 (yyvsp[(1) - (1)].
node) =
var_field((yyvsp[(1) - (1)].node));
6690 #line 1858 "parse.y" 6694 if (!(yyval.
node)) (yyval.
node) =
new_begin(0, (yylsp[(1) - (1)]).first_column);
6701 #line 1866 "parse.y" 6705 if (!(yyval.
node)) (yyval.
node) =
new_begin(0, (yylsp[(1) - (1)]).first_column);
6712 #line 1874 "parse.y" 6715 (yyval.
node) =
aryset((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
node), (yylsp[(1) - (4)]).first_column);
6723 #line 1882 "parse.y" 6726 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].
id), (yylsp[(1) - (3)]).first_column);
6734 #line 1890 "parse.y" 6737 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node),
idCOLON2, (yyvsp[(3) - (3)].
id), (yylsp[(1) - (3)]).first_column);
6745 #line 1898 "parse.y" 6748 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].
id), (yylsp[(1) - (3)]).first_column);
6756 #line 1906 "parse.y" 6758 (yyval.
node) =
const_decl(
const_path_field((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id), (yylsp[(1) - (3)]).first_column), (yylsp[(1) - (3)]).first_column);
6763 #line 1910 "parse.y" 6770 #line 1914 "parse.y" 6772 (yyvsp[(1) - (1)].
node) =
var_field((yyvsp[(1) - (1)].node));
6778 #line 1921 "parse.y" 6781 yyerror0(
"class/module name must be CONSTANT");
6790 #line 1933 "parse.y" 6801 #line 1941 "parse.y" 6813 #line 1950 "parse.y" 6825 #line 1964 "parse.y" 6828 (yyval.
id) = (yyvsp[(1) - (1)].
id);
6833 #line 1969 "parse.y" 6836 (yyval.
id) = (yyvsp[(1) - (1)].
id);
6841 #line 1980 "parse.y" 6844 (yyval.
node) =
new_lit(
ID2SYM((yyvsp[(1) - (1)].
id)), (yylsp[(1) - (1)]).first_column);
6852 #line 1991 "parse.y" 6855 (yyval.
node) =
new_undef((yyvsp[(1) - (1)].node), (yylsp[(1) - (1)]).first_column);
6863 #line 1998 "parse.y" 6868 #line 1999 "parse.y" 6871 NODE *undef =
new_undef((yyvsp[(4) - (4)].node), (yylsp[(1) - (4)]).first_column);
6872 (yyval.
node) =
block_append((yyvsp[(1) - (4)].node), undef, (yylsp[(1) - (4)]).first_column);
6880 #line 2009 "parse.y" 6885 #line 2010 "parse.y" 6890 #line 2011 "parse.y" 6895 #line 2012 "parse.y" 6900 #line 2013 "parse.y" 6905 #line 2014 "parse.y" 6910 #line 2015 "parse.y" 6915 #line 2016 "parse.y" 6920 #line 2017 "parse.y" 6925 #line 2018 "parse.y" 6930 #line 2019 "parse.y" 6935 #line 2020 "parse.y" 6940 #line 2021 "parse.y" 6945 #line 2022 "parse.y" 6950 #line 2023 "parse.y" 6955 #line 2024 "parse.y" 6960 #line 2025 "parse.y" 6965 #line 2026 "parse.y" 6970 #line 2027 "parse.y" 6975 #line 2028 "parse.y" 6980 #line 2029 "parse.y" 6985 #line 2030 "parse.y" 6990 #line 2031 "parse.y" 6995 #line 2032 "parse.y" 7000 #line 2033 "parse.y" 7005 #line 2034 "parse.y" 7010 #line 2035 "parse.y" 7015 #line 2036 "parse.y" 7020 #line 2037 "parse.y" 7025 #line 2038 "parse.y" 7030 #line 2056 "parse.y" 7032 (yyval.
node) =
node_assign((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
7037 #line 2060 "parse.y" 7039 (yyval.
node) =
new_op_assign((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)]).first_column);
7044 #line 2064 "parse.y" 7050 if (!(yyvsp[(3) - (6)].node)) (yyvsp[(3) - (6)].
node) =
new_zarray((yylsp[(1) - (6)]).first_column);
7052 args =
NEW_ARGSCAT((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
7056 args =
arg_concat((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(1) - (6)]).first_column);
7058 if ((yyvsp[(5) - (6)].
id) ==
tOROP) {
7059 (yyvsp[(5) - (6)].
id) = 0;
7061 else if ((yyvsp[(5) - (6)].
id) ==
tANDOP) {
7062 (yyvsp[(5) - (6)].
id) = 1;
7065 fixpos((yyval.
node), (yyvsp[(1) - (6)].
node));
7075 #line 2092 "parse.y" 7078 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), (yyvsp[(2) - (5)].
id), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].node), (yylsp[(1) - (5)]).first_column);
7083 #line 2097 "parse.y" 7086 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), (yyvsp[(2) - (5)].
id), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].node), (yylsp[(1) - (5)]).first_column);
7091 #line 2102 "parse.y" 7099 #line 2107 "parse.y" 7101 (yyval.
node) =
const_path_field((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yylsp[(1) - (5)]).first_column);
7107 #line 2112 "parse.y" 7115 #line 2117 "parse.y" 7117 (yyvsp[(1) - (3)].
node) =
var_field((yyvsp[(1) - (3)].node));
7118 (yyval.
node) =
backref_assign_error((yyvsp[(1) - (3)].node),
new_op_assign((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)]).first_column), (yylsp[(1) - (3)]).first_column);
7123 #line 2122 "parse.y" 7137 #line 2133 "parse.y" 7151 #line 2144 "parse.y" 7153 (yyval.
node) =
call_bin_op((yyvsp[(1) - (3)].node),
'+', (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
7158 #line 2148 "parse.y" 7160 (yyval.
node) =
call_bin_op((yyvsp[(1) - (3)].node),
'-', (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
7165 #line 2152 "parse.y" 7167 (yyval.
node) =
call_bin_op((yyvsp[(1) - (3)].node),
'*', (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
7172 #line 2156 "parse.y" 7174 (yyval.
node) =
call_bin_op((yyvsp[(1) - (3)].node),
'/', (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
7179 #line 2160 "parse.y" 7181 (yyval.
node) =
call_bin_op((yyvsp[(1) - (3)].node),
'%', (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
7186 #line 2164 "parse.y" 7188 (yyval.
node) =
call_bin_op((yyvsp[(1) - (3)].node),
idPow, (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
7193 #line 2168 "parse.y" 7200 #line 2172 "parse.y" 7207 #line 2176 "parse.y" 7214 #line 2180 "parse.y" 7216 (yyval.
node) =
call_bin_op((yyvsp[(1) - (3)].node),
'|', (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
7221 #line 2184 "parse.y" 7223 (yyval.
node) =
call_bin_op((yyvsp[(1) - (3)].node),
'^', (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
7228 #line 2188 "parse.y" 7230 (yyval.
node) =
call_bin_op((yyvsp[(1) - (3)].node),
'&', (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
7235 #line 2192 "parse.y" 7237 (yyval.
node) =
call_bin_op((yyvsp[(1) - (3)].node),
idCmp, (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
7242 #line 2197 "parse.y" 7244 (yyval.
node) =
call_bin_op((yyvsp[(1) - (3)].node),
idEq, (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
7249 #line 2201 "parse.y" 7251 (yyval.
node) =
call_bin_op((yyvsp[(1) - (3)].node),
idEqq, (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
7256 #line 2205 "parse.y" 7258 (yyval.
node) =
call_bin_op((yyvsp[(1) - (3)].node),
idNeq, (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
7263 #line 2209 "parse.y" 7265 (yyval.
node) =
match_op((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
7270 #line 2213 "parse.y" 7277 #line 2217 "parse.y" 7279 (yyval.
node) =
call_uni_op(
method_cond((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)]).first_column),
'!', (yylsp[(1) - (2)]).first_column);
7284 #line 2221 "parse.y" 7286 (yyval.
node) =
call_uni_op((yyvsp[(2) - (2)].node),
'~', (yylsp[(1) - (2)]).first_column);
7291 #line 2225 "parse.y" 7298 #line 2229 "parse.y" 7305 #line 2233 "parse.y" 7307 (yyval.
node) =
logop(
idANDOP, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
7312 #line 2237 "parse.y" 7314 (yyval.
node) =
logop(
idOROP, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
7319 #line 2240 "parse.y" 7324 #line 2241 "parse.y" 7327 (yyval.
node) =
new_defined((yyvsp[(4) - (4)].node), (yylsp[(1) - (4)]).first_column);
7332 #line 2246 "parse.y" 7336 (yyval.
node) =
new_if((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node), (yyvsp[(6) - (6)].node), (yylsp[(1) - (6)]).first_column);
7337 fixpos((yyval.
node), (yyvsp[(1) - (6)].
node));
7345 #line 2256 "parse.y" 7347 (yyval.
node) = (yyvsp[(1) - (1)].node);
7352 #line 2261 "parse.y" 7353 {(yyval.
id) =
'>';;}
7357 #line 2262 "parse.y" 7358 {(yyval.
id) =
'<';;}
7362 #line 2263 "parse.y" 7367 #line 2264 "parse.y" 7372 #line 2268 "parse.y" 7374 (yyval.
node) =
call_bin_op((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)]).first_column);
7379 #line 2272 "parse.y" 7382 (yyval.
node) =
call_bin_op((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)]).first_column);
7387 #line 2279 "parse.y" 7391 (yyval.
node) = (yyvsp[(1) - (1)].node);
7400 #line 2292 "parse.y" 7402 (yyval.
node) = (yyvsp[(1) - (2)].node);
7407 #line 2296 "parse.y" 7410 (yyval.
node) = (yyvsp[(3) - (4)].node) ?
arg_append((yyvsp[(1) - (4)].node),
new_hash((yyvsp[(3) - (4)].node), (yylsp[(1) - (4)]).first_column), (yylsp[(1) - (4)]).first_column) : (yyvsp[(1) - (4)].
node);
7418 #line 2304 "parse.y" 7421 (yyval.
node) = (yyvsp[(1) - (2)].node) ?
new_list(
new_hash((yyvsp[(1) - (2)].node), (yylsp[(1) - (2)]).first_column), (yylsp[(1) - (2)]).first_column) : 0;
7429 #line 2314 "parse.y" 7433 (yyval.
node) = (yyvsp[(1) - (1)].node);
7440 #line 2322 "parse.y" 7444 (yyval.
node) =
new_rescue((yyvsp[(1) - (3)].node),
new_resbody(0, remove_begin((yyvsp[(3) - (3)].node)), 0, (yylsp[(1) - (3)]).first_column), 0, (yylsp[(1) - (3)]).first_column);
7452 #line 2333 "parse.y" 7455 (yyval.
node) = (yyvsp[(2) - (3)].node);
7463 #line 2349 "parse.y" 7465 (yyval.
node) = (yyvsp[(1) - (2)].node);
7470 #line 2353 "parse.y" 7473 (yyval.
node) = (yyvsp[(3) - (4)].node) ?
arg_append((yyvsp[(1) - (4)].node),
new_hash((yyvsp[(3) - (4)].node), (yylsp[(1) - (4)]).first_column), (yylsp[(1) - (4)]).first_column) : (yyvsp[(1) - (4)].
node);
7481 #line 2361 "parse.y" 7484 (yyval.
node) = (yyvsp[(1) - (2)].node) ?
new_list(
new_hash((yyvsp[(1) - (2)].node), (yylsp[(1) - (2)]).first_column), (yylsp[(1) - (2)]).first_column) : 0;
7492 #line 2371 "parse.y" 7496 (yyval.
node) =
new_list((yyvsp[(1) - (1)].node), (yylsp[(1) - (1)]).first_column);
7504 #line 2380 "parse.y" 7507 (yyval.
node) = arg_blk_pass((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].
node));
7515 #line 2388 "parse.y" 7518 (yyval.
node) = (yyvsp[(1) - (2)].node) ?
new_list(
new_hash((yyvsp[(1) - (2)].node), (yylsp[(1) - (2)]).first_column), (yylsp[(1) - (2)]).first_column) : 0;
7519 (yyval.
node) = arg_blk_pass((yyval.
node), (yyvsp[(2) - (2)].
node));
7528 #line 2398 "parse.y" 7531 (yyval.
node) = (yyvsp[(3) - (4)].node) ?
arg_append((yyvsp[(1) - (4)].node),
new_hash((yyvsp[(3) - (4)].node), (yylsp[(1) - (4)]).first_column), (yylsp[(1) - (4)]).first_column) : (yyvsp[(1) - (4)].
node);
7532 (yyval.
node) = arg_blk_pass((yyval.
node), (yyvsp[(4) - (4)].
node));
7540 #line 2415 "parse.y" 7548 #line 2420 "parse.y" 7552 (yyval.
node) = (yyvsp[(2) - (2)].node);
7557 #line 2428 "parse.y" 7569 #line 2439 "parse.y" 7571 (yyval.
node) = (yyvsp[(2) - (2)].node);
7576 #line 2443 "parse.y" 7583 #line 2449 "parse.y" 7586 (yyval.
node) =
new_list((yyvsp[(1) - (1)].node), (yylsp[(1) - (1)]).first_column);
7594 #line 2457 "parse.y" 7606 #line 2466 "parse.y" 7610 if ((n1 = splat_array((yyvsp[(1) - (3)].node))) != 0) {
7611 (yyval.
node) =
list_append(n1, (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)]).first_column);
7614 (yyval.
node) =
arg_append((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
7623 #line 2480 "parse.y" 7627 if ((
nd_type((yyvsp[(4) - (4)].node)) ==
NODE_ARRAY) && (n1 = splat_array((yyvsp[(1) - (4)].node))) != 0) {
7628 (yyval.
node) = list_concat(n1, (yyvsp[(4) - (4)].node));
7631 (yyval.
node) =
arg_concat((yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].
node), (yylsp[(1) - (4)]).first_column);
7640 #line 2500 "parse.y" 7644 if ((n1 = splat_array((yyvsp[(1) - (3)].node))) != 0) {
7645 (yyval.
node) =
list_append(n1, (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)]).first_column);
7648 (yyval.
node) =
arg_append((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
7657 #line 2514 "parse.y" 7662 (n1 = splat_array((yyvsp[(1) - (4)].node))) != 0) {
7663 (yyval.
node) = list_concat(n1, (yyvsp[(4) - (4)].node));
7666 (yyval.
node) =
arg_concat((yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].
node), (yylsp[(1) - (4)]).first_column);
7675 #line 2529 "parse.y" 7687 #line 2550 "parse.y" 7690 (yyval.
node) =
new_fcall((yyvsp[(1) - (1)].
id), 0, (yylsp[(1) - (1)]).first_column);
7698 #line 2558 "parse.y" 7710 #line 2568 "parse.y" 7714 if ((yyvsp[(3) - (4)].node) ==
NULL) {
7719 set_line_body((yyvsp[(3) - (4)].node), (yyvsp[(2) - (4)].num));
7720 (yyval.
node) =
new_begin((yyvsp[(3) - (4)].node), (yylsp[(1) - (4)]).first_column);
7730 #line 2584 "parse.y" 7735 #line 2585 "parse.y" 7738 (yyval.
node) =
new_begin(0, (yylsp[(1) - (3)]).first_column);
7746 #line 2593 "parse.y" 7754 #line 2597 "parse.y" 7759 #line 2598 "parse.y" 7763 (yyval.
node) = (yyvsp[(3) - (5)].node);
7771 #line 2607 "parse.y" 7774 (yyval.
node) = (yyvsp[(2) - (3)].node);
7782 #line 2615 "parse.y" 7794 #line 2624 "parse.y" 7806 #line 2633 "parse.y" 7809 if ((yyvsp[(2) - (3)].node) == 0) {
7813 (yyval.
node) = (yyvsp[(2) - (3)].node);
7822 #line 2646 "parse.y" 7825 (yyval.
node) =
new_hash((yyvsp[(2) - (3)].node), (yylsp[(1) - (3)]).first_column);
7834 #line 2655 "parse.y" 7846 #line 2664 "parse.y" 7849 (yyval.
node) =
new_yield((yyvsp[(3) - (4)].node), (yylsp[(1) - (4)]).first_column);
7857 #line 2672 "parse.y" 7869 #line 2681 "parse.y" 7881 #line 2689 "parse.y" 7886 #line 2690 "parse.y" 7889 (yyval.
node) =
new_defined((yyvsp[(5) - (6)].node), (yylsp[(1) - (6)]).first_column);
7894 #line 2695 "parse.y" 7901 #line 2699 "parse.y" 7908 #line 2703 "parse.y" 7911 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
7912 (yyval.
node) = (yyvsp[(2) - (2)].node);
7921 #line 2714 "parse.y" 7925 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
7926 (yyval.
node) = (yyvsp[(2) - (2)].node);
7934 #line 2724 "parse.y" 7936 (yyval.
node) = (yyvsp[(2) - (2)].node);
7941 #line 2731 "parse.y" 7944 (yyval.
node) =
new_if((yyvsp[(2) - (6)].node), (yyvsp[(4) - (6)].
node), (yyvsp[(5) - (6)].node), (yylsp[(1) - (6)]).first_column);
7945 fixpos((yyval.
node), (yyvsp[(2) - (6)].
node));
7953 #line 2743 "parse.y" 7956 (yyval.
node) =
new_unless((yyvsp[(2) - (6)].node), (yyvsp[(4) - (6)].
node), (yyvsp[(5) - (6)].node), (yylsp[(1) - (6)]).first_column);
7957 fixpos((yyval.
node), (yyvsp[(2) - (6)].
node));
7965 #line 2751 "parse.y" 7970 #line 2751 "parse.y" 7975 #line 2754 "parse.y" 7978 (yyval.
node) =
NEW_WHILE(
cond((yyvsp[(3) - (7)].node), (yylsp[(1) - (7)]).first_column), (yyvsp[(6) - (7)].
node), 1);
7979 fixpos((yyval.
node), (yyvsp[(3) - (7)].
node));
7988 #line 2763 "parse.y" 7993 #line 2763 "parse.y" 7998 #line 2766 "parse.y" 8001 (yyval.
node) =
NEW_UNTIL(
cond((yyvsp[(3) - (7)].node), (yylsp[(1) - (7)]).first_column), (yyvsp[(6) - (7)].
node), 1);
8002 fixpos((yyval.
node), (yyvsp[(3) - (7)].
node));
8011 #line 2778 "parse.y" 8015 fixpos((yyval.
node), (yyvsp[(2) - (5)].
node));
8024 #line 2788 "parse.y" 8028 nd_set_line((yyvsp[(3) - (4)].node), (yyvsp[(1) - (4)].num));
8037 #line 2798 "parse.y" 8042 #line 2800 "parse.y" 8047 #line 2803 "parse.y" 8064 switch (
nd_type((yyvsp[(2) - (9)].node))) {
8066 m->nd_next =
node_assign((yyvsp[(2) - (9)].node),
new_for(
new_dvar(
id, (yylsp[(1) - (9)]).first_column), 0, 0, (yylsp[(1) - (9)]).first_column), (yylsp[(1) - (9)]).first_column);
8074 m->nd_next = (yyvsp[(2) - (9)].
node);
8079 NODE *masgn =
new_masgn(
new_list((yyvsp[(2) - (9)].node), (yylsp[(1) - (9)]).first_column), 0, (yylsp[(1) - (9)]).first_column);
8080 m->nd_next =
node_assign(masgn,
new_dvar(
id, (yylsp[(1) - (9)]).first_column), (yylsp[(1) - (9)]).first_column);
8087 tbl[0] = 1; tbl[1] =
id;
8088 (yyval.
node) =
new_for(0, (yyvsp[(5) - (9)].node), scope, (yylsp[(1) - (9)]).first_column);
8089 fixpos((yyval.
node), (yyvsp[(2) - (9)].
node));
8097 #line 2850 "parse.y" 8100 yyerror0(
"class definition in method body");
8110 #line 2861 "parse.y" 8113 (yyval.
node) =
NEW_CLASS((yyvsp[(2) - (6)].node), (yyvsp[(5) - (6)].
node), (yyvsp[(3) - (6)].node));
8115 set_line_body((yyvsp[(5) - (6)].node), (yyvsp[(4) - (6)].num));
8126 #line 2874 "parse.y" 8136 #line 2883 "parse.y" 8141 set_line_body((yyvsp[(6) - (7)].node),
nd_line((yyvsp[(3) - (7)].node)));
8142 fixpos((yyval.
node), (yyvsp[(3) - (7)].
node));
8148 in_def = ((yyvsp[(4) - (7)].
num) >> 1) & 1;
8154 #line 2898 "parse.y" 8157 yyerror0(
"module definition in method body");
8167 #line 2909 "parse.y" 8172 set_line_body((yyvsp[(4) - (5)].node), (yyvsp[(3) - (5)].num));
8183 #line 2922 "parse.y" 8192 #line 2927 "parse.y" 8200 #line 2934 "parse.y" 8203 NODE *body = remove_begin((yyvsp[(6) - (7)].node));
8207 set_line_body(body, (yyvsp[(1) - (7)].num));
8220 #line 2950 "parse.y" 8225 #line 2951 "parse.y" 8237 #line 2962 "parse.y" 8240 NODE *body = remove_begin((yyvsp[(8) - (9)].node));
8242 (yyval.
node) =
NEW_DEFS((yyvsp[(2) - (9)].node), (yyvsp[(5) - (9)].
id), (yyvsp[(7) - (9)].node), body);
8244 set_line_body(body, (yyvsp[(1) - (9)].num));
8257 #line 2979 "parse.y" 8269 #line 2988 "parse.y" 8281 #line 2997 "parse.y" 8293 #line 3006 "parse.y" 8305 #line 3017 "parse.y" 8309 (yyval.
node) = (yyvsp[(1) - (1)].node);
8318 #line 3029 "parse.y" 8325 #line 3035 "parse.y" 8332 #line 3041 "parse.y" 8339 #line 3047 "parse.y" 8346 #line 3053 "parse.y" 8353 #line 3059 "parse.y" 8364 #line 3069 "parse.y" 8371 #line 3075 "parse.y" 8378 #line 3081 "parse.y" 8385 #line 3087 "parse.y" 8396 #line 3097 "parse.y" 8403 #line 3127 "parse.y" 8406 (yyval.
node) =
new_if((yyvsp[(2) - (5)].node), (yyvsp[(4) - (5)].
node), (yyvsp[(5) - (5)].node), (yylsp[(1) - (5)]).first_column);
8407 fixpos((yyval.
node), (yyvsp[(2) - (5)].
node));
8415 #line 3139 "parse.y" 8418 (yyval.
node) = (yyvsp[(2) - (2)].node);
8426 #line 3153 "parse.y" 8428 (yyval.
node) =
assignable((yyvsp[(1) - (1)].
id), 0, (yylsp[(1) - (1)]).first_column);
8436 #line 3160 "parse.y" 8439 (yyval.
node) = (yyvsp[(2) - (3)].node);
8447 #line 3170 "parse.y" 8450 (yyval.
node) =
new_list((yyvsp[(1) - (1)].node), (yylsp[(1) - (1)]).first_column);
8458 #line 3178 "parse.y" 8461 (yyval.
node) =
list_append((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
8469 #line 3188 "parse.y" 8472 (yyval.
node) =
new_masgn((yyvsp[(1) - (1)].node), 0, (yylsp[(1) - (1)]).first_column);
8480 #line 3196 "parse.y" 8482 (yyval.
node) =
assignable((yyvsp[(4) - (4)].
id), 0, (yylsp[(1) - (4)]).first_column);
8484 (yyval.
node) =
new_masgn((yyvsp[(1) - (4)].node), (yyval.
node), (yylsp[(1) - (4)]).first_column);
8492 #line 3205 "parse.y" 8494 (yyval.
node) =
assignable((yyvsp[(4) - (6)].
id), 0, (yylsp[(1) - (6)]).first_column);
8496 (yyval.
node) =
new_masgn((yyvsp[(1) - (6)].node),
new_postarg((yyval.
node), (yyvsp[(6) - (6)].
node), (yylsp[(1) - (6)]).first_column), (yylsp[(1) - (6)]).first_column);
8505 #line 3215 "parse.y" 8508 (yyval.
node) =
new_masgn((yyvsp[(1) - (3)].node), (
NODE *)-1, (yylsp[(1) - (3)]).first_column);
8516 #line 3223 "parse.y" 8519 (yyval.
node) =
new_masgn((yyvsp[(1) - (5)].node),
new_postarg((
NODE *)-1, (yyvsp[(5) - (5)].node), (yylsp[(1) - (5)]).first_column), (yylsp[(1) - (5)]).first_column);
8528 #line 3232 "parse.y" 8530 (yyval.
node) =
assignable((yyvsp[(2) - (2)].
id), 0, (yylsp[(1) - (2)]).first_column);
8540 #line 3241 "parse.y" 8542 (yyval.
node) =
assignable((yyvsp[(2) - (4)].
id), 0, (yylsp[(1) - (4)]).first_column);
8553 #line 3251 "parse.y" 8564 #line 3259 "parse.y" 8576 #line 3271 "parse.y" 8578 (yyval.
node) =
new_args_tail((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].
id), (yylsp[(1) - (4)]).first_column);
8583 #line 3275 "parse.y" 8585 (yyval.
node) =
new_args_tail((yyvsp[(1) - (2)].node),
Qnone, (yyvsp[(2) - (2)].
id), (yylsp[(1) - (2)]).first_column);
8590 #line 3279 "parse.y" 8592 (yyval.
node) =
new_args_tail(
Qnone, (yyvsp[(1) - (2)].
id), (yyvsp[(2) - (2)].
id), (yylsp[(1) - (2)]).first_column);
8597 #line 3283 "parse.y" 8604 #line 3289 "parse.y" 8606 (yyval.
node) = (yyvsp[(2) - (2)].node);
8611 #line 3293 "parse.y" 8618 #line 3299 "parse.y" 8620 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node), (yyvsp[(5) - (6)].
id),
Qnone, (yyvsp[(6) - (6)].
node));
8625 #line 3303 "parse.y" 8627 (yyval.
node) =
new_args((yyvsp[(1) - (8)].node), (yyvsp[(3) - (8)].
node), (yyvsp[(5) - (8)].
id), (yyvsp[(7) - (8)].
node), (yyvsp[(8) - (8)].node));
8632 #line 3307 "parse.y" 8639 #line 3311 "parse.y" 8641 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node),
Qnone, (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
8646 #line 3315 "parse.y" 8653 #line 3319 "parse.y" 8664 #line 3327 "parse.y" 8666 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node),
Qnone, (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
8671 #line 3331 "parse.y" 8678 #line 3335 "parse.y" 8685 #line 3339 "parse.y" 8687 (yyval.
node) =
new_args(
Qnone, (yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
8692 #line 3343 "parse.y" 8699 #line 3347 "parse.y" 8706 #line 3351 "parse.y" 8713 #line 3355 "parse.y" 8720 #line 3359 "parse.y" 8727 #line 3366 "parse.y" 8734 #line 3372 "parse.y" 8747 #line 3382 "parse.y" 8759 #line 3391 "parse.y" 8763 (yyval.
node) = (yyvsp[(2) - (4)].node);
8771 #line 3403 "parse.y" 8778 #line 3407 "parse.y" 8789 #line 3433 "parse.y" 8800 #line 3441 "parse.y" 8807 #line 3446 "parse.y" 8814 #line 3449 "parse.y" 8822 #line 3454 "parse.y" 8829 #line 3457 "parse.y" 8837 #line 3462 "parse.y" 8855 #line 3479 "parse.y" 8858 (yyval.
node) = (yyvsp[(2) - (4)].node);
8866 #line 3487 "parse.y" 8868 (yyval.
node) = (yyvsp[(1) - (1)].node);
8873 #line 3493 "parse.y" 8876 (yyval.
node) = (yyvsp[(2) - (3)].node);
8881 #line 3498 "parse.y" 8883 (yyval.
node) = (yyvsp[(2) - (3)].node);
8888 #line 3504 "parse.y" 8897 #line 3510 "parse.y" 8899 (yyval.
node) = (yyvsp[(3) - (4)].node);
8907 #line 3519 "parse.y" 8916 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
8917 (yyval.
node) = (yyvsp[(2) - (2)].node);
8918 fixpos((yyval.
node), (yyvsp[(1) - (2)].
node));
8926 #line 3535 "parse.y" 8928 (yyval.
node) =
new_qcall((yyvsp[(2) - (4)].
id), (yyvsp[(1) - (4)].
node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].
node), (yylsp[(1) - (4)]).first_column);
8933 #line 3539 "parse.y" 8937 (yyvsp[(5) - (5)].
node)->
nd_iter =
new_command_qcall((yyvsp[(2) - (5)].
id), (yyvsp[(1) - (5)].
node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
node), (yylsp[(1) - (5)]).first_column);
8938 (yyval.
node) = (yyvsp[(5) - (5)].node);
8939 fixpos((yyval.
node), (yyvsp[(1) - (5)].
node));
8948 #line 3551 "parse.y" 8952 (yyvsp[(5) - (5)].
node)->
nd_iter =
new_command_qcall((yyvsp[(2) - (5)].
id), (yyvsp[(1) - (5)].
node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
node), (yylsp[(1) - (5)]).first_column);
8953 (yyval.
node) = (yyvsp[(5) - (5)].node);
8954 fixpos((yyval.
node), (yyvsp[(1) - (5)].
node));
8963 #line 3565 "parse.y" 8966 (yyval.
node) = (yyvsp[(1) - (2)].node);
8975 #line 3574 "parse.y" 8984 #line 3580 "parse.y" 8986 (yyval.
node) =
new_qcall((yyvsp[(2) - (5)].
id), (yyvsp[(1) - (5)].
node), (yyvsp[(3) - (5)].
id), (yyvsp[(5) - (5)].
node), (yylsp[(1) - (5)]).first_column);
8992 #line 3585 "parse.y" 9001 #line 3591 "parse.y" 9009 #line 3596 "parse.y" 9016 #line 3600 "parse.y" 9025 #line 3606 "parse.y" 9027 (yyval.
node) =
new_qcall((yyvsp[(2) - (4)].
id), (yyvsp[(1) - (4)].
node),
ID2VAL(idCall), (yyvsp[(4) - (4)].
node), (yylsp[(1) - (4)]).first_column);
9033 #line 3611 "parse.y" 9042 #line 3617 "parse.y" 9050 #line 3622 "parse.y" 9062 #line 3631 "parse.y" 9074 #line 3640 "parse.y" 9077 if ((yyvsp[(1) - (4)].node) &&
nd_type((yyvsp[(1) - (4)].node)) ==
NODE_SELF)
9078 (yyval.
node) =
new_fcall(
tAREF, (yyvsp[(3) - (4)].node), (yylsp[(1) - (4)]).first_column);
9080 (yyval.
node) =
new_call((yyvsp[(1) - (4)].node),
tAREF, (yyvsp[(3) - (4)].node), (yylsp[(1) - (4)]).first_column);
9081 fixpos((yyval.
node), (yyvsp[(1) - (4)].
node));
9089 #line 3654 "parse.y" 9098 #line 3660 "parse.y" 9100 (yyval.
node) = (yyvsp[(3) - (4)].node);
9108 #line 3667 "parse.y" 9117 #line 3673 "parse.y" 9119 (yyval.
node) = (yyvsp[(3) - (4)].node);
9127 #line 3681 "parse.y" 9132 #line 3682 "parse.y" 9137 #line 3684 "parse.y" 9139 (yyval.
node) =
new_brace_body((yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].
node), (yylsp[(1) - (4)]).first_column);
9146 #line 3691 "parse.y" 9151 #line 3692 "parse.y" 9156 #line 3694 "parse.y" 9158 (yyval.
node) =
new_do_body((yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].
node), (yylsp[(1) - (4)]).first_column);
9165 #line 3704 "parse.y" 9168 (yyval.
node) =
NEW_WHEN((yyvsp[(2) - (5)].node), (yyvsp[(4) - (5)].
node), (yyvsp[(5) - (5)].node));
9177 #line 3721 "parse.y" 9180 if ((yyvsp[(3) - (6)].node)) {
9181 (yyvsp[(3) - (6)].
node) =
node_assign((yyvsp[(3) - (6)].node),
new_errinfo((yylsp[(1) - (6)]).first_column), (yylsp[(1) - (6)]).first_column);
9182 (yyvsp[(5) - (6)].
node) =
block_append((yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].
node), (yylsp[(1) - (6)]).first_column);
9184 (yyval.
node) =
new_resbody((yyvsp[(2) - (6)].node), (yyvsp[(5) - (6)].
node), (yyvsp[(6) - (6)].node), (yylsp[(1) - (6)]).first_column);
9185 fixpos((yyval.
node), (yyvsp[(2) - (6)].
node)?(yyvsp[(2) - (6)].
node):(yyvsp[(5) - (6)].
node));
9197 #line 3741 "parse.y" 9200 (yyval.
node) =
new_list((yyvsp[(1) - (1)].node), (yylsp[(1) - (1)]).first_column);
9208 #line 3749 "parse.y" 9211 if (!((yyval.
node) = splat_array((yyvsp[(1) - (1)].node)))) (yyval.
node) = (yyvsp[(1) - (1)].node);
9219 #line 3760 "parse.y" 9221 (yyval.
node) = (yyvsp[(2) - (2)].node);
9226 #line 3767 "parse.y" 9229 (yyval.
node) = (yyvsp[(2) - (2)].node);
9237 #line 3779 "parse.y" 9240 (yyval.
node) =
new_lit(
ID2SYM((yyvsp[(1) - (1)].
id)), (yylsp[(1) - (1)]).first_column);
9248 #line 3790 "parse.y" 9251 NODE *node = (yyvsp[(1) - (1)].
node);
9256 node =
evstr2dstr(node, (yylsp[(1) - (1)]).first_column);
9258 (yyval.
node) = node;
9266 #line 3807 "parse.y" 9276 #line 3815 "parse.y" 9279 (yyval.
node) =
literal_concat((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].
node), (yylsp[(1) - (2)]).first_column);
9287 #line 3825 "parse.y" 9294 #line 3831 "parse.y" 9301 #line 3837 "parse.y" 9303 (yyval.
node) =
new_regexp((yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].
num), (yylsp[(1) - (3)]).first_column);
9308 #line 3843 "parse.y" 9320 #line 3852 "parse.y" 9323 (yyval.
node) = (yyvsp[(2) - (3)].node);
9331 #line 3862 "parse.y" 9342 #line 3870 "parse.y" 9345 (yyval.
node) =
list_append((yyvsp[(1) - (3)].node),
evstr2dstr((yyvsp[(2) - (3)].node), (yylsp[(1) - (3)]).first_column), (yylsp[(1) - (3)]).first_column);
9353 #line 3888 "parse.y" 9356 (yyval.
node) =
literal_concat((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].
node), (yylsp[(1) - (2)]).first_column);
9364 #line 3898 "parse.y" 9376 #line 3907 "parse.y" 9379 (yyval.
node) = (yyvsp[(2) - (3)].node);
9387 #line 3917 "parse.y" 9398 #line 3925 "parse.y" 9401 (yyvsp[(2) - (3)].
node) =
evstr2dstr((yyvsp[(2) - (3)].node), (yylsp[(1) - (3)]).first_column);
9409 (yyval.
node) =
list_append((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
node), (yylsp[(1) - (3)]).first_column);
9417 #line 3943 "parse.y" 9429 #line 3952 "parse.y" 9432 (yyval.
node) = (yyvsp[(2) - (3)].node);
9440 #line 3962 "parse.y" 9452 #line 3971 "parse.y" 9455 (yyval.
node) = (yyvsp[(2) - (3)].node);
9463 #line 3981 "parse.y" 9474 #line 3989 "parse.y" 9477 (yyval.
node) =
list_append((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
node), (yylsp[(1) - (3)]).first_column);
9478 nd_set_column((yyvsp[(2) - (3)].node), (yylsp[(1) - (3)]).first_column);
9486 #line 4000 "parse.y" 9497 #line 4008 "parse.y" 9504 (yyval.
node) =
list_append((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
node), (yylsp[(1) - (3)]).first_column);
9505 nd_set_column((yyvsp[(2) - (3)].node), (yylsp[(1) - (3)]).first_column);
9513 #line 4023 "parse.y" 9524 #line 4031 "parse.y" 9527 (yyval.
node) =
literal_concat((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].
node), (yylsp[(1) - (2)]).first_column);
9535 #line 4041 "parse.y" 9546 #line 4049 "parse.y" 9549 (yyval.
node) =
literal_concat((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].
node), (yylsp[(1) - (2)]).first_column);
9557 #line 4059 "parse.y" 9568 #line 4067 "parse.y" 9571 NODE *head = (yyvsp[(1) - (2)].
node), *tail = (yyvsp[(2) - (2)].node);
9573 (yyval.
node) = tail;
9576 (yyval.
node) = head;
9589 (yyval.
node) =
list_append(head, tail, (yylsp[(1) - (2)]).first_column);
9610 #line 4108 "parse.y" 9620 #line 4115 "parse.y" 9629 #line 4121 "parse.y" 9642 #line 4131 "parse.y" 9652 #line 4137 "parse.y" 9660 #line 4141 "parse.y" 9668 #line 4145 "parse.y" 9676 #line 4149 "parse.y" 9684 #line 4154 "parse.y" 9694 if ((yyvsp[(7) - (8)].node)) (yyvsp[(7) - (8)].node)->flags &= ~
NODE_FL_NEWLINE;
9695 (yyval.
node) =
new_evstr((yyvsp[(7) - (8)].node), (yylsp[(1) - (8)]).first_column);
9703 #line 4172 "parse.y" 9706 (yyval.
node) =
new_gvar((yyvsp[(1) - (1)].
id), (yylsp[(1) - (1)]).first_column);
9714 #line 4180 "parse.y" 9717 (yyval.
node) =
new_ivar((yyvsp[(1) - (1)].
id), (yylsp[(1) - (1)]).first_column);
9725 #line 4188 "parse.y" 9737 #line 4200 "parse.y" 9741 (yyval.
id) = (yyvsp[(2) - (2)].
id);
9749 #line 4217 "parse.y" 9753 (yyval.
node) =
dsym_node((yyvsp[(2) - (3)].node), (yylsp[(1) - (3)]).first_column);
9761 #line 4229 "parse.y" 9764 (yyval.
node) = (yyvsp[(2) - (2)].node);
9773 #line 4240 "parse.y" 9783 #line 4247 "parse.y" 9793 #line 4254 "parse.y" 9803 #line 4261 "parse.y" 9813 #line 4276 "parse.y" 9814 {(yyval.
id) =
KWD2EID(nil, (yyvsp[(1) - (1)].
id));;}
9818 #line 4277 "parse.y" 9819 {(yyval.
id) =
KWD2EID(
self, (yyvsp[(1) - (1)].
id));;}
9823 #line 4278 "parse.y" 9824 {(yyval.
id) =
KWD2EID(
true, (yyvsp[(1) - (1)].
id));;}
9828 #line 4279 "parse.y" 9829 {(yyval.
id) =
KWD2EID(
false, (yyvsp[(1) - (1)].
id));;}
9833 #line 4280 "parse.y" 9834 {(yyval.
id) =
KWD2EID(_FILE__, (yyvsp[(1) - (1)].
id));;}
9838 #line 4281 "parse.y" 9839 {(yyval.
id) =
KWD2EID(_LINE__, (yyvsp[(1) - (1)].
id));;}
9843 #line 4282 "parse.y" 9844 {(yyval.
id) =
KWD2EID(_ENCODING__, (yyvsp[(1) - (1)].
id));;}
9848 #line 4286 "parse.y" 9851 if (!((yyval.
node) =
gettable((yyvsp[(1) - (1)].
id), (yylsp[(1) - (1)]).first_column))) (yyval.
node) =
new_begin(0, (yylsp[(1) - (1)]).first_column);
9864 #line 4299 "parse.y" 9867 if (!((yyval.
node) =
gettable((yyvsp[(1) - (1)].
id), (yylsp[(1) - (1)]).first_column))) (yyval.
node) =
new_begin(0, (yylsp[(1) - (1)]).first_column);
9875 #line 4309 "parse.y" 9882 #line 4313 "parse.y" 9889 #line 4319 "parse.y" 9899 #line 4326 "parse.y" 9909 #line 4335 "parse.y" 9917 #line 4340 "parse.y" 9919 (yyval.
node) = (yyvsp[(3) - (4)].node);
9924 #line 4344 "parse.y" 9935 #line 4354 "parse.y" 9938 (yyval.
node) = (yyvsp[(2) - (3)].node);
9948 #line 4363 "parse.y" 9957 #line 4369 "parse.y" 9960 (yyval.
node) = (yyvsp[(2) - (3)].node);
9967 #line 4378 "parse.y" 9969 (yyval.
node) =
new_args_tail((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].
id), (yylsp[(1) - (4)]).first_column);
9974 #line 4382 "parse.y" 9976 (yyval.
node) =
new_args_tail((yyvsp[(1) - (2)].node),
Qnone, (yyvsp[(2) - (2)].
id), (yylsp[(1) - (2)]).first_column);
9981 #line 4386 "parse.y" 9983 (yyval.
node) =
new_args_tail(
Qnone, (yyvsp[(1) - (2)].
id), (yyvsp[(2) - (2)].
id), (yylsp[(1) - (2)]).first_column);
9988 #line 4390 "parse.y" 9995 #line 4396 "parse.y" 9997 (yyval.
node) = (yyvsp[(2) - (2)].node);
10002 #line 4400 "parse.y" 10009 #line 4406 "parse.y" 10011 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node), (yyvsp[(5) - (6)].
id),
Qnone, (yyvsp[(6) - (6)].
node));
10016 #line 4410 "parse.y" 10018 (yyval.
node) =
new_args((yyvsp[(1) - (8)].node), (yyvsp[(3) - (8)].
node), (yyvsp[(5) - (8)].
id), (yyvsp[(7) - (8)].
node), (yyvsp[(8) - (8)].node));
10023 #line 4414 "parse.y" 10030 #line 4418 "parse.y" 10032 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node),
Qnone, (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
10037 #line 4422 "parse.y" 10044 #line 4426 "parse.y" 10046 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node),
Qnone, (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
10051 #line 4430 "parse.y" 10058 #line 4434 "parse.y" 10065 #line 4438 "parse.y" 10067 (yyval.
node) =
new_args(
Qnone, (yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
10072 #line 4442 "parse.y" 10079 #line 4446 "parse.y" 10086 #line 4450 "parse.y" 10093 #line 4454 "parse.y" 10100 #line 4458 "parse.y" 10107 #line 4462 "parse.y" 10115 #line 4469 "parse.y" 10118 yyerror0(
"formal argument cannot be a constant");
10128 #line 4479 "parse.y" 10131 yyerror0(
"formal argument cannot be an instance variable");
10141 #line 4489 "parse.y" 10144 yyerror0(
"formal argument cannot be a global variable");
10154 #line 4499 "parse.y" 10157 yyerror0(
"formal argument cannot be a class variable");
10167 #line 4512 "parse.y" 10170 (yyval.
id) = (yyvsp[(1) - (1)].
id);
10175 #line 4519 "parse.y" 10177 ID id =
get_id((yyvsp[(1) - (1)].
id));
10180 (yyval.
id) = (yyvsp[(1) - (1)].
id);
10185 #line 4528 "parse.y" 10197 #line 4537 "parse.y" 10217 #line 4563 "parse.y" 10220 (yyval.
node) = (yyvsp[(1) - (3)].node);
10231 #line 4577 "parse.y" 10233 ID id =
get_id((yyvsp[(1) - (1)].
id));
10236 (yyval.
id) = (yyvsp[(1) - (1)].
id);
10241 #line 4586 "parse.y" 10244 (yyval.
node) =
assignable((yyvsp[(1) - (2)].
id), (yyvsp[(2) - (2)].
node), (yylsp[(1) - (2)]).first_column);
10254 #line 4596 "parse.y" 10257 (yyval.
node) =
assignable((yyvsp[(1) - (1)].
id), (
NODE *)-1, (yylsp[(1) - (1)]).first_column);
10267 #line 4608 "parse.y" 10269 (yyval.
node) =
assignable((yyvsp[(1) - (2)].
id), (yyvsp[(2) - (2)].
node), (yylsp[(1) - (2)]).first_column);
10279 #line 4617 "parse.y" 10281 (yyval.
node) =
assignable((yyvsp[(1) - (1)].
id), (
NODE *)-1, (yylsp[(1) - (1)]).first_column);
10291 #line 4628 "parse.y" 10294 (yyval.
node) = (yyvsp[(1) - (1)].node);
10302 #line 4636 "parse.y" 10305 (yyval.
node) = kwd_append((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
node));
10313 #line 4647 "parse.y" 10316 (yyval.
node) = (yyvsp[(1) - (1)].node);
10324 #line 4655 "parse.y" 10327 (yyval.
node) = kwd_append((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
node));
10335 #line 4669 "parse.y" 10339 (yyval.
id) = (yyvsp[(2) - (2)].
id);
10347 #line 4678 "parse.y" 10359 #line 4689 "parse.y" 10362 (yyval.
node) =
assignable((yyvsp[(1) - (3)].
id), (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
10373 #line 4702 "parse.y" 10376 (yyval.
node) =
assignable((yyvsp[(1) - (3)].
id), (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
10387 #line 4715 "parse.y" 10390 (yyval.
node) = (yyvsp[(1) - (1)].node);
10398 #line 4723 "parse.y" 10401 NODE *opts = (yyvsp[(1) - (3)].
node);
10403 while (opts->nd_next) {
10404 opts = opts->nd_next;
10406 opts->nd_next = (yyvsp[(3) - (3)].
node);
10407 (yyval.
node) = (yyvsp[(1) - (3)].node);
10415 #line 4739 "parse.y" 10418 (yyval.
node) = (yyvsp[(1) - (1)].node);
10426 #line 4747 "parse.y" 10429 NODE *opts = (yyvsp[(1) - (3)].
node);
10431 while (opts->nd_next) {
10432 opts = opts->nd_next;
10434 opts->nd_next = (yyvsp[(3) - (3)].
node);
10435 (yyval.
node) = (yyvsp[(1) - (3)].node);
10443 #line 4767 "parse.y" 10447 yyerror0(
"rest argument must be local variable");
10451 (yyval.
id) = (yyvsp[(2) - (2)].
id);
10459 #line 4780 "parse.y" 10471 #line 4795 "parse.y" 10475 yyerror0(
"block argument must be local variable");
10477 yyerror0(
"duplicated block argument name");
10481 (yyval.
id) = (yyvsp[(2) - (2)].
id);
10489 #line 4812 "parse.y" 10491 (yyval.
id) = (yyvsp[(2) - (2)].
id);
10496 #line 4816 "parse.y" 10507 #line 4826 "parse.y" 10511 (yyval.
node) = (yyvsp[(1) - (1)].node);
10520 #line 4835 "parse.y" 10525 #line 4836 "parse.y" 10528 if ((yyvsp[(3) - (4)].node) == 0) {
10529 yyerror0(
"can't define singleton method for ().");
10532 switch (
nd_type((yyvsp[(3) - (4)].node))) {
10541 yyerror0(
"can't define singleton method for literals");
10548 (yyval.
node) = (yyvsp[(3) - (4)].node);
10556 #line 4867 "parse.y" 10559 (yyval.
node) = (yyvsp[(1) - (2)].node);
10567 #line 4884 "parse.y" 10570 NODE *assocs = (yyvsp[(1) - (3)].
node);
10571 NODE *tail = (yyvsp[(3) - (3)].
node);
10576 if (assocs->nd_head &&
10580 tail = tail->nd_next->nd_head->nd_head;
10582 assocs = list_concat(assocs, tail);
10584 (yyval.
node) = assocs;
10592 #line 4908 "parse.y" 10599 (yyval.
node) =
list_append(
new_list((yyvsp[(1) - (3)].node), (yylsp[(1) - (3)]).first_column), (yyvsp[(3) - (3)].
node), (yylsp[(1) - (3)]).first_column);
10607 #line 4920 "parse.y" 10610 (yyval.
node) =
list_append(
new_list(
new_lit(
ID2SYM((yyvsp[(1) - (2)].
id)), (yylsp[(1) - (2)]).first_column), (yylsp[(1) - (2)]).first_column), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)]).first_column);
10618 #line 4928 "parse.y" 10621 (yyval.
node) =
list_append(
new_list(
dsym_node((yyvsp[(2) - (4)].node), (yylsp[(1) - (4)]).first_column), (yylsp[(1) - (4)]).first_column), (yyvsp[(4) - (4)].
node), (yylsp[(1) - (4)]).first_column);
10629 #line 4936 "parse.y" 10633 !((yyvsp[(2) - (2)].node)->nd_head && (yyvsp[(2) - (2)].
node)->
nd_head->nd_alen))
10636 (yyval.
node) =
list_append(
new_list(0, (yylsp[(1) - (2)]).first_column), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)]).first_column);
10644 #line 4970 "parse.y" 10651 #line 4974 "parse.y" 10658 #line 4981 "parse.y" 10665 #line 5005 "parse.y" 10670 #line 5006 "parse.y" 10675 #line 5010 "parse.y" 10680 #line 5014 "parse.y" 10688 #line 10687 "parse.c" 10706 yystate = yypgoto[yyn -
YYNTOKENS] + *yyssp;
10707 if (0 <= yystate && yystate <=
YYLAST && yycheck[yystate] == *yyssp)
10708 yystate = yytable[yystate];
10723 #if ! YYERROR_VERBOSE 10724 yyerror (&yylloc, parser,
YY_(
"syntax error"));
10727 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
10733 if (yymsg != yymsgbuf)
10737 yymsg_alloc = yyalloc;
10741 yymsg_alloc =
sizeof yymsgbuf;
10745 if (0 < yysize && yysize <= yymsg_alloc)
10747 (void) yysyntax_error (yymsg, yystate, yychar);
10748 yyerror (&yylloc, parser, yymsg);
10752 yyerror (&yylloc, parser,
YY_(
"syntax error"));
10754 goto yyexhaustedlab;
10760 yyerror_range[0] = yylloc;
10762 if (yyerrstatus == 3)
10767 if (yychar <=
YYEOF)
10770 if (yychar ==
YYEOF)
10775 yydestruct (
"Error: discarding",
10776 yytoken, &yylval, &yylloc, parser);
10797 yyerror_range[0] = yylsp[1-yylen];
10815 yyn = yypact[yystate];
10821 yyn = yytable[yyn];
10831 yyerror_range[0] = *yylsp;
10832 yydestruct (
"Error: popping",
10833 yystos[yystate], yyvsp, yylsp, parser);
10844 yyerror_range[1] = yylloc;
10876 yyerror (&yylloc, parser,
YY_(
"memory exhausted"));
10883 yydestruct (
"Cleanup: discarding lookahead",
10884 yytoken, &yylval, &yylloc, parser);
10889 while (yyssp != yyss)
10891 yydestruct (
"Cleanup: popping",
10892 yystos[*yyssp], yyvsp, yylsp, parser);
10899 #if YYERROR_VERBOSE 10900 if (yymsg != yymsgbuf)
10904 return YYID (yyresult);
10908 #line 5018 "parse.y" 10913 # define yylval (*parser->lval) 10922 # define nextc() parser_nextc(parser) 10923 # define pushback(c) parser_pushback(parser, (c)) 10924 # define newtok() parser_newtok(parser) 10925 # define tokspace(n) parser_tokspace(parser, (n)) 10926 # define tokadd(c) parser_tokadd(parser, (c)) 10927 # define tok_hex(numlen) parser_tok_hex(parser, (numlen)) 10928 # define read_escape(flags,e) parser_read_escape(parser, (flags), (e)) 10929 # define tokadd_escape(e) parser_tokadd_escape(parser, (e)) 10930 # define regx_options() parser_regx_options(parser) 10931 # define tokadd_string(f,t,p,n,e) parser_tokadd_string(parser,(f),(t),(p),(n),(e)) 10932 # define parse_string(n) parser_parse_string(parser,(n)) 10933 # define tokaddmbc(c, enc) parser_tokaddmbc(parser, (c), (enc)) 10934 # define here_document(n) parser_here_document(parser,(n)) 10935 # define heredoc_identifier() parser_heredoc_identifier(parser) 10936 # define heredoc_restore(n) parser_heredoc_restore(parser,(n)) 10937 # define whole_match_p(e,l,i) parser_whole_match_p(parser,(e),(l),(i)) 10938 # define number_literal_suffix(f) parser_number_literal_suffix(parser, (f)) 10939 # define set_number_literal(v, t, f) parser_set_number_literal(parser, (v), (t), (f)) 10940 # define set_integer_literal(v, f) parser_set_integer_literal(parser, (v), (f)) 10943 # define set_yylval_str(x) (yylval.node = NEW_STR(x)) 10944 # define set_yylval_num(x) (yylval.num = (x)) 10945 # define set_yylval_id(x) (yylval.id = (x)) 10946 # define set_yylval_name(x) (yylval.id = (x)) 10947 # define set_yylval_literal(x) (yylval.node = NEW_LIT(x)) 10948 # define set_yylval_node(x) (yylval.node = (x)) 10949 # define yylval_id() (yylval.id) 10951 static inline VALUE 10952 ripper_yylval_id(
ID x)
10954 return ripper_new_yylval(x,
ID2SYM(x), 0);
10956 # define set_yylval_str(x) (yylval.val = (x)) 10957 # define set_yylval_num(x) (yylval.val = ripper_new_yylval((x), 0, 0)) 10958 # define set_yylval_id(x) (void)(x) 10959 # define set_yylval_name(x) (void)(yylval.val = ripper_yylval_id(x)) 10960 # define set_yylval_literal(x) (void)(x) 10961 # define set_yylval_node(x) (void)(x) 10962 # define yylval_id() yylval.id 10966 #define literal_flush(p) (parser->tokp = (p)) 10967 #define dispatch_scan_event(t) ((void)0) 10968 #define dispatch_delayed_token(t) ((void)0) 10969 #define has_delayed_token() (0) 10971 #define literal_flush(p) ((void)0) 10973 #define yylval_rval (*(RB_TYPE_P(yylval.val, T_NODE) ? &yylval.node->nd_rval : &yylval.val)) 10975 static inline VALUE 10976 intern_sym(
const char *
name)
10987 return lex_p > parser->tokp;
10994 VALUE rval = ripper_dispatch1(parser, ripper_token2eventid(t), str);
11000 ripper_dispatch_scan_event(
struct parser_params *parser,
int t)
11002 if (!ripper_has_scan_event(parser))
return;
11003 yylval_rval = ripper_scan_event_val(parser, t);
11005 #define dispatch_scan_event(t) ripper_dispatch_scan_event(parser, t) 11008 ripper_dispatch_delayed_token(
struct parser_params *parser,
int t)
11011 const char *saved_tokp = parser->tokp;
11014 parser->tokp =
lex_pbeg + parser->delayed_col;
11015 yylval_rval = ripper_dispatch1(parser, ripper_token2eventid(t), parser->delayed);
11016 parser->delayed =
Qnil;
11018 parser->tokp = saved_tokp;
11020 #define dispatch_delayed_token(t) ripper_dispatch_delayed_token(parser, t) 11021 #define has_delayed_token() (!NIL_P(parser->delayed)) 11027 #define parser_encoding_name() (current_enc->name) 11028 #define parser_mbclen() mbclen((lex_p-1),lex_pend,current_enc) 11029 #define is_identchar(p,e,enc) (rb_enc_isalnum((unsigned char)(*(p)),(enc)) || (*(p)) == '_' || !ISASCII(*(p))) 11030 #define parser_is_identchar() (!parser->eofp && is_identchar((lex_p-1),lex_pend,current_enc)) 11032 #define parser_isascii() ISASCII(*(lex_p-1)) 11035 token_info_get_column(
struct parser_params *parser,
const char *pend)
11039 for (p =
lex_pbeg; p < pend; p++) {
11049 token_info_has_nonspaces(
struct parser_params *parser,
const char *pend)
11052 for (p =
lex_pbeg; p < pend; p++) {
11053 if (*p !=
' ' && *p !=
'\t') {
11070 ptinfo->
column = token_info_get_column(parser, t);
11071 ptinfo->
nonspc = token_info_has_nonspaces(parser, t);
11078 token_info_pop_gen(
struct parser_params *parser,
const char *token,
size_t len)
11084 if (!ptinfo)
return;
11089 !token_info_has_nonspaces(parser, t) &&
11090 token_info_get_column(parser, t) != ptinfo->
column) {
11092 "mismatched indentations at '%s' with '%s' at %d",
11100 parser_precise_mbclen(
struct parser_params *parser,
const char *p)
11111 parser_yyerror(
struct parser_params *parser,
const char *msg)
11114 const int max_line_margin = 30;
11115 const char *p, *pe;
11116 const char *pre =
"", *post =
"", *pend;
11117 const char *code =
"", *caret =
"", *newline =
"";
11124 if (pend >
lex_pbeg && pend[-1] ==
'\n') {
11125 if (--pend >
lex_pbeg && pend[-1] ==
'\r') --pend;
11130 while ((lim < p) && (*(p-1) !=
'\n')) p--;
11132 lim = pend - pe > max_line_margin ? pe + max_line_margin : pend;
11133 while ((pe < lim) && (*pe !=
'\n')) pe++;
11145 if (pe < pend) post =
"...";
11149 i = (int)(lim - p);
11153 pe = (parser->tokp < lim ? parser->tokp : lim);
11156 *p2++ = *p++ ==
'\t' ?
'\t' :
' ';
11162 memset(p2,
'~', (lim - p));
11173 pre, (
int)len, code, post, newline,
11176 dispatch1(parse_error,
STR_NEW2(msg));
11208 #define vtable_alloc(prev) vtable_alloc_gen(parser, __LINE__, prev) 11226 #define vtable_free(tbl) vtable_free_gen(parser, __LINE__, #tbl, tbl) 11239 rb_parser_fatal(parser,
"vtable_add: vtable is not allocated (%p)", (
void *)tbl);
11248 #define vtable_add(tbl, id) vtable_add_gen(parser, __LINE__, #tbl, tbl, id) 11253 struct vtable *tbl,
int n)
11257 line, name, tbl, n);
11259 if (tbl->
pos < n) {
11265 #define vtable_pop(tbl, n) vtable_pop_gen(parser, __LINE__, #tbl, tbl, n) 11269 vtable_included(
const struct vtable * tbl,
ID id)
11274 for (i = 0; i < tbl->
pos; i++) {
11275 if (tbl->
tbl[i] ==
id) {
11287 debug_lines(
VALUE fname)
11290 CONST_ID(script_lines,
"SCRIPT_LINES__");
11303 coverage(
VALUE fname,
int n)
11306 if (
RTEST(coverages) &&
RBASIC(coverages)->klass == 0) {
11324 yycompile0(
VALUE arg)
11341 if (!e_option_supplied(parser)) {
11347 parser_prepare(parser);
11349 #define RUBY_DTRACE_PARSE_HOOK(name) \ 11350 if (RUBY_DTRACE_PARSE_##name##_ENABLED()) { \ 11351 RUBY_DTRACE_PARSE_##name(ruby_sourcefile, ruby_sourceline); \ 11365 if (parser->error_p) {
11366 VALUE mesg = parser->error_buffer;
11378 VALUE opt = parser->compile_option;
11384 tree->nd_body = prelude;
11386 return (
VALUE)tree;
11400 must_be_ascii_compatible(
VALUE s)
11412 char *beg, *end, *start;
11423 end = memchr(beg,
'\n', len);
11424 if (end) len = ++end - beg;
11433 if (
NIL_P(line))
return line;
11434 must_be_ascii_compatible(line);
11462 node = yycompile(parser, fname, line);
11471 must_be_ascii_compatible(s);
11484 must_be_ascii_compatible(s);
11485 return parser_compile_string(vparser, f, s, line);
11535 node = yycompile(parser, fname, start);
11542 #define STR_FUNC_ESCAPE 0x01 11543 #define STR_FUNC_EXPAND 0x02 11544 #define STR_FUNC_REGEXP 0x04 11545 #define STR_FUNC_QWORDS 0x08 11546 #define STR_FUNC_SYMBOL 0x10 11547 #define STR_FUNC_INDENT 0x20 11548 #define STR_FUNC_LABEL 0x40 11549 #define STR_FUNC_TERM 0x8000 11580 #define lex_goto_eol(parser) ((parser)->lex.pcur = (parser)->lex.pend) 11581 #define lex_eol_p() (lex_p >= lex_pend) 11582 #define peek(c) peek_n((c), 0) 11583 #define peek_n(c,n) (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n]) 11584 #define peekc() peekc_n(0) 11585 #define peekc_n(n) (lex_p+(n) < lex_pend ? (unsigned char)lex_p[n] : -1) 11609 parser->tokp,
lex_pend - parser->tokp);
11611 parser->delayed_col = (int)(parser->tokp -
lex_pbeg);
11615 parser->tokp,
lex_pend - parser->tokp);
11642 rb_warn0(
"encountered \\r in middle of line, treated as a mere space");
11653 if (parser_nextline(parser))
return -1;
11655 c = (
unsigned char)*
lex_p++;
11657 c = parser_cr(parser, c);
11666 if (c == -1)
return;
11673 #define was_bol() (lex_p == lex_pbeg + 1) 11675 #define tokfix() (tokenbuf[tokidx]='\0') 11676 #define tok() tokenbuf 11677 #define toklen() tokidx 11678 #define toklast() (tokidx>0?tokenbuf[tokidx-1]:0) 11719 parser_tok_hex(
struct parser_params *parser,
size_t *numlen)
11725 parser->tokp =
lex_p;
11733 #define tokcopy(n) memcpy(tokspace(n), lex_p - (n), (n)) 11737 int regexp_literal,
int wide)
11743 if (wide ? (numlen == 0 || numlen > 6) : (numlen < 4)) {
11744 yyerror0(
"invalid Unicode escape");
11745 return wide && numlen > 0;
11747 if (codepoint > 0x10ffff) {
11748 yyerror0(
"invalid Unicode codepoint (too large)");
11751 if ((codepoint & 0xfffff800) == 0xd800) {
11752 yyerror0(
"invalid Unicode codepoint");
11755 if (regexp_literal) {
11758 else if (codepoint >= 0x80) {
11760 if (*encp && utf8 != *encp) {
11761 static const char mixed_utf8[] =
"UTF-8 mixed within %s source";
11763 char *mesg =
alloca(len);
11780 int string_literal,
int symbol_literal,
int regexp_literal)
11789 const int open_brace =
'{', close_brace =
'}';
11793 if (
peek(open_brace)) {
11798 if (regexp_literal)
tokadd(last);
11799 if (!parser_tokadd_codepoint(parser, encp, regexp_literal,
TRUE)) {
11806 }
while (c != close_brace);
11808 if (c != close_brace) {
11811 yyerror0(
"unterminated Unicode escape");
11815 if (regexp_literal)
tokadd(close_brace);
11819 if (!parser_tokadd_codepoint(parser, encp, regexp_literal,
FALSE)) {
11827 #define ESCAPE_CONTROL 1 11828 #define ESCAPE_META 2 11831 parser_read_escape(
struct parser_params *parser,
int flags,
11837 switch (c =
nextc()) {
11862 case '0':
case '1':
case '2':
case '3':
11863 case '4':
case '5':
case '6':
case '7':
11871 if (numlen == 0)
return 0;
11882 if ((c =
nextc()) !=
'-') {
11885 if ((c =
nextc()) ==
'\\') {
11886 if (
peek(
'u'))
goto eof;
11887 return read_escape(flags|ESCAPE_META, encp) | 0x80;
11889 else if (c == -1 || !
ISASCII(c))
goto eof;
11891 return ((c & 0xff) | 0x80);
11895 if ((c =
nextc()) !=
'-') {
11900 if ((c =
nextc())==
'\\') {
11901 if (
peek(
'u'))
goto eof;
11906 else if (c == -1 || !
ISASCII(c))
goto eof;
11911 yyerror0(
"Invalid escape character syntax");
11935 switch (c =
nextc()) {
11939 case '0':
case '1':
case '2':
case '3':
11940 case '4':
case '5':
case '6':
case '7':
11943 if (numlen == 0)
goto eof;
11952 if (numlen == 0)
return -1;
11959 if ((c =
nextc()) !=
'-') {
11969 if ((c =
nextc()) !=
'-') {
11977 if (flags & ESCAPE_CONTROL)
goto eof;
11981 if ((c =
nextc()) ==
'\\') {
11984 else if (c == -1)
goto eof;
11990 yyerror0(
"Invalid escape character syntax");
12037 dispose_string(
VALUE str)
12046 int len = parser_precise_mbclen(parser,
lex_p-1);
12047 if (len < 0)
return -1;
12054 #define tokadd_mbchar(c) parser_tokadd_mbchar(parser, (c)) 12057 simple_re_meta(
int c)
12060 case '$':
case '*':
case '+':
case '.':
12061 case '?':
case '^':
case '|':
12062 case ')':
case ']':
case '}':
case '>':
12070 parser_update_heredoc_indent(
struct parser_params *parser,
int c)
12080 else if (c ==
'\t') {
12085 else if (c !=
'\n') {
12097 int func,
int term,
int paren,
long *nest,
12103 static const char mixed_msg[] =
"%s mixed within %s source";
12105 #define mixed_error(enc1, enc2) if (!errbuf) { \ 12106 size_t len = sizeof(mixed_msg) - 4; \ 12107 len += strlen(rb_enc_name(enc1)); \ 12108 len += strlen(rb_enc_name(enc2)); \ 12109 errbuf = ALLOCA_N(char, len); \ 12110 snprintf(errbuf, len, mixed_msg, \ 12111 rb_enc_name(enc1), \ 12112 rb_enc_name(enc2)); \ 12113 yyerror0(errbuf); \ 12115 #define mixed_escape(beg, enc1, enc2) do { \ 12116 const char *pos = lex_p; \ 12118 mixed_error((enc1), (enc2)); \ 12122 while ((c =
nextc()) != -1) {
12124 parser_update_heredoc_indent(parser, c);
12127 if (paren && c == paren) {
12130 else if (c == term) {
12131 if (!nest || !*nest) {
12139 if (c2 ==
'$' || c2 ==
'@' || c2 ==
'{') {
12144 else if (c ==
'\\') {
12150 if (func & STR_FUNC_EXPAND)
continue;
12159 if ((func & STR_FUNC_EXPAND) == 0) {
12163 if (!parser_tokadd_utf8(parser, &enc, term,
12171 if (c == -1)
return -1;
12173 if ((func & STR_FUNC_EXPAND) == 0)
tokadd(
'\\');
12176 if (func & STR_FUNC_REGEXP) {
12177 if (c == term && !simple_re_meta(c)) {
12184 if (enc && enc != *encp) {
12189 else if (func & STR_FUNC_EXPAND) {
12191 if (func & STR_FUNC_ESCAPE)
tokadd(
'\\');
12194 else if ((func & STR_FUNC_QWORDS) &&
ISSPACE(c)) {
12197 else if (c != term && !(paren && c == paren)) {
12209 else if (enc != *encp) {
12224 else if (enc != *encp) {
12231 if (enc) *encp =
enc;
12235 #define NEW_STRTERM(func, term, paren) \ 12236 rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0) 12243 if (!ripper_is_node_yylval(content))
12244 content = ripper_new_yylval(0, 0, content);
12246 ptrdiff_t len =
lex_p - parser->tokp;
12251 parser->tokp =
lex_p;
12255 if (
yylval.val != content)
12260 #define flush_string_content(enc) token_flush_string_content(parser, (enc)) 12262 #define flush_string_content(enc) ((void)(enc)) 12269 #define BIT(c, idx) (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0) 12270 #define SPECIAL_PUNCT(idx) ( \ 12271 BIT('~', idx) | BIT('*', idx) | BIT('$', idx) | BIT('?', idx) | \ 12272 BIT('!', idx) | BIT('@', idx) | BIT('/', idx) | BIT('\\', idx) | \ 12273 BIT(';', idx) | BIT(',', idx) | BIT('.', idx) | BIT('=', idx) | \ 12274 BIT(':', idx) | BIT('<', idx) | BIT('>', idx) | BIT('\"', idx) | \ 12275 BIT('&', idx) | BIT('`', idx) | BIT('\'', idx) | BIT('+', idx) | \ 12283 #undef SPECIAL_PUNCT 12290 const char *p =
lex_p;
12296 if ((c = *p) ==
'-') {
12300 else if (is_global_name_punct(c) ||
ISDIGIT(c)) {
12305 if ((c = *p) ==
'@') {
12322 #define IS_ARG() IS_lex_state(EXPR_ARG_ANY) 12323 #define IS_END() IS_lex_state(EXPR_END_ANY) 12324 #define IS_BEG() (IS_lex_state(EXPR_BEG_ANY) || IS_lex_state_all(EXPR_ARG|EXPR_LABELED)) 12325 #define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c)) 12326 #define IS_LABEL_POSSIBLE() (\ 12327 (IS_lex_state(EXPR_LABEL|EXPR_ENDFN) && !cmd_state) || \ 12329 #define IS_LABEL_SUFFIX(n) (peek_n(':',(n)) && !peek_n(':', (n)+1)) 12330 #define IS_AFTER_OPERATOR() IS_lex_state(EXPR_FNAME | EXPR_DOT) 12355 int func = (int)quote->nd_func;
12371 if (c == term && !quote->nd_nest) {
12372 if (func & STR_FUNC_QWORDS) {
12376 return parser_string_term(parser, func);
12384 int t = parser_peek_variable_name(parser);
12392 if (parser->
eofp) {
12394 # define unterminated_literal(mesg) yyerror0(mesg) 12396 # define unterminated_literal(mesg) compile_error(PARSER_ARG mesg) 12429 else if (c ==
'~') {
12447 while ((c =
nextc()) != -1 && c != term) {
12449 if (!newline && c ==
'\n') newline = 1;
12450 else if (newline) newline = 2;
12458 rb_warn0(
"here document identifier ends with a newline");
12505 line = here->nd_orig;
12512 dispose_string(here->nd_lit);
12518 dedent_string(
VALUE string,
int width)
12525 for (i = 0; i < len && col < width; i++) {
12526 if (str[i] ==
' ') {
12529 else if (str[i] ==
'\t') {
12531 if (n > width)
break;
12543 MEMMOVE(str, str + i,
char, len - i);
12552 NODE *node, *str_node;
12556 if (indent <= 0)
return root;
12558 if (!root)
return root;
12560 node = str_node = root;
12564 VALUE lit = str_node->nd_lit;
12565 if (bol) dedent_string(lit, indent);
12570 if ((str_node = node->nd_head) != 0) {
12586 if (indent <= 0)
return array;
12599 col = dedent_string(input, wid);
12606 const char *eos,
long len,
int indent)
12612 while (*p &&
ISSPACE(*p)) p++;
12615 if (n < 0)
return FALSE;
12616 if (n > 0 && p[len] !=
'\n') {
12617 if (p[len] !=
'\r')
return FALSE;
12618 if (n <= 1 || p[len+1] !=
'\n')
return FALSE;
12620 return strncmp(eos, p, len) == 0;
12623 #define NUM_SUFFIX_R (1<<0) 12624 #define NUM_SUFFIX_I (1<<1) 12625 #define NUM_SUFFIX_ALL 3 12628 parser_number_literal_suffix(
struct parser_params *parser,
int mask)
12631 const char *lastp =
lex_p;
12633 while ((c =
nextc()) != -1) {
12636 mask &= ~NUM_SUFFIX_I;
12643 mask &= ~NUM_SUFFIX_R;
12655 yyerror0(
"unexpected fraction part after numeric literal");
12697 ripper_dispatch1(parser, ripper_token2eventid(
tHEREDOC_END), str);
12702 #define dispatch_heredoc_end() ripper_dispatch_heredoc_end(parser) 12704 #define dispatch_heredoc_end() ((void)0) 12710 int c, func, indent = 0;
12711 const char *eos, *p, *
pend;
12720 if ((c =
nextc()) == -1) {
12731 else if ((len =
lex_p - parser->tokp) > 0) {
12765 switch (pend[-1]) {
12767 if (--pend == p || pend[-1] !=
'\r') {
12778 while (p + i < pend && parser_update_heredoc_indent(parser, p[i]))
12794 if (
nextc() == -1) {
12796 dispose_string(str);
12807 int t = parser_peek_variable_name(parser);
12821 if (parser->
eofp)
goto error;
12836 if ((c =
nextc()) == -1)
goto error;
12857 rb_warning1(
"ambiguous first argument; put parentheses or a space even after `%c' operator",
WARN_I(c));
12862 #define arg_ambiguous(c) (arg_ambiguous_gen(parser, (c)), 1) 12867 switch (id_type(lhs)) {
12872 yyerror0(
"formal argument cannot be a constant");
12875 yyerror0(
"formal argument cannot be an instance variable");
12878 yyerror0(
"formal argument cannot be a global variable");
12881 yyerror0(
"formal argument cannot be a class variable");
12884 yyerror0(
"formal argument must be local variable");
12888 lhs = dispatch1(param_error, lhs);
12909 if (len > 5 && name[nlen = len - 5] ==
'-') {
12910 if (
rb_memcicmp(name + nlen + 1,
"unix", 4) == 0)
12913 if (len > 4 && name[nlen = len - 4] ==
'-') {
12916 if (
rb_memcicmp(name + nlen + 1,
"mac", 3) == 0 &&
12917 !(len == 8 &&
rb_memcicmp(name,
"utf8-mac", len) == 0))
12925 parser_set_encode(
struct parser_params *parser,
const char *name)
12932 excargs[1] =
rb_sprintf(
"unknown encoding name: %s", name);
12949 for (i = 0; i < n; ++i) {
12972 magic_comment_encoding(
struct parser_params *parser,
const char *name,
const char *
val)
12974 if (!comment_at_top(parser)) {
12977 parser_set_encode(parser, val);
12981 parser_get_bool(
struct parser_params *parser,
const char *name,
const char *
val)
12984 case 't':
case 'T':
12989 case 'f':
case 'F':
13000 parser_set_token_info(
struct parser_params *parser,
const char *name,
const char *val)
13002 int b = parser_get_bool(parser, name, val);
13007 parser_set_compile_option_flag(
struct parser_params *parser,
const char *name,
const char *val)
13016 b = parser_get_bool(parser, name, val);
13025 # if WARN_PAST_SCOPE 13027 parser_set_past_scope(
struct parser_params *parser,
const char *name,
const char *val)
13029 int b = parser_get_bool(parser, name, val);
13030 if (b >= 0) parser->past_scope_enabled = b;
13041 {
"coding", magic_comment_encoding, parser_encode_length},
13042 {
"encoding", magic_comment_encoding, parser_encode_length},
13043 {
"frozen_string_literal", parser_set_compile_option_flag},
13044 {
"warn_indent", parser_set_token_info},
13045 # if WARN_PAST_SCOPE 13046 {
"warn_past_scope", parser_set_past_scope},
13050 static const char *
13051 magic_comment_marker(
const char *str,
long len)
13058 if (str[i-1] ==
'*' && str[i-2] ==
'-') {
13059 return str + i + 1;
13064 if (i + 1 >= len)
return 0;
13065 if (str[i+1] !=
'-') {
13068 else if (str[i-1] !=
'-') {
13072 return str + i + 2;
13084 parser_magic_comment(
struct parser_params *parser,
const char *str,
long len)
13087 VALUE name = 0, val = 0;
13088 const char *beg, *end, *vbeg, *vend;
13089 #define str_copy(_s, _p, _n) ((_s) \ 13090 ? (void)(rb_str_resize((_s), (_n)), \ 13091 MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \ 13092 : (void)((_s) = STR_NEW((_p), (_n)))) 13094 if (len <= 7)
return FALSE;
13095 if (!!(beg = magic_comment_marker(str, len))) {
13096 if (!(end = magic_comment_marker(beg, str + len - beg)))
13100 len = end - beg - 3;
13110 for (; len > 0 && *str; str++, --
len) {
13112 case '\'':
case '"':
case ':':
case ';':
13117 for (beg = str; len > 0; str++, --
len) {
13119 case '\'':
case '"':
case ':':
case ';':
13127 for (end = str; len > 0 &&
ISSPACE(*str); str++, --
len);
13130 if (!indicator)
return FALSE;
13134 do str++;
while (--len > 0 &&
ISSPACE(*str));
13137 for (vbeg = ++str; --len > 0 && *str !=
'"'; str++) {
13138 if (*str ==
'\\') {
13150 for (vbeg = str; len > 0 && *str !=
'"' && *str !=
';' && !
ISSPACE(*str); --
len, str++);
13154 while (len > 0 && (*str ==
';' ||
ISSPACE(*str))) --len, str++;
13157 while (len > 0 && (
ISSPACE(*str))) --len, str++;
13158 if (len)
return FALSE;
13164 for (i = 0; i < n; ++i) {
13165 if (s[i] ==
'-') s[i] =
'_';
13171 n = (*p->
length)(parser, vbeg, n);
13177 }
while (++p < magic_comments +
numberof(magic_comments));
13188 set_file_encoding(
struct parser_params *parser,
const char *str,
const char *send)
13191 const char *beg = str;
13195 if (send - str <= 6)
return;
13197 case 'C':
case 'c': str += 6;
continue;
13198 case 'O':
case 'o': str += 5;
continue;
13199 case 'D':
case 'd': str += 4;
continue;
13200 case 'I':
case 'i': str += 3;
continue;
13201 case 'N':
case 'n': str += 2;
continue;
13202 case 'G':
case 'g': str += 1;
continue;
13203 case '=':
case ':':
13216 if (++str >= send)
return;
13219 if (*str !=
'=' && *str !=
':')
return;
13224 while ((*str ==
'-' || *str ==
'_' ||
ISALNUM(*str)) && ++str < send);
13225 s =
rb_str_new(beg, parser_encode_length(parser, beg, str - beg));
13241 (
unsigned char)
lex_p[0] == 0xbb &&
13242 (
unsigned char)
lex_p[1] == 0xbf) {
13257 #define ambiguous_operator(tok, op, syn) ( \ 13258 rb_warning0("`"op"' after local variable or literal is interpreted as binary operator"), \ 13259 rb_warning0("even though it seems like "syn"")) 13261 #define ambiguous_operator(tok, op, syn) \ 13262 dispatch2(operator_ambiguous, TOKEN2VAL(tok), rb_str_new_cstr(syn)) 13264 #define warn_balanced(tok, op, syn) ((void) \ 13265 (!IS_lex_state_for(last_state, EXPR_CLASS|EXPR_DOT|EXPR_FNAME|EXPR_ENDFN) && \ 13266 space_seen && !ISSPACE(c) && \ 13267 (ambiguous_operator(tok, op, syn), 0)), \ 13268 (enum yytokentype)(tok)) 13271 parse_rational(
struct parser_params *parser,
char *str,
int len,
int seen_point)
13274 char *point = &str[seen_point];
13275 size_t fraclen = len-seen_point-1;
13276 memmove(point, point+1, fraclen+1);
13284 int is_float, seen_point, seen_e, nondigit;
13287 is_float = seen_point = seen_e = nondigit = 0;
13290 if (c ==
'-' || c ==
'+') {
13295 #define no_digits() do {yyerror0("numeric literal without digits"); return 0;} while (0) 13298 if (c ==
'x' || c ==
'X') {
13304 if (nondigit)
break;
13311 }
while ((c =
nextc()) != -1);
13315 if (
toklen() == start) {
13318 else if (nondigit)
goto trailing_uc;
13322 if (c ==
'b' || c ==
'B') {
13325 if (c ==
'0' || c ==
'1') {
13328 if (nondigit)
break;
13332 if (c !=
'0' && c !=
'1')
break;
13335 }
while ((c =
nextc()) != -1);
13339 if (
toklen() == start) {
13342 else if (nondigit)
goto trailing_uc;
13346 if (c ==
'd' || c ==
'D') {
13352 if (nondigit)
break;
13359 }
while ((c =
nextc()) != -1);
13363 if (
toklen() == start) {
13366 else if (nondigit)
goto trailing_uc;
13374 if (c ==
'o' || c ==
'O') {
13377 if (c == -1 || c ==
'_' || !
ISDIGIT(c)) {
13381 if (c >=
'0' && c <=
'7') {
13386 if (nondigit)
break;
13390 if (c < '0' || c >
'9')
break;
13391 if (c >
'7')
goto invalid_octal;
13394 }
while ((c =
nextc()) != -1);
13398 if (nondigit)
goto trailing_uc;
13407 if (c >
'7' && c <=
'9') {
13411 else if (c ==
'.' || c ==
'e' || c ==
'E') {
13423 case '0':
case '1':
case '2':
case '3':
case '4':
13424 case '5':
case '6':
case '7':
case '8':
case '9':
13430 if (nondigit)
goto trailing_uc;
13431 if (seen_point || seen_e) {
13436 if (c0 == -1 || !
ISDIGIT(c0)) {
13461 if (c !=
'-' && c !=
'+' && !
ISDIGIT(c)) {
13470 nondigit = (c ==
'-' || c ==
'+') ? c : 0;
13474 if (nondigit)
goto decode_num;
13490 snprintf(tmp,
sizeof(tmp),
"trailing `%c' in number", nondigit);
13501 v = parse_rational(parser,
tok(),
toklen(), seen_point);
13505 if (
errno == ERANGE) {
13572 const char *start =
lex_p - 1, *p = start;
13574 int n = parser_precise_mbclen(parser, p);
13575 if (n < 0)
return -1;
13578 rb_warn2(
"`?' just followed by `%.*s' is interpreted as" \
13579 " a conditional operator, put a space after `?'",
13584 else if (c ==
'\\') {
13588 if (!parser_tokadd_utf8(parser, &enc, -1, 0, 0))
13620 if (c == -1 || !
ISALNUM(c)) {
13627 yyerror0(
"unknown type of %string");
13631 if (c == -1 || term == -1) {
13636 if (term ==
'(') term =
')';
13637 else if (term ==
'[') term =
']';
13638 else if (term ==
'{') term =
'}';
13639 else if (term ==
'<') term =
'>';
13689 yyerror0(
"unknown type of %string");
13693 if ((c =
nextc()) ==
'=') {
13733 const unsigned long nth_ref_max =
13734 ((FIXNUM_MAX < INT_MAX) ? FIXNUM_MAX : INT_MAX) >> 1;
13738 if (overflow || n > nth_ref_max) {
13815 case '1':
case '2':
case '3':
13816 case '4':
case '5':
case '6':
13817 case '7':
case '8':
case '9':
13822 }
while (c != -1 &&
ISDIGIT(c));
13844 if (tokadd_ident(parser, c))
return 0;
13846 tokenize_ident(parser, last_state);
13854 register int c =
nextc();
13864 if (result ==
tIVAR) {
13874 if (result ==
tIVAR) {
13883 if (tokadd_ident(parser, c))
return 0;
13885 tokenize_ident(parser, last_state);
13890 parse_ident(
struct parser_params *parser,
int c,
int cmd_state)
13902 if ((c ==
'!' || c ==
'?') && !
peek(
'=')) {
13956 if (kw->
id[0] != kw->
id[1])
13978 ident = tokenize_ident(parser, last_state);
13992 int space_seen = 0;
13996 int fallthru =
FALSE;
14015 switch (c =
nextc()) {
14023 case ' ':
case '\t':
case '\f':
case '\r':
14027 while ((c =
nextc())) {
14029 case ' ':
case '\t':
case '\f':
case '\r':
14046 if (comment_at_top(parser)) {
14056 c = (
IS_lex_state(EXPR_BEG|EXPR_CLASS|EXPR_FNAME|EXPR_DOT) &&
14064 goto normal_newline;
14068 while ((c =
nextc())) {
14070 case ' ':
case '\t':
case '\f':
case '\r':
14077 if (
peek(
'.') == (c ==
'&')) {
14090 parser->tokp =
lex_p;
14093 goto normal_newline;
14102 if ((c =
nextc()) ==
'*') {
14103 if ((c =
nextc()) ==
'=') {
14110 rb_warning0(
"`**' interpreted as argument prefix");
14128 rb_warning0(
"`*' interpreted as argument prefix");
14165 int first_p =
TRUE;
14180 if (c !=
'=')
continue;
14181 if (c ==
'=' && strncmp(
lex_p,
"end", 3) == 0 &&
14193 if ((c =
nextc()) ==
'=') {
14194 if ((c =
nextc()) ==
'=') {
14203 else if (c ==
'>') {
14217 if (token)
return token;
14228 if ((c =
nextc()) ==
'>') {
14235 if ((c =
nextc()) ==
'=') {
14248 if ((c =
nextc()) ==
'=') {
14252 if ((c =
nextc()) ==
'=') {
14289 return parse_qmark(parser, space_seen);
14292 if ((c =
nextc()) ==
'&') {
14294 if ((c =
nextc()) ==
'=') {
14302 else if (c ==
'=') {
14307 else if (c ==
'.') {
14315 !(c ==
'\'' || c ==
'"' ||
14317 rb_warning0(
"`&' interpreted as argument prefix");
14331 if ((c =
nextc()) ==
'|') {
14333 if ((c =
nextc()) ==
'=') {
14369 return parse_numeric(parser,
'+');
14411 if ((c =
nextc()) ==
'.') {
14412 if ((c =
nextc()) ==
'.') {
14420 yyerror0(
"no .<digit> floating literal anymore; put 0 before dot");
14425 case '0':
case '1':
case '2':
case '3':
case '4':
14426 case '5':
case '6':
case '7':
case '8':
case '9':
14427 return parse_numeric(parser, c);
14479 if ((c =
nextc()) ==
'=') {
14494 if ((c =
nextc()) ==
'=') {
14514 if ((c =
nextc()) !=
'@') {
14528 else if (!space_seen) {
14535 rb_warning0(
"parentheses after method name is interpreted as " 14536 "an argument list, not a decomposed argument");
14547 if ((c =
nextc()) ==
']') {
14549 if ((c =
nextc()) ==
'=') {
14605 return parse_percent(parser, space_seen, last_state);
14608 return parse_gvar(parser, last_state);
14611 return parse_atmark(parser, last_state);
14638 return parse_ident(parser, c, cmd_state);
14646 parser->
lval = lval;
14648 t = parser_yylex(parser);
14660 #define LVAR_USED ((ID)1 << (sizeof(ID) * CHAR_BIT - 1)) 14674 nodetype(
NODE *node)
14680 nodeline(
NODE *node)
14686 newline_node(
NODE *node)
14689 node = remove_begin(node);
14700 if (orig == (
NODE*)1)
return;
14709 #define parser_warning(node, mesg) parser_warning(parser, (node), (mesg)) 14716 #define parser_warn(node, mesg) parser_warn(parser, (node), (mesg)) 14721 NODE *end, *h = head, *nd;
14723 if (tail == 0)
return head;
14725 if (h == 0)
return tail;
14766 tail->nd_end = tail;
14768 end->nd_next = tail;
14769 h->nd_end = tail->nd_end;
14779 if (list == 0)
return new_list(item, column);
14780 if (list->nd_next) {
14781 last = list->nd_next->nd_end;
14787 list->nd_alen += 1;
14788 last->nd_next =
new_list(item, column);
14789 list->nd_next->nd_end = last->nd_next;
14795 list_concat(
NODE *head,
NODE *tail)
14799 if (head->nd_next) {
14800 last = head->nd_next->nd_end;
14806 head->nd_alen += tail->nd_alen;
14807 last->nd_next = tail;
14808 if (tail->nd_next) {
14809 head->nd_next->nd_end = tail->nd_next->nd_end;
14812 head->nd_next->nd_end = tail;
14821 if (
NIL_P(tail))
return 1;
14842 if (!head)
return tail;
14843 if (!tail)
return head;
14863 if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
14866 lit = headlast->nd_lit;
14869 lit = head->nd_lit;
14872 if (!literal_concat0(parser, lit, tail->nd_lit)) {
14887 if (!literal_concat0(parser, head->nd_lit, tail->nd_lit))
14889 tail->nd_lit = head->nd_lit;
14893 else if (
NIL_P(tail->nd_lit)) {
14895 head->nd_alen += tail->nd_alen - 1;
14896 head->nd_next->nd_end->nd_next = tail->nd_next;
14897 head->nd_next->nd_end = tail->nd_next->nd_end;
14900 else if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
14902 lit = headlast->nd_lit;
14903 if (!literal_concat0(parser, lit, tail->nd_lit))
14905 tail->nd_lit =
Qnil;
14910 tail->nd_head =
new_str(tail->nd_lit, column);
14911 list_concat(head, tail);
14959 fixpos(expr, recv);
14999 const VALUE lit = node1->nd_lit;
15030 # if WARN_PAST_SCOPE 15036 if (vtable_included(past,
id))
return 1;
15073 switch (id_type(
id)) {
15091 # if WARN_PAST_SCOPE 15120 kwd_append(
NODE *kwlist,
NODE *kw)
15123 NODE *kws = kwlist;
15124 while (kws->nd_next) {
15125 kws = kws->nd_next;
15141 new_regexp_gen(
struct parser_params *parser,
NODE *node,
int options,
int column)
15151 VALUE src = node->nd_lit;
15163 for (list = (prev = node)->
nd_next;
list; list = list->nd_next) {
15165 VALUE tail = list->nd_head->nd_lit;
15167 VALUE lit = prev == node ? prev->nd_lit : prev->nd_head->nd_lit;
15168 if (!literal_concat0(parser, lit, tail)) {
15173 prev->nd_next = list->nd_next;
15186 if (!node->nd_next) {
15187 VALUE src = node->nd_lit;
15434 if (ripper_is_node_yylval(re)) {
15435 src =
RNODE(re)->nd_cval;
15436 re =
RNODE(re)->nd_rval;
15438 if (ripper_is_node_yylval(opt)) {
15439 options = (int)
RNODE(opt)->nd_tag;
15440 opt =
RNODE(opt)->nd_rval;
15442 if (src &&
NIL_P(parser_reg_compile(parser, src, options, &
err))) {
15445 return dispatch2(regexp_literal, re, opt);
15451 return dispatch1(xstring_literal, str);
15457 "EXPR_BEG",
"EXPR_END",
"EXPR_ENDARG",
"EXPR_ENDFN",
"EXPR_ARG",
15458 "EXPR_CMDARG",
"EXPR_MID",
"EXPR_FNAME",
"EXPR_DOT",
"EXPR_CLASS",
15459 "EXPR_LABEL",
"EXPR_LABELED",
"EXPR_FITEM",
15466 unsigned int mask = 1;
15467 static const char none[] =
"EXPR_NONE";
15470 if ((
unsigned)state & mask) {
15504 append_lex_state_name(from, mesg);
15506 append_lex_state_name(to, mesg);
15508 flush_debug_buffer(parser, parser->
debug_output, mesg);
15515 return append_lex_state_name(state,
rb_str_new(0, 0));
15519 append_bitstack_value(stack_type stack,
VALUE mesg)
15526 for (; mask && !(stack & mask); mask >>= 1)
continue;
15527 for (; mask; mask >>= 1)
rb_str_cat(mesg, stack & mask ?
"1" :
"0", 1);
15533 const char *name,
int line)
15536 append_bitstack_value(stack, mesg);
15538 flush_debug_buffer(parser, parser->
debug_output, mesg);
15554 dispatch1(parse_error, mesg);
15559 append_lex_state_name(
lex_state, mesg);
15575 assignable_result0(
NODE *node,
int column)
15592 # define assignable_result(x) (lhs) 15593 # define parser_yyerror(parser, x) (lhs = assign_error_gen(parser, lhs)) 15595 # define assignable_result(x) assignable_result0(x, column) 15600 yyerror0(
"Can't change the value of self");
15609 yyerror0(
"Can't assign to false");
15612 yyerror0(
"Can't assign to __FILE__");
15615 yyerror0(
"Can't assign to __LINE__");
15618 yyerror0(
"Can't assign to __ENCODING__");
15621 switch (id_type(
id)) {
15652 yyerror0(
"dynamic constant assignment");
15661 #undef assignable_result 15662 #undef parser_yyerror 15666 is_private_local_id(
ID name)
15669 if (name == idUScore)
return 1;
15679 if (is_private_local_id(name))
return 1;
15682 yyerror0(
"duplicated argument name");
15695 yyerror0(
"duplicated argument name");
15704 shadowing_lvar_0(parser, name);
15717 if (!shadowing_lvar_0(parser, name))
return;
15766 if (!node2)
return node1;
15769 if (node1->nd_head)
15770 node1->nd_head =
arg_concat(node1->nd_head, node2, column);
15772 node1->nd_head =
new_list(node2, column);
15776 node1->nd_body = list_concat(
new_list(node1->nd_body, column), node2);
15782 node1->nd_body = list_concat(node1->nd_body, node2);
15795 if (!node1)
return new_list(node2, column);
15800 node1->nd_head =
arg_append(node1->nd_head, node2, column);
15813 splat_array(
NODE* node)
15823 if (!lhs)
return 0;
15834 lhs->nd_value = rhs;
15839 lhs->nd_args =
arg_append(lhs->nd_args, rhs, column);
15865 if (!cond)
yyerror0(
"void value expression");
15870 while (node->nd_next) {
15871 node = node->nd_next;
15873 node = node->nd_head;
15877 node = node->nd_body;
15882 if (!node->nd_body) {
15883 node = node->nd_else;
15886 else if (!node->nd_else) {
15887 node = node->nd_body;
15891 node = node->nd_else;
15897 node = node->nd_2nd;
15911 const char *useless = 0;
15918 switch (node->nd_mid) {
15949 useless =
"a variable";
15952 useless =
"a constant";
15959 useless =
"a literal";
15984 useless =
"defined?";
16001 if (!node->nd_next)
return;
16003 node = node->nd_next;
16008 remove_begin(
NODE *node)
16010 NODE **n = &node, *n1 = node;
16012 *n = n1 = n1->nd_body;
16018 remove_begin_all(
NODE *node)
16020 NODE **n = &node, *n1 = node;
16022 *n = n1 = n1->nd_body;
16030 NODE *node = *body;
16036 #define subnodes(n1, n2) \ 16037 ((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \ 16038 (!node->n2) ? (body = &node->n1, 1) : \ 16039 (reduce_nodes(&node->n1), body = &node->n2, 1)) 16049 *body = node = node->nd_stts;
16053 *body = node = node->nd_body;
16057 body = &node->nd_end->nd_head;
16064 body = &node->nd_body;
16073 if (node->nd_else) {
16074 body = &node->nd_resq;
16090 is_static_content(
NODE *node)
16092 if (!node)
return 1;
16095 if (!(node = node->nd_head))
break;
16098 if (!is_static_content(node->nd_head))
return 0;
16099 }
while ((node = node->nd_next) != 0);
16129 if (!node->nd_value)
return 1;
16130 if (is_static_content(node->nd_value)) {
16132 parser_warn(node->nd_value,
"found = in conditional, should be ==");
16138 warn_unless_e_option(
struct parser_params *parser,
NODE *node,
const char *str)
16140 if (!e_option_supplied(parser))
parser_warn(node, str);
16144 warning_unless_e_option(
struct parser_params *parser,
NODE *node,
const char *str)
16156 if (node == 0)
return 0;
16161 warn_unless_e_option(parser, node,
"integer literal in conditional range");
16164 return cond0(parser, node,
FALSE, column);
16168 literal_node(
NODE *node)
16170 if (!node)
return 1;
16191 if (node == 0)
return 0;
16192 assign_in_cond(parser, node);
16198 if (!method_op)
rb_warn0(
"string literal in condition");
16206 warning_unless_e_option(parser, node,
"regex literal in condition");
16215 node->nd_1st = cond0(parser, node->nd_1st,
FALSE, column);
16216 node->nd_2nd = cond0(parser, node->nd_2nd,
FALSE, column);
16221 node->nd_beg = range_op(parser, node->nd_beg, column);
16222 node->nd_end = range_op(parser, node->nd_end, column);
16225 if (!method_op && !e_option_supplied(parser)) {
16226 int b = literal_node(node->nd_beg);
16227 int e = literal_node(node->nd_end);
16241 warn_unless_e_option(parser, node,
"regex literal in condition");
16257 if (node == 0)
return 0;
16258 return cond0(parser, node, method_op, column);
16266 if (!cc)
return right;
16267 cc = cond0(parser, cc,
FALSE, column);
16268 node_if =
NEW_IF(cc, left, right);
16270 return newline_node(node_if);
16278 if (!cc)
return right;
16279 cc = cond0(parser, cc,
FALSE, column);
16282 return newline_node(node_unless);
16291 NODE *node = left, *second;
16292 while ((second = node->nd_2nd) != 0 && (
enum node_type)
nd_type(second) == type) {
16295 node->nd_2nd =
NEW_NODE(type, second, right, 0);
16299 op =
NEW_NODE(type, left, right, 0);
16316 no_blockarg(parser, node);
16318 if (node->nd_next == 0) {
16319 node = node->nd_head;
16333 if (node) no_blockarg(parser, node);
16343 int type =
TYPE(lit);
16369 rb_parser_fatal(parser,
"unknown literal type (%d) passed to negate_lit", type);
16376 arg_blk_pass(
NODE *node1,
NODE *node2)
16379 node2->nd_head = node1;
16393 args->
pre_init = m ? m->nd_next : 0;
16418 if (parser->
error_p)
return node;
16437 NODE *val_node = kwn->nd_body->nd_value;
16438 ID vid = kwn->nd_body->nd_vid;
16440 if (val_node == (
NODE *)-1) {
16447 kwn = kwn->nd_next;
16452 vtable_pop(
lvtbl->args, vtable_size(required_kw_vars) + vtable_size(kw_vars) + (b != 0));
16454 for (i=0; i<vtable_size(required_kw_vars); i++)
arg_var(required_kw_vars->
tbl[i]);
16455 for (i=0; i<vtable_size(kw_vars); i++)
arg_var(kw_vars->
tbl[i]);
16491 lit = node->nd_lit;
16509 node->nd_next->nd_end = node->nd_next;
16510 node->nd_next->nd_next = 0;
16512 list_concat(*result, node);
16523 while (hash && hash->nd_head && hash->nd_next) {
16524 NODE *head = hash->nd_head;
16525 NODE *value = hash->nd_next;
16526 NODE *next = value->nd_next;
16530 st_lookup(literal_keys, (key = head->nd_lit), &data)) {
16532 "key %+"PRIsVALUE" is duplicated and overwritten on line %d",
16533 head->nd_lit,
nd_line(head));
16534 head = ((
NODE *)data)->nd_next;
16535 head->nd_head =
block_append(head->nd_head, value->nd_head, column);
16545 if (!result) result = hash;
16546 else list_concat(result, hash);
16555 if (hash) hash = remove_duplicate_keys(parser, hash, column);
16569 ID vid = lhs->nd_vid;
16571 lhs->nd_value = rhs;
16575 switch (id_type(vid)) {
16579 asgn->nd_aid = vid;
16583 else if (op ==
tANDOP) {
16584 lhs->nd_value = rhs;
16601 ID atype,
ID attr,
ID op,
NODE *rhs,
int column)
16608 else if (op ==
tANDOP) {
16625 else if (op ==
tANDOP) {
16651 yyerror0(
"dynamic constant assignment");
16653 return new_cdecl(0, 0, (path), column);
16659 return dispatch3(opassign, lhs, op, rhs);
16665 VALUE recv = dispatch3(field, lhs, type, attr);
16666 return dispatch3(opassign, recv, op, rhs);
16672 VALUE ret = dispatch3(call, (r), (q), (m));
16673 return method_optarg(ret, (a));
16680 path = dispatch1(assign_error, path);
16689 a = dispatch1(assign_error, a);
16707 if (!local->
used)
return;
16711 if (cnt != local->
vars->
pos) {
16714 for (i = 0; i <
cnt; ++i) {
16715 if (!v[i] || (u[i] &
LVAR_USED))
continue;
16716 if (is_private_local_id(v[i]))
continue;
16722 local_push_gen(
struct parser_params *parser,
int inherit_dvars)
16730 local->
used = !(inherit_dvars &&
16733 # if WARN_PAST_SCOPE 16746 warn_unused_var(parser,
lvtbl);
16749 # if WARN_PAST_SCOPE 16750 while (
lvtbl->past) {
16767 int cnt_args = vtable_size(
lvtbl->args);
16768 int cnt_vars = vtable_size(
lvtbl->vars);
16769 int cnt = cnt_args + cnt_vars;
16773 if (cnt <= 0)
return 0;
16777 for (i = 0, j = cnt_args+1; i < cnt_vars; ++i) {
16779 if (!vtable_included(
lvtbl->args,
id)) {
16783 if (--j < cnt)
REALLOC_N(buf,
ID, (cnt = j) + 1);
16807 struct vtable *vars, *args, *used;
16809 vars =
lvtbl->vars;
16810 args =
lvtbl->args;
16811 used =
lvtbl->used;
16816 if (used) used = used->
prev;
16822 else if (vtable_included(args,
id)) {
16826 int i = vtable_included(vars,
id);
16827 if (i && used && vidrefp) *vidrefp = &used->
tbl[i-1];
16832 static const struct vtable *
16840 return lvtbl->args;
16846 struct vtable *tmp = *vtblp;
16847 *vtblp = tmp->
prev;
16848 # if WARN_PAST_SCOPE 16849 if (parser->past_scope_enabled) {
16863 if ((tmp =
lvtbl->used) != 0) {
16864 warn_unused_var(parser,
lvtbl);
16868 dyna_pop_vtable(parser, &
lvtbl->args);
16869 dyna_pop_vtable(parser, &
lvtbl->vars);
16875 while (
lvtbl->args != lvargs) {
16876 dyna_pop_1(parser);
16877 if (!
lvtbl->args) {
16883 dyna_pop_1(parser);
16895 struct vtable *vars, *args, *used;
16898 args =
lvtbl->args;
16899 vars =
lvtbl->vars;
16900 used =
lvtbl->used;
16903 if (vtable_included(args,
id)) {
16906 if ((i = vtable_included(vars,
id)) != 0) {
16907 if (used && vidrefp) *vidrefp = &used->
tbl[i-1];
16912 if (!vidrefp) used = 0;
16913 if (used) used = used->
prev;
16926 return (vtable_included(
lvtbl->args,
id) ||
16927 vtable_included(
lvtbl->vars,
id));
16934 "regexp encoding option '%c' differs from source encoding '%s'",
16980 if (c) reg_fragment_enc_error(parser, str, c);
17006 int back_num,
int *back_refs,
OnigRegex regex,
void *arg0)
17011 long len = name_end -
name;
17012 const char *s = (
const char *)name;
17031 reg_named_capture_assign_gen(
struct parser_params* parser,
VALUE regexp,
int column)
17065 re = parser_reg_compile(parser, str, options);
17081 if (c) reg_fragment_enc_error(parser, str, c);
17096 NODE *scope = node;
17099 if (!node)
return node;
17103 node = node->nd_body;
17107 node = node->nd_body;
17115 prelude->nd_body = node;
17116 scope->nd_body = prelude;
17119 scope->nd_body = node;
17129 NODE *scope = node;
17132 if (!node)
return node;
17136 node = node->nd_body;
17140 node = node->nd_body;
17156 prelude->nd_body = node;
17157 scope->nd_body = prelude;
17160 scope->nd_body = node;
17190 parser->delayed =
Qnil;
17191 parser->result =
Qnil;
17192 parser->parsing_thread =
Qnil;
17202 #define parser_mark ripper_parser_mark 17203 #define parser_free ripper_parser_free 17207 parser_mark(
void *ptr)
17236 parser_free(
void *ptr)
17244 for (local =
lvtbl; local; local =
prev) {
17246 prev = local->
prev;
17251 while ((ptinfo = parser->
token_info) != 0) {
17260 parser_memsize(
const void *ptr)
17264 size_t size =
sizeof(*parser);
17267 for (local =
lvtbl; local; local = local->
prev) {
17268 size +=
sizeof(*local);
17289 #undef rb_reserved_word 17294 return reserved_word(str, len);
17302 &parser_data_type, p);
17303 parser_initialize(p);
17321 #define rb_parser_end_seen_p ripper_parser_end_seen_p 17322 #define rb_parser_encoding ripper_parser_encoding 17323 #define rb_parser_get_yydebug ripper_parser_get_yydebug 17324 #define rb_parser_set_yydebug ripper_parser_set_yydebug 17325 static VALUE ripper_parser_end_seen_p(
VALUE vparser);
17326 static VALUE ripper_parser_encoding(
VALUE vparser);
17327 static VALUE ripper_parser_get_yydebug(
VALUE self);
17337 ripper_error_p(
VALUE vparser)
17403 yydebug =
RTEST(flag);
17409 #define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE)) 17410 #define NEWHEAP() (rb_imemo_alloc_t *)rb_imemo_new(imemo_alloc, 0, (VALUE)parser->heap, 0, 0) 17411 #define ADD2HEAP(n, c, p) ((parser->heap = (n))->ptr = (p), \ 17412 (n)->cnt = (c), (p)) 17429 void *ptr =
xcalloc(nelem, size);
17440 if (ptr && (n = parser->
heap) !=
NULL) {
17442 if (n->
ptr == ptr) {
17459 while ((n = *prev) !=
NULL) {
17460 if (n->ptr == ptr) {
17488 parser_compile_error(
struct parser_params *parser,
const char *fmt, ...)
17506 #ifdef RIPPER_DEBUG 17507 extern int rb_is_pointer_to_heap(
VALUE);
17513 if (x ==
Qfalse)
return x;
17514 if (x ==
Qtrue)
return x;
17515 if (x ==
Qnil)
return x;
17520 if (!rb_is_pointer_to_heap(x))
17532 if (
nd_type(x) != NODE_RIPPER) {
17535 return ((
NODE *)x)->nd_rval;
17544 #define validate(x) ((x) = get_value(x)) 17556 return rb_funcall(parser->value, mid, 1, a);
17564 return rb_funcall(parser->value, mid, 2, a, b);
17573 return rb_funcall(parser->value, mid, 3, a, b, c);
17583 return rb_funcall(parser->value, mid, 4, a, b, c, d);
17594 return rb_funcall(parser->value, mid, 5, a, b, c, d, e);
17607 return rb_funcall(parser->value, mid, 7, a, b, c, d, e, f, g);
17611 ripper_get_id(
VALUE v)
17616 if (
nd_type(nd) != NODE_RIPPER)
return 0;
17621 ripper_get_value(
VALUE v)
17628 return nd->nd_rval;
17638 ripper_compile_error(
struct parser_params *parser,
const char *fmt, ...)
17643 va_start(args, fmt);
17647 ripper_error_gen(parser);
17656 "gets returned %"PRIsVALUE" (expected String or nil)",
17669 ripper_s_allocate(
VALUE klass)
17673 &parser_data_type, p);
17678 #define ripper_initialized_p(r) ((r)->lex.input != 0) 17694 VALUE src, fname, lineno;
17697 rb_scan_args(argc, argv,
"12", &src, &fname, &lineno);
17702 lex_gets = ripper_lex_get_generic;
17710 if (
NIL_P(fname)) {
17718 parser_initialize(parser);
17727 struct ripper_args {
17734 ripper_parse0(
VALUE parser_v)
17739 parser_prepare(parser);
17740 ripper_yyparse((
void*)parser);
17741 return parser->result;
17745 ripper_ensure(
VALUE parser_v)
17750 parser->parsing_thread =
Qnil;
17761 ripper_parse(
VALUE self)
17766 if (!ripper_initialized_p(parser)) {
17769 if (!
NIL_P(parser->parsing_thread)) {
17776 rb_ensure(ripper_parse0,
self, ripper_ensure,
self);
17778 return parser->result;
17789 ripper_column(
VALUE self)
17795 if (!ripper_initialized_p(parser)) {
17798 if (
NIL_P(parser->parsing_thread))
return Qnil;
17810 ripper_filename(
VALUE self)
17815 if (!ripper_initialized_p(parser)) {
17829 ripper_lineno(
VALUE self)
17834 if (!ripper_initialized_p(parser)) {
17837 if (
NIL_P(parser->parsing_thread))
return Qnil;
17848 ripper_state(
VALUE self)
17853 if (!ripper_initialized_p(parser)) {
17856 if (
NIL_P(parser->parsing_thread))
return Qnil;
17860 #ifdef RIPPER_DEBUG 17881 ripper_lex_state_name(
VALUE self,
VALUE state)
17889 ripper_init_eventids1();
17890 ripper_init_eventids2();
17899 InitVM_ripper(
void)
17918 #ifdef RIPPER_DEBUG 17929 <% @exprs.each
do |expr, desc| -%>
17933 ripper_init_eventids1_table(Ripper);
17934 ripper_init_eventids2_table(Ripper);
#define STRNCASECMP(s1, s2, n)
void rb_define_global_const(const char *, VALUE)
#define new_attr_op_assign(lhs, type, attr, op, rhs, column)
void rb_fatal(const char *fmt,...)
NODE * rb_parser_compile_string_path(VALUE vparser, VALUE f, VALUE s, int line)
ONIG_EXTERN int onig_foreach_name(OnigRegex reg, int(*func)(const OnigUChar *, const OnigUChar *, int, int *, OnigRegex, void *), void *arg)
VALUE rb_ary_unshift(VALUE ary, VALUE item)
int rb_enc_codelen(int c, rb_encoding *enc)
#define heredoc_line_indent
#define match_op(node1, node2, column)
#define NEW_OP_ASGN_AND(i, val)
#define const_decl(path, column)
#define YY_REDUCE_PRINT(Rule)
#define shadowing_lvar(name)
#define MBCLEN_CHARFOUND_P(ret)
#define RRATIONAL_SET_NUM(rat, n)
#define RE_OPTION_ENCODING_IDX(o)
#define NEW_OP_ASGN1(p, id, a)
void * rb_parser_malloc(struct parser_params *parser, size_t size)
#define mixed_escape(beg, enc1, enc2)
#define RUBY_TYPED_FREE_IMMEDIATELY
long rb_str_coderange_scan_restartable(const char *, const char *, rb_encoding *, int *)
size_t strlen(const char *)
#define new_command_qcall(q, r, m, a, column)
#define new_yield(node, column)
VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline)
#define new_do_body(param, stmt, column)
#define unterminated_literal(mesg)
#define scan_oct(s, l, e)
#define local_id_ref(id, vidp)
#define dispatch_heredoc_end()
#define formal_argument(id)
#define set_number_literal(v, t, f)
const struct kwtable * rb_reserved_word(const char *str, unsigned int len)
#define YY_STACK_PRINT(Bottom, Top)
ID rb_intern2(const char *, long)
void rb_define_singleton_method(VALUE obj, const char *name, VALUE(*func)(ANYARGS), int argc)
Defines a singleton method for obj.
#define RUBY_DTRACE_PARSE_HOOK(name)
#define IS_LABEL_POSSIBLE()
#define rb_usascii_str_new2
RUBY_FUNC_EXPORTED const unsigned int ruby_global_name_punct_bits[(0x7e - 0x20+31)/32]
void rb_raise(VALUE exc, const char *fmt,...)
unsigned short int yytype_uint16
VALUE rb_str_cat(VALUE, const char *, long)
NODE * rb_parser_compile_file_path(VALUE vparser, VALUE fname, VALUE file, int start)
VALUE rb_reg_check_preprocess(VALUE)
#define RE_OPTION_ENCODING(e)
#define set_yylval_str(x)
#define set_yylval_literal(x)
#define lambda_beginning_p()
#define new_brace_body(param, stmt, column)
#define ADD2HEAP(n, c, p)
VALUE rb_io_gets_internal(VALUE io)
VALUE rb_parser_encoding(VALUE vparser)
#define TypedData_Get_Struct(obj, type, data_type, sval)
PRINTF_ARGS(void rb_parser_fatal(struct parser_params *parser, const char *fmt,...), 2, 3)
VALUE rb_suppress_tracing(VALUE(*func)(VALUE), VALUE arg)
void rb_define_private_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
VALUE rb_enc_from_encoding(rb_encoding *encoding)
#define new_ivar(id, column)
int rb_enc_symname2_p(const char *, long, rb_encoding *)
NODE * rb_parser_compile_string(VALUE vparser, const char *f, VALUE s, int line)
VALUE rb_default_coverage(int)
#define IS_lex_state_all(ls)
VALUE rb_ary_push(VALUE ary, VALUE item)
#define new_cdecl(v, val, path, column)
#define NEW_CLASS(n, b, s)
rb_encoding * rb_enc_compatible(VALUE str1, VALUE str2)
#define nd_set_column(n, v)
int rb_local_defined(ID id, const struct rb_block *base_block)
VALUE rb_funcall(VALUE, ID, int,...)
Calls a method.
void rb_str_set_len(VALUE, long)
#define rb_warn2(fmt, a, b)
int rb_enc_str_coderange(VALUE)
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
#define RSTRING_GETMEM(str, ptrvar, lenvar)
#define block_dup_check(n1, n2)
VALUE rb_enc_associate(VALUE obj, rb_encoding *enc)
NODE * rb_parser_compile_cstr(VALUE vparser, const char *f, const char *s, int len, int line)
#define NEW_OP_ASGN2(r, t, i, o, val)
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
#define new_for(var, iter, body, column)
#define rb_warning1(fmt, a)
#define nd_set_type(n, t)
void rb_gc_mark(VALUE ptr)
#define call_uni_op(recv, id, column)
#define rb_enc_islower(c, enc)
#define vtable_pop(tbl, n)
VALUE rb_io_write(VALUE, VALUE)
#define call_bin_op(recv, id, arg1, column)
#define literal_concat(h, t, column)
#define reg_compile(str, options)
#define rb_warn3L(l, fmt, a, b, c)
#define str_copy(_s, _p, _n)
#define RCOMPLEX_SET_IMAG(cmp, i)
VALUE rb_ensure(VALUE(*b_proc)(ANYARGS), VALUE data1, VALUE(*e_proc)(ANYARGS), VALUE data2)
An equivalent to ensure clause.
void rb_gc_force_recycle(VALUE obj)
#define MEMO_NEW(a, b, c)
VALUE rb_parser_set_context(VALUE vparser, const struct rb_block *base, int main)
#define NEW_IASGN(v, val)
#define YYLLOC_DEFAULT(Current, Rhs, N)
rb_encoding * rb_utf8_encoding(void)
#define RE_OPTION_ENCODING_NONE(o)
#define list_append(l, i, column)
#define vtable_add(tbl, id)
#define tokadd_string(f, t, p, n, e)
VALUE rb_str_buf_append(VALUE, VALUE)
#define number_literal_suffix(f)
#define is_identchar(p, e, enc)
#define new_lvar(id, column)
#define st_init_numtable_with_size
#define ENC_CODERANGE_7BIT
const char * rb_obj_classname(VALUE)
RUBY_EXTERN void * memmove(void *, const void *, size_t)
RUBY_EXTERN unsigned long ruby_scan_digits(const char *str, ssize_t len, int base, size_t *retlen, int *overflow)
#define new_resbody(e, s, r, column)
VALUE rb_str_buf_cat(VALUE, const char *, long)
RUBY_SYMBOL_EXPORT_BEGIN typedef unsigned long st_data_t
#define parser_warn(node, mesg)
NODE * rb_parser_compile_file(VALUE vparser, const char *f, VALUE file, int start)
VALUE rb_obj_class(VALUE)
call-seq: obj.class -> class
#define RB_TYPE_P(obj, type)
#define NEW_ATTRASGN(r, m, a)
#define assignable(id, node, column)
#define new_op_assign(lhs, op, rhs, column)
void * rb_parser_realloc(struct parser_params *parser, void *ptr, size_t size)
#define scan_hex(s, l, e)
#define rb_intern_str(string)
#define lex_goto_eol(parser)
#define rb_rational_raw1(x)
VALUE rb_hash_aset(VALUE hash, VALUE key, VALUE val)
VALUE rb_parser_lex_state_name(enum lex_state_e state)
VALUE rb_parser_get_yydebug(VALUE self)
#define SET_LEX_STATE(ls)
#define new_const_op_assign(lhs, op, rhs, column)
void rb_parser_printf(struct parser_params *parser, const char *fmt,...)
#define new_lit(sym, column)
RUBY_EXTERN VALUE rb_cObject
#define yyerror(yylloc, parser, msg)
#define NEW_STRTERM(func, term, paren)
struct parser_params * parser
void * rb_parser_calloc(struct parser_params *parser, size_t nelem, size_t size)
VALUE rb_get_coverages(void)
#define token_info_push(token)
const struct rb_block * base_block
VALUE rb_obj_as_string(VALUE)
void rb_set_errinfo(VALUE err)
Sets the current exception ($!) to the given value.
#define gettable(id, column)
#define keyword__ENCODING__
int rb_ascii8bit_encindex(void)
#define NEW_ARGSPUSH(a, b)
#define new_postarg(i, v, column)
#define NEW_UNLESS(c, t, e)
RUBY_EXTERN VALUE rb_mKernel
VALUE rb_thread_current(void)
#define new_str(s, column)
VALUE rb_define_class(const char *name, VALUE super)
Defines a top-level class.
struct rb_imemo_alloc_struct * next
#define new_scope(a, b, column)
NODE * rb_compile_string(const char *f, VALUE s, int line)
void rb_define_const(VALUE, const char *, VALUE)
#define new_hash(hash, column)
void rb_compile_warn(const char *file, int line, const char *fmt,...)
rb_atomic_t cnt[RUBY_NSIG]
#define new_command(m, a)
#define new_evstr(n, column)
VALUE rb_rational_new(VALUE, VALUE)
#define ALLOCA_N(type, n)
#define NEW_OP_CDECL(v, op, val)
#define ENC_CODERANGE_UNKNOWN
#define RUBY_FUNC_EXPORTED
#define MEMCPY(p1, p2, type, n)
VALUE rb_enc_associate_index(VALUE obj, int idx)
#define dispatch_delayed_token(t)
#define IS_AFTER_OPERATOR()
#define new_zarray(column)
#define new_if(cc, left, right, column)
#define arg_concat(h, t, column)
#define set_yylval_num(x)
#define dsym_node(node, column)
#define parser_encoding_name()
RUBY_EXTERN VALUE rb_int_positive_pow(long x, unsigned long y)
VALUE rb_make_backtrace(void)
void rb_parser_fatal(struct parser_params *parser, const char *fmt,...)
#define NEW_WHEN(c, t, e)
VALUE rb_str_resize(VALUE, long)
#define has_delayed_token()
#define NEW_DASGN(v, val)
#define flush_string_content(enc)
#define NEW_BLOCK_PASS(b)
VALUE rb_str_subseq(VALUE, long, long)
#define dispatch_scan_event(t)
VALUE rb_funcallv_public(VALUE, ID, int, const VALUE *)
Calls a method.
#define REALLOC_N(var, type, n)
#define node_assign(node1, node2, column)
#define heredoc_dedent(str)
int rb_dvar_defined(ID id, const struct rb_block *base_block)
VALUE rb_sprintf(const char *format,...)
#define set_integer_literal(v, f)
#define NEW_OP_ASGN_OR(i, val)
#define rb_enc_isspace(c, enc)
#define ruby_sourcefile_string
int rb_enc_precise_mbclen(const char *p, const char *e, rb_encoding *enc)
#define parser_warning(node, mesg)
#define mixed_error(enc1, enc2)
#define new_dstr(s, column)
#define MEMMOVE(p1, p2, type, n)
#define reg_fragment_setenc(str, options)
VALUE rb_str_vcatf(VALUE, const char *, va_list)
#define RUBY_SYMBOL_EXPORT_END
void rb_compile_warning(const char *file, int line, const char *fmt,...)
#define NEW_RESCUE(b, res, e)
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
#define aryset(node1, node2, column)
unsigned char buf[MIME_BUF_SIZE]
rb_encoding * rb_usascii_encoding(void)
#define rb_enc_isalnum(c, enc)
#define NEW_PRELUDE(p, b, o)
VALUE rb_make_exception(int argc, const VALUE *argv)
Make an Exception object from the list of arguments in a manner similar to Kernel#raise.
#define new_begin(b, column)
void rb_exc_raise(VALUE mesg)
Raises an exception in the current thread.
#define heredoc_restore(n)
#define intern_cstr(n, l, en)
#define IS_lex_state_for(x, ls)
#define reg_named_capture_assign(regexp, column)
#define heredoc_identifier()
#define RUBY_SYMBOL_EXPORT_BEGIN
#define COVERAGE_INDEX_LINES
void rb_parser_show_bitstack(struct parser_params *, stack_type, const char *, int)
VALUE rb_io_puts(int, const VALUE *, VALUE)
#define NEW_ENSURE(b, en)
#define token_info_pop(token)
VALUE rb_syntax_error_append(VALUE exc, VALUE file, int line, int column, rb_encoding *enc, const char *fmt, va_list args)
#define const_path_field(w, n, column)
const char * rb_id2name(ID)
#define rb_enc_asciicompat(enc)
VALUE rb_str_new_cstr(const char *)
int rb_char_to_option_kcode(int c, int *option, int *kcode)
VALUE rb_obj_hide(VALUE obj)
Make the object invisible from Ruby code.
#define assignable_result(x)
#define new_undef(i, column)
enum lex_state_e rb_parser_trace_lex_state(struct parser_params *, enum lex_state_e, enum lex_state_e, int)
#define ENCODING_IS_ASCII8BIT(obj)
#define top_const_field(n)
#define new_xstring(node, column)
NODE * rb_parser_while_loop(VALUE vparser, NODE *node, int chomp, int split)
unsigned int token_info_enabled
#define new_dvar(id, column)
VALUE rb_sym_intern_ascii_cstr(const char *ptr)
#define cond(node, column)
#define new_gvar(id, column)
int rb_respond_to(VALUE, ID)
register unsigned int len
NODE * rb_compile_cstr(const char *f, const char *s, int len, int line)
#define StringValueCStr(v)
#define parser_is_identchar()
#define new_regexp(node, opt, column)
#define set_yylval_node(x)
#define new_rescue(b, res, e, column)
#define reg_fragment_check(str, options)
void rb_str_modify(VALUE)
#define new_list(item, column)
#define attrset(node, q, id, column)
const struct vtable * vars
int rb_const_defined_at(VALUE, ID)
#define ENCODING_GET(obj)
rb_encoding * rb_enc_get(VALUE obj)
#define new_masgn(l, r, column)
#define new_fcall(mid, args, column)
#define new_call(recv, mid, args, column)
RUBY_EXTERN VALUE rb_stderr
#define YYSTACK_ALLOC_MAXIMUM
VALUE rb_ident_hash_new(void)
#define set_yylval_name(x)
#define NEW_GASGN(v, val)
#define RARRAY_AREF(a, i)
#define new_args_tail(k, kr, b, column)
#define keyword_do_LAMBDA
VALUE rb_complex_raw(VALUE x, VALUE y)
#define NEW_UNTIL(c, b, n)
#define tokaddmbc(c, enc)
VALUE rb_str_catf(VALUE str, const char *format,...)
#define dvar_defined_ref(id, vidp)
#define STR_NEW3(p, n, e, func)
VALUE rb_big_norm(VALUE x)
#define NEW_WHILE(c, b, n)
#define new_args(f, o, r, p, t)
#define NEW_POSTARG(i, v)
VALUE rb_class_new_instance(int, const VALUE *, VALUE)
Allocates and initializes an instance of klass.
VALUE rb_parser_new(void)
struct rb_encoding_entry * list
VALUE rb_str_cat_cstr(VALUE, const char *)
#define NEW_CVASGN(v, val)
#define new_defined(expr, column)
VALUE rb_errinfo(void)
The current exception in the current thread.
#define TypedData_Make_Struct(klass, type, data_type, sval)
#define NEW_QCALL(q, r, m, a)
#define NEW_MATCH3(r, n2)
long(* rb_magic_comment_length_t)(struct parser_params *parser, const char *name, long len)
#define NEW_OPT_ARG(i, v)
#define method_cond(node, column)
struct parser_params::@46 lex
VALUE rb_filesystem_str_new_cstr(const char *)
#define YYSTACK_RELOCATE(Stack)
#define ruby_eval_tree_begin
NODE * rb_parser_append_print(VALUE vparser, NODE *node)
VALUE rb_enc_str_new(const char *, long, rb_encoding *)
VALUE rb_const_get_at(VALUE, ID)
int main(int argc, char **argv)
#define new_qcall(q, r, m, a, column)
#define read_escape(flags, e)
RUBY_SYMBOL_EXPORT_BEGIN void * alloca()
VALUE rb_str_new_frozen(VALUE)
unsigned char yytype_uint8
void(* rb_magic_comment_setter_t)(struct parser_params *parser, const char *name, const char *val)
#define NEW_RESBODY(a, ex, n)
#define NEW_ARGSCAT(a, b)
#define NEW_DASGN_CURR(v, val)
#define NEW_CALL(r, m, a)
rb_encoding * rb_ascii8bit_encoding(void)
RUBY_SYMBOL_EXPORT_BEGIN VALUE rb_parser_reg_compile(struct parser_params *parser, VALUE str, int options)
int rb_enc_find_index(const char *name)
VALUE rb_parser_end_seen_p(VALUE vparser)
#define RCOMPLEX_SET_REAL(cmp, r)
#define CONST_ID(var, str)
#define backref_assign_error(n, a, column)
#define method_add_block(m, b)
RUBY_EXTERN VALUE rb_stdout
VALUE rb_str_intern(VALUE)
#define rb_intern_const(str)
int rb_reg_fragment_setenc(struct parser_params *, VALUE, int)
#define NEW_MATCH2(n1, n2)
VALUE rb_parser_set_yydebug(VALUE self, VALUE flag)
const char rb_parser_lex_state_names[][13]
VALUE rb_cstr_to_inum(const char *str, int base, int badcheck)
#define vtable_alloc(prev)
#define rb_enc_mbcput(c, buf, enc)
#define NEW_DEFN(i, a, d, p)
NODE * rb_compile_file(const char *f, VALUE file, int start)
#define warn_balanced(tok, op, syn)
VALUE rb_str_buf_new(long)
VALUE rb_usascii_str_new(const char *, long)
#define rb_node_newnode(type, a1, a2, a3)
#define new_kw_arg(k, column)
#define nd_set_line(n, l)
VALUE rb_vsprintf(const char *, va_list)
#define NEW_LASGN(v, val)
struct token_info token_info
#define logop(id, node1, node2, column)
void rb_parser_free(struct parser_params *parser, void *ptr)
#define ENCODING_SET(obj, i)
#define IS_LABEL_SUFFIX(n)
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
VALUE rb_str_append(VALUE, VALUE)
#define NEW_NODE(t, a0, a1, a2)
#define NEW_ARGS_AUX(r, b)
#define new_errinfo(column)
int rb_memcicmp(const void *, const void *, long)
#define rb_enc_prev_char(s, p, e, enc)
#define YY_LOCATION_PRINT(File, Loc)
#define arg_append(h, t, column)
#define whole_match_p(e, l, i)
unsigned long ruby_scan_oct(const char *, size_t, size_t *)
VALUE rb_attr_get(VALUE, ID)
#define SPECIAL_PUNCT(idx)
#define NEW_CDECL(v, val, path)
#define NEW_OPCALL(r, m, a)
#define NEW_DEFS(r, i, a, d)
VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc)
rb_encoding * rb_enc_from_index(int index)
#define evstr2dstr(n, column)
VALUE rb_str_new(const char *, long)
#define rb_warn1L(l, fmt, a)
#define new_unless(cc, left, right, column)
#define block_append(h, t, column)