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) 529 unsigned int past_scope_enabled: 1;
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), (column)) 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 1218 #line 902 "ripper.y"
1224 const struct vtable *vars;
1227 #line 1228 "ripper.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 "ripper.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 "ripper.y" 5704 #line 1073 "ripper.y" 5711 NODE *node = (yyvsp[(2) - (2)].
val);
5712 while (node->nd_next) {
5713 node = node->nd_next;
5720 (yyval.
val) = (yyvsp[(2) - (2)].
val);
5721 parser->result = dispatch1(program, (yyval.
val));
5728 #line 1096 "ripper.y" 5734 (yyval.
val) = (yyvsp[(1) - (2)].
val);
5739 #line 1106 "ripper.y" 5742 (yyval.
val) =
new_begin(0, (yylsp[(1) - (1)]).first_column);
5744 (yyval.
val) = dispatch2(stmts_add, dispatch0(stmts_new),
5745 dispatch0(void_stmt));
5751 #line 1115 "ripper.y" 5754 (yyval.
val) = newline_node((yyvsp[(1) - (1)].
val));
5756 (yyval.
val) = dispatch2(stmts_add, dispatch0(stmts_new), (yyvsp[(1) - (1)].
val));
5762 #line 1123 "ripper.y" 5765 (yyval.
val) =
block_append((yyvsp[(1) - (3)].
val), newline_node((yyvsp[(3) - (3)].
val)), (yylsp[(1) - (3)]).first_column);
5767 (yyval.
val) = dispatch2(stmts_add, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5773 #line 1131 "ripper.y" 5775 (yyval.
val) = remove_begin((yyvsp[(2) - (2)].
val));
5780 #line 1138 "ripper.y" 5790 #line 1145 "ripper.y" 5794 (yyvsp[(4) - (5)].
val), (yylsp[(1) - (5)]).first_column);
5797 (yyval.
val) =
new_begin(0, (yylsp[(1) - (5)]).first_column);
5799 (yyval.
val) = dispatch1(BEGIN, (yyvsp[(4) - (5)].
val));
5805 #line 1162 "ripper.y" 5808 (yyval.
val) = (yyvsp[(1) - (4)].
val);
5809 if ((yyvsp[(2) - (4)].
val)) {
5810 (yyval.
val) =
new_rescue((yyvsp[(1) - (4)].
val), (yyvsp[(2) - (4)].
val), (yyvsp[(3) - (4)].
val), (yylsp[(1) - (4)]).first_column);
5812 else if ((yyvsp[(3) - (4)].
val)) {
5813 rb_warn0(
"else without rescue is useless");
5816 if ((yyvsp[(4) - (4)].
val)) {
5824 (yyval.
val) =
block_append((yyvsp[(4) - (4)].
val), nil, (yylsp[(1) - (4)]).first_column);
5827 fixpos((yyval.
val), (yyvsp[(1) - (4)].
val));
5829 (yyval.
val) = dispatch4(bodystmt,
5830 escape_Qundef((yyvsp[(1) - (4)].
val)),
5831 escape_Qundef((yyvsp[(2) - (4)].
val)),
5832 escape_Qundef((yyvsp[(3) - (4)].
val)),
5833 escape_Qundef((yyvsp[(4) - (4)].
val)));
5839 #line 1195 "ripper.y" 5845 (yyval.
val) = (yyvsp[(1) - (2)].
val);
5850 #line 1205 "ripper.y" 5853 (yyval.
val) =
new_begin(0, (yylsp[(1) - (1)]).first_column);
5855 (yyval.
val) = dispatch2(stmts_add, dispatch0(stmts_new),
5856 dispatch0(void_stmt));
5862 #line 1214 "ripper.y" 5865 (yyval.
val) = newline_node((yyvsp[(1) - (1)].
val));
5867 (yyval.
val) = dispatch2(stmts_add, dispatch0(stmts_new), (yyvsp[(1) - (1)].
val));
5873 #line 1222 "ripper.y" 5876 (yyval.
val) =
block_append((yyvsp[(1) - (3)].
val), newline_node((yyvsp[(3) - (3)].
val)), (yylsp[(1) - (3)]).first_column);
5878 (yyval.
val) = dispatch2(stmts_add, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
5884 #line 1230 "ripper.y" 5886 (yyval.
val) = remove_begin((yyvsp[(2) - (2)].
val));
5891 #line 1236 "ripper.y" 5893 (yyval.
val) = (yyvsp[(1) - (1)].
val);
5898 #line 1240 "ripper.y" 5900 yyerror0(
"BEGIN is permitted only at toplevel");
5909 #line 1248 "ripper.y" 5913 (yyvsp[(4) - (5)].
val), (yylsp[(1) - (5)]).first_column);
5916 (yyval.
val) =
new_begin(0, (yylsp[(1) - (5)]).first_column);
5918 (yyval.
val) = dispatch1(BEGIN, (yyvsp[(4) - (5)].
val));
5924 #line 1261 "ripper.y" 5929 #line 1262 "ripper.y" 5935 (yyval.
val) = dispatch2(
alias, (yyvsp[(2) - (4)].
val), (yyvsp[(4) - (4)].
val));
5941 #line 1271 "ripper.y" 5947 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5953 #line 1280 "ripper.y" 5958 buf[1] = (char)(yyvsp[(3) - (3)].
val)->nd_nth;
5962 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5968 #line 1292 "ripper.y" 5971 yyerror0(
"can't make alias for the number variables");
5972 (yyval.
val) =
new_begin(0, (yylsp[(1) - (3)]).first_column);
5974 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
5975 (yyval.
val) = dispatch1(alias_error, (yyval.
val));
5982 #line 1303 "ripper.y" 5985 (yyval.
val) = (yyvsp[(2) - (2)].
val);
5987 (yyval.
val) = dispatch1(undef, (yyvsp[(2) - (2)].
val));
5993 #line 1311 "ripper.y" 5996 (yyval.
val) =
new_if((yyvsp[(3) - (3)].
val), remove_begin((yyvsp[(1) - (3)].
val)), 0, (yylsp[(1) - (3)]).first_column);
5997 fixpos((yyval.
val), (yyvsp[(3) - (3)].
val));
5999 (yyval.
val) = dispatch2(if_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
6005 #line 1320 "ripper.y" 6008 (yyval.
val) =
new_unless((yyvsp[(3) - (3)].
val), remove_begin((yyvsp[(1) - (3)].
val)), 0, (yylsp[(1) - (3)]).first_column);
6009 fixpos((yyval.
val), (yyvsp[(3) - (3)].
val));
6011 (yyval.
val) = dispatch2(unless_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
6017 #line 1329 "ripper.y" 6024 (yyval.
val) =
NEW_WHILE(
cond((yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column), (yyvsp[(1) - (3)].
val), 1);
6028 (yyval.
val) = dispatch2(while_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
6034 #line 1343 "ripper.y" 6041 (yyval.
val) =
NEW_UNTIL(
cond((yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column), (yyvsp[(1) - (3)].
val), 1);
6045 (yyval.
val) = dispatch2(until_mod, (yyvsp[(3) - (3)].
val), (yyvsp[(1) - (3)].
val));
6051 #line 1357 "ripper.y" 6054 NODE *resq =
new_resbody(0, remove_begin((yyvsp[(3) - (3)].
val)), 0, (yylsp[(1) - (3)]).first_column);
6055 (yyval.
val) =
new_rescue(remove_begin((yyvsp[(1) - (3)].
val)), resq, 0, (yylsp[(1) - (3)]).first_column);
6058 (yyval.
val) = dispatch2(rescue_mod, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6064 #line 1367 "ripper.y" 6067 rb_warn0(
"END in method; use at_exit");
6078 (yyval.
val) = dispatch1(
END, (yyvsp[(3) - (4)].
val));
6084 #line 1385 "ripper.y" 6089 (yyval.
val) = (yyvsp[(1) - (3)].
val);
6091 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6097 #line 1395 "ripper.y" 6100 (yyval.
val) =
node_assign((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
6105 #line 1400 "ripper.y" 6109 (yyval.
val) = (yyvsp[(1) - (3)].
val);
6111 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6117 #line 1412 "ripper.y" 6120 (yyval.
val) =
node_assign((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
6125 #line 1417 "ripper.y" 6128 (yyval.
val) =
new_op_assign((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
6133 #line 1422 "ripper.y" 6139 if (!(yyvsp[(3) - (6)].
val)) (yyvsp[(3) - (6)].
val) =
new_zarray((yylsp[(1) - (6)]).first_column);
6140 args =
arg_concat((yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].
val), (yylsp[(1) - (6)]).first_column);
6141 if ((yyvsp[(5) - (6)].
val) ==
tOROP) {
6142 (yyvsp[(5) - (6)].
val) = 0;
6144 else if ((yyvsp[(5) - (6)].
val) ==
tANDOP) {
6145 (yyvsp[(5) - (6)].
val) = 1;
6148 fixpos((yyval.
val), (yyvsp[(1) - (6)].
val));
6151 (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (6)].
val), escape_Qundef((yyvsp[(3) - (6)].
val)));
6152 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].
val));
6158 #line 1444 "ripper.y" 6161 (yyval.
val) =
new_attr_op_assign((yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val), (yylsp[(1) - (5)]).first_column);
6166 #line 1449 "ripper.y" 6169 (yyval.
val) =
new_attr_op_assign((yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val), (yylsp[(1) - (5)]).first_column);
6174 #line 1454 "ripper.y" 6182 #line 1459 "ripper.y" 6190 #line 1464 "ripper.y" 6198 #line 1471 "ripper.y" 6202 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6209 #line 1479 "ripper.y" 6213 (yyval.
val) =
new_rescue((yyvsp[(1) - (3)].
val),
new_resbody(0, remove_begin((yyvsp[(3) - (3)].
val)), 0, (yylsp[(1) - (3)]).first_column), 0, (yylsp[(1) - (3)]).first_column);
6215 (yyval.
val) = dispatch2(rescue_mod, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6221 #line 1492 "ripper.y" 6223 (yyval.
val) =
logop(idAND, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
6228 #line 1496 "ripper.y" 6230 (yyval.
val) =
logop(idOR, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
6235 #line 1500 "ripper.y" 6242 #line 1504 "ripper.y" 6249 #line 1511 "ripper.y" 6253 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6256 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6262 #line 1528 "ripper.y" 6264 (yyval.
val) =
new_qcall((yyvsp[(2) - (4)].
val), (yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column);
6269 #line 1534 "ripper.y" 6279 #line 1541 "ripper.y" 6281 (yyval.
val) = (yyvsp[(3) - (4)].
val);
6289 #line 1550 "ripper.y" 6292 (yyval.
val) =
new_fcall((yyvsp[(1) - (1)].
val), 0, (yylsp[(1) - (1)]).first_column);
6300 #line 1560 "ripper.y" 6303 (yyval.
val) = (yyvsp[(1) - (2)].
val);
6306 (yyval.
val) = dispatch2(command, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
6312 #line 1569 "ripper.y" 6317 fixpos((yyval.
val), (yyvsp[(1) - (3)].
val));
6322 #line 1576 "ripper.y" 6324 (yyval.
val) =
new_command_qcall((yyvsp[(2) - (4)].
val), (yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column);
6325 fixpos((yyval.
val), (yyvsp[(1) - (4)].
val));
6330 #line 1581 "ripper.y" 6333 (yyval.
val) =
new_command_qcall((yyvsp[(2) - (5)].
val), (yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val), (yylsp[(1) - (5)]).first_column);
6335 fixpos((yyval.
val), (yyvsp[(1) - (5)].
val));
6340 #line 1588 "ripper.y" 6343 fixpos((yyval.
val), (yyvsp[(1) - (4)].
val));
6348 #line 1593 "ripper.y" 6353 fixpos((yyval.
val), (yyvsp[(1) - (5)].
val));
6358 #line 1600 "ripper.y" 6362 fixpos((yyval.
val), (yyvsp[(2) - (2)].
val));
6365 (yyval.
val) = dispatch1(super, (yyvsp[(2) - (2)].
val));
6371 #line 1610 "ripper.y" 6374 (yyval.
val) =
new_yield((yyvsp[(2) - (2)].
val), (yylsp[(1) - (2)]).first_column);
6375 fixpos((yyval.
val), (yyvsp[(2) - (2)].
val));
6377 (yyval.
val) = dispatch1(yield, (yyvsp[(2) - (2)].
val));
6383 #line 1619 "ripper.y" 6389 (yyval.
val) = dispatch1(
return, (yyvsp[(2) - (2)].
val));
6395 #line 1628 "ripper.y" 6401 (yyval.
val) = dispatch1(
break, (yyvsp[(2) - (2)].
val));
6407 #line 1637 "ripper.y" 6413 (yyval.
val) = dispatch1(next, (yyvsp[(2) - (2)].
val));
6419 #line 1649 "ripper.y" 6422 (yyval.
val) = (yyvsp[(2) - (3)].
val);
6424 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6430 #line 1660 "ripper.y" 6433 (yyval.
val) =
new_masgn(
new_list((yyvsp[(2) - (3)].
val), (yylsp[(1) - (3)]).first_column), 0, (yylsp[(1) - (3)]).first_column);
6435 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6441 #line 1670 "ripper.y" 6444 (yyval.
val) =
new_masgn((yyvsp[(1) - (1)].
val), 0, (yylsp[(1) - (1)]).first_column);
6446 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6452 #line 1678 "ripper.y" 6455 (yyval.
val) =
new_masgn(
list_append((yyvsp[(1) - (2)].
val),(yyvsp[(2) - (2)].
val),(yylsp[(1) - (2)]).first_column), 0, (yylsp[(1) - (2)]).first_column);
6457 (yyval.
val) = mlhs_add((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
6463 #line 1686 "ripper.y" 6466 (yyval.
val) =
new_masgn((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
6468 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6474 #line 1694 "ripper.y" 6477 (yyval.
val) =
new_masgn((yyvsp[(1) - (5)].
val),
new_postarg((yyvsp[(3) - (5)].
val),(yyvsp[(5) - (5)].
val),(yylsp[(1) - (5)]).first_column), (yylsp[(1) - (5)]).first_column);
6479 (yyvsp[(1) - (5)].
val) = mlhs_add_star((yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val));
6480 (yyval.
val) = mlhs_add_post((yyvsp[(1) - (5)].
val), (yyvsp[(5) - (5)].
val));
6486 #line 1703 "ripper.y" 6489 (yyval.
val) =
new_masgn((yyvsp[(1) - (2)].
val), (
NODE *)-1, (yylsp[(1) - (2)]).first_column);
6491 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (2)].
val),
Qnil);
6497 #line 1711 "ripper.y" 6500 (yyval.
val) =
new_masgn((yyvsp[(1) - (4)].
val),
new_postarg((
NODE *)-1, (yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column), (yylsp[(1) - (4)]).first_column);
6502 (yyvsp[(1) - (4)].
val) = mlhs_add_star((yyvsp[(1) - (4)].
val),
Qnil);
6503 (yyval.
val) = mlhs_add_post((yyvsp[(1) - (4)].
val), (yyvsp[(4) - (4)].
val));
6509 #line 1720 "ripper.y" 6512 (yyval.
val) =
new_masgn(0, (yyvsp[(2) - (2)].
val), (yylsp[(1) - (2)]).first_column);
6514 (yyval.
val) = mlhs_add_star(mlhs_new(), (yyvsp[(2) - (2)].
val));
6520 #line 1728 "ripper.y" 6523 (yyval.
val) =
new_masgn(0,
new_postarg((yyvsp[(2) - (4)].
val),(yyvsp[(4) - (4)].
val),(yylsp[(1) - (4)]).first_column), (yylsp[(1) - (4)]).first_column);
6525 (yyvsp[(2) - (4)].
val) = mlhs_add_star(mlhs_new(), (yyvsp[(2) - (4)].
val));
6526 (yyval.
val) = mlhs_add_post((yyvsp[(2) - (4)].
val), (yyvsp[(4) - (4)].
val));
6532 #line 1737 "ripper.y" 6537 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
6543 #line 1745 "ripper.y" 6548 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
6549 (yyval.
val) = mlhs_add_post((yyval.
val), (yyvsp[(3) - (3)].
val));
6555 #line 1757 "ripper.y" 6558 (yyval.
val) = (yyvsp[(2) - (3)].
val);
6560 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
6566 #line 1767 "ripper.y" 6569 (yyval.
val) =
new_list((yyvsp[(1) - (2)].
val), (yylsp[(1) - (2)]).first_column);
6571 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (2)].
val));
6577 #line 1775 "ripper.y" 6580 (yyval.
val) =
list_append((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yylsp[(1) - (3)]).first_column);
6582 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
6588 #line 1785 "ripper.y" 6591 (yyval.
val) =
new_list((yyvsp[(1) - (1)].
val), (yylsp[(1) - (1)]).first_column);
6593 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (1)].
val));
6599 #line 1793 "ripper.y" 6602 (yyval.
val) =
list_append((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
6604 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6610 #line 1803 "ripper.y" 6617 #line 1807 "ripper.y" 6624 #line 1811 "ripper.y" 6627 (yyval.
val) =
aryset((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yylsp[(1) - (4)]).first_column);
6629 (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (4)].
val), escape_Qundef((yyvsp[(3) - (4)].
val)));
6635 #line 1819 "ripper.y" 6638 (yyval.
val) =
attrset((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
6640 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
6646 #line 1827 "ripper.y" 6657 #line 1835 "ripper.y" 6660 (yyval.
val) =
attrset((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
6662 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
6668 #line 1843 "ripper.y" 6675 #line 1847 "ripper.y" 6682 #line 1851 "ripper.y" 6690 #line 1858 "ripper.y" 6694 if (!(yyval.
val)) (yyval.
val) =
new_begin(0, (yylsp[(1) - (1)]).first_column);
6701 #line 1866 "ripper.y" 6705 if (!(yyval.
val)) (yyval.
val) =
new_begin(0, (yylsp[(1) - (1)]).first_column);
6712 #line 1874 "ripper.y" 6715 (yyval.
val) =
aryset((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yylsp[(1) - (4)]).first_column);
6717 (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (4)].
val), escape_Qundef((yyvsp[(3) - (4)].
val)));
6723 #line 1882 "ripper.y" 6726 (yyval.
val) =
attrset((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
6728 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
6734 #line 1890 "ripper.y" 6745 #line 1898 "ripper.y" 6748 (yyval.
val) =
attrset((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
6750 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val));
6756 #line 1906 "ripper.y" 6763 #line 1910 "ripper.y" 6770 #line 1914 "ripper.y" 6778 #line 1921 "ripper.y" 6781 yyerror0(
"class/module name must be CONSTANT");
6783 (yyval.
val) = dispatch1(class_name_error, (yyvsp[(1) - (1)].
val));
6790 #line 1933 "ripper.y" 6795 (yyval.
val) = dispatch1(top_const_ref, (yyvsp[(2) - (2)].
val));
6801 #line 1941 "ripper.y" 6807 (yyval.
val) = dispatch1(const_ref, (yyvsp[(1) - (1)].
val));
6813 #line 1950 "ripper.y" 6819 (yyval.
val) = dispatch2(const_path_ref, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
6825 #line 1964 "ripper.y" 6828 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6833 #line 1969 "ripper.y" 6836 (yyval.
val) = (yyvsp[(1) - (1)].
val);
6841 #line 1980 "ripper.y" 6846 (yyval.
val) = dispatch1(symbol_literal, (yyvsp[(1) - (1)].
val));
6852 #line 1991 "ripper.y" 6855 (yyval.
val) =
new_undef((yyvsp[(1) - (1)].
val), (yylsp[(1) - (1)]).first_column);
6863 #line 1998 "ripper.y" 6868 #line 1999 "ripper.y" 6871 NODE *undef =
new_undef((yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column);
6872 (yyval.
val) =
block_append((yyvsp[(1) - (4)].
val), undef, (yylsp[(1) - (4)]).first_column);
6880 #line 2009 "ripper.y" 6885 #line 2010 "ripper.y" 6890 #line 2011 "ripper.y" 6895 #line 2012 "ripper.y" 6900 #line 2013 "ripper.y" 6905 #line 2014 "ripper.y" 6910 #line 2015 "ripper.y" 6915 #line 2016 "ripper.y" 6920 #line 2017 "ripper.y" 6925 #line 2018 "ripper.y" 6930 #line 2019 "ripper.y" 6935 #line 2020 "ripper.y" 6940 #line 2021 "ripper.y" 6945 #line 2022 "ripper.y" 6950 #line 2023 "ripper.y" 6955 #line 2024 "ripper.y" 6960 #line 2025 "ripper.y" 6965 #line 2026 "ripper.y" 6970 #line 2027 "ripper.y" 6975 #line 2028 "ripper.y" 6980 #line 2029 "ripper.y" 6985 #line 2030 "ripper.y" 6990 #line 2031 "ripper.y" 6995 #line 2032 "ripper.y" 7000 #line 2033 "ripper.y" 7005 #line 2034 "ripper.y" 7010 #line 2035 "ripper.y" 7015 #line 2036 "ripper.y" 7020 #line 2037 "ripper.y" 7025 #line 2038 "ripper.y" 7030 #line 2056 "ripper.y" 7032 (yyval.
val) =
node_assign((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
7037 #line 2060 "ripper.y" 7039 (yyval.
val) =
new_op_assign((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
7044 #line 2064 "ripper.y" 7050 if (!(yyvsp[(3) - (6)].
val)) (yyvsp[(3) - (6)].
val) =
new_zarray((yylsp[(1) - (6)]).first_column);
7056 args =
arg_concat((yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].
val), (yylsp[(1) - (6)]).first_column);
7058 if ((yyvsp[(5) - (6)].
val) ==
tOROP) {
7059 (yyvsp[(5) - (6)].
val) = 0;
7061 else if ((yyvsp[(5) - (6)].
val) ==
tANDOP) {
7062 (yyvsp[(5) - (6)].
val) = 1;
7065 fixpos((yyval.
val), (yyvsp[(1) - (6)].
val));
7068 (yyvsp[(1) - (6)].
val) = dispatch2(aref_field, (yyvsp[(1) - (6)].
val), escape_Qundef((yyvsp[(3) - (6)].
val)));
7069 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (6)].
val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].
val));
7075 #line 2092 "ripper.y" 7078 (yyval.
val) =
new_attr_op_assign((yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val), (yylsp[(1) - (5)]).first_column);
7083 #line 2097 "ripper.y" 7086 (yyval.
val) =
new_attr_op_assign((yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val), (yylsp[(1) - (5)]).first_column);
7091 #line 2102 "ripper.y" 7099 #line 2107 "ripper.y" 7107 #line 2112 "ripper.y" 7115 #line 2117 "ripper.y" 7123 #line 2122 "ripper.y" 7131 (yyval.
val) = dispatch2(dot2, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7137 #line 2133 "ripper.y" 7145 (yyval.
val) = dispatch2(dot3, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7151 #line 2144 "ripper.y" 7153 (yyval.
val) =
call_bin_op((yyvsp[(1) - (3)].
val),
'+', (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
7158 #line 2148 "ripper.y" 7160 (yyval.
val) =
call_bin_op((yyvsp[(1) - (3)].
val),
'-', (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
7165 #line 2152 "ripper.y" 7167 (yyval.
val) =
call_bin_op((yyvsp[(1) - (3)].
val),
'*', (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
7172 #line 2156 "ripper.y" 7174 (yyval.
val) =
call_bin_op((yyvsp[(1) - (3)].
val),
'/', (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
7179 #line 2160 "ripper.y" 7181 (yyval.
val) =
call_bin_op((yyvsp[(1) - (3)].
val),
'%', (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
7186 #line 2164 "ripper.y" 7193 #line 2168 "ripper.y" 7200 #line 2172 "ripper.y" 7207 #line 2176 "ripper.y" 7214 #line 2180 "ripper.y" 7216 (yyval.
val) =
call_bin_op((yyvsp[(1) - (3)].
val),
'|', (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
7221 #line 2184 "ripper.y" 7223 (yyval.
val) =
call_bin_op((yyvsp[(1) - (3)].
val),
'^', (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
7228 #line 2188 "ripper.y" 7230 (yyval.
val) =
call_bin_op((yyvsp[(1) - (3)].
val),
'&', (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
7235 #line 2192 "ripper.y" 7242 #line 2197 "ripper.y" 7249 #line 2201 "ripper.y" 7256 #line 2205 "ripper.y" 7263 #line 2209 "ripper.y" 7265 (yyval.
val) =
match_op((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
7270 #line 2213 "ripper.y" 7277 #line 2217 "ripper.y" 7284 #line 2221 "ripper.y" 7286 (yyval.
val) =
call_uni_op((yyvsp[(2) - (2)].
val),
'~', (yylsp[(1) - (2)]).first_column);
7291 #line 2225 "ripper.y" 7298 #line 2229 "ripper.y" 7305 #line 2233 "ripper.y" 7307 (yyval.
val) =
logop(
idANDOP, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
7312 #line 2237 "ripper.y" 7314 (yyval.
val) =
logop(
idOROP, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
7319 #line 2240 "ripper.y" 7324 #line 2241 "ripper.y" 7327 (yyval.
val) =
new_defined((yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column);
7332 #line 2246 "ripper.y" 7336 (yyval.
val) =
new_if((yyvsp[(1) - (6)].
val), (yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].
val), (yylsp[(1) - (6)]).first_column);
7337 fixpos((yyval.
val), (yyvsp[(1) - (6)].
val));
7339 (yyval.
val) = dispatch3(ifop, (yyvsp[(1) - (6)].
val), (yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].
val));
7345 #line 2256 "ripper.y" 7347 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7352 #line 2261 "ripper.y" 7353 {(yyval.
val) =
'>';;}
7357 #line 2262 "ripper.y" 7358 {(yyval.
val) =
'<';;}
7362 #line 2263 "ripper.y" 7367 #line 2264 "ripper.y" 7372 #line 2268 "ripper.y" 7374 (yyval.
val) =
call_bin_op((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
7379 #line 2272 "ripper.y" 7382 (yyval.
val) =
call_bin_op((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
7387 #line 2279 "ripper.y" 7391 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7394 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7400 #line 2292 "ripper.y" 7402 (yyval.
val) = (yyvsp[(1) - (2)].
val);
7407 #line 2296 "ripper.y" 7410 (yyval.
val) = (yyvsp[(3) - (4)].
val) ?
arg_append((yyvsp[(1) - (4)].
val),
new_hash((yyvsp[(3) - (4)].
val), (yylsp[(1) - (4)]).first_column), (yylsp[(1) - (4)]).first_column) : (yyvsp[(1) - (4)].
val);
7412 (yyval.
val) = arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val));
7418 #line 2304 "ripper.y" 7421 (yyval.
val) = (yyvsp[(1) - (2)].
val) ?
new_list(
new_hash((yyvsp[(1) - (2)].
val), (yylsp[(1) - (2)]).first_column), (yylsp[(1) - (2)]).first_column) : 0;
7423 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7429 #line 2314 "ripper.y" 7433 (yyval.
val) = (yyvsp[(1) - (1)].
val);
7440 #line 2322 "ripper.y" 7444 (yyval.
val) =
new_rescue((yyvsp[(1) - (3)].
val),
new_resbody(0, remove_begin((yyvsp[(3) - (3)].
val)), 0, (yylsp[(1) - (3)]).first_column), 0, (yylsp[(1) - (3)]).first_column);
7446 (yyval.
val) = dispatch2(rescue_mod, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7452 #line 2333 "ripper.y" 7455 (yyval.
val) = (yyvsp[(2) - (3)].
val);
7457 (yyval.
val) = dispatch1(arg_paren, escape_Qundef((yyvsp[(2) - (3)].
val)));
7463 #line 2349 "ripper.y" 7465 (yyval.
val) = (yyvsp[(1) - (2)].
val);
7470 #line 2353 "ripper.y" 7473 (yyval.
val) = (yyvsp[(3) - (4)].
val) ?
arg_append((yyvsp[(1) - (4)].
val),
new_hash((yyvsp[(3) - (4)].
val), (yylsp[(1) - (4)]).first_column), (yylsp[(1) - (4)]).first_column) : (yyvsp[(1) - (4)].
val);
7475 (yyval.
val) = arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val));
7481 #line 2361 "ripper.y" 7484 (yyval.
val) = (yyvsp[(1) - (2)].
val) ?
new_list(
new_hash((yyvsp[(1) - (2)].
val), (yylsp[(1) - (2)]).first_column), (yylsp[(1) - (2)]).first_column) : 0;
7486 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7492 #line 2371 "ripper.y" 7496 (yyval.
val) =
new_list((yyvsp[(1) - (1)].
val), (yylsp[(1) - (1)]).first_column);
7498 (yyval.
val) = arg_add(arg_new(), (yyvsp[(1) - (1)].
val));
7504 #line 2380 "ripper.y" 7507 (yyval.
val) = arg_blk_pass((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
7509 (yyval.
val) = arg_add_optblock((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
7515 #line 2388 "ripper.y" 7518 (yyval.
val) = (yyvsp[(1) - (2)].
val) ?
new_list(
new_hash((yyvsp[(1) - (2)].
val), (yylsp[(1) - (2)]).first_column), (yylsp[(1) - (2)]).first_column) : 0;
7519 (yyval.
val) = arg_blk_pass((yyval.
val), (yyvsp[(2) - (2)].
val));
7521 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7522 (yyval.
val) = arg_add_optblock((yyval.
val), (yyvsp[(2) - (2)].
val));
7528 #line 2398 "ripper.y" 7531 (yyval.
val) = (yyvsp[(3) - (4)].
val) ?
arg_append((yyvsp[(1) - (4)].
val),
new_hash((yyvsp[(3) - (4)].
val), (yylsp[(1) - (4)]).first_column), (yylsp[(1) - (4)]).first_column) : (yyvsp[(1) - (4)].
val);
7532 (yyval.
val) = arg_blk_pass((yyval.
val), (yyvsp[(4) - (4)].
val));
7534 (yyval.
val) = arg_add_optblock(arg_add_assocs((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val)), (yyvsp[(4) - (4)].
val));
7540 #line 2409 "ripper.y" 7542 (yyval.
val) = arg_add_block(arg_new(), (yyvsp[(1) - (1)].
val));
7547 #line 2415 "ripper.y" 7555 #line 2420 "ripper.y" 7559 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7564 #line 2428 "ripper.y" 7570 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7576 #line 2439 "ripper.y" 7578 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7583 #line 2443 "ripper.y" 7590 #line 2449 "ripper.y" 7593 (yyval.
val) =
new_list((yyvsp[(1) - (1)].
val), (yylsp[(1) - (1)]).first_column);
7595 (yyval.
val) = arg_add(arg_new(), (yyvsp[(1) - (1)].
val));
7601 #line 2457 "ripper.y" 7607 (yyval.
val) = arg_add_star(arg_new(), (yyvsp[(2) - (2)].
val));
7613 #line 2466 "ripper.y" 7617 if ((n1 = splat_array((yyvsp[(1) - (3)].
val))) != 0) {
7618 (yyval.
val) =
list_append(n1, (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
7621 (yyval.
val) =
arg_append((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
7624 (yyval.
val) = arg_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7630 #line 2480 "ripper.y" 7635 (yyval.
val) = list_concat(n1, (yyvsp[(4) - (4)].
val));
7638 (yyval.
val) =
arg_concat((yyvsp[(1) - (4)].
val), (yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column);
7641 (yyval.
val) = arg_add_star((yyvsp[(1) - (4)].
val), (yyvsp[(4) - (4)].
val));
7647 #line 2500 "ripper.y" 7651 if ((n1 = splat_array((yyvsp[(1) - (3)].
val))) != 0) {
7652 (yyval.
val) =
list_append(n1, (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
7655 (yyval.
val) =
arg_append((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
7658 (yyval.
val) = mrhs_add(args2mrhs((yyvsp[(1) - (3)].
val)), (yyvsp[(3) - (3)].
val));
7664 #line 2514 "ripper.y" 7669 (n1 = splat_array((yyvsp[(1) - (4)].
val))) != 0) {
7670 (yyval.
val) = list_concat(n1, (yyvsp[(4) - (4)].
val));
7673 (yyval.
val) =
arg_concat((yyvsp[(1) - (4)].
val), (yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column);
7676 (yyval.
val) = mrhs_add_star(args2mrhs((yyvsp[(1) - (4)].
val)), (yyvsp[(4) - (4)].
val));
7682 #line 2529 "ripper.y" 7688 (yyval.
val) = mrhs_add_star(mrhs_new(), (yyvsp[(2) - (2)].
val));
7694 #line 2550 "ripper.y" 7697 (yyval.
val) =
new_fcall((yyvsp[(1) - (1)].
val), 0, (yylsp[(1) - (1)]).first_column);
7699 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (1)].
val)), arg_new());
7705 #line 2558 "ripper.y" 7717 #line 2568 "ripper.y" 7721 if ((yyvsp[(3) - (4)].
val) ==
NULL) {
7726 set_line_body((yyvsp[(3) - (4)].
val), (yyvsp[(2) - (4)].num));
7727 (yyval.
val) =
new_begin((yyvsp[(3) - (4)].
val), (yylsp[(1) - (4)]).first_column);
7731 (yyval.
val) = dispatch1(begin, (yyvsp[(3) - (4)].
val));
7737 #line 2584 "ripper.y" 7742 #line 2585 "ripper.y" 7745 (yyval.
val) =
new_begin(0, (yylsp[(1) - (3)]).first_column);
7747 (yyval.
val) = dispatch1(paren, 0);
7753 #line 2593 "ripper.y" 7761 #line 2597 "ripper.y" 7766 #line 2598 "ripper.y" 7770 (yyval.
val) = (yyvsp[(3) - (5)].
val);
7772 (yyval.
val) = dispatch1(paren, (yyvsp[(3) - (5)].
val));
7778 #line 2607 "ripper.y" 7781 (yyval.
val) = (yyvsp[(2) - (3)].
val);
7783 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (3)].
val));
7789 #line 2615 "ripper.y" 7795 (yyval.
val) = dispatch2(const_path_ref, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
7801 #line 2624 "ripper.y" 7807 (yyval.
val) = dispatch1(top_const_ref, (yyvsp[(2) - (2)].
val));
7813 #line 2633 "ripper.y" 7816 if ((yyvsp[(2) - (3)].
val) == 0) {
7820 (yyval.
val) = (yyvsp[(2) - (3)].
val);
7823 (yyval.
val) = dispatch1(array, escape_Qundef((yyvsp[(2) - (3)].
val)));
7829 #line 2646 "ripper.y" 7832 (yyval.
val) =
new_hash((yyvsp[(2) - (3)].
val), (yylsp[(1) - (3)]).first_column);
7835 (yyval.
val) = dispatch1(hash, escape_Qundef((yyvsp[(2) - (3)].
val)));
7841 #line 2655 "ripper.y" 7847 (yyval.
val) = dispatch0(return0);
7853 #line 2664 "ripper.y" 7856 (yyval.
val) =
new_yield((yyvsp[(3) - (4)].
val), (yylsp[(1) - (4)]).first_column);
7858 (yyval.
val) = dispatch1(yield, dispatch1(paren, (yyvsp[(3) - (4)].
val)));
7864 #line 2672 "ripper.y" 7870 (yyval.
val) = dispatch1(yield, dispatch1(paren, arg_new()));
7876 #line 2681 "ripper.y" 7882 (yyval.
val) = dispatch0(yield0);
7888 #line 2689 "ripper.y" 7893 #line 2690 "ripper.y" 7896 (yyval.
val) =
new_defined((yyvsp[(5) - (6)].
val), (yylsp[(1) - (6)]).first_column);
7901 #line 2695 "ripper.y" 7908 #line 2699 "ripper.y" 7915 #line 2703 "ripper.y" 7919 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7921 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (2)].
val)), arg_new());
7928 #line 2714 "ripper.y" 7933 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7941 #line 2724 "ripper.y" 7943 (yyval.
val) = (yyvsp[(2) - (2)].
val);
7948 #line 2731 "ripper.y" 7951 (yyval.
val) =
new_if((yyvsp[(2) - (6)].
val), (yyvsp[(4) - (6)].
val), (yyvsp[(5) - (6)].
val), (yylsp[(1) - (6)]).first_column);
7952 fixpos((yyval.
val), (yyvsp[(2) - (6)].
val));
7954 (yyval.
val) = dispatch3(
if, (yyvsp[(2) - (6)].
val), (yyvsp[(4) - (6)].
val), escape_Qundef((yyvsp[(5) - (6)].
val)));
7960 #line 2743 "ripper.y" 7963 (yyval.
val) =
new_unless((yyvsp[(2) - (6)].
val), (yyvsp[(4) - (6)].
val), (yyvsp[(5) - (6)].
val), (yylsp[(1) - (6)]).first_column);
7964 fixpos((yyval.
val), (yyvsp[(2) - (6)].
val));
7966 (yyval.
val) = dispatch3(unless, (yyvsp[(2) - (6)].
val), (yyvsp[(4) - (6)].
val), escape_Qundef((yyvsp[(5) - (6)].
val)));
7972 #line 2751 "ripper.y" 7977 #line 2751 "ripper.y" 7982 #line 2754 "ripper.y" 7985 (yyval.
val) =
NEW_WHILE(
cond((yyvsp[(3) - (7)].
val), (yylsp[(1) - (7)]).first_column), (yyvsp[(6) - (7)].
val), 1);
7986 fixpos((yyval.
val), (yyvsp[(3) - (7)].
val));
7989 (yyval.
val) = dispatch2(
while, (yyvsp[(3) - (7)].
val), (yyvsp[(6) - (7)].
val));
7995 #line 2763 "ripper.y" 8000 #line 2763 "ripper.y" 8005 #line 2766 "ripper.y" 8008 (yyval.
val) =
NEW_UNTIL(
cond((yyvsp[(3) - (7)].
val), (yylsp[(1) - (7)]).first_column), (yyvsp[(6) - (7)].
val), 1);
8009 fixpos((yyval.
val), (yyvsp[(3) - (7)].
val));
8012 (yyval.
val) = dispatch2(until, (yyvsp[(3) - (7)].
val), (yyvsp[(6) - (7)].
val));
8018 #line 2778 "ripper.y" 8022 fixpos((yyval.
val), (yyvsp[(2) - (5)].
val));
8025 (yyval.
val) = dispatch2(
case, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val));
8031 #line 2788 "ripper.y" 8038 (yyval.
val) = dispatch2(
case,
Qnil, (yyvsp[(3) - (4)].
val));
8044 #line 2798 "ripper.y" 8049 #line 2800 "ripper.y" 8054 #line 2803 "ripper.y" 8073 m->nd_next =
node_assign((yyvsp[(2) - (9)].
val),
new_for(
new_dvar(
id, (yylsp[(1) - (9)]).first_column), 0, 0, (yylsp[(1) - (9)]).first_column), (yylsp[(1) - (9)]).first_column);
8081 m->nd_next = (yyvsp[(2) - (9)].
val);
8086 NODE *masgn =
new_masgn(
new_list((yyvsp[(2) - (9)].
val), (yylsp[(1) - (9)]).first_column), 0, (yylsp[(1) - (9)]).first_column);
8087 m->nd_next =
node_assign(masgn,
new_dvar(
id, (yylsp[(1) - (9)]).first_column), (yylsp[(1) - (9)]).first_column);
8094 tbl[0] = 1; tbl[1] =
id;
8095 (yyval.
val) =
new_for(0, (yyvsp[(5) - (9)].
val), scope, (yylsp[(1) - (9)]).first_column);
8096 fixpos((yyval.
val), (yyvsp[(2) - (9)].
val));
8098 (yyval.
val) = dispatch3(
for, (yyvsp[(2) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(8) - (9)].
val));
8104 #line 2850 "ripper.y" 8107 yyerror0(
"class definition in method body");
8117 #line 2861 "ripper.y" 8122 set_line_body((yyvsp[(5) - (6)].
val), (yyvsp[(4) - (6)].num));
8126 (yyval.
val) = dispatch3(
class, (yyvsp[(2) - (6)].
val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].
val));
8133 #line 2874 "ripper.y" 8143 #line 2883 "ripper.y" 8148 set_line_body((yyvsp[(6) - (7)].
val),
nd_line((yyvsp[(3) - (7)].
val)));
8149 fixpos((yyval.
val), (yyvsp[(3) - (7)].
val));
8152 (yyval.
val) = dispatch2(sclass, (yyvsp[(3) - (7)].
val), (yyvsp[(6) - (7)].
val));
8155 in_def = ((yyvsp[(4) - (7)].
num) >> 1) & 1;
8161 #line 2898 "ripper.y" 8164 yyerror0(
"module definition in method body");
8174 #line 2909 "ripper.y" 8179 set_line_body((yyvsp[(4) - (5)].
val), (yyvsp[(3) - (5)].num));
8183 (yyval.
val) = dispatch2(module, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val));
8190 #line 2922 "ripper.y" 8199 #line 2927 "ripper.y" 8207 #line 2934 "ripper.y" 8210 NODE *body = remove_begin((yyvsp[(6) - (7)].
val));
8214 set_line_body(body, (yyvsp[(1) - (7)].num));
8218 (yyval.
val) = dispatch3(def, (yyvsp[(2) - (7)].
val), (yyvsp[(5) - (7)].
val), (yyvsp[(6) - (7)].
val));
8227 #line 2950 "ripper.y" 8232 #line 2951 "ripper.y" 8244 #line 2962 "ripper.y" 8247 NODE *body = remove_begin((yyvsp[(8) - (9)].
val));
8249 (yyval.
val) =
NEW_DEFS((yyvsp[(2) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(7) - (9)].
val), body);
8251 set_line_body(body, (yyvsp[(1) - (9)].num));
8255 (yyval.
val) = dispatch5(defs, (yyvsp[(2) - (9)].
val), (yyvsp[(3) - (9)].
val), (yyvsp[(5) - (9)].
val), (yyvsp[(7) - (9)].
val), (yyvsp[(8) - (9)].
val));
8264 #line 2979 "ripper.y" 8270 (yyval.
val) = dispatch1(
break, arg_new());
8276 #line 2988 "ripper.y" 8282 (yyval.
val) = dispatch1(next, arg_new());
8288 #line 2997 "ripper.y" 8294 (yyval.
val) = dispatch0(redo);
8300 #line 3006 "ripper.y" 8306 (yyval.
val) = dispatch0(retry);
8312 #line 3017 "ripper.y" 8316 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8319 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8325 #line 3029 "ripper.y" 8332 #line 3035 "ripper.y" 8339 #line 3041 "ripper.y" 8346 #line 3047 "ripper.y" 8353 #line 3053 "ripper.y" 8360 #line 3059 "ripper.y" 8371 #line 3069 "ripper.y" 8378 #line 3075 "ripper.y" 8385 #line 3081 "ripper.y" 8392 #line 3087 "ripper.y" 8403 #line 3097 "ripper.y" 8410 #line 3105 "ripper.y" 8415 #line 3111 "ripper.y" 8416 { (yyval.
val) = (yyvsp[(2) - (2)].
val); ;}
8420 #line 3118 "ripper.y" 8425 #line 3127 "ripper.y" 8428 (yyval.
val) =
new_if((yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val), (yylsp[(1) - (5)]).first_column);
8429 fixpos((yyval.
val), (yyvsp[(2) - (5)].
val));
8431 (yyval.
val) = dispatch3(elsif, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val), escape_Qundef((yyvsp[(5) - (5)].
val)));
8437 #line 3139 "ripper.y" 8440 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8442 (yyval.
val) = dispatch1(
else, (yyvsp[(2) - (2)].
val));
8448 #line 3153 "ripper.y" 8450 (yyval.
val) =
assignable((yyvsp[(1) - (1)].
val), 0, (yylsp[(1) - (1)]).first_column);
8458 #line 3160 "ripper.y" 8461 (yyval.
val) = (yyvsp[(2) - (3)].
val);
8463 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
8469 #line 3170 "ripper.y" 8472 (yyval.
val) =
new_list((yyvsp[(1) - (1)].
val), (yylsp[(1) - (1)]).first_column);
8474 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (1)].
val));
8480 #line 3178 "ripper.y" 8483 (yyval.
val) =
list_append((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
8485 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
8491 #line 3188 "ripper.y" 8494 (yyval.
val) =
new_masgn((yyvsp[(1) - (1)].
val), 0, (yylsp[(1) - (1)]).first_column);
8496 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8502 #line 3196 "ripper.y" 8504 (yyval.
val) =
assignable((yyvsp[(4) - (4)].
val), 0, (yylsp[(1) - (4)]).first_column);
8506 (yyval.
val) =
new_masgn((yyvsp[(1) - (4)].
val), (yyval.
val), (yylsp[(1) - (4)]).first_column);
8508 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (4)].
val), (yyval.
val));
8514 #line 3205 "ripper.y" 8516 (yyval.
val) =
assignable((yyvsp[(4) - (6)].
val), 0, (yylsp[(1) - (6)]).first_column);
8518 (yyval.
val) =
new_masgn((yyvsp[(1) - (6)].
val),
new_postarg((yyval.
val), (yyvsp[(6) - (6)].
val), (yylsp[(1) - (6)]).first_column), (yylsp[(1) - (6)]).first_column);
8520 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (6)].
val), (yyval.
val));
8521 (yyval.
val) = mlhs_add_post((yyval.
val), (yyvsp[(6) - (6)].
val));
8527 #line 3215 "ripper.y" 8530 (yyval.
val) =
new_masgn((yyvsp[(1) - (3)].
val), (
NODE *)-1, (yylsp[(1) - (3)]).first_column);
8532 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (3)].
val),
Qnil);
8538 #line 3223 "ripper.y" 8541 (yyval.
val) =
new_masgn((yyvsp[(1) - (5)].
val),
new_postarg((
NODE *)-1, (yyvsp[(5) - (5)].
val), (yylsp[(1) - (5)]).first_column), (yylsp[(1) - (5)]).first_column);
8543 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (5)].
val),
Qnil);
8544 (yyval.
val) = mlhs_add_post((yyval.
val), (yyvsp[(5) - (5)].
val));
8550 #line 3232 "ripper.y" 8552 (yyval.
val) =
assignable((yyvsp[(2) - (2)].
val), 0, (yylsp[(1) - (2)]).first_column);
8554 (yyval.
val) =
new_masgn(0, (yyval.
val), (yylsp[(1) - (2)]).first_column);
8556 (yyval.
val) = mlhs_add_star(mlhs_new(), (yyval.
val));
8562 #line 3241 "ripper.y" 8564 (yyval.
val) =
assignable((yyvsp[(2) - (4)].
val), 0, (yylsp[(1) - (4)]).first_column);
8566 (yyval.
val) =
new_masgn(0,
new_postarg((yyval.
val), (yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column), (yylsp[(1) - (4)]).first_column);
8568 (yyval.
val) = mlhs_add_star(mlhs_new(), (yyval.
val));
8569 (yyval.
val) = mlhs_add_post((yyval.
val), (yyvsp[(4) - (4)].
val));
8575 #line 3251 "ripper.y" 8580 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
8586 #line 3259 "ripper.y" 8591 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
8592 (yyval.
val) = mlhs_add_post((yyval.
val), (yyvsp[(3) - (3)].
val));
8598 #line 3271 "ripper.y" 8600 (yyval.
val) =
new_args_tail((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column);
8605 #line 3275 "ripper.y" 8612 #line 3279 "ripper.y" 8619 #line 3283 "ripper.y" 8626 #line 3289 "ripper.y" 8628 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8633 #line 3293 "ripper.y" 8640 #line 3299 "ripper.y" 8647 #line 3303 "ripper.y" 8649 (yyval.
val) =
new_args((yyvsp[(1) - (8)].
val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].
val), (yyvsp[(7) - (8)].
val), (yyvsp[(8) - (8)].
val));
8654 #line 3307 "ripper.y" 8661 #line 3311 "ripper.y" 8668 #line 3315 "ripper.y" 8675 #line 3319 "ripper.y" 8680 dispatch1(excessed_comma, (yyval.
val));
8686 #line 3327 "ripper.y" 8693 #line 3331 "ripper.y" 8700 #line 3335 "ripper.y" 8707 #line 3339 "ripper.y" 8714 #line 3343 "ripper.y" 8721 #line 3347 "ripper.y" 8728 #line 3351 "ripper.y" 8735 #line 3355 "ripper.y" 8742 #line 3359 "ripper.y" 8749 #line 3366 "ripper.y" 8756 #line 3372 "ripper.y" 8763 escape_Qundef((yyvsp[(2) - (3)].
val)));
8769 #line 3382 "ripper.y" 8781 #line 3391 "ripper.y" 8785 (yyval.
val) = (yyvsp[(2) - (4)].
val);
8787 (yyval.
val) = blockvar_new(escape_Qundef((yyvsp[(2) - (4)].
val)), escape_Qundef((yyvsp[(3) - (4)].
val)));
8793 #line 3403 "ripper.y" 8800 #line 3407 "ripper.y" 8805 (yyval.
val) = (yyvsp[(3) - (4)].
val);
8811 #line 3419 "ripper.y" 8818 #line 3426 "ripper.y" 8825 #line 3433 "ripper.y" 8836 #line 3441 "ripper.y" 8843 #line 3446 "ripper.y" 8850 #line 3449 "ripper.y" 8858 #line 3454 "ripper.y" 8865 #line 3457 "ripper.y" 8873 #line 3462 "ripper.y" 8884 (yyval.
val) = dispatch2(lambda, (yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].
val));
8891 #line 3479 "ripper.y" 8894 (yyval.
val) = (yyvsp[(2) - (4)].
val);
8896 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (4)].
val));
8902 #line 3487 "ripper.y" 8904 (yyval.
val) = (yyvsp[(1) - (1)].
val);
8909 #line 3493 "ripper.y" 8912 (yyval.
val) = (yyvsp[(2) - (3)].
val);
8917 #line 3498 "ripper.y" 8919 (yyval.
val) = (yyvsp[(2) - (3)].
val);
8924 #line 3504 "ripper.y" 8933 #line 3510 "ripper.y" 8935 (yyval.
val) = (yyvsp[(3) - (4)].
val);
8943 #line 3519 "ripper.y" 8953 (yyval.
val) = (yyvsp[(2) - (2)].
val);
8954 fixpos((yyval.
val), (yyvsp[(1) - (2)].
val));
8962 #line 3535 "ripper.y" 8964 (yyval.
val) =
new_qcall((yyvsp[(2) - (4)].
val), (yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column);
8969 #line 3539 "ripper.y" 8974 (yyval.
val) = (yyvsp[(5) - (5)].
val);
8975 fixpos((yyval.
val), (yyvsp[(1) - (5)].
val));
8977 (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
8984 #line 3551 "ripper.y" 8989 (yyval.
val) = (yyvsp[(5) - (5)].
val);
8990 fixpos((yyval.
val), (yyvsp[(1) - (5)].
val));
8992 (yyval.
val) = dispatch4(command_call, (yyvsp[(1) - (5)].
val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].
val));
8999 #line 3565 "ripper.y" 9002 (yyval.
val) = (yyvsp[(1) - (2)].
val);
9005 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (2)].
val)), (yyvsp[(2) - (2)].
val));
9011 #line 3574 "ripper.y" 9020 #line 3580 "ripper.y" 9022 (yyval.
val) =
new_qcall((yyvsp[(2) - (5)].
val), (yyvsp[(1) - (5)].
val), (yyvsp[(3) - (5)].
val), (yyvsp[(5) - (5)].
val), (yylsp[(1) - (5)]).first_column);
9028 #line 3585 "ripper.y" 9037 #line 3591 "ripper.y" 9045 #line 3596 "ripper.y" 9052 #line 3600 "ripper.y" 9061 #line 3606 "ripper.y" 9063 (yyval.
val) =
new_qcall((yyvsp[(2) - (4)].
val), (yyvsp[(1) - (4)].
val),
ID2VAL(idCall), (yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column);
9069 #line 3611 "ripper.y" 9078 #line 3617 "ripper.y" 9086 #line 3622 "ripper.y" 9092 (yyval.
val) = dispatch1(super, (yyvsp[(2) - (2)].
val));
9098 #line 3631 "ripper.y" 9104 (yyval.
val) = dispatch0(zsuper);
9110 #line 3640 "ripper.y" 9116 (yyval.
val) =
new_call((yyvsp[(1) - (4)].
val),
tAREF, (yyvsp[(3) - (4)].
val), (yylsp[(1) - (4)]).first_column);
9117 fixpos((yyval.
val), (yyvsp[(1) - (4)].
val));
9119 (yyval.
val) = dispatch2(aref, (yyvsp[(1) - (4)].
val), escape_Qundef((yyvsp[(3) - (4)].
val)));
9125 #line 3654 "ripper.y" 9134 #line 3660 "ripper.y" 9136 (yyval.
val) = (yyvsp[(3) - (4)].
val);
9144 #line 3667 "ripper.y" 9153 #line 3673 "ripper.y" 9155 (yyval.
val) = (yyvsp[(3) - (4)].
val);
9163 #line 3681 "ripper.y" 9168 #line 3682 "ripper.y" 9173 #line 3684 "ripper.y" 9175 (yyval.
val) =
new_brace_body((yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column);
9182 #line 3691 "ripper.y" 9187 #line 3692 "ripper.y" 9192 #line 3694 "ripper.y" 9194 (yyval.
val) =
new_do_body((yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column);
9201 #line 3704 "ripper.y" 9204 (yyval.
val) =
NEW_WHEN((yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].
val));
9207 (yyval.
val) = dispatch3(when, (yyvsp[(2) - (5)].
val), (yyvsp[(4) - (5)].
val), escape_Qundef((yyvsp[(5) - (5)].
val)));
9213 #line 3721 "ripper.y" 9216 if ((yyvsp[(3) - (6)].
val)) {
9217 (yyvsp[(3) - (6)].
val) =
node_assign((yyvsp[(3) - (6)].
val),
new_errinfo((yylsp[(1) - (6)]).first_column), (yylsp[(1) - (6)]).first_column);
9218 (yyvsp[(5) - (6)].
val) =
block_append((yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].
val), (yylsp[(1) - (6)]).first_column);
9220 (yyval.
val) =
new_resbody((yyvsp[(2) - (6)].
val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].
val), (yylsp[(1) - (6)]).first_column);
9221 fixpos((yyval.
val), (yyvsp[(2) - (6)].
val)?(yyvsp[(2) - (6)].
val):(yyvsp[(5) - (6)].
val));
9223 (yyval.
val) = dispatch4(rescue,
9224 escape_Qundef((yyvsp[(2) - (6)].
val)),
9225 escape_Qundef((yyvsp[(3) - (6)].
val)),
9226 escape_Qundef((yyvsp[(5) - (6)].
val)),
9227 escape_Qundef((yyvsp[(6) - (6)].
val)));
9233 #line 3741 "ripper.y" 9236 (yyval.
val) =
new_list((yyvsp[(1) - (1)].
val), (yylsp[(1) - (1)]).first_column);
9244 #line 3749 "ripper.y" 9247 if (!((yyval.
val) = splat_array((yyvsp[(1) - (1)].
val)))) (yyval.
val) = (yyvsp[(1) - (1)].
val);
9249 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9255 #line 3760 "ripper.y" 9257 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9262 #line 3767 "ripper.y" 9265 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9267 (yyval.
val) = dispatch1(ensure, (yyvsp[(2) - (2)].
val));
9273 #line 3779 "ripper.y" 9278 (yyval.
val) = dispatch1(symbol_literal, (yyvsp[(1) - (1)].
val));
9284 #line 3790 "ripper.y" 9287 NODE *node = (yyvsp[(1) - (1)].
val);
9292 node =
evstr2dstr(node, (yylsp[(1) - (1)]).first_column);
9296 (yyval.
val) = (yyvsp[(1) - (1)].
val);
9302 #line 3807 "ripper.y" 9312 #line 3815 "ripper.y" 9315 (yyval.
val) =
literal_concat((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val), (yylsp[(1) - (2)]).first_column);
9317 (yyval.
val) = dispatch2(string_concat, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9323 #line 3825 "ripper.y" 9330 #line 3831 "ripper.y" 9337 #line 3837 "ripper.y" 9339 (yyval.
val) =
new_regexp((yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
9344 #line 3843 "ripper.y" 9349 (yyval.
val) = dispatch0(words_new);
9350 (yyval.
val) = dispatch1(array, (yyval.
val));
9356 #line 3852 "ripper.y" 9359 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9361 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
9367 #line 3862 "ripper.y" 9372 (yyval.
val) = dispatch0(words_new);
9378 #line 3870 "ripper.y" 9381 (yyval.
val) =
list_append((yyvsp[(1) - (3)].
val),
evstr2dstr((yyvsp[(2) - (3)].
val), (yylsp[(1) - (3)]).first_column), (yylsp[(1) - (3)]).first_column);
9383 (yyval.
val) = dispatch2(words_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
9389 #line 3882 "ripper.y" 9391 (yyval.
val) = dispatch0(word_new);
9392 (yyval.
val) = dispatch2(word_add, (yyval.
val), (yyvsp[(1) - (1)].
val));
9397 #line 3888 "ripper.y" 9400 (yyval.
val) =
literal_concat((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val), (yylsp[(1) - (2)]).first_column);
9402 (yyval.
val) = dispatch2(word_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9408 #line 3898 "ripper.y" 9413 (yyval.
val) = dispatch0(symbols_new);
9414 (yyval.
val) = dispatch1(array, (yyval.
val));
9420 #line 3907 "ripper.y" 9423 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9425 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
9431 #line 3917 "ripper.y" 9436 (yyval.
val) = dispatch0(symbols_new);
9442 #line 3925 "ripper.y" 9445 (yyvsp[(2) - (3)].
val) =
evstr2dstr((yyvsp[(2) - (3)].
val), (yylsp[(1) - (3)]).first_column);
9453 (yyval.
val) =
list_append((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yylsp[(1) - (3)]).first_column);
9455 (yyval.
val) = dispatch2(symbols_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
9461 #line 3943 "ripper.y" 9466 (yyval.
val) = dispatch0(qwords_new);
9467 (yyval.
val) = dispatch1(array, (yyval.
val));
9473 #line 3952 "ripper.y" 9476 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9478 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
9484 #line 3962 "ripper.y" 9489 (yyval.
val) = dispatch0(qsymbols_new);
9490 (yyval.
val) = dispatch1(array, (yyval.
val));
9496 #line 3971 "ripper.y" 9499 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9501 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].
val));
9507 #line 3981 "ripper.y" 9512 (yyval.
val) = dispatch0(qwords_new);
9518 #line 3989 "ripper.y" 9521 (yyval.
val) =
list_append((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yylsp[(1) - (3)]).first_column);
9524 (yyval.
val) = dispatch2(qwords_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
9530 #line 4000 "ripper.y" 9535 (yyval.
val) = dispatch0(qsymbols_new);
9541 #line 4008 "ripper.y" 9548 (yyval.
val) =
list_append((yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val), (yylsp[(1) - (3)]).first_column);
9551 (yyval.
val) = dispatch2(qsymbols_add, (yyvsp[(1) - (3)].
val), (yyvsp[(2) - (3)].
val));
9557 #line 4023 "ripper.y" 9562 (yyval.
val) = dispatch0(string_content);
9568 #line 4031 "ripper.y" 9571 (yyval.
val) =
literal_concat((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val), (yylsp[(1) - (2)]).first_column);
9573 (yyval.
val) = dispatch2(string_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9579 #line 4041 "ripper.y" 9584 (yyval.
val) = dispatch0(xstring_new);
9590 #line 4049 "ripper.y" 9593 (yyval.
val) =
literal_concat((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val), (yylsp[(1) - (2)]).first_column);
9595 (yyval.
val) = dispatch2(xstring_add, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
9601 #line 4059 "ripper.y" 9606 (yyval.
val) = ripper_new_yylval(0, dispatch0(regexp_new), 0);
9612 #line 4067 "ripper.y" 9615 NODE *head = (yyvsp[(1) - (2)].
val), *tail = (yyvsp[(2) - (2)].
val);
9633 (yyval.
val) =
list_append(head, tail, (yylsp[(1) - (2)]).first_column);
9636 VALUE s1 = 1, s2 = 0, n1 = (yyvsp[(1) - (2)].
val), n2 = (yyvsp[(2) - (2)].
val);
9637 if (ripper_is_node_yylval(n1)) {
9638 s1 =
RNODE(n1)->nd_cval;
9639 n1 =
RNODE(n1)->nd_rval;
9641 if (ripper_is_node_yylval(n2)) {
9642 s2 =
RNODE(n2)->nd_cval;
9643 n2 =
RNODE(n2)->nd_rval;
9645 (yyval.
val) = dispatch2(regexp_add, n1, n2);
9647 (yyval.
val) = ripper_new_yylval(0, (yyval.
val), s2);
9654 #line 4108 "ripper.y" 9664 #line 4115 "ripper.y" 9673 #line 4121 "ripper.y" 9680 (yyval.
val) = dispatch1(string_dvar, (yyvsp[(3) - (3)].
val));
9686 #line 4131 "ripper.y" 9696 #line 4137 "ripper.y" 9704 #line 4141 "ripper.y" 9712 #line 4145 "ripper.y" 9720 #line 4149 "ripper.y" 9728 #line 4154 "ripper.y" 9739 (yyval.
val) =
new_evstr((yyvsp[(7) - (8)].
val), (yylsp[(1) - (8)]).first_column);
9741 (yyval.
val) = dispatch1(string_embexpr, (yyvsp[(7) - (8)].
val));
9747 #line 4172 "ripper.y" 9750 (yyval.
val) =
new_gvar((yyvsp[(1) - (1)].
val), (yylsp[(1) - (1)]).first_column);
9752 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
9758 #line 4180 "ripper.y" 9761 (yyval.
val) =
new_ivar((yyvsp[(1) - (1)].
val), (yylsp[(1) - (1)]).first_column);
9763 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
9769 #line 4188 "ripper.y" 9775 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
9781 #line 4200 "ripper.y" 9785 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9787 (yyval.
val) = dispatch1(symbol, (yyvsp[(2) - (2)].
val));
9793 #line 4217 "ripper.y" 9797 (yyval.
val) =
dsym_node((yyvsp[(2) - (3)].
val), (yylsp[(1) - (3)]).first_column);
9799 (yyval.
val) = dispatch1(dyna_symbol, (yyvsp[(2) - (3)].
val));
9805 #line 4229 "ripper.y" 9808 (yyval.
val) = (yyvsp[(2) - (2)].
val);
9817 #line 4240 "ripper.y" 9827 #line 4247 "ripper.y" 9837 #line 4254 "ripper.y" 9847 #line 4261 "ripper.y" 9857 #line 4276 "ripper.y" 9862 #line 4277 "ripper.y" 9867 #line 4278 "ripper.y" 9872 #line 4279 "ripper.y" 9877 #line 4280 "ripper.y" 9882 #line 4281 "ripper.y" 9887 #line 4282 "ripper.y" 9888 {(yyval.
val) =
KWD2EID(_ENCODING__, (yyvsp[(1) - (1)].
val));;}
9892 #line 4286 "ripper.y" 9895 if (!((yyval.
val) =
gettable((yyvsp[(1) - (1)].
val), (yylsp[(1) - (1)]).first_column))) (yyval.
val) =
new_begin(0, (yylsp[(1) - (1)]).first_column);
9897 if (id_is_var(
get_id((yyvsp[(1) - (1)].
val)))) {
9898 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
9901 (yyval.
val) = dispatch1(vcall, (yyvsp[(1) - (1)].
val));
9908 #line 4299 "ripper.y" 9911 if (!((yyval.
val) =
gettable((yyvsp[(1) - (1)].
val), (yylsp[(1) - (1)]).first_column))) (yyval.
val) =
new_begin(0, (yylsp[(1) - (1)]).first_column);
9913 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].
val));
9919 #line 4309 "ripper.y" 9926 #line 4313 "ripper.y" 9933 #line 4319 "ripper.y" 9943 #line 4326 "ripper.y" 9953 #line 4335 "ripper.y" 9961 #line 4340 "ripper.y" 9963 (yyval.
val) = (yyvsp[(3) - (4)].
val);
9968 #line 4344 "ripper.y" 9979 #line 4354 "ripper.y" 9982 (yyval.
val) = (yyvsp[(2) - (3)].
val);
9984 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (3)].
val));
9992 #line 4363 "ripper.y" 10001 #line 4369 "ripper.y" 10004 (yyval.
val) = (yyvsp[(2) - (3)].
val);
10011 #line 4378 "ripper.y" 10013 (yyval.
val) =
new_args_tail((yyvsp[(1) - (4)].
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column);
10018 #line 4382 "ripper.y" 10025 #line 4386 "ripper.y" 10032 #line 4390 "ripper.y" 10039 #line 4396 "ripper.y" 10041 (yyval.
val) = (yyvsp[(2) - (2)].
val);
10046 #line 4400 "ripper.y" 10053 #line 4406 "ripper.y" 10060 #line 4410 "ripper.y" 10062 (yyval.
val) =
new_args((yyvsp[(1) - (8)].
val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].
val), (yyvsp[(7) - (8)].
val), (yyvsp[(8) - (8)].
val));
10067 #line 4414 "ripper.y" 10074 #line 4418 "ripper.y" 10081 #line 4422 "ripper.y" 10088 #line 4426 "ripper.y" 10095 #line 4430 "ripper.y" 10102 #line 4434 "ripper.y" 10109 #line 4438 "ripper.y" 10116 #line 4442 "ripper.y" 10123 #line 4446 "ripper.y" 10130 #line 4450 "ripper.y" 10137 #line 4454 "ripper.y" 10144 #line 4458 "ripper.y" 10151 #line 4462 "ripper.y" 10159 #line 4469 "ripper.y" 10162 yyerror0(
"formal argument cannot be a constant");
10165 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10172 #line 4479 "ripper.y" 10175 yyerror0(
"formal argument cannot be an instance variable");
10178 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10185 #line 4489 "ripper.y" 10188 yyerror0(
"formal argument cannot be a global variable");
10191 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10198 #line 4499 "ripper.y" 10201 yyerror0(
"formal argument cannot be a class variable");
10204 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].
val));
10211 #line 4512 "ripper.y" 10214 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10219 #line 4519 "ripper.y" 10224 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10229 #line 4528 "ripper.y" 10241 #line 4537 "ripper.y" 10255 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].
val));
10261 #line 4558 "ripper.y" 10268 #line 4563 "ripper.y" 10271 (yyval.
val) = (yyvsp[(1) - (3)].
val);
10282 #line 4577 "ripper.y" 10287 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10292 #line 4586 "ripper.y" 10295 (yyval.
val) =
assignable((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val), (yylsp[(1) - (2)]).first_column);
10305 #line 4596 "ripper.y" 10308 (yyval.
val) =
assignable((yyvsp[(1) - (1)].
val), (
NODE *)-1, (yylsp[(1) - (1)]).first_column);
10318 #line 4608 "ripper.y" 10320 (yyval.
val) =
assignable((yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val), (yylsp[(1) - (2)]).first_column);
10330 #line 4617 "ripper.y" 10332 (yyval.
val) =
assignable((yyvsp[(1) - (1)].
val), (
NODE *)-1, (yylsp[(1) - (1)]).first_column);
10342 #line 4628 "ripper.y" 10345 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10353 #line 4636 "ripper.y" 10356 (yyval.
val) = kwd_append((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
10364 #line 4647 "ripper.y" 10367 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10375 #line 4655 "ripper.y" 10378 (yyval.
val) = kwd_append((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
10386 #line 4669 "ripper.y" 10390 (yyval.
val) = (yyvsp[(2) - (2)].
val);
10392 (yyval.
val) = dispatch1(kwrest_param, (yyvsp[(2) - (2)].
val));
10398 #line 4678 "ripper.y" 10404 (yyval.
val) = dispatch1(kwrest_param,
Qnil);
10410 #line 4689 "ripper.y" 10413 (yyval.
val) =
assignable((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
10424 #line 4702 "ripper.y" 10427 (yyval.
val) =
assignable((yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
10438 #line 4715 "ripper.y" 10441 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10449 #line 4723 "ripper.y" 10452 NODE *opts = (yyvsp[(1) - (3)].
val);
10454 while (opts->nd_next) {
10455 opts = opts->nd_next;
10457 opts->nd_next = (yyvsp[(3) - (3)].
val);
10458 (yyval.
val) = (yyvsp[(1) - (3)].
val);
10466 #line 4739 "ripper.y" 10469 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10477 #line 4747 "ripper.y" 10480 NODE *opts = (yyvsp[(1) - (3)].
val);
10482 while (opts->nd_next) {
10483 opts = opts->nd_next;
10485 opts->nd_next = (yyvsp[(3) - (3)].
val);
10486 (yyval.
val) = (yyvsp[(1) - (3)].
val);
10494 #line 4767 "ripper.y" 10498 yyerror0(
"rest argument must be local variable");
10502 (yyval.
val) = (yyvsp[(2) - (2)].
val);
10504 (yyval.
val) = dispatch1(rest_param, (yyvsp[(2) - (2)].
val));
10510 #line 4780 "ripper.y" 10516 (yyval.
val) = dispatch1(rest_param,
Qnil);
10522 #line 4795 "ripper.y" 10526 yyerror0(
"block argument must be local variable");
10528 yyerror0(
"duplicated block argument name");
10532 (yyval.
val) = (yyvsp[(2) - (2)].
val);
10534 (yyval.
val) = dispatch1(blockarg, (yyvsp[(2) - (2)].
val));
10540 #line 4812 "ripper.y" 10542 (yyval.
val) = (yyvsp[(2) - (2)].
val);
10547 #line 4816 "ripper.y" 10558 #line 4826 "ripper.y" 10562 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10565 (yyval.
val) = (yyvsp[(1) - (1)].
val);
10571 #line 4835 "ripper.y" 10576 #line 4836 "ripper.y" 10579 if ((yyvsp[(3) - (4)].
val) == 0) {
10580 yyerror0(
"can't define singleton method for ().");
10592 yyerror0(
"can't define singleton method for literals");
10599 (yyval.
val) = (yyvsp[(3) - (4)].
val);
10601 (yyval.
val) = dispatch1(paren, (yyvsp[(3) - (4)].
val));
10607 #line 4867 "ripper.y" 10610 (yyval.
val) = (yyvsp[(1) - (2)].
val);
10612 (yyval.
val) = dispatch1(assoclist_from_args, (yyvsp[(1) - (2)].
val));
10618 #line 4879 "ripper.y" 10625 #line 4884 "ripper.y" 10628 NODE *assocs = (yyvsp[(1) - (3)].
val);
10629 NODE *tail = (yyvsp[(3) - (3)].
val);
10634 if (assocs->nd_head &&
10638 tail = tail->nd_next->nd_head->nd_head;
10640 assocs = list_concat(assocs, tail);
10642 (yyval.
val) = assocs;
10650 #line 4908 "ripper.y" 10657 (yyval.
val) =
list_append(
new_list((yyvsp[(1) - (3)].
val), (yylsp[(1) - (3)]).first_column), (yyvsp[(3) - (3)].
val), (yylsp[(1) - (3)]).first_column);
10659 (yyval.
val) = dispatch2(assoc_new, (yyvsp[(1) - (3)].
val), (yyvsp[(3) - (3)].
val));
10665 #line 4920 "ripper.y" 10668 (yyval.
val) =
list_append(
new_list(
new_lit(
ID2SYM((yyvsp[(1) - (2)].
val)), (yylsp[(1) - (2)]).first_column), (yylsp[(1) - (2)]).first_column), (yyvsp[(2) - (2)].
val), (yylsp[(1) - (2)]).first_column);
10670 (yyval.
val) = dispatch2(assoc_new, (yyvsp[(1) - (2)].
val), (yyvsp[(2) - (2)].
val));
10676 #line 4928 "ripper.y" 10679 (yyval.
val) =
list_append(
new_list(
dsym_node((yyvsp[(2) - (4)].
val), (yylsp[(1) - (4)]).first_column), (yylsp[(1) - (4)]).first_column), (yyvsp[(4) - (4)].
val), (yylsp[(1) - (4)]).first_column);
10681 (yyval.
val) = dispatch2(assoc_new, dispatch1(dyna_symbol, (yyvsp[(2) - (4)].
val)), (yyvsp[(4) - (4)].
val));
10687 #line 4936 "ripper.y" 10691 !((yyvsp[(2) - (2)].
val)->nd_head && (yyvsp[(2) - (2)].
val)->
nd_head->nd_alen))
10694 (yyval.
val) =
list_append(
new_list(0, (yylsp[(1) - (2)]).first_column), (yyvsp[(2) - (2)].
val), (yylsp[(1) - (2)]).first_column);
10696 (yyval.
val) = dispatch1(assoc_splat, (yyvsp[(2) - (2)].
val));
10702 #line 4970 "ripper.y" 10709 #line 4974 "ripper.y" 10716 #line 4981 "ripper.y" 10723 #line 5005 "ripper.y" 10728 #line 5006 "ripper.y" 10733 #line 5010 "ripper.y" 10738 #line 5014 "ripper.y" 10746 #line 10745 "ripper.c" 10764 yystate = yypgoto[yyn -
YYNTOKENS] + *yyssp;
10765 if (0 <= yystate && yystate <=
YYLAST && yycheck[yystate] == *yyssp)
10766 yystate = yytable[yystate];
10781 #if ! YYERROR_VERBOSE 10782 yyerror (&yylloc, parser,
YY_(
"syntax error"));
10785 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
10791 if (yymsg != yymsgbuf)
10795 yymsg_alloc = yyalloc;
10799 yymsg_alloc =
sizeof yymsgbuf;
10803 if (0 < yysize && yysize <= yymsg_alloc)
10805 (void) yysyntax_error (yymsg, yystate, yychar);
10806 yyerror (&yylloc, parser, yymsg);
10810 yyerror (&yylloc, parser,
YY_(
"syntax error"));
10812 goto yyexhaustedlab;
10818 yyerror_range[0] = yylloc;
10820 if (yyerrstatus == 3)
10825 if (yychar <=
YYEOF)
10828 if (yychar ==
YYEOF)
10833 yydestruct (
"Error: discarding",
10834 yytoken, &yylval, &yylloc, parser);
10855 yyerror_range[0] = yylsp[1-yylen];
10873 yyn = yypact[yystate];
10879 yyn = yytable[yyn];
10889 yyerror_range[0] = *yylsp;
10890 yydestruct (
"Error: popping",
10891 yystos[yystate], yyvsp, yylsp, parser);
10902 yyerror_range[1] = yylloc;
10934 yyerror (&yylloc, parser,
YY_(
"memory exhausted"));
10941 yydestruct (
"Cleanup: discarding lookahead",
10942 yytoken, &yylval, &yylloc, parser);
10947 while (yyssp != yyss)
10949 yydestruct (
"Cleanup: popping",
10950 yystos[*yyssp], yyvsp, yylsp, parser);
10957 #if YYERROR_VERBOSE 10958 if (yymsg != yymsgbuf)
10962 return YYID (yyresult);
10966 #line 5018 "ripper.y" 10971 # define yylval (*parser->lval) 10980 # define nextc() parser_nextc(parser) 10981 # define pushback(c) parser_pushback(parser, (c)) 10982 # define newtok() parser_newtok(parser) 10983 # define tokspace(n) parser_tokspace(parser, (n)) 10984 # define tokadd(c) parser_tokadd(parser, (c)) 10985 # define tok_hex(numlen) parser_tok_hex(parser, (numlen)) 10986 # define read_escape(flags,e) parser_read_escape(parser, (flags), (e)) 10987 # define tokadd_escape(e) parser_tokadd_escape(parser, (e)) 10988 # define regx_options() parser_regx_options(parser) 10989 # define tokadd_string(f,t,p,n,e) parser_tokadd_string(parser,(f),(t),(p),(n),(e)) 10990 # define parse_string(n) parser_parse_string(parser,(n)) 10991 # define tokaddmbc(c, enc) parser_tokaddmbc(parser, (c), (enc)) 10992 # define here_document(n) parser_here_document(parser,(n)) 10993 # define heredoc_identifier() parser_heredoc_identifier(parser) 10994 # define heredoc_restore(n) parser_heredoc_restore(parser,(n)) 10995 # define whole_match_p(e,l,i) parser_whole_match_p(parser,(e),(l),(i)) 10996 # define number_literal_suffix(f) parser_number_literal_suffix(parser, (f)) 10997 # define set_number_literal(v, t, f) parser_set_number_literal(parser, (v), (t), (f)) 10998 # define set_integer_literal(v, f) parser_set_integer_literal(parser, (v), (f)) 11001 # define set_yylval_str(x) (yylval.node = NEW_STR(x)) 11002 # define set_yylval_num(x) (yylval.num = (x)) 11003 # define set_yylval_id(x) (yylval.id = (x)) 11004 # define set_yylval_name(x) (yylval.id = (x)) 11005 # define set_yylval_literal(x) (yylval.node = NEW_LIT(x)) 11006 # define set_yylval_node(x) (yylval.node = (x)) 11007 # define yylval_id() (yylval.id) 11009 static inline VALUE 11010 ripper_yylval_id(
ID x)
11012 return ripper_new_yylval(x,
ID2SYM(x), 0);
11014 # define set_yylval_str(x) (yylval.val = (x)) 11015 # define set_yylval_num(x) (yylval.val = ripper_new_yylval((x), 0, 0)) 11016 # define set_yylval_id(x) (void)(x) 11017 # define set_yylval_name(x) (void)(yylval.val = ripper_yylval_id(x)) 11018 # define set_yylval_literal(x) (void)(x) 11019 # define set_yylval_node(x) (void)(x) 11020 # define yylval_id() yylval.id 11024 #define literal_flush(p) (parser->tokp = (p)) 11025 #define dispatch_scan_event(t) ((void)0) 11026 #define dispatch_delayed_token(t) ((void)0) 11027 #define has_delayed_token() (0) 11029 #define literal_flush(p) ((void)0) 11031 #define yylval_rval (*(RB_TYPE_P(yylval.val, T_NODE) ? &yylval.node->nd_rval : &yylval.val)) 11033 static inline VALUE 11034 intern_sym(
const char *
name)
11045 return lex_p > parser->tokp;
11052 VALUE rval = ripper_dispatch1(parser, ripper_token2eventid(t), str);
11058 ripper_dispatch_scan_event(
struct parser_params *parser,
int t)
11060 if (!ripper_has_scan_event(parser))
return;
11061 yylval_rval = ripper_scan_event_val(parser, t);
11063 #define dispatch_scan_event(t) ripper_dispatch_scan_event(parser, t) 11066 ripper_dispatch_delayed_token(
struct parser_params *parser,
int t)
11069 const char *saved_tokp = parser->tokp;
11072 parser->tokp =
lex_pbeg + parser->delayed_col;
11073 yylval_rval = ripper_dispatch1(parser, ripper_token2eventid(t), parser->delayed);
11074 parser->delayed =
Qnil;
11076 parser->tokp = saved_tokp;
11078 #define dispatch_delayed_token(t) ripper_dispatch_delayed_token(parser, t) 11079 #define has_delayed_token() (!NIL_P(parser->delayed)) 11085 #define parser_encoding_name() (current_enc->name) 11086 #define parser_mbclen() mbclen((lex_p-1),lex_pend,current_enc) 11087 #define is_identchar(p,e,enc) (rb_enc_isalnum((unsigned char)(*(p)),(enc)) || (*(p)) == '_' || !ISASCII(*(p))) 11088 #define parser_is_identchar() (!parser->eofp && is_identchar((lex_p-1),lex_pend,current_enc)) 11090 #define parser_isascii() ISASCII(*(lex_p-1)) 11093 token_info_get_column(
struct parser_params *parser,
const char *pend)
11097 for (p =
lex_pbeg; p < pend; p++) {
11107 token_info_has_nonspaces(
struct parser_params *parser,
const char *pend)
11110 for (p =
lex_pbeg; p < pend; p++) {
11111 if (*p !=
' ' && *p !=
'\t') {
11128 ptinfo->
column = token_info_get_column(parser, t);
11129 ptinfo->
nonspc = token_info_has_nonspaces(parser, t);
11136 token_info_pop_gen(
struct parser_params *parser,
const char *token,
size_t len)
11142 if (!ptinfo)
return;
11147 !token_info_has_nonspaces(parser, t) &&
11148 token_info_get_column(parser, t) != ptinfo->
column) {
11150 "mismatched indentations at '%s' with '%s' at %d",
11158 parser_precise_mbclen(
struct parser_params *parser,
const char *p)
11169 parser_yyerror(
struct parser_params *parser,
const char *msg)
11172 const int max_line_margin = 30;
11173 const char *p, *pe;
11174 const char *pre =
"", *post =
"", *pend;
11175 const char *code =
"", *caret =
"", *newline =
"";
11182 if (pend >
lex_pbeg && pend[-1] ==
'\n') {
11183 if (--pend >
lex_pbeg && pend[-1] ==
'\r') --pend;
11188 while ((lim < p) && (*(p-1) !=
'\n')) p--;
11190 lim = pend - pe > max_line_margin ? pe + max_line_margin : pend;
11191 while ((pe < lim) && (*pe !=
'\n')) pe++;
11203 if (pe < pend) post =
"...";
11207 i = (int)(lim - p);
11211 pe = (parser->tokp < lim ? parser->tokp : lim);
11214 *p2++ = *p++ ==
'\t' ?
'\t' :
' ';
11220 memset(p2,
'~', (lim - p));
11231 pre, (
int)len, code, post, newline,
11234 dispatch1(parse_error,
STR_NEW2(msg));
11266 #define vtable_alloc(prev) vtable_alloc_gen(parser, __LINE__, prev) 11284 #define vtable_free(tbl) vtable_free_gen(parser, __LINE__, #tbl, tbl) 11297 rb_parser_fatal(parser,
"vtable_add: vtable is not allocated (%p)", (
void *)tbl);
11306 #define vtable_add(tbl, id) vtable_add_gen(parser, __LINE__, #tbl, tbl, id) 11311 struct vtable *tbl,
int n)
11315 line, name, tbl, n);
11317 if (tbl->
pos < n) {
11323 #define vtable_pop(tbl, n) vtable_pop_gen(parser, __LINE__, #tbl, tbl, n) 11327 vtable_included(
const struct vtable * tbl,
ID id)
11332 for (i = 0; i < tbl->
pos; i++) {
11333 if (tbl->
tbl[i] ==
id) {
11345 debug_lines(
VALUE fname)
11348 CONST_ID(script_lines,
"SCRIPT_LINES__");
11361 coverage(
VALUE fname,
int n)
11364 if (
RTEST(coverages) &&
RBASIC(coverages)->klass == 0) {
11382 yycompile0(
VALUE arg)
11399 if (!e_option_supplied(parser)) {
11405 parser_prepare(parser);
11407 #define RUBY_DTRACE_PARSE_HOOK(name) \ 11408 if (RUBY_DTRACE_PARSE_##name##_ENABLED()) { \ 11409 RUBY_DTRACE_PARSE_##name(ruby_sourcefile, ruby_sourceline); \ 11423 if (parser->error_p) {
11424 VALUE mesg = parser->error_buffer;
11436 VALUE opt = parser->compile_option;
11442 tree->nd_body = prelude;
11444 return (
VALUE)tree;
11458 must_be_ascii_compatible(
VALUE s)
11470 char *beg, *end, *start;
11481 end = memchr(beg,
'\n', len);
11482 if (end) len = ++end - beg;
11491 if (
NIL_P(line))
return line;
11492 must_be_ascii_compatible(line);
11520 node = yycompile(parser, fname, line);
11529 must_be_ascii_compatible(s);
11542 must_be_ascii_compatible(s);
11543 return parser_compile_string(vparser, f, s, line);
11593 node = yycompile(parser, fname, start);
11600 #define STR_FUNC_ESCAPE 0x01 11601 #define STR_FUNC_EXPAND 0x02 11602 #define STR_FUNC_REGEXP 0x04 11603 #define STR_FUNC_QWORDS 0x08 11604 #define STR_FUNC_SYMBOL 0x10 11605 #define STR_FUNC_INDENT 0x20 11606 #define STR_FUNC_LABEL 0x40 11607 #define STR_FUNC_TERM 0x8000 11638 #define lex_goto_eol(parser) ((parser)->lex.pcur = (parser)->lex.pend) 11639 #define lex_eol_p() (lex_p >= lex_pend) 11640 #define peek(c) peek_n((c), 0) 11641 #define peek_n(c,n) (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n]) 11642 #define peekc() peekc_n(0) 11643 #define peekc_n(n) (lex_p+(n) < lex_pend ? (unsigned char)lex_p[n] : -1) 11667 parser->tokp,
lex_pend - parser->tokp);
11669 parser->delayed_col = (int)(parser->tokp -
lex_pbeg);
11673 parser->tokp,
lex_pend - parser->tokp);
11700 rb_warn0(
"encountered \\r in middle of line, treated as a mere space");
11711 if (parser_nextline(parser))
return -1;
11713 c = (
unsigned char)*
lex_p++;
11715 c = parser_cr(parser, c);
11724 if (c == -1)
return;
11731 #define was_bol() (lex_p == lex_pbeg + 1) 11733 #define tokfix() (tokenbuf[tokidx]='\0') 11734 #define tok() tokenbuf 11735 #define toklen() tokidx 11736 #define toklast() (tokidx>0?tokenbuf[tokidx-1]:0) 11777 parser_tok_hex(
struct parser_params *parser,
size_t *numlen)
11783 parser->tokp =
lex_p;
11791 #define tokcopy(n) memcpy(tokspace(n), lex_p - (n), (n)) 11795 int regexp_literal,
int wide)
11801 if (wide ? (numlen == 0 || numlen > 6) : (numlen < 4)) {
11802 yyerror0(
"invalid Unicode escape");
11803 return wide && numlen > 0;
11805 if (codepoint > 0x10ffff) {
11806 yyerror0(
"invalid Unicode codepoint (too large)");
11809 if ((codepoint & 0xfffff800) == 0xd800) {
11810 yyerror0(
"invalid Unicode codepoint");
11813 if (regexp_literal) {
11816 else if (codepoint >= 0x80) {
11818 if (*encp && utf8 != *encp) {
11819 static const char mixed_utf8[] =
"UTF-8 mixed within %s source";
11821 char *mesg =
alloca(len);
11838 int string_literal,
int symbol_literal,
int regexp_literal)
11847 const int open_brace =
'{', close_brace =
'}';
11851 if (
peek(open_brace)) {
11856 if (regexp_literal)
tokadd(last);
11857 if (!parser_tokadd_codepoint(parser, encp, regexp_literal,
TRUE)) {
11864 }
while (c != close_brace);
11866 if (c != close_brace) {
11869 yyerror0(
"unterminated Unicode escape");
11873 if (regexp_literal)
tokadd(close_brace);
11877 if (!parser_tokadd_codepoint(parser, encp, regexp_literal,
FALSE)) {
11885 #define ESCAPE_CONTROL 1 11886 #define ESCAPE_META 2 11889 parser_read_escape(
struct parser_params *parser,
int flags,
11895 switch (c =
nextc()) {
11920 case '0':
case '1':
case '2':
case '3':
11921 case '4':
case '5':
case '6':
case '7':
11929 if (numlen == 0)
return 0;
11940 if ((c =
nextc()) !=
'-') {
11943 if ((c =
nextc()) ==
'\\') {
11944 if (
peek(
'u'))
goto eof;
11945 return read_escape(flags|ESCAPE_META, encp) | 0x80;
11947 else if (c == -1 || !
ISASCII(c))
goto eof;
11949 return ((c & 0xff) | 0x80);
11953 if ((c =
nextc()) !=
'-') {
11958 if ((c =
nextc())==
'\\') {
11959 if (
peek(
'u'))
goto eof;
11964 else if (c == -1 || !
ISASCII(c))
goto eof;
11969 yyerror0(
"Invalid escape character syntax");
11993 switch (c =
nextc()) {
11997 case '0':
case '1':
case '2':
case '3':
11998 case '4':
case '5':
case '6':
case '7':
12001 if (numlen == 0)
goto eof;
12010 if (numlen == 0)
return -1;
12017 if ((c =
nextc()) !=
'-') {
12027 if ((c =
nextc()) !=
'-') {
12035 if (flags & ESCAPE_CONTROL)
goto eof;
12039 if ((c =
nextc()) ==
'\\') {
12042 else if (c == -1)
goto eof;
12048 yyerror0(
"Invalid escape character syntax");
12095 dispose_string(
VALUE str)
12104 int len = parser_precise_mbclen(parser,
lex_p-1);
12105 if (len < 0)
return -1;
12112 #define tokadd_mbchar(c) parser_tokadd_mbchar(parser, (c)) 12115 simple_re_meta(
int c)
12118 case '$':
case '*':
case '+':
case '.':
12119 case '?':
case '^':
case '|':
12120 case ')':
case ']':
case '}':
case '>':
12128 parser_update_heredoc_indent(
struct parser_params *parser,
int c)
12138 else if (c ==
'\t') {
12143 else if (c !=
'\n') {
12155 int func,
int term,
int paren,
long *nest,
12161 static const char mixed_msg[] =
"%s mixed within %s source";
12163 #define mixed_error(enc1, enc2) if (!errbuf) { \ 12164 size_t len = sizeof(mixed_msg) - 4; \ 12165 len += strlen(rb_enc_name(enc1)); \ 12166 len += strlen(rb_enc_name(enc2)); \ 12167 errbuf = ALLOCA_N(char, len); \ 12168 snprintf(errbuf, len, mixed_msg, \ 12169 rb_enc_name(enc1), \ 12170 rb_enc_name(enc2)); \ 12171 yyerror0(errbuf); \ 12173 #define mixed_escape(beg, enc1, enc2) do { \ 12174 const char *pos = lex_p; \ 12176 mixed_error((enc1), (enc2)); \ 12180 while ((c =
nextc()) != -1) {
12182 parser_update_heredoc_indent(parser, c);
12185 if (paren && c == paren) {
12188 else if (c == term) {
12189 if (!nest || !*nest) {
12197 if (c2 ==
'$' || c2 ==
'@' || c2 ==
'{') {
12202 else if (c ==
'\\') {
12208 if (func & STR_FUNC_EXPAND)
continue;
12217 if ((func & STR_FUNC_EXPAND) == 0) {
12221 if (!parser_tokadd_utf8(parser, &enc, term,
12229 if (c == -1)
return -1;
12231 if ((func & STR_FUNC_EXPAND) == 0)
tokadd(
'\\');
12234 if (func & STR_FUNC_REGEXP) {
12235 if (c == term && !simple_re_meta(c)) {
12242 if (enc && enc != *encp) {
12247 else if (func & STR_FUNC_EXPAND) {
12249 if (func & STR_FUNC_ESCAPE)
tokadd(
'\\');
12252 else if ((func & STR_FUNC_QWORDS) &&
ISSPACE(c)) {
12255 else if (c != term && !(paren && c == paren)) {
12267 else if (enc != *encp) {
12282 else if (enc != *encp) {
12289 if (enc) *encp =
enc;
12293 #define NEW_STRTERM(func, term, paren) \ 12294 rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0) 12301 if (!ripper_is_node_yylval(content))
12302 content = ripper_new_yylval(0, 0, content);
12304 ptrdiff_t len =
lex_p - parser->tokp;
12309 parser->tokp =
lex_p;
12313 if (
yylval.val != content)
12318 #define flush_string_content(enc) token_flush_string_content(parser, (enc)) 12320 #define flush_string_content(enc) ((void)(enc)) 12327 #define BIT(c, idx) (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0) 12328 #define SPECIAL_PUNCT(idx) ( \ 12329 BIT('~', idx) | BIT('*', idx) | BIT('$', idx) | BIT('?', idx) | \ 12330 BIT('!', idx) | BIT('@', idx) | BIT('/', idx) | BIT('\\', idx) | \ 12331 BIT(';', idx) | BIT(',', idx) | BIT('.', idx) | BIT('=', idx) | \ 12332 BIT(':', idx) | BIT('<', idx) | BIT('>', idx) | BIT('\"', idx) | \ 12333 BIT('&', idx) | BIT('`', idx) | BIT('\'', idx) | BIT('+', idx) | \ 12341 #undef SPECIAL_PUNCT 12348 const char *p =
lex_p;
12354 if ((c = *p) ==
'-') {
12358 else if (is_global_name_punct(c) ||
ISDIGIT(c)) {
12363 if ((c = *p) ==
'@') {
12380 #define IS_ARG() IS_lex_state(EXPR_ARG_ANY) 12381 #define IS_END() IS_lex_state(EXPR_END_ANY) 12382 #define IS_BEG() (IS_lex_state(EXPR_BEG_ANY) || IS_lex_state_all(EXPR_ARG|EXPR_LABELED)) 12383 #define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c)) 12384 #define IS_LABEL_POSSIBLE() (\ 12385 (IS_lex_state(EXPR_LABEL|EXPR_ENDFN) && !cmd_state) || \ 12387 #define IS_LABEL_SUFFIX(n) (peek_n(':',(n)) && !peek_n(':', (n)+1)) 12388 #define IS_AFTER_OPERATOR() IS_lex_state(EXPR_FNAME | EXPR_DOT) 12413 int func = (int)quote->nd_func;
12429 if (c == term && !quote->nd_nest) {
12430 if (func & STR_FUNC_QWORDS) {
12434 return parser_string_term(parser, func);
12442 int t = parser_peek_variable_name(parser);
12450 if (parser->
eofp) {
12452 # define unterminated_literal(mesg) yyerror0(mesg) 12454 # define unterminated_literal(mesg) compile_error(PARSER_ARG mesg) 12487 else if (c ==
'~') {
12505 while ((c =
nextc()) != -1 && c != term) {
12507 if (!newline && c ==
'\n') newline = 1;
12508 else if (newline) newline = 2;
12516 rb_warn0(
"here document identifier ends with a newline");
12563 line = here->nd_orig;
12570 dispose_string(here->nd_lit);
12576 dedent_string(
VALUE string,
int width)
12583 for (i = 0; i < len && col < width; i++) {
12584 if (str[i] ==
' ') {
12587 else if (str[i] ==
'\t') {
12589 if (n > width)
break;
12601 MEMMOVE(str, str + i,
char, len - i);
12610 NODE *node, *str_node;
12614 if (indent <= 0)
return root;
12616 if (!root)
return root;
12618 node = str_node = root;
12622 VALUE lit = str_node->nd_lit;
12623 if (bol) dedent_string(lit, indent);
12628 if ((str_node = node->nd_head) != 0) {
12644 if (indent <= 0)
return array;
12657 col = dedent_string(input, wid);
12664 const char *eos,
long len,
int indent)
12670 while (*p &&
ISSPACE(*p)) p++;
12673 if (n < 0)
return FALSE;
12674 if (n > 0 && p[len] !=
'\n') {
12675 if (p[len] !=
'\r')
return FALSE;
12676 if (n <= 1 || p[len+1] !=
'\n')
return FALSE;
12678 return strncmp(eos, p, len) == 0;
12681 #define NUM_SUFFIX_R (1<<0) 12682 #define NUM_SUFFIX_I (1<<1) 12683 #define NUM_SUFFIX_ALL 3 12686 parser_number_literal_suffix(
struct parser_params *parser,
int mask)
12689 const char *lastp =
lex_p;
12691 while ((c =
nextc()) != -1) {
12694 mask &= ~NUM_SUFFIX_I;
12701 mask &= ~NUM_SUFFIX_R;
12713 yyerror0(
"unexpected fraction part after numeric literal");
12755 ripper_dispatch1(parser, ripper_token2eventid(
tHEREDOC_END), str);
12760 #define dispatch_heredoc_end() ripper_dispatch_heredoc_end(parser) 12762 #define dispatch_heredoc_end() ((void)0) 12768 int c, func, indent = 0;
12769 const char *eos, *p, *
pend;
12778 if ((c =
nextc()) == -1) {
12789 else if ((len =
lex_p - parser->tokp) > 0) {
12823 switch (pend[-1]) {
12825 if (--pend == p || pend[-1] !=
'\r') {
12836 while (p + i < pend && parser_update_heredoc_indent(parser, p[i]))
12852 if (
nextc() == -1) {
12854 dispose_string(str);
12865 int t = parser_peek_variable_name(parser);
12879 if (parser->
eofp)
goto error;
12894 if ((c =
nextc()) == -1)
goto error;
12915 rb_warning1(
"ambiguous first argument; put parentheses or a space even after `%c' operator",
WARN_I(c));
12920 #define arg_ambiguous(c) (arg_ambiguous_gen(parser, (c)), 1) 12925 switch (id_type(lhs)) {
12930 yyerror0(
"formal argument cannot be a constant");
12933 yyerror0(
"formal argument cannot be an instance variable");
12936 yyerror0(
"formal argument cannot be a global variable");
12939 yyerror0(
"formal argument cannot be a class variable");
12942 yyerror0(
"formal argument must be local variable");
12946 lhs = dispatch1(param_error, lhs);
12967 if (len > 5 && name[nlen = len - 5] ==
'-') {
12968 if (
rb_memcicmp(name + nlen + 1,
"unix", 4) == 0)
12971 if (len > 4 && name[nlen = len - 4] ==
'-') {
12974 if (
rb_memcicmp(name + nlen + 1,
"mac", 3) == 0 &&
12975 !(len == 8 &&
rb_memcicmp(name,
"utf8-mac", len) == 0))
12983 parser_set_encode(
struct parser_params *parser,
const char *name)
12990 excargs[1] =
rb_sprintf(
"unknown encoding name: %s", name);
13007 for (i = 0; i < n; ++i) {
13030 magic_comment_encoding(
struct parser_params *parser,
const char *name,
const char *
val)
13032 if (!comment_at_top(parser)) {
13035 parser_set_encode(parser, val);
13039 parser_get_bool(
struct parser_params *parser,
const char *name,
const char *
val)
13042 case 't':
case 'T':
13047 case 'f':
case 'F':
13058 parser_set_token_info(
struct parser_params *parser,
const char *name,
const char *val)
13060 int b = parser_get_bool(parser, name, val);
13065 parser_set_compile_option_flag(
struct parser_params *parser,
const char *name,
const char *val)
13074 b = parser_get_bool(parser, name, val);
13083 # if WARN_PAST_SCOPE 13085 parser_set_past_scope(
struct parser_params *parser,
const char *name,
const char *val)
13087 int b = parser_get_bool(parser, name, val);
13088 if (b >= 0) parser->past_scope_enabled = b;
13099 {
"coding", magic_comment_encoding, parser_encode_length},
13100 {
"encoding", magic_comment_encoding, parser_encode_length},
13101 {
"frozen_string_literal", parser_set_compile_option_flag},
13102 {
"warn_indent", parser_set_token_info},
13103 # if WARN_PAST_SCOPE 13104 {
"warn_past_scope", parser_set_past_scope},
13108 static const char *
13109 magic_comment_marker(
const char *str,
long len)
13116 if (str[i-1] ==
'*' && str[i-2] ==
'-') {
13117 return str + i + 1;
13122 if (i + 1 >= len)
return 0;
13123 if (str[i+1] !=
'-') {
13126 else if (str[i-1] !=
'-') {
13130 return str + i + 2;
13142 parser_magic_comment(
struct parser_params *parser,
const char *str,
long len)
13145 VALUE name = 0, val = 0;
13146 const char *beg, *end, *vbeg, *vend;
13147 #define str_copy(_s, _p, _n) ((_s) \ 13148 ? (void)(rb_str_resize((_s), (_n)), \ 13149 MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \ 13150 : (void)((_s) = STR_NEW((_p), (_n)))) 13152 if (len <= 7)
return FALSE;
13153 if (!!(beg = magic_comment_marker(str, len))) {
13154 if (!(end = magic_comment_marker(beg, str + len - beg)))
13158 len = end - beg - 3;
13168 for (; len > 0 && *str; str++, --
len) {
13170 case '\'':
case '"':
case ':':
case ';':
13175 for (beg = str; len > 0; str++, --
len) {
13177 case '\'':
case '"':
case ':':
case ';':
13185 for (end = str; len > 0 &&
ISSPACE(*str); str++, --
len);
13188 if (!indicator)
return FALSE;
13192 do str++;
while (--len > 0 &&
ISSPACE(*str));
13195 for (vbeg = ++str; --len > 0 && *str !=
'"'; str++) {
13196 if (*str ==
'\\') {
13208 for (vbeg = str; len > 0 && *str !=
'"' && *str !=
';' && !
ISSPACE(*str); --
len, str++);
13212 while (len > 0 && (*str ==
';' ||
ISSPACE(*str))) --len, str++;
13215 while (len > 0 && (
ISSPACE(*str))) --len, str++;
13216 if (len)
return FALSE;
13222 for (i = 0; i < n; ++i) {
13223 if (s[i] ==
'-') s[i] =
'_';
13229 n = (*p->
length)(parser, vbeg, n);
13235 }
while (++p < magic_comments +
numberof(magic_comments));
13246 set_file_encoding(
struct parser_params *parser,
const char *str,
const char *send)
13249 const char *beg = str;
13253 if (send - str <= 6)
return;
13255 case 'C':
case 'c': str += 6;
continue;
13256 case 'O':
case 'o': str += 5;
continue;
13257 case 'D':
case 'd': str += 4;
continue;
13258 case 'I':
case 'i': str += 3;
continue;
13259 case 'N':
case 'n': str += 2;
continue;
13260 case 'G':
case 'g': str += 1;
continue;
13261 case '=':
case ':':
13274 if (++str >= send)
return;
13277 if (*str !=
'=' && *str !=
':')
return;
13282 while ((*str ==
'-' || *str ==
'_' ||
ISALNUM(*str)) && ++str < send);
13283 s =
rb_str_new(beg, parser_encode_length(parser, beg, str - beg));
13299 (
unsigned char)
lex_p[0] == 0xbb &&
13300 (
unsigned char)
lex_p[1] == 0xbf) {
13315 #define ambiguous_operator(tok, op, syn) ( \ 13316 rb_warning0("`"op"' after local variable or literal is interpreted as binary operator"), \ 13317 rb_warning0("even though it seems like "syn"")) 13319 #define ambiguous_operator(tok, op, syn) \ 13320 dispatch2(operator_ambiguous, TOKEN2VAL(tok), rb_str_new_cstr(syn)) 13322 #define warn_balanced(tok, op, syn) ((void) \ 13323 (!IS_lex_state_for(last_state, EXPR_CLASS|EXPR_DOT|EXPR_FNAME|EXPR_ENDFN) && \ 13324 space_seen && !ISSPACE(c) && \ 13325 (ambiguous_operator(tok, op, syn), 0)), \ 13326 (enum yytokentype)(tok)) 13329 parse_rational(
struct parser_params *parser,
char *str,
int len,
int seen_point)
13332 char *point = &str[seen_point];
13333 size_t fraclen = len-seen_point-1;
13334 memmove(point, point+1, fraclen+1);
13342 int is_float, seen_point, seen_e, nondigit;
13345 is_float = seen_point = seen_e = nondigit = 0;
13348 if (c ==
'-' || c ==
'+') {
13353 #define no_digits() do {yyerror0("numeric literal without digits"); return 0;} while (0) 13356 if (c ==
'x' || c ==
'X') {
13362 if (nondigit)
break;
13369 }
while ((c =
nextc()) != -1);
13373 if (
toklen() == start) {
13376 else if (nondigit)
goto trailing_uc;
13380 if (c ==
'b' || c ==
'B') {
13383 if (c ==
'0' || c ==
'1') {
13386 if (nondigit)
break;
13390 if (c !=
'0' && c !=
'1')
break;
13393 }
while ((c =
nextc()) != -1);
13397 if (
toklen() == start) {
13400 else if (nondigit)
goto trailing_uc;
13404 if (c ==
'd' || c ==
'D') {
13410 if (nondigit)
break;
13417 }
while ((c =
nextc()) != -1);
13421 if (
toklen() == start) {
13424 else if (nondigit)
goto trailing_uc;
13432 if (c ==
'o' || c ==
'O') {
13435 if (c == -1 || c ==
'_' || !
ISDIGIT(c)) {
13439 if (c >=
'0' && c <=
'7') {
13444 if (nondigit)
break;
13448 if (c < '0' || c >
'9')
break;
13449 if (c >
'7')
goto invalid_octal;
13452 }
while ((c =
nextc()) != -1);
13456 if (nondigit)
goto trailing_uc;
13465 if (c >
'7' && c <=
'9') {
13469 else if (c ==
'.' || c ==
'e' || c ==
'E') {
13481 case '0':
case '1':
case '2':
case '3':
case '4':
13482 case '5':
case '6':
case '7':
case '8':
case '9':
13488 if (nondigit)
goto trailing_uc;
13489 if (seen_point || seen_e) {
13494 if (c0 == -1 || !
ISDIGIT(c0)) {
13519 if (c !=
'-' && c !=
'+' && !
ISDIGIT(c)) {
13528 nondigit = (c ==
'-' || c ==
'+') ? c : 0;
13532 if (nondigit)
goto decode_num;
13548 snprintf(tmp,
sizeof(tmp),
"trailing `%c' in number", nondigit);
13559 v = parse_rational(parser,
tok(),
toklen(), seen_point);
13563 if (
errno == ERANGE) {
13630 const char *start =
lex_p - 1, *p = start;
13632 int n = parser_precise_mbclen(parser, p);
13633 if (n < 0)
return -1;
13636 rb_warn2(
"`?' just followed by `%.*s' is interpreted as" \
13637 " a conditional operator, put a space after `?'",
13642 else if (c ==
'\\') {
13646 if (!parser_tokadd_utf8(parser, &enc, -1, 0, 0))
13678 if (c == -1 || !
ISALNUM(c)) {
13685 yyerror0(
"unknown type of %string");
13689 if (c == -1 || term == -1) {
13694 if (term ==
'(') term =
')';
13695 else if (term ==
'[') term =
']';
13696 else if (term ==
'{') term =
'}';
13697 else if (term ==
'<') term =
'>';
13747 yyerror0(
"unknown type of %string");
13751 if ((c =
nextc()) ==
'=') {
13791 const unsigned long nth_ref_max =
13792 ((FIXNUM_MAX < INT_MAX) ? FIXNUM_MAX : INT_MAX) >> 1;
13796 if (overflow || n > nth_ref_max) {
13873 case '1':
case '2':
case '3':
13874 case '4':
case '5':
case '6':
13875 case '7':
case '8':
case '9':
13880 }
while (c != -1 &&
ISDIGIT(c));
13902 if (tokadd_ident(parser, c))
return 0;
13904 tokenize_ident(parser, last_state);
13912 register int c =
nextc();
13922 if (result ==
tIVAR) {
13932 if (result ==
tIVAR) {
13941 if (tokadd_ident(parser, c))
return 0;
13943 tokenize_ident(parser, last_state);
13948 parse_ident(
struct parser_params *parser,
int c,
int cmd_state)
13960 if ((c ==
'!' || c ==
'?') && !
peek(
'=')) {
14014 if (kw->
id[0] != kw->
id[1])
14036 ident = tokenize_ident(parser, last_state);
14050 int space_seen = 0;
14054 int fallthru =
FALSE;
14073 switch (c =
nextc()) {
14081 case ' ':
case '\t':
case '\f':
case '\r':
14085 while ((c =
nextc())) {
14087 case ' ':
case '\t':
case '\f':
case '\r':
14104 if (comment_at_top(parser)) {
14114 c = (
IS_lex_state(EXPR_BEG|EXPR_CLASS|EXPR_FNAME|EXPR_DOT) &&
14122 goto normal_newline;
14126 while ((c =
nextc())) {
14128 case ' ':
case '\t':
case '\f':
case '\r':
14135 if (
peek(
'.') == (c ==
'&')) {
14148 parser->tokp =
lex_p;
14151 goto normal_newline;
14160 if ((c =
nextc()) ==
'*') {
14161 if ((c =
nextc()) ==
'=') {
14168 rb_warning0(
"`**' interpreted as argument prefix");
14186 rb_warning0(
"`*' interpreted as argument prefix");
14223 int first_p =
TRUE;
14238 if (c !=
'=')
continue;
14239 if (c ==
'=' && strncmp(
lex_p,
"end", 3) == 0 &&
14251 if ((c =
nextc()) ==
'=') {
14252 if ((c =
nextc()) ==
'=') {
14261 else if (c ==
'>') {
14275 if (token)
return token;
14286 if ((c =
nextc()) ==
'>') {
14293 if ((c =
nextc()) ==
'=') {
14306 if ((c =
nextc()) ==
'=') {
14310 if ((c =
nextc()) ==
'=') {
14347 return parse_qmark(parser, space_seen);
14350 if ((c =
nextc()) ==
'&') {
14352 if ((c =
nextc()) ==
'=') {
14360 else if (c ==
'=') {
14365 else if (c ==
'.') {
14373 !(c ==
'\'' || c ==
'"' ||
14375 rb_warning0(
"`&' interpreted as argument prefix");
14389 if ((c =
nextc()) ==
'|') {
14391 if ((c =
nextc()) ==
'=') {
14427 return parse_numeric(parser,
'+');
14469 if ((c =
nextc()) ==
'.') {
14470 if ((c =
nextc()) ==
'.') {
14478 yyerror0(
"no .<digit> floating literal anymore; put 0 before dot");
14483 case '0':
case '1':
case '2':
case '3':
case '4':
14484 case '5':
case '6':
case '7':
case '8':
case '9':
14485 return parse_numeric(parser, c);
14537 if ((c =
nextc()) ==
'=') {
14552 if ((c =
nextc()) ==
'=') {
14572 if ((c =
nextc()) !=
'@') {
14586 else if (!space_seen) {
14593 rb_warning0(
"parentheses after method name is interpreted as " 14594 "an argument list, not a decomposed argument");
14605 if ((c =
nextc()) ==
']') {
14607 if ((c =
nextc()) ==
'=') {
14663 return parse_percent(parser, space_seen, last_state);
14666 return parse_gvar(parser, last_state);
14669 return parse_atmark(parser, last_state);
14696 return parse_ident(parser, c, cmd_state);
14704 parser->
lval = lval;
14706 t = parser_yylex(parser);
14718 #define LVAR_USED ((ID)1 << (sizeof(ID) * CHAR_BIT - 1)) 14732 nodetype(
NODE *node)
14738 nodeline(
NODE *node)
14744 newline_node(
NODE *node)
14747 node = remove_begin(node);
14758 if (orig == (
NODE*)1)
return;
14767 #define parser_warning(node, mesg) parser_warning(parser, (node), (mesg)) 14774 #define parser_warn(node, mesg) parser_warn(parser, (node), (mesg)) 14779 NODE *end, *h = head, *nd;
14781 if (tail == 0)
return head;
14783 if (h == 0)
return tail;
14824 tail->nd_end = tail;
14826 end->nd_next = tail;
14827 h->nd_end = tail->nd_end;
14837 if (list == 0)
return new_list(item, column);
14838 if (list->nd_next) {
14839 last = list->nd_next->nd_end;
14845 list->nd_alen += 1;
14846 last->nd_next =
new_list(item, column);
14847 list->nd_next->nd_end = last->nd_next;
14853 list_concat(
NODE *head,
NODE *tail)
14857 if (head->nd_next) {
14858 last = head->nd_next->nd_end;
14864 head->nd_alen += tail->nd_alen;
14865 last->nd_next = tail;
14866 if (tail->nd_next) {
14867 head->nd_next->nd_end = tail->nd_next->nd_end;
14870 head->nd_next->nd_end = tail;
14879 if (
NIL_P(tail))
return 1;
14900 if (!head)
return tail;
14901 if (!tail)
return head;
14921 if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
14924 lit = headlast->nd_lit;
14927 lit = head->nd_lit;
14930 if (!literal_concat0(parser, lit, tail->nd_lit)) {
14945 if (!literal_concat0(parser, head->nd_lit, tail->nd_lit))
14947 tail->nd_lit = head->nd_lit;
14951 else if (
NIL_P(tail->nd_lit)) {
14953 head->nd_alen += tail->nd_alen - 1;
14954 head->nd_next->nd_end->nd_next = tail->nd_next;
14955 head->nd_next->nd_end = tail->nd_next->nd_end;
14958 else if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
14960 lit = headlast->nd_lit;
14961 if (!literal_concat0(parser, lit, tail->nd_lit))
14963 tail->nd_lit =
Qnil;
14968 tail->nd_head =
new_str(tail->nd_lit, column);
14969 list_concat(head, tail);
15017 fixpos(expr, recv);
15057 const VALUE lit = node1->nd_lit;
15088 # if WARN_PAST_SCOPE 15094 if (vtable_included(past,
id))
return 1;
15131 switch (id_type(
id)) {
15149 # if WARN_PAST_SCOPE 15178 kwd_append(
NODE *kwlist,
NODE *kw)
15181 NODE *kws = kwlist;
15182 while (kws->nd_next) {
15183 kws = kws->nd_next;
15199 new_regexp_gen(
struct parser_params *parser,
NODE *node,
int options,
int column)
15209 VALUE src = node->nd_lit;
15221 for (list = (prev = node)->
nd_next;
list; list = list->nd_next) {
15223 VALUE tail = list->nd_head->nd_lit;
15225 VALUE lit = prev == node ? prev->nd_lit : prev->nd_head->nd_lit;
15226 if (!literal_concat0(parser, lit, tail)) {
15231 prev->nd_next = list->nd_next;
15244 if (!node->nd_next) {
15245 VALUE src = node->nd_lit;
15492 if (ripper_is_node_yylval(re)) {
15493 src =
RNODE(re)->nd_cval;
15494 re =
RNODE(re)->nd_rval;
15496 if (ripper_is_node_yylval(opt)) {
15497 options = (int)
RNODE(opt)->nd_tag;
15498 opt =
RNODE(opt)->nd_rval;
15500 if (src &&
NIL_P(parser_reg_compile(parser, src, options, &
err))) {
15503 return dispatch2(regexp_literal, re, opt);
15509 return dispatch1(xstring_literal, str);
15515 "EXPR_BEG",
"EXPR_END",
"EXPR_ENDARG",
"EXPR_ENDFN",
"EXPR_ARG",
15516 "EXPR_CMDARG",
"EXPR_MID",
"EXPR_FNAME",
"EXPR_DOT",
"EXPR_CLASS",
15517 "EXPR_LABEL",
"EXPR_LABELED",
"EXPR_FITEM",
15524 unsigned int mask = 1;
15525 static const char none[] =
"EXPR_NONE";
15528 if ((
unsigned)state & mask) {
15562 append_lex_state_name(from, mesg);
15564 append_lex_state_name(to, mesg);
15566 flush_debug_buffer(parser, parser->
debug_output, mesg);
15573 return append_lex_state_name(state,
rb_str_new(0, 0));
15577 append_bitstack_value(stack_type stack,
VALUE mesg)
15584 for (; mask && !(stack & mask); mask >>= 1)
continue;
15585 for (; mask; mask >>= 1)
rb_str_cat(mesg, stack & mask ?
"1" :
"0", 1);
15591 const char *name,
int line)
15594 append_bitstack_value(stack, mesg);
15596 flush_debug_buffer(parser, parser->
debug_output, mesg);
15612 dispatch1(parse_error, mesg);
15617 append_lex_state_name(
lex_state, mesg);
15633 assignable_result0(
NODE *node,
int column)
15650 # define assignable_result(x) (lhs) 15651 # define parser_yyerror(parser, x) (lhs = assign_error_gen(parser, lhs)) 15653 # define assignable_result(x) assignable_result0(x, column) 15658 yyerror0(
"Can't change the value of self");
15667 yyerror0(
"Can't assign to false");
15670 yyerror0(
"Can't assign to __FILE__");
15673 yyerror0(
"Can't assign to __LINE__");
15676 yyerror0(
"Can't assign to __ENCODING__");
15679 switch (id_type(
id)) {
15710 yyerror0(
"dynamic constant assignment");
15719 #undef assignable_result 15720 #undef parser_yyerror 15724 is_private_local_id(
ID name)
15727 if (name == idUScore)
return 1;
15737 if (is_private_local_id(name))
return 1;
15740 yyerror0(
"duplicated argument name");
15753 yyerror0(
"duplicated argument name");
15762 shadowing_lvar_0(parser, name);
15775 if (!shadowing_lvar_0(parser, name))
return;
15824 if (!node2)
return node1;
15827 if (node1->nd_head)
15828 node1->nd_head =
arg_concat(node1->nd_head, node2, column);
15830 node1->nd_head =
new_list(node2, column);
15834 node1->nd_body = list_concat(
new_list(node1->nd_body, column), node2);
15840 node1->nd_body = list_concat(node1->nd_body, node2);
15853 if (!node1)
return new_list(node2, column);
15858 node1->nd_head =
arg_append(node1->nd_head, node2, column);
15871 splat_array(
NODE* node)
15881 if (!lhs)
return 0;
15893 lhs->nd_value = rhs;
15898 lhs->nd_args =
arg_append(lhs->nd_args, rhs, column);
15924 if (!cond)
yyerror0(
"void value expression");
15929 while (node->nd_next) {
15930 node = node->nd_next;
15932 node = node->nd_head;
15936 node = node->nd_body;
15941 if (!node->nd_body) {
15942 node = node->nd_else;
15945 else if (!node->nd_else) {
15946 node = node->nd_body;
15950 node = node->nd_else;
15956 node = node->nd_2nd;
15970 const char *useless = 0;
15977 switch (node->nd_mid) {
16008 useless =
"a variable";
16011 useless =
"a constant";
16018 useless =
"a literal";
16043 useless =
"defined?";
16060 if (!node->nd_next)
return;
16062 node = node->nd_next;
16067 remove_begin(
NODE *node)
16069 NODE **n = &node, *n1 = node;
16071 *n = n1 = n1->nd_body;
16077 remove_begin_all(
NODE *node)
16079 NODE **n = &node, *n1 = node;
16081 *n = n1 = n1->nd_body;
16089 NODE *node = *body;
16095 #define subnodes(n1, n2) \ 16096 ((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \ 16097 (!node->n2) ? (body = &node->n1, 1) : \ 16098 (reduce_nodes(&node->n1), body = &node->n2, 1)) 16108 *body = node = node->nd_stts;
16112 *body = node = node->nd_body;
16116 body = &node->nd_end->nd_head;
16123 body = &node->nd_body;
16132 if (node->nd_else) {
16133 body = &node->nd_resq;
16149 is_static_content(
NODE *node)
16151 if (!node)
return 1;
16154 if (!(node = node->nd_head))
break;
16157 if (!is_static_content(node->nd_head))
return 0;
16158 }
while ((node = node->nd_next) != 0);
16188 if (!node->nd_value)
return 1;
16189 if (is_static_content(node->nd_value)) {
16191 parser_warn(node->nd_value,
"found = in conditional, should be ==");
16197 warn_unless_e_option(
struct parser_params *parser,
NODE *node,
const char *str)
16199 if (!e_option_supplied(parser))
parser_warn(node, str);
16203 warning_unless_e_option(
struct parser_params *parser,
NODE *node,
const char *str)
16215 if (node == 0)
return 0;
16220 warn_unless_e_option(parser, node,
"integer literal in conditional range");
16223 return cond0(parser, node,
FALSE, column);
16227 literal_node(
NODE *node)
16229 if (!node)
return 1;
16250 if (node == 0)
return 0;
16251 assign_in_cond(parser, node);
16257 if (!method_op)
rb_warn0(
"string literal in condition");
16265 warning_unless_e_option(parser, node,
"regex literal in condition");
16274 node->nd_1st = cond0(parser, node->nd_1st,
FALSE, column);
16275 node->nd_2nd = cond0(parser, node->nd_2nd,
FALSE, column);
16280 node->nd_beg = range_op(parser, node->nd_beg, column);
16281 node->nd_end = range_op(parser, node->nd_end, column);
16284 if (!method_op && !e_option_supplied(parser)) {
16285 int b = literal_node(node->nd_beg);
16286 int e = literal_node(node->nd_end);
16300 warn_unless_e_option(parser, node,
"regex literal in condition");
16316 if (node == 0)
return 0;
16317 return cond0(parser, node, method_op, column);
16325 if (!cc)
return right;
16326 cc = cond0(parser, cc,
FALSE, column);
16327 node_if =
NEW_IF(cc, left, right);
16329 return newline_node(node_if);
16337 if (!cc)
return right;
16338 cc = cond0(parser, cc,
FALSE, column);
16341 return newline_node(node_unless);
16350 NODE *node = left, *second;
16351 while ((second = node->nd_2nd) != 0 && (
enum node_type)
nd_type(second) == type) {
16354 node->nd_2nd =
NEW_NODE(type, second, right, 0);
16358 op =
NEW_NODE(type, left, right, 0);
16375 no_blockarg(parser, node);
16377 if (node->nd_next == 0) {
16378 node = node->nd_head;
16392 if (node) no_blockarg(parser, node);
16402 int type =
TYPE(lit);
16428 rb_parser_fatal(parser,
"unknown literal type (%d) passed to negate_lit", type);
16435 arg_blk_pass(
NODE *node1,
NODE *node2)
16438 node2->nd_head = node1;
16452 args->
pre_init = m ? m->nd_next : 0;
16477 if (parser->
error_p)
return node;
16496 NODE *val_node = kwn->nd_body->nd_value;
16497 ID vid = kwn->nd_body->nd_vid;
16499 if (val_node == (
NODE *)-1) {
16506 kwn = kwn->nd_next;
16511 vtable_pop(
lvtbl->args, vtable_size(required_kw_vars) + vtable_size(kw_vars) + (b != 0));
16513 for (i=0; i<vtable_size(required_kw_vars); i++)
arg_var(required_kw_vars->
tbl[i]);
16514 for (i=0; i<vtable_size(kw_vars); i++)
arg_var(kw_vars->
tbl[i]);
16550 lit = node->nd_lit;
16568 node->nd_next->nd_end = node->nd_next;
16569 node->nd_next->nd_next = 0;
16571 list_concat(*result, node);
16582 while (hash && hash->nd_head && hash->nd_next) {
16583 NODE *head = hash->nd_head;
16584 NODE *value = hash->nd_next;
16585 NODE *next = value->nd_next;
16589 st_lookup(literal_keys, (key = head->nd_lit), &data)) {
16591 "key %+"PRIsVALUE" is duplicated and overwritten on line %d",
16592 head->nd_lit,
nd_line(head));
16593 head = ((
NODE *)data)->nd_next;
16594 head->nd_head =
block_append(head->nd_head, value->nd_head, column);
16604 if (!result) result = hash;
16605 else list_concat(result, hash);
16614 if (hash) hash = remove_duplicate_keys(parser, hash, column);
16628 ID vid = lhs->nd_vid;
16630 lhs->nd_value = rhs;
16634 switch (id_type(vid)) {
16638 asgn->nd_aid = vid;
16642 else if (op ==
tANDOP) {
16643 lhs->nd_value = rhs;
16660 ID atype,
ID attr,
ID op,
NODE *rhs,
int column)
16667 else if (op ==
tANDOP) {
16684 else if (op ==
tANDOP) {
16710 yyerror0(
"dynamic constant assignment");
16712 return new_cdecl(0, 0, (path), column);
16718 return dispatch3(opassign, lhs, op, rhs);
16724 VALUE recv = dispatch3(field, lhs, type, attr);
16725 return dispatch3(opassign, recv, op, rhs);
16731 VALUE ret = dispatch3(call, (r), (q), (m));
16732 return method_optarg(ret, (a));
16739 path = dispatch1(assign_error, path);
16748 a = dispatch1(assign_error, a);
16766 if (!local->
used)
return;
16770 if (cnt != local->
vars->
pos) {
16773 for (i = 0; i <
cnt; ++i) {
16774 if (!v[i] || (u[i] &
LVAR_USED))
continue;
16775 if (is_private_local_id(v[i]))
continue;
16781 local_push_gen(
struct parser_params *parser,
int inherit_dvars)
16789 local->
used = !(inherit_dvars &&
16792 # if WARN_PAST_SCOPE 16805 warn_unused_var(parser,
lvtbl);
16808 # if WARN_PAST_SCOPE 16809 while (
lvtbl->past) {
16826 int cnt_args = vtable_size(
lvtbl->args);
16827 int cnt_vars = vtable_size(
lvtbl->vars);
16828 int cnt = cnt_args + cnt_vars;
16832 if (cnt <= 0)
return 0;
16836 for (i = 0, j = cnt_args+1; i < cnt_vars; ++i) {
16838 if (!vtable_included(
lvtbl->args,
id)) {
16842 if (--j < cnt)
REALLOC_N(buf,
ID, (cnt = j) + 1);
16866 struct vtable *vars, *args, *used;
16868 vars =
lvtbl->vars;
16869 args =
lvtbl->args;
16870 used =
lvtbl->used;
16875 if (used) used = used->
prev;
16881 else if (vtable_included(args,
id)) {
16885 int i = vtable_included(vars,
id);
16886 if (i && used && vidrefp) *vidrefp = &used->
tbl[i-1];
16891 static const struct vtable *
16899 return lvtbl->args;
16905 struct vtable *tmp = *vtblp;
16906 *vtblp = tmp->
prev;
16907 # if WARN_PAST_SCOPE 16908 if (parser->past_scope_enabled) {
16922 if ((tmp =
lvtbl->used) != 0) {
16923 warn_unused_var(parser,
lvtbl);
16927 dyna_pop_vtable(parser, &
lvtbl->args);
16928 dyna_pop_vtable(parser, &
lvtbl->vars);
16934 while (
lvtbl->args != lvargs) {
16935 dyna_pop_1(parser);
16936 if (!
lvtbl->args) {
16942 dyna_pop_1(parser);
16954 struct vtable *vars, *args, *used;
16957 args =
lvtbl->args;
16958 vars =
lvtbl->vars;
16959 used =
lvtbl->used;
16962 if (vtable_included(args,
id)) {
16965 if ((i = vtable_included(vars,
id)) != 0) {
16966 if (used && vidrefp) *vidrefp = &used->
tbl[i-1];
16971 if (!vidrefp) used = 0;
16972 if (used) used = used->
prev;
16985 return (vtable_included(
lvtbl->args,
id) ||
16986 vtable_included(
lvtbl->vars,
id));
16993 "regexp encoding option '%c' differs from source encoding '%s'",
17039 if (c) reg_fragment_enc_error(parser, str, c);
17065 int back_num,
int *back_refs,
OnigRegex regex,
void *arg0)
17070 long len = name_end -
name;
17071 const char *s = (
const char *)name;
17090 reg_named_capture_assign_gen(
struct parser_params* parser,
VALUE regexp,
int column)
17124 re = parser_reg_compile(parser, str, options);
17140 if (c) reg_fragment_enc_error(parser, str, c);
17155 NODE *scope = node;
17158 if (!node)
return node;
17162 node = node->nd_body;
17166 node = node->nd_body;
17174 prelude->nd_body = node;
17175 scope->nd_body = prelude;
17178 scope->nd_body = node;
17188 NODE *scope = node;
17191 if (!node)
return node;
17195 node = node->nd_body;
17199 node = node->nd_body;
17215 prelude->nd_body = node;
17216 scope->nd_body = prelude;
17219 scope->nd_body = node;
17249 parser->delayed =
Qnil;
17250 parser->result =
Qnil;
17251 parser->parsing_thread =
Qnil;
17261 #define parser_mark ripper_parser_mark 17262 #define parser_free ripper_parser_free 17266 parser_mark(
void *ptr)
17295 parser_free(
void *ptr)
17303 for (local =
lvtbl; local; local =
prev) {
17305 prev = local->
prev;
17310 while ((ptinfo = parser->
token_info) != 0) {
17319 parser_memsize(
const void *ptr)
17323 size_t size =
sizeof(*parser);
17326 for (local =
lvtbl; local; local = local->
prev) {
17327 size +=
sizeof(*local);
17348 #undef rb_reserved_word 17353 return reserved_word(str, len);
17361 &parser_data_type, p);
17362 parser_initialize(p);
17380 #define rb_parser_end_seen_p ripper_parser_end_seen_p 17381 #define rb_parser_encoding ripper_parser_encoding 17382 #define rb_parser_get_yydebug ripper_parser_get_yydebug 17383 #define rb_parser_set_yydebug ripper_parser_set_yydebug 17384 static VALUE ripper_parser_end_seen_p(
VALUE vparser);
17385 static VALUE ripper_parser_encoding(
VALUE vparser);
17386 static VALUE ripper_parser_get_yydebug(
VALUE self);
17396 ripper_error_p(
VALUE vparser)
17462 yydebug =
RTEST(flag);
17468 #define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE)) 17469 #define NEWHEAP() (rb_imemo_alloc_t *)rb_imemo_new(imemo_alloc, 0, (VALUE)parser->heap, 0, 0) 17470 #define ADD2HEAP(n, c, p) ((parser->heap = (n))->ptr = (p), \ 17471 (n)->cnt = (c), (p)) 17488 void *ptr =
xcalloc(nelem, size);
17499 if (ptr && (n = parser->
heap) !=
NULL) {
17501 if (n->
ptr == ptr) {
17518 while ((n = *prev) !=
NULL) {
17519 if (n->ptr == ptr) {
17547 parser_compile_error(
struct parser_params *parser,
const char *fmt, ...)
17565 #ifdef RIPPER_DEBUG 17566 extern int rb_is_pointer_to_heap(
VALUE);
17572 if (x ==
Qfalse)
return x;
17573 if (x ==
Qtrue)
return x;
17574 if (x ==
Qnil)
return x;
17579 if (!rb_is_pointer_to_heap(x))
17591 if (
nd_type(x) != NODE_RIPPER) {
17594 return ((
NODE *)x)->nd_rval;
17603 #define validate(x) ((x) = get_value(x)) 17615 return rb_funcall(parser->value, mid, 1, a);
17623 return rb_funcall(parser->value, mid, 2, a, b);
17632 return rb_funcall(parser->value, mid, 3, a, b, c);
17642 return rb_funcall(parser->value, mid, 4, a, b, c, d);
17653 return rb_funcall(parser->value, mid, 5, a, b, c, d, e);
17666 return rb_funcall(parser->value, mid, 7, a, b, c, d, e, f, g);
17670 ripper_get_id(
VALUE v)
17675 if (
nd_type(nd) != NODE_RIPPER)
return 0;
17680 ripper_get_value(
VALUE v)
17687 return nd->nd_rval;
17697 ripper_compile_error(
struct parser_params *parser,
const char *fmt, ...)
17702 va_start(args, fmt);
17706 ripper_error_gen(parser);
17715 "gets returned %"PRIsVALUE" (expected String or nil)",
17728 ripper_s_allocate(
VALUE klass)
17732 &parser_data_type, p);
17737 #define ripper_initialized_p(r) ((r)->lex.input != 0) 17753 VALUE src, fname, lineno;
17756 rb_scan_args(argc, argv,
"12", &src, &fname, &lineno);
17761 lex_gets = ripper_lex_get_generic;
17769 if (
NIL_P(fname)) {
17777 parser_initialize(parser);
17786 struct ripper_args {
17793 ripper_parse0(
VALUE parser_v)
17798 parser_prepare(parser);
17799 ripper_yyparse((
void*)parser);
17800 return parser->result;
17804 ripper_ensure(
VALUE parser_v)
17809 parser->parsing_thread =
Qnil;
17820 ripper_parse(
VALUE self)
17825 if (!ripper_initialized_p(parser)) {
17828 if (!
NIL_P(parser->parsing_thread)) {
17835 rb_ensure(ripper_parse0,
self, ripper_ensure,
self);
17837 return parser->result;
17848 ripper_column(
VALUE self)
17854 if (!ripper_initialized_p(parser)) {
17857 if (
NIL_P(parser->parsing_thread))
return Qnil;
17869 ripper_filename(
VALUE self)
17874 if (!ripper_initialized_p(parser)) {
17888 ripper_lineno(
VALUE self)
17893 if (!ripper_initialized_p(parser)) {
17896 if (
NIL_P(parser->parsing_thread))
return Qnil;
17907 ripper_state(
VALUE self)
17912 if (!ripper_initialized_p(parser)) {
17915 if (
NIL_P(parser->parsing_thread))
return Qnil;
17919 #ifdef RIPPER_DEBUG 17940 ripper_lex_state_name(
VALUE self,
VALUE state)
17948 ripper_init_eventids1();
17949 ripper_init_eventids2();
17958 InitVM_ripper(
void)
17977 #ifdef RIPPER_DEBUG 18023 ripper_init_eventids1_table(Ripper);
18024 ripper_init_eventids2_table(Ripper);
#define STRNCASECMP(s1, s2, n)
void rb_define_global_const(const char *, VALUE)
void rb_fatal(const char *fmt,...)
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)
#define new_command(m, a)
#define IS_LABEL_SUFFIX(n)
int rb_enc_codelen(int c, rb_encoding *enc)
#define new_args_tail(k, kr, b, column)
#define NEW_OP_ASGN_AND(i, val)
#define MBCLEN_CHARFOUND_P(ret)
#define NEW_STRTERM(func, term, paren)
#define RRATIONAL_SET_NUM(rat, n)
#define NEW_OP_ASGN1(p, id, a)
#define RUBY_TYPED_FREE_IMMEDIATELY
NODE * rb_parser_compile_string_path(VALUE vparser, VALUE f, VALUE s, int line)
long rb_str_coderange_scan_restartable(const char *, const char *, rb_encoding *, int *)
#define RE_OPTION_ENCODING_IDX(o)
#define new_regexp(node, opt, column)
size_t strlen(const char *)
#define new_call(recv, mid, args, column)
VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline)
#define scan_oct(s, l, e)
#define reg_compile(str, options)
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 keyword_do_LAMBDA
#define list_append(l, i, column)
#define rb_usascii_str_new2
void rb_raise(VALUE exc, const char *fmt,...)
VALUE rb_str_cat(VALUE, const char *, long)
VALUE rb_reg_check_preprocess(VALUE)
PRINTF_ARGS(void rb_parser_fatal(struct parser_params *parser, const char *fmt,...), 2, 3)
#define new_errinfo(column)
#define str_copy(_s, _p, _n)
NODE * rb_parser_compile_file_path(VALUE vparser, VALUE fname, VALUE file, int start)
enum lex_state_e rb_parser_trace_lex_state(struct parser_params *, enum lex_state_e, enum lex_state_e, int)
#define keyword__ENCODING__
VALUE rb_parser_end_seen_p(VALUE vparser)
#define TypedData_Get_Struct(obj, type, data_type, sval)
#define intern_cstr(n, l, en)
#define new_ivar(id, column)
struct token_info token_info
#define new_args(f, o, r, p, t)
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 token_info_push(token)
int rb_enc_symname2_p(const char *, long, rb_encoding *)
VALUE rb_default_coverage(int)
VALUE rb_ary_push(VALUE ary, VALUE item)
#define NEW_CLASS(n, b, s)
struct local_vars * lvtbl
#define new_fcall(mid, args, column)
unsigned short int yytype_uint16
rb_encoding * rb_enc_compatible(VALUE str1, VALUE str2)
unsigned int command_start
const struct kwtable * rb_reserved_word(const char *str, unsigned int len)
#define nd_set_column(n, v)
int rb_local_defined(ID id, const struct rb_block *base_block)
#define is_identchar(p, e, enc)
VALUE rb_funcall(VALUE, ID, int,...)
Calls a method.
NODE * rb_parser_compile_file(VALUE vparser, const char *f, VALUE file, int start)
void rb_str_set_len(VALUE, long)
VALUE rb_io_gets_internal(VALUE io)
int rb_enc_str_coderange(VALUE)
#define reg_fragment_setenc(str, options)
#define new_hash(hash, column)
#define literal_concat(h, t, column)
#define RSTRING_GETMEM(str, ptrvar, lenvar)
VALUE rb_enc_associate(VALUE obj, rb_encoding *enc)
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
#define dispatch_scan_event(t)
#define NEW_OP_ASGN2(r, t, i, o, val)
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
#define SET_LEX_STATE(ls)
#define local_id_ref(id, vidp)
#define nd_set_type(n, t)
#define cond(node, column)
void rb_gc_mark(VALUE ptr)
#define parser_is_identchar()
#define rb_enc_islower(c, enc)
VALUE rb_io_write(VALUE, VALUE)
#define RE_OPTION_ENCODING(e)
#define new_yield(node, column)
#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)
#define NEW_IASGN(v, val)
rb_encoding * rb_utf8_encoding(void)
VALUE rb_str_buf_append(VALUE, VALUE)
#define new_str(s, column)
#define st_init_numtable_with_size
VALUE rb_parser_set_yydebug(VALUE self, VALUE flag)
#define ENC_CODERANGE_7BIT
const char * rb_obj_classname(VALUE)
#define new_postarg(i, v, column)
#define new_cdecl(v, val, path, column)
RUBY_EXTERN void * memmove(void *, const void *, size_t)
RUBY_SYMBOL_EXPORT_BEGIN VALUE rb_parser_reg_compile(struct parser_params *parser, VALUE str, int options)
#define IS_lex_state_all(ls)
RUBY_EXTERN unsigned long ruby_scan_digits(const char *str, ssize_t len, int base, size_t *retlen, int *overflow)
#define unterminated_literal(mesg)
VALUE rb_str_buf_cat(VALUE, const char *, long)
RUBY_SYMBOL_EXPORT_BEGIN typedef unsigned long st_data_t
#define SPECIAL_PUNCT(idx)
#define new_if(cc, left, right, column)
unsigned int ruby__end__seen
VALUE ruby_sourcefile_string
#define arg_concat(h, t, column)
const char rb_parser_lex_state_names[][13]
VALUE rb_obj_class(VALUE)
call-seq: obj.class -> class
#define RB_TYPE_P(obj, type)
#define new_list(item, column)
#define yyerror(yylloc, parser, msg)
#define assignable_result(x)
#define NEW_ATTRASGN(r, m, a)
void rb_parser_printf(struct parser_params *parser, const char *fmt,...)
#define new_defined(expr, column)
#define parser_warning(node, mesg)
#define whole_match_p(e, l, i)
#define heredoc_line_indent
#define const_path_field(w, n, column)
#define set_yylval_literal(x)
#define YYLLOC_DEFAULT(Current, Rhs, N)
#define scan_hex(s, l, e)
#define rb_intern_str(string)
#define rb_rational_raw1(x)
VALUE rb_hash_aset(VALUE hash, VALUE key, VALUE val)
#define heredoc_dedent(str)
RUBY_EXTERN VALUE rb_cObject
VALUE rb_parser_encoding(VALUE vparser)
struct parser_params * parser
VALUE rb_get_coverages(void)
NODE * rb_compile_string(const char *f, VALUE s, int line)
#define new_undef(i, column)
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.
long(* rb_magic_comment_length_t)(struct parser_params *parser, const char *name, long len)
int rb_ascii8bit_encindex(void)
#define NEW_ARGSPUSH(a, b)
#define set_yylval_name(x)
#define reg_named_capture_assign(regexp, column)
#define new_command_qcall(q, r, m, a, column)
#define NEW_UNLESS(c, t, e)
RUBY_EXTERN VALUE rb_mKernel
#define rb_warning1(fmt, a)
VALUE rb_thread_current(void)
#define block_dup_check(n1, n2)
#define aryset(node1, node2, column)
VALUE rb_define_class(const char *name, VALUE super)
Defines a top-level class.
#define heredoc_identifier()
struct rb_imemo_alloc_struct * next
#define gettable(id, column)
#define new_evstr(n, column)
#define method_add_block(m, b)
void rb_define_const(VALUE, const char *, VALUE)
void rb_compile_warn(const char *file, int line, const char *fmt,...)
#define new_attr_op_assign(lhs, type, attr, op, rhs, column)
rb_atomic_t cnt[RUBY_NSIG]
#define lex_goto_eol(parser)
NODE * rb_parser_append_print(VALUE vparser, NODE *node)
#define match_op(node1, node2, column)
#define top_const_field(n)
VALUE rb_rational_new(VALUE, VALUE)
#define dvar_defined_ref(id, vidp)
#define ALLOCA_N(type, n)
#define flush_string_content(enc)
#define NEW_OP_CDECL(v, op, val)
VALUE rb_parser_set_context(VALUE vparser, const struct rb_block *base, int main)
#define ENC_CODERANGE_UNKNOWN
#define tokadd_string(f, t, p, n, e)
#define RUBY_FUNC_EXPORTED
#define MEMCPY(p1, p2, type, n)
VALUE rb_enc_associate_index(VALUE obj, int idx)
#define set_integer_literal(v, f)
#define YY_REDUCE_PRINT(Rule)
#define block_append(h, t, column)
NODE * rb_compile_cstr(const char *f, const char *s, int len, int line)
RUBY_EXTERN VALUE rb_int_positive_pow(long x, unsigned long y)
VALUE rb_make_backtrace(void)
void * rb_parser_malloc(struct parser_params *parser, size_t size)
#define NEW_WHEN(c, t, e)
VALUE rb_str_resize(VALUE, long)
#define NEW_DASGN(v, val)
void(* rb_magic_comment_setter_t)(struct parser_params *parser, const char *name, const char *val)
#define mixed_escape(beg, enc1, enc2)
#define set_yylval_num(x)
#define NEW_BLOCK_PASS(b)
VALUE rb_str_subseq(VALUE, long, long)
#define new_const_op_assign(lhs, op, rhs, column)
VALUE rb_funcallv_public(VALUE, ID, int, const VALUE *)
Calls a method.
#define set_number_literal(v, t, f)
#define REALLOC_N(var, type, n)
int rb_dvar_defined(ID id, const struct rb_block *base_block)
#define has_delayed_token()
#define new_unless(cc, left, right, column)
#define token_info_pop(token)
VALUE rb_sprintf(const char *format,...)
#define new_dstr(s, column)
#define IS_lex_state_for(x, ls)
#define NEW_OP_ASGN_OR(i, val)
#define rb_enc_isspace(c, enc)
#define rb_node_newnode(type, a1, a2, a3)
int rb_enc_precise_mbclen(const char *p, const char *e, rb_encoding *enc)
#define new_scope(a, b, column)
#define MEMMOVE(p1, p2, type, n)
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)
#define new_lit(sym, column)
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
#define warn_balanced(tok, op, syn)
#define new_for(var, iter, body, column)
unsigned char buf[MIME_BUF_SIZE]
#define rb_warn3L(l, fmt, a, b, c)
VALUE rb_assoc_new(VALUE car, VALUE cdr)
#define rb_warn1L(l, fmt, a)
#define method_cond(node, column)
rb_encoding * rb_usascii_encoding(void)
#define rb_enc_isalnum(c, enc)
unsigned char yytype_uint8
#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 heredoc_restore(n)
void rb_exc_raise(VALUE mesg)
Raises an exception in the current thread.
#define arg_append(h, t, column)
#define vtable_pop(tbl, n)
#define new_do_body(param, stmt, column)
#define vtable_alloc(prev)
#define RUBY_SYMBOL_EXPORT_BEGIN
#define COVERAGE_INDEX_LINES
#define logop(id, node1, node2, column)
VALUE rb_io_puts(int, const VALUE *, VALUE)
#define NEW_ENSURE(b, en)
#define RUBY_DTRACE_PARSE_HOOK(name)
VALUE rb_syntax_error_append(VALUE exc, VALUE file, int line, int column, rb_encoding *enc, const char *fmt, va_list args)
const char * rb_id2name(ID)
#define rb_enc_asciicompat(enc)
VALUE rb_str_new_cstr(const char *)
int rb_reg_fragment_setenc(struct parser_params *, VALUE, int)
#define set_yylval_str(x)
int rb_char_to_option_kcode(int c, int *option, int *kcode)
#define const_decl(path, column)
void rb_parser_show_bitstack(struct parser_params *, stack_type, const char *, int)
VALUE rb_obj_hide(VALUE obj)
Make the object invisible from Ruby code.
#define new_op_assign(lhs, op, rhs, column)
#define ENCODING_IS_ASCII8BIT(obj)
unsigned int token_info_enabled
#define vtable_add(tbl, id)
#define attrset(node, q, id, column)
VALUE rb_sym_intern_ascii_cstr(const char *ptr)
#define node_assign(node1, node2, column)
int rb_respond_to(VALUE, ID)
register unsigned int len
#define StringValueCStr(v)
#define new_dvar(id, column)
RUBY_FUNC_EXPORTED const unsigned int ruby_global_name_punct_bits[(0x7e - 0x20+31)/32]
void rb_str_modify(VALUE)
const struct vtable * vars
int rb_const_defined_at(VALUE, ID)
#define ENCODING_GET(obj)
rb_encoding * rb_enc_get(VALUE obj)
#define call_bin_op(recv, id, arg1, column)
RUBY_EXTERN VALUE rb_stderr
VALUE rb_ident_hash_new(void)
#define ADD2HEAP(n, c, p)
#define new_rescue(b, res, e, column)
#define NEW_GASGN(v, val)
void rb_parser_free(struct parser_params *parser, void *ptr)
#define RARRAY_AREF(a, i)
#define read_escape(flags, e)
#define dispatch_delayed_token(t)
#define new_resbody(e, s, r, column)
#define parser_warn(node, mesg)
VALUE rb_complex_raw(VALUE x, VALUE y)
#define NEW_UNTIL(c, b, n)
VALUE rb_str_catf(VALUE str, const char *format,...)
#define YYSTACK_ALLOC_MAXIMUM
#define NEW_QCALL(q, r, m, a)
VALUE rb_parser_lex_state_name(enum lex_state_e state)
VALUE rb_big_norm(VALUE x)
#define parser_encoding_name()
#define NEW_WHILE(c, b, n)
#define new_qcall(q, r, m, a, column)
#define NEW_POSTARG(i, v)
VALUE rb_class_new_instance(int, const VALUE *, VALUE)
Allocates and initializes an instance of klass.
void rb_parser_fatal(struct parser_params *parser, const char *fmt,...)
struct rb_encoding_entry * list
void * rb_parser_calloc(struct parser_params *parser, size_t nelem, size_t size)
VALUE rb_str_cat_cstr(VALUE, const char *)
#define NEW_CVASGN(v, val)
VALUE rb_errinfo(void)
The current exception in the current thread.
#define TypedData_Make_Struct(klass, type, data_type, sval)
#define NEW_MATCH3(r, n2)
#define number_literal_suffix(f)
#define STR_NEW3(p, n, e, func)
#define NEW_OPT_ARG(i, v)
#define new_brace_body(param, stmt, column)
struct parser_params::@46 lex
#define IS_LABEL_POSSIBLE()
VALUE rb_filesystem_str_new_cstr(const char *)
VALUE rb_enc_str_new(const char *, long, rb_encoding *)
VALUE rb_parser_new(void)
VALUE rb_const_get_at(VALUE, ID)
int main(int argc, char **argv)
#define set_yylval_node(x)
#define new_xstring(node, column)
#define RE_OPTION_ENCODING_NONE(o)
#define assignable(id, node, column)
#define ruby_eval_tree_begin
#define ruby_sourcefile_string
#define formal_argument(id)
RUBY_SYMBOL_EXPORT_BEGIN void * alloca()
#define dispatch_heredoc_end()
VALUE rb_str_new_frozen(VALUE)
#define NEW_RESBODY(a, ex, n)
#define NEW_ARGSCAT(a, b)
#define NEW_DASGN_CURR(v, val)
#define YY_STACK_PRINT(Bottom, Top)
#define NEW_CALL(r, m, a)
#define YYSTACK_RELOCATE(Stack)
rb_encoding * rb_ascii8bit_encoding(void)
#define lambda_beginning_p()
#define new_gvar(id, column)
int rb_enc_find_index(const char *name)
#define RCOMPLEX_SET_REAL(cmp, r)
#define CONST_ID(var, str)
#define call_uni_op(recv, id, column)
RUBY_EXTERN VALUE rb_stdout
VALUE rb_str_intern(VALUE)
#define rb_intern_const(str)
#define new_begin(b, column)
#define mixed_error(enc1, enc2)
#define NEW_MATCH2(n1, n2)
NODE * rb_parser_compile_cstr(VALUE vparser, const char *f, const char *s, int len, int line)
void * rb_parser_realloc(struct parser_params *parser, void *ptr, size_t size)
#define YY_LOCATION_PRINT(File, Loc)
#define shadowing_lvar(name)
VALUE rb_cstr_to_inum(const char *str, int base, int badcheck)
#define rb_enc_mbcput(c, buf, enc)
#define NEW_DEFN(i, a, d, p)
#define reg_fragment_check(str, options)
VALUE rb_str_buf_new(long)
VALUE rb_usascii_str_new(const char *, long)
#define nd_set_line(n, l)
VALUE rb_vsprintf(const char *, va_list)
NODE * rb_compile_file(const char *f, VALUE file, int start)
VALUE rb_parser_get_yydebug(VALUE self)
#define NEW_LASGN(v, val)
#define evstr2dstr(n, column)
#define ENCODING_SET(obj, i)
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
VALUE rb_str_append(VALUE, VALUE)
NODE * rb_parser_while_loop(VALUE vparser, NODE *node, int chomp, int split)
#define NEW_NODE(t, a0, a1, a2)
#define NEW_ARGS_AUX(r, b)
#define new_masgn(l, r, column)
int rb_memcicmp(const void *, const void *, long)
#define new_lvar(id, column)
NODE * rb_parser_compile_string(VALUE vparser, const char *f, VALUE s, int line)
#define rb_enc_prev_char(s, p, e, enc)
#define dsym_node(node, column)
#define new_zarray(column)
unsigned long ruby_scan_oct(const char *, size_t, size_t *)
VALUE rb_attr_get(VALUE, ID)
#define tokaddmbc(c, enc)
#define NEW_CDECL(v, val, path)
#define NEW_OPCALL(r, m, a)
#define NEW_DEFS(r, i, a, d)
#define backref_assign_error(n, a, column)
#define new_kw_arg(k, column)
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 IS_AFTER_OPERATOR()
VALUE rb_str_new(const char *, long)
#define rb_warn2(fmt, a, b)