From ec67fd9587e91830bfd31d7073b63b1f161d26b9 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Wed, 17 Dec 2025 12:18:51 +0900 Subject: [PATCH] mruby-compiler: implement array pattern matching add support for array destructuring patterns in case/in expressions: - [a, b, c] - fixed length match - [first, *rest] - head + rest - [*init, last] - init + tail - [first, *middle, last] - head + middle + tail - [1, x, 3] - mixed value and variable patterns - [first, *, last] - anonymous rest (discarded) implementation includes: - grammar rules for p_array, p_array_body, p_rest in parse.y - NODE_PAT_ARRAY codegen with deconstruct call and length checks - rest variable binding via range slicing (arr[pre..-(post+1)]) - Array#deconstruct method (returns self) Co-authored-by: Claude --- mrbgems/mruby-compiler/core/codegen.c | 104 + mrbgems/mruby-compiler/core/parse.y | 76 +- mrbgems/mruby-compiler/core/y.tab.c | 9420 +++++++++++++------------ mrblib/array.rb | 10 + 4 files changed, 5136 insertions(+), 4474 deletions(-) diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c index 778531329..c7e02e4d3 100644 --- a/mrbgems/mruby-compiler/core/codegen.c +++ b/mrbgems/mruby-compiler/core/codegen.c @@ -4410,6 +4410,110 @@ codegen_pattern(codegen_scope *s, node *pattern, int target, uint32_t *fail_pos) } break; + case NODE_PAT_ARRAY: + { + struct mrb_ast_pat_array_node *pat_arr = pat_array_node(pattern); + int pre_len = 0, post_len = 0; + int arr_reg = cursp(); + node *elem; + int i; + + /* Count pre and post elements */ + for (elem = pat_arr->pre; elem; elem = elem->cdr) pre_len++; + for (elem = pat_arr->post; elem; elem = elem->cdr) post_len++; + + /* Call deconstruct on target */ + gen_move(s, cursp(), target, 0); + push(); + genop_3(s, OP_SEND, arr_reg, new_sym(s, MRB_SYM_2(s->mrb, deconstruct)), 0); + + /* Check length constraints */ + if (pat_arr->rest == 0) { + /* No rest: exact length match */ + /* Generate: arr.size == pre_len */ + gen_move(s, cursp(), arr_reg, 0); + push(); + genop_3(s, OP_SEND, cursp() - 1, new_sym(s, MRB_SYM_2(s->mrb, size)), 0); + gen_int(s, cursp(), pre_len); + push(); push(); pop(); pop(); pop(); + genop_3(s, OP_SEND, cursp(), new_sym(s, MRB_OPSYM_2(s->mrb, eq)), 1); + tmp = genjmp2(s, OP_JMPNOT, cursp(), *fail_pos, 1); + *fail_pos = tmp; + } + else { + /* Has rest: minimum length check */ + int min_len = pre_len + post_len; + if (min_len > 0) { + /* Generate: arr.size >= min_len */ + gen_move(s, cursp(), arr_reg, 0); + push(); + genop_3(s, OP_SEND, cursp() - 1, new_sym(s, MRB_SYM_2(s->mrb, size)), 0); + gen_int(s, cursp(), min_len); + push(); push(); pop(); pop(); pop(); + genop_3(s, OP_SEND, cursp(), new_sym(s, MRB_OPSYM_2(s->mrb, ge)), 1); + tmp = genjmp2(s, OP_JMPNOT, cursp(), *fail_pos, 1); + *fail_pos = tmp; + } + } + + /* Match pre-rest elements */ + i = 0; + for (elem = pat_arr->pre; elem; elem = elem->cdr, i++) { + /* Get arr[i] */ + gen_move(s, cursp(), arr_reg, 0); + push(); + gen_int(s, cursp(), i); + push(); push(); pop(); pop(); pop(); + genop_3(s, OP_SEND, cursp(), new_sym(s, MRB_OPSYM_2(s->mrb, aref)), 1); + /* Match element pattern */ + codegen_pattern(s, elem->car, cursp(), fail_pos); + } + + /* Bind rest elements if rest is a variable */ + if (pat_arr->rest && pat_arr->rest != (node*)-1) { + struct mrb_ast_pat_var_node *rest_var = pat_var_node(pat_arr->rest); + if (rest_var->name) { + int var_idx = lv_idx(s, rest_var->name); + /* Generate: arr[pre_len..-(post_len+1)] or arr[pre_len..-1] if no post */ + gen_move(s, cursp(), arr_reg, 0); /* arr at cursp */ + push(); + gen_int(s, cursp(), pre_len); /* start at cursp */ + push(); + if (post_len > 0) { + gen_int(s, cursp(), -(post_len + 1)); /* end at cursp */ + } + else { + gen_int(s, cursp(), -1); /* end at cursp */ + } + /* start at cursp-1, end at cursp; create inclusive range at cursp-1 */ + genop_1(s, OP_RANGE_INC, cursp() - 1); + /* arr at cursp-2, range at cursp-1 */ + pop(); /* cursp now at range position */ + pop(); /* cursp now at arr position */ + genop_3(s, OP_SEND, cursp(), new_sym(s, MRB_OPSYM_2(s->mrb, aref)), 1); + if (var_idx > 0) { + gen_move(s, var_idx, cursp(), 1); + } + } + } + + /* Match post-rest elements */ + i = -post_len; + for (elem = pat_arr->post; elem; elem = elem->cdr, i++) { + /* Get arr[i] (negative index from end) */ + gen_move(s, cursp(), arr_reg, 0); + push(); + gen_int(s, cursp(), i); + push(); push(); pop(); pop(); pop(); + genop_3(s, OP_SEND, cursp(), new_sym(s, MRB_OPSYM_2(s->mrb, aref)), 1); + /* Match element pattern */ + codegen_pattern(s, elem->car, cursp(), fail_pos); + } + + pop(); /* Pop arr_reg */ + } + break; + default: raise_error(s, "unsupported pattern type"); break; diff --git a/mrbgems/mruby-compiler/core/parse.y b/mrbgems/mruby-compiler/core/parse.y index 5fdce92d7..bd884076c 100644 --- a/mrbgems/mruby-compiler/core/parse.y +++ b/mrbgems/mruby-compiler/core/parse.y @@ -653,6 +653,17 @@ new_pat_alt(parser_state *p, node *left, node *right) return (node*)n; } +/* Create array pattern node [a, b, *rest, c] */ +static node* +new_pat_array(parser_state *p, node *pre, node *rest, node *post) +{ + struct mrb_ast_pat_array_node *n = NEW_NODE(pat_array, NODE_PAT_ARRAY); + n->pre = pre; + n->rest = rest; + n->post = post; + return (node*)n; +} + /* Create in-clause node for case/in */ static node* new_in(parser_state *p, node *pattern, node *guard, node *body, mrb_bool guard_is_unless) @@ -2053,7 +2064,7 @@ prohibit_literals(parser_state *p, node *n) %type f_label f_kwrest /* pattern matching */ -%type in_clauses p_expr p_alt p_value p_var p_as +%type in_clauses p_expr p_alt p_value p_var p_as p_array p_array_body p_array_elems p_rest %token tUPLUS "unary plus" %token tUMINUS "unary minus" @@ -3893,6 +3904,69 @@ p_value : p_var { $$ = new_pat_value(p, new_colon3(p, $2)); } + | p_array + ; + +/* Array pattern: [a, b, *rest, c] */ +p_array : tLBRACK p_array_body ']' + { + $$ = $2; + } + | tLBRACK ']' + { + $$ = new_pat_array(p, 0, 0, 0); + } + ; + +/* Array pattern body - pre elements, optional rest, post elements */ +p_array_body : p_array_elems + { + /* Just pre elements, no rest */ + $$ = new_pat_array(p, $1, 0, 0); + } + | p_array_elems ',' p_rest + { + /* Pre elements + rest, no post */ + $$ = new_pat_array(p, $1, $3, 0); + } + | p_array_elems ',' p_rest ',' p_array_elems + { + /* Pre + rest + post */ + $$ = new_pat_array(p, $1, $3, $5); + } + | p_rest + { + /* Just rest, no pre or post */ + $$ = new_pat_array(p, 0, $1, 0); + } + | p_rest ',' p_array_elems + { + /* Rest + post, no pre */ + $$ = new_pat_array(p, 0, $1, $3); + } + ; + +/* Non-rest array pattern elements */ +p_array_elems : p_expr + { + $$ = list1($1); + } + | p_array_elems ',' p_expr + { + $$ = push($1, $3); + } + ; + +/* Rest pattern in array: *var, *_, or just * */ +p_rest : tSTAR tIDENTIFIER + { + $$ = new_pat_var(p, $2); + } + | tSTAR + { + /* Anonymous rest pattern */ + $$ = (node*)-1; + } ; p_var : tIDENTIFIER diff --git a/mrbgems/mruby-compiler/core/y.tab.c b/mrbgems/mruby-compiler/core/y.tab.c index 7ffa118dd..8eaeda695 100644 --- a/mrbgems/mruby-compiler/core/y.tab.c +++ b/mrbgems/mruby-compiler/core/y.tab.c @@ -715,6 +715,17 @@ new_pat_alt(parser_state *p, node *left, node *right) return (node*)n; } +/* Create array pattern node [a, b, *rest, c] */ +static node* +new_pat_array(parser_state *p, node *pre, node *rest, node *post) +{ + struct mrb_ast_pat_array_node *n = NEW_NODE(pat_array, NODE_PAT_ARRAY); + n->pre = pre; + n->rest = rest; + n->post = post; + return (node*)n; +} + /* Create in-clause node for case/in */ static node* new_in(parser_state *p, node *pattern, node *guard, node *body, mrb_bool guard_is_unless) @@ -2005,7 +2016,7 @@ prohibit_literals(parser_state *p, node *n) /* xxx ----------------------------- */ -#line 2009 "mrbgems/mruby-compiler/core/y.tab.c" +#line 2020 "mrbgems/mruby-compiler/core/y.tab.c" # ifndef YY_CAST # ifdef __cplusplus @@ -2176,7 +2187,7 @@ extern int yydebug; #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { -#line 1952 "mrbgems/mruby-compiler/core/parse.y" +#line 1963 "mrbgems/mruby-compiler/core/parse.y" node *nd; mrb_sym id; @@ -2184,7 +2195,7 @@ union YYSTYPE stack_type stack; const struct vtable *vars; -#line 2188 "mrbgems/mruby-compiler/core/y.tab.c" +#line 2199 "mrbgems/mruby-compiler/core/y.tab.c" }; typedef union YYSTYPE YYSTYPE; @@ -2471,84 +2482,88 @@ enum yysymbol_kind_t YYSYMBOL_p_as = 250, /* p_as */ YYSYMBOL_p_alt = 251, /* p_alt */ YYSYMBOL_p_value = 252, /* p_value */ - YYSYMBOL_p_var = 253, /* p_var */ - YYSYMBOL_opt_rescue = 254, /* opt_rescue */ - YYSYMBOL_exc_list = 255, /* exc_list */ - YYSYMBOL_exc_var = 256, /* exc_var */ - YYSYMBOL_opt_ensure = 257, /* opt_ensure */ - YYSYMBOL_literal = 258, /* literal */ - YYSYMBOL_string = 259, /* string */ - YYSYMBOL_string_fragment = 260, /* string_fragment */ - YYSYMBOL_string_rep = 261, /* string_rep */ - YYSYMBOL_string_interp = 262, /* string_interp */ - YYSYMBOL_263_29 = 263, /* @29 */ - YYSYMBOL_xstring = 264, /* xstring */ - YYSYMBOL_regexp = 265, /* regexp */ - YYSYMBOL_heredoc = 266, /* heredoc */ - YYSYMBOL_heredoc_bodies = 267, /* heredoc_bodies */ - YYSYMBOL_heredoc_body = 268, /* heredoc_body */ - YYSYMBOL_heredoc_string_rep = 269, /* heredoc_string_rep */ - YYSYMBOL_heredoc_string_interp = 270, /* heredoc_string_interp */ - YYSYMBOL_271_30 = 271, /* @30 */ - YYSYMBOL_words = 272, /* words */ - YYSYMBOL_symbol = 273, /* symbol */ - YYSYMBOL_basic_symbol = 274, /* basic_symbol */ - YYSYMBOL_sym = 275, /* sym */ - YYSYMBOL_symbols = 276, /* symbols */ - YYSYMBOL_numeric = 277, /* numeric */ - YYSYMBOL_variable = 278, /* variable */ - YYSYMBOL_var_lhs = 279, /* var_lhs */ - YYSYMBOL_var_ref = 280, /* var_ref */ - YYSYMBOL_backref = 281, /* backref */ - YYSYMBOL_superclass = 282, /* superclass */ - YYSYMBOL_283_31 = 283, /* $@31 */ - YYSYMBOL_f_opt_arglist_paren = 284, /* f_opt_arglist_paren */ - YYSYMBOL_f_arglist_paren = 285, /* f_arglist_paren */ - YYSYMBOL_f_arglist = 286, /* f_arglist */ - YYSYMBOL_f_label = 287, /* f_label */ - YYSYMBOL_f_kw = 288, /* f_kw */ - YYSYMBOL_f_block_kw = 289, /* f_block_kw */ - YYSYMBOL_f_block_kwarg = 290, /* f_block_kwarg */ - YYSYMBOL_f_kwarg = 291, /* f_kwarg */ - YYSYMBOL_kwrest_mark = 292, /* kwrest_mark */ - YYSYMBOL_f_kwrest = 293, /* f_kwrest */ - YYSYMBOL_args_tail = 294, /* args_tail */ - YYSYMBOL_opt_args_tail = 295, /* opt_args_tail */ - YYSYMBOL_f_args = 296, /* f_args */ - YYSYMBOL_f_bad_arg = 297, /* f_bad_arg */ - YYSYMBOL_f_norm_arg = 298, /* f_norm_arg */ - YYSYMBOL_f_arg_item = 299, /* f_arg_item */ - YYSYMBOL_300_32 = 300, /* @32 */ - YYSYMBOL_f_arg = 301, /* f_arg */ - YYSYMBOL_f_opt_asgn = 302, /* f_opt_asgn */ - YYSYMBOL_f_opt = 303, /* f_opt */ - YYSYMBOL_f_block_opt = 304, /* f_block_opt */ - YYSYMBOL_f_block_optarg = 305, /* f_block_optarg */ - YYSYMBOL_f_optarg = 306, /* f_optarg */ - YYSYMBOL_restarg_mark = 307, /* restarg_mark */ - YYSYMBOL_f_rest_arg = 308, /* f_rest_arg */ - YYSYMBOL_blkarg_mark = 309, /* blkarg_mark */ - YYSYMBOL_f_block_arg = 310, /* f_block_arg */ - YYSYMBOL_opt_f_block_arg = 311, /* opt_f_block_arg */ - YYSYMBOL_singleton = 312, /* singleton */ - YYSYMBOL_313_33 = 313, /* $@33 */ - YYSYMBOL_assoc_list = 314, /* assoc_list */ - YYSYMBOL_assocs = 315, /* assocs */ - YYSYMBOL_assoc = 316, /* assoc */ - YYSYMBOL_operation = 317, /* operation */ - YYSYMBOL_operation2 = 318, /* operation2 */ - YYSYMBOL_operation3 = 319, /* operation3 */ - YYSYMBOL_dot_or_colon = 320, /* dot_or_colon */ - YYSYMBOL_call_op = 321, /* call_op */ - YYSYMBOL_call_op2 = 322, /* call_op2 */ - YYSYMBOL_opt_terms = 323, /* opt_terms */ - YYSYMBOL_opt_nl = 324, /* opt_nl */ - YYSYMBOL_rparen = 325, /* rparen */ - YYSYMBOL_trailer = 326, /* trailer */ - YYSYMBOL_term = 327, /* term */ - YYSYMBOL_nl = 328, /* nl */ - YYSYMBOL_terms = 329, /* terms */ - YYSYMBOL_none = 330 /* none */ + YYSYMBOL_p_array = 253, /* p_array */ + YYSYMBOL_p_array_body = 254, /* p_array_body */ + YYSYMBOL_p_array_elems = 255, /* p_array_elems */ + YYSYMBOL_p_rest = 256, /* p_rest */ + YYSYMBOL_p_var = 257, /* p_var */ + YYSYMBOL_opt_rescue = 258, /* opt_rescue */ + YYSYMBOL_exc_list = 259, /* exc_list */ + YYSYMBOL_exc_var = 260, /* exc_var */ + YYSYMBOL_opt_ensure = 261, /* opt_ensure */ + YYSYMBOL_literal = 262, /* literal */ + YYSYMBOL_string = 263, /* string */ + YYSYMBOL_string_fragment = 264, /* string_fragment */ + YYSYMBOL_string_rep = 265, /* string_rep */ + YYSYMBOL_string_interp = 266, /* string_interp */ + YYSYMBOL_267_29 = 267, /* @29 */ + YYSYMBOL_xstring = 268, /* xstring */ + YYSYMBOL_regexp = 269, /* regexp */ + YYSYMBOL_heredoc = 270, /* heredoc */ + YYSYMBOL_heredoc_bodies = 271, /* heredoc_bodies */ + YYSYMBOL_heredoc_body = 272, /* heredoc_body */ + YYSYMBOL_heredoc_string_rep = 273, /* heredoc_string_rep */ + YYSYMBOL_heredoc_string_interp = 274, /* heredoc_string_interp */ + YYSYMBOL_275_30 = 275, /* @30 */ + YYSYMBOL_words = 276, /* words */ + YYSYMBOL_symbol = 277, /* symbol */ + YYSYMBOL_basic_symbol = 278, /* basic_symbol */ + YYSYMBOL_sym = 279, /* sym */ + YYSYMBOL_symbols = 280, /* symbols */ + YYSYMBOL_numeric = 281, /* numeric */ + YYSYMBOL_variable = 282, /* variable */ + YYSYMBOL_var_lhs = 283, /* var_lhs */ + YYSYMBOL_var_ref = 284, /* var_ref */ + YYSYMBOL_backref = 285, /* backref */ + YYSYMBOL_superclass = 286, /* superclass */ + YYSYMBOL_287_31 = 287, /* $@31 */ + YYSYMBOL_f_opt_arglist_paren = 288, /* f_opt_arglist_paren */ + YYSYMBOL_f_arglist_paren = 289, /* f_arglist_paren */ + YYSYMBOL_f_arglist = 290, /* f_arglist */ + YYSYMBOL_f_label = 291, /* f_label */ + YYSYMBOL_f_kw = 292, /* f_kw */ + YYSYMBOL_f_block_kw = 293, /* f_block_kw */ + YYSYMBOL_f_block_kwarg = 294, /* f_block_kwarg */ + YYSYMBOL_f_kwarg = 295, /* f_kwarg */ + YYSYMBOL_kwrest_mark = 296, /* kwrest_mark */ + YYSYMBOL_f_kwrest = 297, /* f_kwrest */ + YYSYMBOL_args_tail = 298, /* args_tail */ + YYSYMBOL_opt_args_tail = 299, /* opt_args_tail */ + YYSYMBOL_f_args = 300, /* f_args */ + YYSYMBOL_f_bad_arg = 301, /* f_bad_arg */ + YYSYMBOL_f_norm_arg = 302, /* f_norm_arg */ + YYSYMBOL_f_arg_item = 303, /* f_arg_item */ + YYSYMBOL_304_32 = 304, /* @32 */ + YYSYMBOL_f_arg = 305, /* f_arg */ + YYSYMBOL_f_opt_asgn = 306, /* f_opt_asgn */ + YYSYMBOL_f_opt = 307, /* f_opt */ + YYSYMBOL_f_block_opt = 308, /* f_block_opt */ + YYSYMBOL_f_block_optarg = 309, /* f_block_optarg */ + YYSYMBOL_f_optarg = 310, /* f_optarg */ + YYSYMBOL_restarg_mark = 311, /* restarg_mark */ + YYSYMBOL_f_rest_arg = 312, /* f_rest_arg */ + YYSYMBOL_blkarg_mark = 313, /* blkarg_mark */ + YYSYMBOL_f_block_arg = 314, /* f_block_arg */ + YYSYMBOL_opt_f_block_arg = 315, /* opt_f_block_arg */ + YYSYMBOL_singleton = 316, /* singleton */ + YYSYMBOL_317_33 = 317, /* $@33 */ + YYSYMBOL_assoc_list = 318, /* assoc_list */ + YYSYMBOL_assocs = 319, /* assocs */ + YYSYMBOL_assoc = 320, /* assoc */ + YYSYMBOL_operation = 321, /* operation */ + YYSYMBOL_operation2 = 322, /* operation2 */ + YYSYMBOL_operation3 = 323, /* operation3 */ + YYSYMBOL_dot_or_colon = 324, /* dot_or_colon */ + YYSYMBOL_call_op = 325, /* call_op */ + YYSYMBOL_call_op2 = 326, /* call_op2 */ + YYSYMBOL_opt_terms = 327, /* opt_terms */ + YYSYMBOL_opt_nl = 328, /* opt_nl */ + YYSYMBOL_rparen = 329, /* rparen */ + YYSYMBOL_trailer = 330, /* trailer */ + YYSYMBOL_term = 331, /* term */ + YYSYMBOL_nl = 332, /* nl */ + YYSYMBOL_terms = 333, /* terms */ + YYSYMBOL_none = 334 /* none */ }; typedef enum yysymbol_kind_t yysymbol_kind_t; @@ -2879,16 +2894,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 106 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 13817 +#define YYLAST 15578 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 149 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 182 +#define YYNNTS 186 /* YYNRULES -- Number of rules. */ -#define YYNRULES 643 +#define YYNRULES 655 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 1140 +#define YYNSTATES 1166 /* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 377 @@ -2949,71 +2964,72 @@ static const yytype_uint8 yytranslate[] = /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { - 0, 2126, 2126, 2126, 2136, 2142, 2146, 2150, 2154, 2160, - 2162, 2161, 2175, 2201, 2207, 2211, 2215, 2219, 2225, 2225, - 2229, 2233, 2237, 2241, 2250, 2259, 2263, 2268, 2269, 2273, - 2277, 2281, 2285, 2291, 2294, 2298, 2302, 2306, 2310, 2314, - 2319, 2323, 2332, 2341, 2350, 2359, 2366, 2367, 2371, 2374, - 2375, 2379, 2383, 2387, 2391, 2394, 2404, 2403, 2418, 2427, - 2428, 2431, 2432, 2439, 2438, 2453, 2457, 2462, 2466, 2471, - 2475, 2480, 2484, 2488, 2492, 2496, 2502, 2506, 2512, 2513, - 2519, 2523, 2527, 2531, 2535, 2539, 2543, 2547, 2551, 2555, - 2561, 2562, 2568, 2572, 2578, 2582, 2588, 2592, 2596, 2600, - 2604, 2608, 2614, 2620, 2627, 2631, 2635, 2639, 2643, 2647, - 2653, 2659, 2664, 2670, 2674, 2677, 2681, 2685, 2692, 2693, - 2694, 2695, 2700, 2707, 2708, 2711, 2715, 2715, 2721, 2722, - 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, - 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, - 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2753, 2753, - 2753, 2754, 2754, 2755, 2755, 2755, 2756, 2756, 2756, 2756, - 2757, 2757, 2757, 2758, 2758, 2758, 2759, 2759, 2759, 2759, - 2760, 2760, 2760, 2760, 2761, 2761, 2761, 2761, 2762, 2762, - 2762, 2762, 2763, 2763, 2763, 2763, 2764, 2764, 2767, 2771, - 2775, 2779, 2783, 2787, 2791, 2796, 2801, 2806, 2810, 2814, - 2818, 2822, 2826, 2830, 2834, 2838, 2842, 2846, 2850, 2854, - 2858, 2862, 2866, 2870, 2874, 2878, 2882, 2886, 2890, 2894, - 2898, 2902, 2906, 2910, 2914, 2918, 2922, 2926, 2930, 2934, - 2938, 2942, 2946, 2950, 2954, 2963, 2972, 2981, 2990, 2996, - 2997, 3001, 3005, 3011, 3015, 3022, 3026, 3035, 3052, 3053, - 3056, 3057, 3058, 3062, 3066, 3072, 3077, 3081, 3085, 3089, - 3095, 3095, 3106, 3110, 3116, 3120, 3126, 3129, 3134, 3138, - 3142, 3147, 3151, 3157, 3162, 3166, 3172, 3173, 3177, 3181, - 3182, 3183, 3184, 3185, 3190, 3189, 3201, 3205, 3200, 3210, - 3210, 3214, 3218, 3222, 3226, 3230, 3234, 3238, 3242, 3246, - 3250, 3254, 3255, 3261, 3268, 3260, 3281, 3289, 3297, 3297, - 3297, 3304, 3304, 3304, 3311, 3317, 3321, 3330, 3339, 3349, - 3351, 3348, 3360, 3358, 3376, 3381, 3374, 3398, 3396, 3412, - 3422, 3433, 3437, 3441, 3445, 3451, 3458, 3459, 3460, 3463, - 3464, 3467, 3468, 3476, 3477, 3483, 3487, 3490, 3494, 3498, - 3502, 3507, 3511, 3515, 3519, 3525, 3524, 3534, 3538, 3542, - 3546, 3552, 3557, 3562, 3566, 3570, 3574, 3578, 3582, 3586, - 3590, 3594, 3598, 3602, 3606, 3610, 3614, 3618, 3624, 3629, - 3636, 3636, 3640, 3645, 3651, 3655, 3661, 3662, 3665, 3670, - 3673, 3677, 3683, 3687, 3694, 3693, 3710, 3715, 3719, 3724, - 3731, 3735, 3739, 3743, 3747, 3751, 3755, 3759, 3763, 3770, - 3769, 3784, 3783, 3799, 3807, 3816, 3820, 3824, 3829, 3834, - 3842, 3845, 3846, 3852, 3853, 3859, 3860, 3864, 3868, 3872, - 3876, 3880, 3884, 3888, 3892, 3898, 3904, 3911, 3914, 3918, - 3919, 3922, 3926, 3929, 3933, 3936, 3937, 3938, 3939, 3942, - 3943, 3949, 3954, 3959, 3964, 3970, 3971, 3977, 3983, 3982, - 3994, 3998, 4004, 4008, 4014, 4023, 4034, 4037, 4038, 4041, - 4047, 4053, 4054, 4057, 4064, 4063, 4078, 4082, 4090, 4094, - 4106, 4113, 4120, 4121, 4122, 4123, 4124, 4128, 4134, 4138, - 4146, 4147, 4148, 4152, 4158, 4162, 4166, 4170, 4174, 4180, - 4184, 4190, 4194, 4198, 4202, 4206, 4210, 4214, 4222, 4229, - 4235, 4236, 4240, 4244, 4243, 4260, 4261, 4264, 4270, 4274, - 4280, 4281, 4285, 4289, 4295, 4299, 4305, 4311, 4318, 4324, - 4331, 4335, 4341, 4345, 4351, 4352, 4355, 4359, 4365, 4369, - 4373, 4377, 4383, 4388, 4393, 4397, 4401, 4405, 4409, 4413, - 4417, 4421, 4425, 4429, 4433, 4437, 4441, 4445, 4450, 4456, - 4461, 4466, 4471, 4476, 4483, 4487, 4494, 4499, 4498, 4510, - 4514, 4520, 4528, 4536, 4544, 4548, 4554, 4558, 4564, 4565, - 4568, 4573, 4580, 4581, 4584, 4588, 4594, 4598, 4604, 4610, - 4610, 4617, 4618, 4624, 4628, 4634, 4640, 4645, 4649, 4654, - 4659, 4675, 4680, 4686, 4687, 4688, 4691, 4692, 4693, 4694, - 4697, 4698, 4699, 4702, 4703, 4706, 4710, 4716, 4717, 4723, - 4724, 4727, 4728, 4731, 4734, 4735, 4736, 4739, 4740, 4743, - 4748, 4751, 4752, 4756 + 0, 2137, 2137, 2137, 2147, 2153, 2157, 2161, 2165, 2171, + 2173, 2172, 2186, 2212, 2218, 2222, 2226, 2230, 2236, 2236, + 2240, 2244, 2248, 2252, 2261, 2270, 2274, 2279, 2280, 2284, + 2288, 2292, 2296, 2302, 2305, 2309, 2313, 2317, 2321, 2325, + 2330, 2334, 2343, 2352, 2361, 2370, 2377, 2378, 2382, 2385, + 2386, 2390, 2394, 2398, 2402, 2405, 2415, 2414, 2429, 2438, + 2439, 2442, 2443, 2450, 2449, 2464, 2468, 2473, 2477, 2482, + 2486, 2491, 2495, 2499, 2503, 2507, 2513, 2517, 2523, 2524, + 2530, 2534, 2538, 2542, 2546, 2550, 2554, 2558, 2562, 2566, + 2572, 2573, 2579, 2583, 2589, 2593, 2599, 2603, 2607, 2611, + 2615, 2619, 2625, 2631, 2638, 2642, 2646, 2650, 2654, 2658, + 2664, 2670, 2675, 2681, 2685, 2688, 2692, 2696, 2703, 2704, + 2705, 2706, 2711, 2718, 2719, 2722, 2726, 2726, 2732, 2733, + 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, + 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, + 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2764, 2764, + 2764, 2765, 2765, 2766, 2766, 2766, 2767, 2767, 2767, 2767, + 2768, 2768, 2768, 2769, 2769, 2769, 2770, 2770, 2770, 2770, + 2771, 2771, 2771, 2771, 2772, 2772, 2772, 2772, 2773, 2773, + 2773, 2773, 2774, 2774, 2774, 2774, 2775, 2775, 2778, 2782, + 2786, 2790, 2794, 2798, 2802, 2807, 2812, 2817, 2821, 2825, + 2829, 2833, 2837, 2841, 2845, 2849, 2853, 2857, 2861, 2865, + 2869, 2873, 2877, 2881, 2885, 2889, 2893, 2897, 2901, 2905, + 2909, 2913, 2917, 2921, 2925, 2929, 2933, 2937, 2941, 2945, + 2949, 2953, 2957, 2961, 2965, 2974, 2983, 2992, 3001, 3007, + 3008, 3012, 3016, 3022, 3026, 3033, 3037, 3046, 3063, 3064, + 3067, 3068, 3069, 3073, 3077, 3083, 3088, 3092, 3096, 3100, + 3106, 3106, 3117, 3121, 3127, 3131, 3137, 3140, 3145, 3149, + 3153, 3158, 3162, 3168, 3173, 3177, 3183, 3184, 3188, 3192, + 3193, 3194, 3195, 3196, 3201, 3200, 3212, 3216, 3211, 3221, + 3221, 3225, 3229, 3233, 3237, 3241, 3245, 3249, 3253, 3257, + 3261, 3265, 3266, 3272, 3279, 3271, 3292, 3300, 3308, 3308, + 3308, 3315, 3315, 3315, 3322, 3328, 3332, 3341, 3350, 3360, + 3362, 3359, 3371, 3369, 3387, 3392, 3385, 3409, 3407, 3423, + 3433, 3444, 3448, 3452, 3456, 3462, 3469, 3470, 3471, 3474, + 3475, 3478, 3479, 3487, 3488, 3494, 3498, 3501, 3505, 3509, + 3513, 3518, 3522, 3526, 3530, 3536, 3535, 3545, 3549, 3553, + 3557, 3563, 3568, 3573, 3577, 3581, 3585, 3589, 3593, 3597, + 3601, 3605, 3609, 3613, 3617, 3621, 3625, 3629, 3635, 3640, + 3647, 3647, 3651, 3656, 3662, 3666, 3672, 3673, 3676, 3681, + 3684, 3688, 3694, 3698, 3705, 3704, 3721, 3726, 3730, 3735, + 3742, 3746, 3750, 3754, 3758, 3762, 3766, 3770, 3774, 3781, + 3780, 3795, 3794, 3810, 3818, 3827, 3831, 3835, 3840, 3845, + 3853, 3856, 3857, 3863, 3864, 3870, 3871, 3875, 3879, 3883, + 3887, 3891, 3895, 3899, 3903, 3907, 3911, 3915, 3922, 3927, + 3932, 3937, 3942, 3950, 3954, 3961, 3965, 3972, 3978, 3985, + 3988, 3992, 3993, 3996, 4000, 4003, 4007, 4010, 4011, 4012, + 4013, 4016, 4017, 4023, 4028, 4033, 4038, 4044, 4045, 4051, + 4057, 4056, 4068, 4072, 4078, 4082, 4088, 4097, 4108, 4111, + 4112, 4115, 4121, 4127, 4128, 4131, 4138, 4137, 4152, 4156, + 4164, 4168, 4180, 4187, 4194, 4195, 4196, 4197, 4198, 4202, + 4208, 4212, 4220, 4221, 4222, 4226, 4232, 4236, 4240, 4244, + 4248, 4254, 4258, 4264, 4268, 4272, 4276, 4280, 4284, 4288, + 4296, 4303, 4309, 4310, 4314, 4318, 4317, 4334, 4335, 4338, + 4344, 4348, 4354, 4355, 4359, 4363, 4369, 4373, 4379, 4385, + 4392, 4398, 4405, 4409, 4415, 4419, 4425, 4426, 4429, 4433, + 4439, 4443, 4447, 4451, 4457, 4462, 4467, 4471, 4475, 4479, + 4483, 4487, 4491, 4495, 4499, 4503, 4507, 4511, 4515, 4519, + 4524, 4530, 4535, 4540, 4545, 4550, 4557, 4561, 4568, 4573, + 4572, 4584, 4588, 4594, 4602, 4610, 4618, 4622, 4628, 4632, + 4638, 4639, 4642, 4647, 4654, 4655, 4658, 4662, 4668, 4672, + 4678, 4684, 4684, 4691, 4692, 4698, 4702, 4708, 4714, 4719, + 4723, 4728, 4733, 4749, 4754, 4760, 4761, 4762, 4765, 4766, + 4767, 4768, 4771, 4772, 4773, 4776, 4777, 4780, 4784, 4790, + 4791, 4797, 4798, 4801, 4802, 4805, 4808, 4809, 4810, 4813, + 4814, 4817, 4822, 4825, 4826, 4830 }; #endif @@ -3075,8 +3091,9 @@ static const char *const yytname[] = "opt_block_param", "$@25", "block_param_def", "opt_bv_decl", "bv_decls", "bvar", "f_larglist", "lambda_body", "@26", "do_block", "block_call", "method_call", "@27", "brace_block", "@28", "case_body", "cases", - "in_clauses", "p_expr", "p_as", "p_alt", "p_value", "p_var", - "opt_rescue", "exc_list", "exc_var", "opt_ensure", "literal", "string", + "in_clauses", "p_expr", "p_as", "p_alt", "p_value", "p_array", + "p_array_body", "p_array_elems", "p_rest", "p_var", "opt_rescue", + "exc_list", "exc_var", "opt_ensure", "literal", "string", "string_fragment", "string_rep", "string_interp", "@29", "xstring", "regexp", "heredoc", "heredoc_bodies", "heredoc_body", "heredoc_string_rep", "heredoc_string_interp", "@30", "words", "symbol", @@ -3100,12 +3117,12 @@ yysymbol_name (yysymbol_kind_t yysymbol) } #endif -#define YYPACT_NINF (-870) +#define YYPACT_NINF (-948) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF (-644) +#define YYTABLE_NINF (-656) #define yytable_value_is_error(Yyn) \ ((Yyn) == YYTABLE_NINF) @@ -3114,120 +3131,123 @@ yysymbol_name (yysymbol_kind_t yysymbol) STATE-NUM. */ static const yytype_int16 yypact[] = { - -870, 4322, 128, 9206, 11330, 11672, 7628, -870, 10976, 10976, - -870, -870, 11444, 8810, 7244, 9442, 9442, -870, -870, 9442, - 4843, 4435, -870, -870, -870, -870, 94, 8810, -870, 156, - -870, -870, -870, 7770, 3846, -870, -870, 7912, -870, -870, - -870, -870, -870, -870, -870, 80, 11094, 11094, 11094, 11094, - 249, 6503, 1347, 9914, 10268, 3997, -870, 8528, 203, 337, - 489, 1257, 1469, -870, 109, 11212, 11094, -870, 1515, -870, - 1761, -870, 149, 1358, 1358, -870, -870, 310, 223, -870, - 235, 11558, -870, 270, 13542, 354, 594, 64, 101, -870, - 504, -870, -870, -870, -870, -870, -870, -870, -870, -870, - 61, 318, -870, 239, 78, -870, -870, -870, -870, -870, - -870, 277, 277, 94, 679, 892, -870, 10976, 328, 6622, - 268, 1566, 1566, -870, 289, -870, 739, -870, -870, 78, - -870, -870, -870, -870, -870, -870, -870, -870, -870, -870, - -870, -870, -870, -870, -870, -870, -870, -870, -870, -870, - -870, -870, -870, -870, -870, -870, -870, -870, 59, 67, - 73, 125, -870, -870, -870, -870, -870, -870, 127, 144, - 183, 208, -870, 226, -870, -870, -870, -870, -870, -870, - -870, -870, -870, -870, -870, -870, -870, -870, -870, -870, - -870, -870, -870, -870, -870, -870, -870, -870, -870, -870, - -870, -870, -870, -870, -870, -870, -870, -870, -870, 227, - 5535, 369, 149, 1358, 1358, 320, 316, 13666, 748, 216, - 349, 325, 320, 10976, 10976, 777, 390, -870, -870, 786, - 433, 82, 86, -870, -870, -870, -870, -870, -870, -870, - -870, -870, 8669, -870, -870, 327, -870, -870, -870, -870, - -870, -870, 1515, -870, 636, -870, 479, -870, -870, 1515, - 4571, 83, 11094, 11094, 11094, 11094, -870, 13604, -870, -870, - 355, 450, 355, -870, -870, -870, 9560, -870, -870, 9442, - -870, -870, -870, -870, 7244, 7482, -870, 372, 6741, -870, - 858, 423, 3166, 3166, 250, 9324, 6503, 374, 1515, 1761, - 1515, 424, -870, 9324, 1515, 406, 1603, 1603, -870, 13604, - 417, 1603, -870, 497, 11786, 421, 961, 983, 1027, 1626, - -870, -870, -870, -870, -870, 1527, -870, -870, -870, -870, - -870, -870, 671, 1587, -870, -870, 386, -870, 900, -870, - 1590, -870, 1607, 471, 490, -870, -870, -870, -870, 7006, - 10976, 10976, 10976, 10976, 9324, 10976, 10976, 68, -870, -870, - -870, -870, 561, 1515, -870, -870, -870, -870, -870, -870, - -870, 1731, 520, 522, 5535, 11094, -870, 503, 598, 510, - -870, 1515, -870, -870, -870, 517, 11094, -870, 524, 626, - 546, 641, -870, -870, 575, 5535, -870, -870, 10386, -870, - 6503, 9092, 558, 10386, 11094, 11094, 11094, 11094, 11094, 11094, - 11094, 11094, 11094, 11094, 11094, 11094, 11094, 11094, 650, 11094, - 11094, 11094, 11094, 11094, 11094, 11094, 11094, 11094, 11094, 11094, - 11094, 3447, -870, 9442, -870, 3587, -870, -870, 13296, -870, - -870, -870, -870, 11212, 11212, -870, 604, -870, 149, -870, - 1088, -870, -870, -870, -870, -870, -870, 4169, 9442, 12178, - 5535, 10976, -870, -870, -870, 695, 701, 342, 596, 599, - -870, 5681, 699, 11094, 12264, 9442, 12350, 11094, 11094, 6119, - 563, 563, 90, 12436, 9442, 12522, -870, 656, -870, 6741, - 201, -870, -870, 10504, 717, -870, 11094, 11094, 13666, 13666, - 13666, 11094, -870, -870, 9678, -870, 11094, -870, 10032, 7363, - 579, 1515, 355, 355, -870, -870, 477, 590, -870, -870, - -870, 8810, 6238, 601, 12264, 12350, 11094, 1761, 1515, -870, - -870, 7125, 595, 1761, -870, -870, 10150, -870, 1515, 10268, - -870, -870, -870, 1088, 235, 11786, -870, 11786, 12608, 9442, - 12694, 1110, -870, -870, 600, -870, 1620, 6741, 671, -870, - -870, -870, -870, -870, -870, -870, 11094, 11094, -870, -870, - -870, -870, -870, -870, -870, -870, -870, -870, -870, -870, - 1133, 1515, 1515, 603, 11212, 732, 13666, 994, -870, -870, - -870, 71, -870, -870, 1773, -870, 13666, 1110, -870, -870, - 1450, -870, -870, 11212, 733, 99, 11094, -870, 2454, 355, - -870, 1515, 11786, 614, -870, -870, -870, 713, 640, 2724, - -870, -870, 1115, 356, 2965, 2965, 2965, 2965, 1645, 1645, - 13684, 2257, 2965, 2965, 3166, 3166, 1305, 1305, -870, 423, - 13666, 1645, 1645, 1707, 1707, 1494, 65, 65, 423, 423, - 423, 4979, 8268, 5251, 8386, -870, 277, -870, 632, 355, - 288, -870, 301, -870, -870, 4707, -870, -870, 2055, 99, - 99, -870, 3084, -870, -870, -870, -870, -870, 1515, 10976, - 5535, 902, 470, -870, 277, 634, 277, 752, 477, 8951, - -870, 10622, 762, -870, 11094, 11094, 468, -870, 8030, 8149, - 644, 370, 413, 762, -870, -870, -870, -870, 58, 63, - 646, 98, 114, 10976, 8810, 652, 11900, 778, 13666, 136, - -870, 13666, 13666, 13666, 855, 11094, 13604, -870, 355, 13666, - -870, -870, -870, -870, 9796, 10032, -870, -870, -870, 661, - -870, -870, 41, 1761, 1515, 1603, 558, -870, 902, 470, - 665, 1132, 1243, -870, 95, 1110, -870, 669, -870, 423, - 423, -870, -870, 91, 1515, 674, -870, -870, 1956, 774, - 3300, -870, 768, 561, -870, 510, -870, 1515, -870, -870, - 693, 694, 704, -870, 707, 768, 704, 799, 4040, -870, - -870, 1110, 5535, -870, -870, 13329, 10740, -870, -870, 11786, - 9324, 11212, 11094, 12780, 9442, 12866, 709, 11212, 11212, -870, - 604, 447, 9678, 11212, 11212, -870, 604, 101, 310, 5535, - 6741, 99, -870, 1515, 836, -870, -870, -870, -870, 2454, - -870, 759, -870, 6384, 840, -870, 10976, 843, -870, 11094, - 11094, 428, 11094, 11094, 844, 6887, 6887, 116, 563, -870, - -870, 1196, 1212, 1244, 679, 892, 1380, 805, 1341, 722, - -870, 50, -870, -870, 1407, 1418, -870, 10858, 5827, 13666, - -870, 7363, 355, -870, -870, -870, 654, 719, 1695, 5535, - 6741, -870, -870, -870, 723, -870, 1712, 1515, 11094, 11094, - -870, -870, 1110, -870, 1450, -870, 1450, -870, 1450, -870, - -870, 11094, 11094, -870, -870, -870, 12014, -870, 730, 510, - 736, 12014, -870, 755, 757, -870, 866, 11094, 13400, -870, - -870, 13666, 5115, 5387, 749, 495, 529, 11094, 11094, -870, - -870, -870, -870, -870, 11212, -870, -870, -870, -870, -870, - -870, -870, 879, 765, 6741, 5535, -870, -870, 12128, 320, - -870, -870, 6887, -870, -870, 320, -870, 11094, -870, 886, - 904, -870, 1088, 12952, 10976, 10976, 5973, 869, 11900, 13666, - 323, -870, 10032, -870, 1852, 915, 792, 1799, 1799, 530, - -870, 13666, 13666, 704, 803, 704, 704, 13666, 13666, 815, - 821, 894, 1420, 994, -870, -870, 1237, -870, 1420, 1110, - -870, 1450, -870, -870, 13471, 554, 13666, 13666, -870, -870, - -870, -870, 811, 936, 898, -870, 1434, 983, 1027, 5535, - -870, 5681, -870, -870, 6887, 810, 470, 320, 320, 304, - -870, -870, -870, -870, -870, -870, 824, -870, -870, -870, - -870, 825, 825, 1799, 830, -870, 1450, -870, -870, -870, - -870, -870, -870, 13038, -870, 510, 994, -870, -870, 837, - 839, 845, -870, 846, 845, -870, -870, 1088, 13124, 9442, - 13210, 701, 468, 970, 5973, 5973, 11900, -870, 971, 1852, - 855, 1799, 825, 1799, 704, 847, -870, 1110, -870, 1450, - -870, 1450, -870, 1450, -870, -870, 902, 470, 852, 791, - 895, -870, -870, -870, 304, 304, 916, -870, -870, 825, - -870, 845, 862, 845, 845, 654, 979, 993, 10976, 10976, - 5973, -870, 1450, -870, -870, -870, -870, -870, 320, 320, - 304, 845, 5973, 5973, -870, -870, 304, 304, -870, -870 + -948, 4572, 126, 9723, 12338, 12794, 8024, -948, 11493, 11493, + -948, -948, 12452, 9206, 7640, 9959, 9959, -948, -948, 9959, + 5093, 4685, -948, -948, -948, -948, 28, 9206, -948, -79, + -948, -948, -948, 8166, 4218, -948, -948, 8308, -948, -948, + -948, -948, -948, -948, -948, 199, 11611, 11611, 11611, 11611, + 74, 6753, 1310, 10431, 10785, 3167, -948, 8924, 1285, 1191, + 535, 1303, 1329, -948, 620, 11729, 11611, -948, 1325, -948, + 1146, -948, 655, 1381, 1381, -948, -948, 156, 99, -948, + 95, 12566, -948, 161, 15259, 167, 203, 83, 70, -948, + 259, -948, -948, -948, -948, -948, -948, -948, -948, -948, + 246, 115, -948, 376, 42, -948, -948, -948, -948, -948, + -948, 144, 144, 28, 101, 569, -948, 11493, 270, 6872, + 660, 1441, 1441, -948, 174, -948, 287, -948, -948, 42, + -948, -948, -948, -948, -948, -948, -948, -948, -948, -948, + -948, -948, -948, -948, -948, -948, -948, -948, -948, -948, + -948, -948, -948, -948, -948, -948, -948, -948, 48, 88, + 127, 150, -948, -948, -948, -948, -948, -948, 153, 157, + 176, 228, -948, 247, -948, -948, -948, -948, -948, -948, + -948, -948, -948, -948, -948, -948, -948, -948, -948, -948, + -948, -948, -948, -948, -948, -948, -948, -948, -948, -948, + -948, -948, -948, -948, -948, -948, -948, -948, -948, 251, + 5785, 257, 655, 1381, 1381, 908, 221, 15383, 311, 276, + 263, 294, 908, 11493, 11493, 385, 328, -948, -948, 405, + 324, 32, 68, -948, -948, -948, -948, -948, -948, -948, + -948, -948, 9065, -948, -948, 254, -948, -948, -948, -948, + -948, -948, 1325, -948, 789, -948, 382, -948, -948, 1325, + 4821, 112, 11611, 11611, 11611, 11611, -948, 15321, -948, -948, + 269, 348, 269, -948, -948, -948, 10077, -948, -948, 9959, + -948, -948, -948, -948, 7640, 7878, -948, 282, 6991, -948, + 434, 321, 15445, 15445, 399, 9841, 6753, 283, 1325, 1146, + 1325, 322, -948, 9841, 1325, 313, 1213, 1213, -948, 15321, + 325, 1213, -948, 427, 12908, 350, 674, 679, 793, 1884, + -948, -948, -948, -948, -948, 1384, -948, -948, -948, -948, + -948, -948, 823, 1389, -948, -948, 1217, -948, 619, -948, + 1397, -948, 1473, 395, 402, -948, -948, -948, -948, 7256, + 11493, 11493, 11493, 11493, 9841, 11493, 11493, 71, -948, -948, + -948, -948, 450, 1325, -948, -948, -948, -948, -948, -948, + -948, 2072, 388, 414, 5785, 11611, -948, 389, 492, 408, + -948, 1325, -948, -948, -948, 412, 11611, -948, 438, 505, + 442, 541, -948, -948, 465, 5785, -948, -948, 10903, -948, + 6753, 9488, 452, 10903, 11611, 11611, 11611, 11611, 11611, 11611, + 11611, 11611, 11611, 11611, 11611, 11611, 11611, 11611, 552, 11611, + 11611, 11611, 11611, 11611, 11611, 11611, 11611, 11611, 11611, 11611, + 11611, 2565, -948, 9959, -948, 4416, -948, -948, 14749, -948, + -948, -948, -948, 11729, 11729, -948, 519, -948, 655, -948, + 860, -948, -948, -948, -948, -948, -948, 13459, 9959, 13545, + 5785, 11493, -948, -948, -948, 606, 612, 352, 508, 525, + -948, 5931, 632, 11611, 13631, 9959, 13717, 11611, 11611, 6369, + 81, 81, 84, 13803, 9959, 13889, -948, 590, -948, 6991, + 281, -948, -948, 11021, 658, -948, 11611, 11611, 15383, 15383, + 15383, 11611, -948, -948, 10195, -948, 11611, -948, 10549, 7759, + 517, 1325, 269, 269, -948, -948, 1020, 543, -948, -948, + -948, 9206, 6488, 558, 13631, 13717, 11611, 1146, 1325, -948, + -948, 7375, 559, 1146, -948, -948, 10667, -948, 1325, 10785, + -948, -948, -948, 860, 95, 12908, -948, 12908, 13975, 9959, + 14061, 1642, -948, -948, 563, -948, 1529, 6991, 823, -948, + -948, -948, -948, -948, -948, -948, 11611, 11611, -948, -948, + -948, -948, -948, -948, -948, -948, -948, -948, -948, -948, + 1769, 1325, 1325, 580, 11729, 696, 15383, 979, -948, -948, + -948, 53, -948, -948, 2357, -948, 15383, 1642, -948, -948, + 1476, -948, -948, 11729, 718, 33, 11611, -948, 14975, 269, + -948, 1325, 12908, 599, -948, -948, -948, 700, 625, 1543, + -948, -948, 884, 430, 2647, 2647, 2647, 2647, 1843, 1843, + 4075, 3712, 2647, 2647, 15445, 15445, 1048, 1048, -948, 321, + 15383, 1843, 1843, 1860, 1860, 1674, 384, 384, 321, 321, + 321, 5229, 8664, 5501, 8782, -948, 144, -948, 608, 269, + 467, -948, 646, -948, -948, 4957, -948, -948, 1771, 33, + 33, -948, 2175, -948, -948, -948, -948, -948, 1325, 11493, + 5785, 727, 500, -948, 144, 615, 144, 743, 1020, 9347, + -948, 11139, 760, -948, 11611, 11611, 707, -948, 8426, 8545, + 639, 481, 485, 760, -948, -948, -948, -948, 100, 114, + 641, 111, 119, 11493, 9206, 651, 13022, 770, 15383, 198, + -948, 15383, 15383, 15383, 46, 11611, 15321, -948, 269, 15383, + -948, -948, -948, -948, 10313, 10549, -948, -948, -948, 654, + -948, -948, 194, 1146, 1325, 1213, 452, -948, 727, 500, + 657, 1029, 1159, -948, 105, 1642, -948, 661, -948, 321, + 321, -948, -948, 706, 1325, 659, -948, -948, 2368, 763, + 2975, -948, 768, 450, -948, 408, -948, 1325, -948, -948, + 685, 687, 692, -948, 693, 768, 692, 792, 3438, -948, + -948, 1642, 5785, -948, -948, 15046, 11257, -948, -948, 12908, + 9841, 11729, 11611, 14147, 9959, 14233, 839, 11729, 11729, -948, + 519, 647, 10195, 11729, 11729, -948, 519, 70, 156, 5785, + 6991, 33, -948, 1325, 830, -948, -948, -948, -948, 14975, + -948, 754, -948, 6634, 837, -948, 11493, 838, -948, 11611, + 11611, 490, 11611, 11611, 841, 7137, 7137, 123, 81, -948, + -948, 3606, 11952, 12032, 101, 11778, 11872, 797, 9602, 961, + 731, -948, 59, -948, -948, -948, 12112, 12192, -948, 11375, + 6077, 15383, -948, 7759, 269, -948, -948, -948, 309, 715, + 1488, 5785, 6991, -948, -948, -948, 719, -948, 1788, 1325, + 11611, 11611, -948, -948, 1642, -948, 1476, -948, 1476, -948, + 1476, -948, -948, 11611, 11611, -948, -948, -948, 13136, -948, + 724, 408, 726, 13136, -948, 728, 733, -948, 861, 11611, + 15117, -948, -948, 15383, 5365, 5637, 739, 545, 565, 11611, + 11611, -948, -948, -948, -948, -948, 11729, -948, -948, -948, + -948, -948, -948, -948, 866, 745, 6991, 5785, -948, -948, + 13250, 908, -948, -948, 7137, -948, -948, 908, -948, 11611, + -948, 867, 880, -948, 860, 13298, 847, 7494, -948, 1051, + -948, 762, 769, 771, 14319, 11493, 11493, 6223, 864, 13022, + 15383, 234, -948, 10549, -948, 1042, 897, 778, 1653, 1653, + 755, -948, 15383, 15383, 692, 784, 692, 692, 15383, 15383, + 794, 801, 896, 1060, 979, -948, -948, 2017, -948, 1060, + 1642, -948, 1476, -948, -948, 15188, 579, 15383, 15383, -948, + -948, -948, -948, 816, 944, 906, -948, 1070, 679, 793, + 5785, -948, 5931, -948, -948, 7137, 14898, 13375, 14405, -948, + 12680, 13022, 820, 500, 908, 908, 152, -948, -948, -948, + -948, -948, -948, 824, -948, -948, -948, -948, 827, 827, + 1653, 833, -948, 1476, -948, -948, -948, -948, -948, -948, + 14491, -948, 408, 979, -948, -948, 840, 844, 848, -948, + 850, 848, -948, -948, 860, 14577, 9959, 14663, 612, 707, + 957, 14821, 928, -948, 853, 856, 6223, 6223, 13022, -948, + 966, 1042, 46, 1653, 827, 1653, 692, 857, -948, 1642, + -948, 1476, -948, 1476, -948, 1476, -948, -948, 727, 500, + 865, 931, 954, -948, -948, -948, -948, 13022, 13022, 152, + 152, 994, -948, -948, 827, -948, 848, 863, 848, 848, + 309, 856, 996, 997, 11493, 11493, 6223, -948, 1476, -948, + -948, -948, -948, -948, 908, 908, 152, 848, 6223, 6223, + -948, -948, 152, 152, -948, -948 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -3236,18 +3256,18 @@ static const yytype_int16 yypact[] = static const yytype_int16 yydefact[] = { 2, 0, 0, 0, 0, 0, 0, 294, 0, 0, - 318, 321, 0, 0, 629, 341, 342, 343, 344, 306, - 270, 270, 514, 513, 515, 516, 631, 0, 10, 0, - 518, 517, 519, 504, 615, 506, 505, 508, 507, 500, - 501, 461, 462, 520, 521, 512, 0, 0, 0, 0, - 0, 0, 296, 643, 643, 88, 313, 0, 0, 0, - 0, 0, 0, 476, 0, 0, 0, 3, 629, 6, - 9, 27, 33, 568, 568, 49, 60, 59, 0, 76, + 318, 321, 0, 0, 641, 341, 342, 343, 344, 306, + 270, 270, 526, 525, 527, 528, 643, 0, 10, 0, + 530, 529, 531, 516, 627, 518, 517, 520, 519, 512, + 513, 473, 474, 532, 533, 524, 0, 0, 0, 0, + 0, 0, 296, 655, 655, 88, 313, 0, 0, 0, + 0, 0, 0, 488, 0, 0, 0, 3, 641, 6, + 9, 27, 33, 580, 580, 49, 60, 59, 0, 76, 0, 80, 90, 0, 54, 248, 0, 61, 311, 286, - 287, 459, 288, 289, 290, 457, 456, 488, 458, 455, - 511, 0, 291, 292, 270, 5, 1, 8, 341, 342, - 306, 643, 417, 0, 113, 114, 512, 0, 0, 0, - 0, 568, 568, 116, 522, 345, 0, 511, 292, 0, + 287, 471, 288, 289, 290, 469, 468, 500, 470, 467, + 523, 0, 291, 292, 270, 5, 1, 8, 341, 342, + 306, 655, 417, 0, 113, 114, 524, 0, 0, 0, + 0, 580, 580, 116, 534, 345, 0, 523, 292, 0, 337, 168, 178, 169, 165, 194, 195, 196, 197, 176, 191, 184, 174, 173, 189, 172, 171, 167, 192, 166, 179, 183, 185, 177, 170, 186, 193, 188, 187, 180, @@ -3255,124 +3275,127 @@ static const yytype_int16 yydefact[] = 160, 118, 120, 119, 153, 154, 131, 132, 133, 140, 137, 139, 134, 135, 155, 156, 141, 142, 146, 149, 150, 136, 138, 128, 129, 130, 143, 144, 145, 147, - 148, 151, 152, 157, 599, 55, 121, 122, 598, 0, - 0, 0, 58, 568, 568, 0, 0, 54, 0, 511, + 148, 151, 152, 157, 611, 55, 121, 122, 610, 0, + 0, 0, 58, 580, 580, 0, 0, 54, 0, 523, 0, 292, 0, 0, 0, 112, 0, 356, 355, 0, - 0, 511, 292, 187, 180, 190, 175, 158, 159, 160, - 118, 119, 0, 123, 125, 20, 124, 479, 484, 483, - 637, 639, 629, 640, 0, 481, 0, 641, 638, 630, - 613, 512, 278, 612, 273, 0, 265, 277, 74, 269, - 643, 459, 643, 603, 75, 73, 643, 259, 307, 0, - 72, 258, 416, 71, 629, 0, 18, 0, 0, 221, - 0, 222, 209, 212, 303, 0, 0, 0, 629, 15, - 629, 78, 14, 0, 629, 0, 634, 634, 249, 0, - 0, 634, 601, 0, 0, 86, 0, 96, 103, 568, - 494, 493, 495, 496, 490, 0, 492, 491, 463, 468, - 467, 470, 0, 0, 465, 472, 0, 474, 0, 486, - 0, 498, 0, 502, 503, 53, 236, 237, 4, 630, - 0, 0, 0, 0, 0, 0, 0, 575, 571, 570, - 569, 572, 573, 0, 577, 589, 544, 545, 593, 592, - 588, 568, 0, 530, 0, 537, 542, 643, 547, 643, - 567, 0, 574, 576, 579, 553, 0, 586, 553, 591, - 553, 595, 551, 526, 0, 0, 404, 406, 0, 92, + 0, 523, 292, 187, 180, 190, 175, 158, 159, 160, + 118, 119, 0, 123, 125, 20, 124, 491, 496, 495, + 649, 651, 641, 652, 0, 493, 0, 653, 650, 642, + 625, 524, 278, 624, 273, 0, 265, 277, 74, 269, + 655, 471, 655, 615, 75, 73, 655, 259, 307, 0, + 72, 258, 416, 71, 641, 0, 18, 0, 0, 221, + 0, 222, 209, 212, 303, 0, 0, 0, 641, 15, + 641, 78, 14, 0, 641, 0, 646, 646, 249, 0, + 0, 646, 613, 0, 0, 86, 0, 96, 103, 580, + 506, 505, 507, 508, 502, 0, 504, 503, 475, 480, + 479, 482, 0, 0, 477, 484, 0, 486, 0, 498, + 0, 510, 0, 514, 515, 53, 236, 237, 4, 642, + 0, 0, 0, 0, 0, 0, 0, 587, 583, 582, + 581, 584, 585, 0, 589, 601, 556, 557, 605, 604, + 600, 580, 0, 542, 0, 549, 554, 655, 559, 655, + 579, 0, 586, 588, 591, 565, 0, 598, 565, 603, + 565, 607, 563, 538, 0, 0, 404, 406, 0, 92, 0, 84, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 626, 643, 625, 0, 628, 627, 0, 421, - 419, 312, 460, 0, 0, 410, 65, 310, 334, 113, - 114, 115, 502, 503, 530, 523, 332, 0, 643, 0, - 0, 0, 624, 623, 56, 0, 643, 303, 0, 0, - 347, 0, 346, 0, 0, 643, 0, 0, 0, 0, - 0, 0, 303, 0, 643, 0, 329, 0, 126, 0, - 0, 480, 482, 0, 0, 642, 607, 608, 279, 611, - 272, 0, 631, 266, 0, 275, 0, 267, 0, 629, - 0, 629, 643, 643, 260, 271, 629, 0, 309, 52, - 632, 0, 0, 0, 0, 0, 0, 17, 629, 301, - 13, 630, 77, 297, 300, 304, 636, 250, 635, 636, - 252, 305, 602, 102, 94, 0, 89, 0, 0, 643, - 0, 568, 314, 401, 553, 497, 0, 0, 471, 477, - 464, 466, 473, 475, 487, 499, 0, 0, 7, 21, - 22, 23, 24, 25, 50, 51, 534, 581, 535, 533, - 0, 629, 629, 553, 0, 0, 536, 0, 549, 597, - 546, 0, 550, 531, 0, 560, 582, 0, 563, 590, - 0, 565, 594, 0, 0, 643, 278, 28, 30, 0, - 31, 629, 0, 82, 93, 48, 34, 46, 0, 253, + 0, 0, 638, 655, 637, 0, 640, 639, 0, 421, + 419, 312, 472, 0, 0, 410, 65, 310, 334, 113, + 114, 115, 514, 515, 542, 535, 332, 0, 655, 0, + 0, 0, 636, 635, 56, 0, 655, 303, 0, 0, + 347, 0, 346, 0, 0, 655, 0, 0, 0, 0, + 0, 0, 303, 0, 655, 0, 329, 0, 126, 0, + 0, 492, 494, 0, 0, 654, 619, 620, 279, 623, + 272, 0, 643, 266, 0, 275, 0, 267, 0, 641, + 0, 641, 655, 655, 260, 271, 641, 0, 309, 52, + 644, 0, 0, 0, 0, 0, 0, 17, 641, 301, + 13, 642, 77, 297, 300, 304, 648, 250, 647, 648, + 252, 305, 614, 102, 94, 0, 89, 0, 0, 655, + 0, 580, 314, 401, 565, 509, 0, 0, 483, 489, + 476, 478, 485, 487, 499, 511, 0, 0, 7, 21, + 22, 23, 24, 25, 50, 51, 546, 593, 547, 545, + 0, 641, 641, 565, 0, 0, 548, 0, 561, 609, + 558, 0, 562, 543, 0, 572, 594, 0, 575, 602, + 0, 577, 606, 0, 0, 655, 278, 28, 30, 0, + 31, 641, 0, 82, 93, 48, 34, 46, 0, 253, 198, 29, 0, 292, 226, 231, 232, 233, 228, 230, 240, 241, 234, 235, 207, 210, 238, 239, 32, 218, - 631, 227, 229, 223, 224, 225, 213, 214, 215, 216, - 217, 616, 621, 617, 622, 415, 270, 413, 0, 643, - 616, 618, 617, 619, 414, 270, 616, 617, 270, 643, - 643, 35, 253, 199, 45, 206, 63, 66, 0, 0, - 0, 113, 114, 117, 0, 0, 643, 0, 629, 0, - 295, 643, 643, 447, 0, 0, 643, 348, 620, 302, - 0, 616, 617, 643, 350, 319, 349, 322, 620, 302, - 0, 616, 617, 0, 0, 0, 0, 0, 277, 0, - 325, 606, 609, 605, 276, 281, 280, 274, 643, 610, - 604, 257, 255, 261, 262, 264, 308, 633, 19, 0, - 26, 205, 79, 16, 629, 634, 95, 87, 99, 101, - 0, 98, 100, 631, 0, 0, 489, 0, 478, 219, - 220, 575, 573, 364, 629, 357, 529, 527, 0, 41, - 244, 339, 0, 0, 543, 643, 596, 0, 552, 580, - 553, 553, 553, 587, 553, 575, 553, 43, 246, 340, + 643, 227, 229, 223, 224, 225, 213, 214, 215, 216, + 217, 628, 633, 629, 634, 415, 270, 413, 0, 655, + 628, 630, 629, 631, 414, 270, 628, 629, 270, 655, + 655, 35, 253, 199, 45, 206, 63, 66, 0, 0, + 0, 113, 114, 117, 0, 0, 655, 0, 641, 0, + 295, 655, 655, 459, 0, 0, 655, 348, 632, 302, + 0, 628, 629, 655, 350, 319, 349, 322, 632, 302, + 0, 628, 629, 0, 0, 0, 0, 0, 277, 0, + 325, 618, 621, 617, 276, 281, 280, 274, 655, 622, + 616, 257, 255, 261, 262, 264, 308, 645, 19, 0, + 26, 205, 79, 16, 641, 646, 95, 87, 99, 101, + 0, 98, 100, 643, 0, 0, 501, 0, 490, 219, + 220, 587, 585, 364, 641, 357, 541, 539, 0, 41, + 244, 339, 0, 0, 555, 655, 608, 0, 564, 592, + 565, 565, 565, 599, 565, 587, 565, 43, 246, 340, 392, 390, 0, 389, 388, 285, 0, 91, 85, 0, - 0, 0, 0, 0, 643, 0, 0, 0, 0, 412, + 0, 0, 0, 0, 655, 0, 0, 0, 0, 412, 69, 418, 262, 0, 0, 411, 67, 407, 62, 0, - 0, 643, 335, 0, 0, 418, 338, 600, 57, 448, - 449, 643, 450, 0, 643, 353, 0, 0, 351, 0, + 0, 655, 335, 0, 0, 418, 338, 612, 57, 460, + 461, 655, 462, 0, 655, 353, 0, 0, 351, 0, 0, 418, 0, 0, 0, 0, 0, 418, 0, 127, - 485, 439, 440, 441, 445, 442, 438, 0, 0, 0, - 430, 431, 433, 435, 437, 436, 324, 0, 0, 282, - 268, 629, 643, 11, 298, 251, 97, 0, 394, 0, - 0, 315, 469, 365, 362, 578, 0, 629, 0, 0, - 548, 532, 0, 556, 0, 558, 0, 564, 0, 561, - 566, 0, 0, 387, 631, 631, 539, 540, 643, 643, - 372, 0, 584, 372, 372, 370, 0, 281, 283, 83, - 47, 254, 616, 617, 0, 616, 617, 0, 0, 40, - 203, 39, 204, 70, 0, 37, 201, 38, 202, 68, - 408, 409, 0, 0, 0, 0, 524, 333, 0, 0, - 452, 354, 0, 12, 454, 0, 316, 0, 317, 0, - 0, 330, 444, 0, 0, 0, 0, 0, 0, 280, - 643, 256, 263, 400, 0, 0, 0, 0, 0, 360, - 528, 42, 245, 553, 553, 553, 553, 44, 247, 0, - 0, 0, 538, 0, 368, 369, 372, 380, 583, 0, - 383, 0, 385, 405, 284, 418, 243, 242, 36, 200, - 422, 420, 0, 0, 0, 451, 0, 104, 111, 0, - 453, 0, 320, 323, 0, 620, 443, 0, 0, 643, - 432, 434, 424, 425, 423, 398, 631, 396, 399, 403, - 402, 366, 363, 0, 358, 557, 0, 554, 559, 562, - 393, 391, 303, 0, 541, 643, 0, 371, 378, 372, - 372, 372, 585, 372, 372, 64, 336, 110, 0, 643, - 0, 643, 643, 0, 0, 0, 0, 426, 0, 0, - 395, 0, 361, 0, 553, 302, 367, 0, 375, 0, - 377, 0, 384, 0, 381, 386, 107, 109, 0, 616, - 617, 446, 352, 331, 643, 643, 0, 326, 397, 359, - 555, 372, 372, 372, 372, 105, 0, 0, 0, 0, - 0, 376, 0, 373, 379, 382, 327, 328, 0, 0, - 643, 372, 0, 0, 427, 374, 643, 643, 428, 429 + 497, 0, 0, 0, 457, 0, 0, 0, 0, 0, + 0, 430, 431, 433, 445, 435, 0, 0, 324, 0, + 0, 282, 268, 641, 655, 11, 298, 251, 97, 0, + 394, 0, 0, 315, 481, 365, 362, 590, 0, 641, + 0, 0, 560, 544, 0, 568, 0, 570, 0, 576, + 0, 573, 578, 0, 0, 387, 643, 643, 551, 552, + 655, 655, 372, 0, 596, 372, 372, 370, 0, 281, + 283, 83, 47, 254, 628, 629, 0, 628, 629, 0, + 0, 40, 203, 39, 204, 70, 0, 37, 201, 38, + 202, 68, 408, 409, 0, 0, 0, 0, 536, 333, + 0, 0, 464, 354, 0, 12, 466, 0, 316, 0, + 317, 0, 0, 330, 444, 0, 0, 0, 447, 0, + 453, 0, 448, 451, 0, 0, 0, 0, 0, 0, + 280, 655, 256, 263, 400, 0, 0, 0, 0, 0, + 360, 540, 42, 245, 565, 565, 565, 565, 44, 247, + 0, 0, 0, 550, 0, 368, 369, 372, 380, 595, + 0, 383, 0, 385, 405, 284, 418, 243, 242, 36, + 200, 422, 420, 0, 0, 0, 463, 0, 104, 111, + 0, 465, 0, 320, 323, 0, 0, 0, 0, 446, + 0, 0, 632, 443, 0, 0, 655, 432, 434, 424, + 425, 423, 398, 643, 396, 399, 403, 402, 366, 363, + 0, 358, 569, 0, 566, 571, 574, 393, 391, 303, + 0, 553, 655, 0, 371, 378, 372, 372, 372, 597, + 372, 372, 64, 336, 110, 0, 655, 0, 655, 655, + 0, 0, 456, 454, 449, 452, 0, 0, 0, 426, + 0, 0, 395, 0, 361, 0, 565, 302, 367, 0, + 375, 0, 377, 0, 384, 0, 381, 386, 107, 109, + 0, 628, 629, 458, 352, 331, 455, 0, 0, 655, + 655, 0, 326, 397, 359, 567, 372, 372, 372, 372, + 105, 450, 0, 0, 0, 0, 0, 376, 0, 373, + 379, 382, 327, 328, 0, 0, 655, 372, 0, 0, + 427, 374, 655, 655, 428, 429 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -870, -870, -870, 493, -870, 47, -870, -310, 398, -870, - -870, 66, -49, -326, -5, 1168, -870, 1495, 37, -31, - -870, -870, -514, 9, 999, -138, 7, -69, -303, -481, - 32, 2469, -89, 1013, 17, -17, -870, -870, 57, -870, - 3346, -870, 581, 228, -106, -376, 79, -870, 5, -428, - -230, 53, 77, -342, 10, -870, -870, -870, -870, -870, - -870, -870, -870, -870, -870, -870, -870, -870, -870, -870, - -870, 176, -206, -473, -46, -649, -870, -870, -870, 236, - -749, -870, -569, -870, -870, -266, -870, -42, -870, -870, - -870, 220, -870, -870, -870, -86, -870, -470, -870, -504, - -29, -870, -870, 84, -870, -23, -870, -870, -870, -870, - -870, 140, 60, -204, -870, -870, -870, -870, -870, -288, - -870, 813, -870, -870, -679, 14, -870, -870, -671, 2203, - 2661, 1044, 1876, -870, -870, 23, 535, 39, 362, 466, - 72, -870, -870, -870, -151, -43, -355, -238, -869, -715, - -478, -870, 283, -753, -557, -864, 81, -505, -870, -526, - -870, 311, -372, -870, -870, -870, 2, -449, 796, -399, - -870, -870, -81, -870, 35, -13, 418, -205, 580, -284, - -6, -1 + -948, -948, -948, 496, -948, 15, -948, -232, 171, -948, + -948, 31, -194, -313, 1, 1288, -948, 1559, 8, 195, + -948, -948, -650, -12, 1007, -179, -16, -76, -285, -496, + -53, 2555, -85, 1016, 21, -15, -948, -948, 17, -948, + 3591, -948, 411, 64, 87, -378, 139, -948, 7, -405, + -258, -83, 5, -296, 65, -948, -948, -948, -948, -948, + -948, -948, -948, -948, -948, -948, -948, -948, -948, -948, + -948, 86, -206, -455, -64, -636, -948, -948, -948, 238, + 410, -948, -605, -948, -948, -130, -948, -63, -948, -948, + -948, 224, -948, -948, -948, -77, -948, -477, -948, -739, + -667, -948, -948, 73, -948, -948, -908, 3, -948, -41, + -948, -948, -948, -948, -948, 279, 62, -193, -948, -948, + -948, -948, -948, -271, -948, 805, -948, -948, -236, 12, + -948, -948, -182, 2515, 2950, 1054, 1995, -948, -948, -31, + 691, -3, 273, 480, 66, -948, -948, -948, 229, 582, + -154, -283, -903, -717, -479, -948, 363, -705, -566, -947, + 61, -553, -948, -444, -948, 406, -342, -948, -948, -948, + 60, -404, 920, -393, -948, -948, -39, -948, -6, -25, + -103, -257, 877, -279, -28, -1 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -3384,19 +3407,19 @@ static const yytype_int16 yydefgoto[] = 82, 216, 123, 124, 243, 244, 245, 714, 654, 207, 84, 305, 620, 655, 278, 510, 511, 279, 280, 269, 503, 539, 659, 610, 85, 210, 303, 744, 304, 319, - 754, 223, 845, 224, 846, 713, 1024, 680, 678, 945, - 460, 290, 471, 705, 837, 1077, 230, 764, 977, 1057, - 997, 904, 792, 905, 793, 877, 1036, 1037, 552, 881, - 605, 397, 87, 88, 670, 447, 669, 494, 1034, 1078, - 859, 860, 861, 862, 863, 692, 831, 949, 953, 89, - 90, 91, 333, 334, 557, 92, 93, 94, 558, 253, - 254, 255, 489, 95, 96, 97, 327, 98, 99, 219, - 220, 102, 221, 456, 679, 372, 373, 374, 375, 376, - 907, 908, 377, 378, 379, 778, 595, 381, 382, 383, - 384, 580, 385, 386, 387, 912, 913, 388, 389, 390, - 391, 392, 588, 209, 461, 310, 513, 273, 129, 684, - 657, 464, 459, 438, 517, 878, 518, 537, 257, 258, - 259, 302 + 754, 223, 845, 224, 846, 713, 1035, 680, 678, 947, + 460, 290, 471, 705, 837, 1099, 230, 764, 988, 1074, + 1008, 906, 792, 907, 793, 879, 1053, 1054, 552, 883, + 605, 397, 87, 88, 670, 447, 669, 494, 1051, 1100, + 970, 861, 862, 863, 864, 971, 972, 973, 865, 692, + 831, 951, 955, 89, 90, 91, 333, 334, 557, 92, + 93, 94, 558, 253, 254, 255, 489, 95, 96, 97, + 327, 98, 99, 219, 220, 102, 221, 456, 679, 372, + 373, 374, 375, 376, 909, 910, 377, 378, 379, 778, + 595, 381, 382, 383, 384, 580, 385, 386, 387, 914, + 915, 388, 389, 390, 391, 392, 588, 209, 461, 310, + 513, 273, 129, 684, 657, 464, 459, 438, 517, 880, + 518, 537, 257, 258, 259, 302 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -3404,439 +3427,464 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 105, 520, 441, 212, 212, 435, 437, 592, 707, 212, - 286, 545, 402, 285, 125, 125, 479, 272, 272, 281, - 717, 272, 125, 205, 266, 266, 283, 246, 266, 451, - 380, 380, 656, 598, 345, 601, 665, 864, 911, 668, - 783, 246, 507, 834, 559, 865, 222, 838, 884, 256, - 107, 252, 308, 312, 844, 307, 311, 658, 301, 730, - 686, 621, 349, 206, 585, 125, 747, 70, 781, 70, - 206, 784, 393, 393, 326, 656, 727, 665, 380, 380, - 727, 553, 685, -107, 206, 604, 686, 315, -109, 780, - 730, 125, 270, 270, 268, 274, 270, 394, 275, 700, - 819, 820, 540, 348, 439, 1038, 542, -104, 710, 446, - 281, -111, 448, 395, 206, -110, 779, 671, 674, 336, - 338, 340, 342, -106, 879, 576, 686, 439, 106, 561, - 306, 798, 561, 582, 561, 1062, 561, 476, 561, -108, - 497, -105, 761, 967, 358, 359, 360, 361, 485, -514, - 687, 686, 470, -509, 436, 271, 271, -513, 528, 271, - 762, 395, -77, -515, 1000, 1002, 419, 343, 344, 432, - 380, 380, -510, 750, 368, -510, 968, 86, 790, 86, - 126, 126, -104, -91, 218, 218, 355, 356, 229, 577, - 218, 218, 218, 271, 271, 218, 428, 429, 430, 369, - -99, -112, -616, -96, -112, -101, -514, -617, 880, 525, - 1038, 434, 393, 393, -513, -516, 440, -518, 212, 212, - -515, 493, 276, 1062, -96, 791, 716, 86, -103, 781, - 442, 316, -102, 883, -517, 550, 468, 469, 284, 440, - -98, 218, 781, 911, 545, 544, 911, 1058, 277, 282, - 780, 247, 944, 395, 248, 249, -100, 316, -97, 326, - 480, 481, 611, 780, 1044, 914, 328, 329, 330, 505, - 758, 505, -516, -519, -518, 514, 380, 779, 502, 516, - 519, 272, 250, 507, 251, 266, 730, 490, 266, 864, - 779, -517, 531, 218, 288, 86, 933, 865, -504, 206, - 538, 538, 939, 301, 294, 538, 727, 727, -509, 545, - 1088, 1090, 1092, 753, 1094, 1095, -508, 462, 919, 331, - 332, 1032, 833, 504, 125, 508, 452, 453, 380, 1076, - -519, 444, 445, 530, 911, 783, 470, -104, 396, 277, - 282, 833, 526, 493, 398, 212, 212, 212, 212, 830, - 574, 575, 561, 512, 615, -504, 270, 445, 515, 536, - -111, 527, 1121, 1123, 1124, 1125, 984, 607, 683, 533, - 824, -110, 617, -508, 463, 961, 589, 399, 589, 449, - 813, -103, 1135, 450, 727, 556, 86, 569, 570, 571, - 572, 403, -102, 814, 615, 615, 568, 864, 335, 218, - 218, 329, 330, 890, 656, 865, 665, 301, 779, -106, - 443, 125, 617, 617, 455, 70, 271, 478, 779, 271, - 573, 276, -108, 838, 467, 893, 895, 897, 924, 899, - -98, 900, 514, 613, 526, 247, 775, 473, 248, 249, - 520, 477, 266, -100, -345, 482, -111, 562, 444, 297, - 329, 330, 218, 331, 332, 218, 688, 514, 486, -345, - 218, 218, 842, -110, 86, 693, 250, 266, 251, 488, - 1060, 86, 86, 1063, 514, 609, 746, -111, 544, 86, - 609, 929, 916, 514, 266, 836, 833, 935, 937, 724, - 316, -106, 663, 266, -345, 663, 545, 502, 870, 493, - 1033, -345, 331, 332, 738, 843, 728, 506, 380, 942, - 522, 505, 505, 868, 355, 356, 663, 297, 779, 529, - 957, 105, 520, 730, 419, 86, 218, 218, 218, 218, - 86, 218, 218, 663, -108, 246, 994, 995, 745, 934, - 875, 805, 663, 544, 727, -76, 733, 535, 514, -105, - 86, 337, 543, 329, 330, 125, 541, 125, 266, 815, - -302, 1112, 817, 547, 41, 734, 735, 42, -105, 975, - 719, 86, 566, 271, 218, -302, 86, 316, 206, 622, - 815, 761, 663, 358, 359, 360, 361, 813, 70, -97, - 704, 567, 247, 769, 520, 248, 249, 743, 271, 762, - 1116, 1117, 554, 779, 794, 331, 332, 663, 1008, 218, - -302, 58, 787, 779, -617, 271, -106, -302, 578, 622, - 622, 814, 125, 250, 271, 251, 1134, 806, 1045, 1047, - 1048, 1049, 1138, 1139, 218, 1013, 86, 218, 989, 990, - 909, 584, 870, -525, 271, 587, 934, 86, 271, 590, - -108, 218, 591, 966, 583, 86, 454, 454, 505, 594, - 218, 810, 796, 664, 281, 86, 597, 281, 794, 794, - 816, 686, 1043, 818, 212, -105, 271, 599, 247, 271, - -418, 248, 249, 1086, 431, 281, 523, 664, 600, 271, - 832, 835, 602, 1098, 297, 835, 603, 849, 86, 432, - 614, 638, 835, 676, 664, -613, 828, 86, 212, 250, - 690, 251, 812, 664, 691, 697, 823, 694, 532, 555, - 695, 316, 534, 316, 732, 218, 125, 505, 246, 1110, - 544, 940, 720, 86, 433, 737, 872, -91, 470, 538, - 740, 434, 755, 1019, -418, 768, 206, 771, 789, 1021, - 848, 491, 615, 664, 248, 249, 799, 800, 615, -418, - 218, 801, 964, 965, 615, 615, 927, 826, 609, -504, - 617, 206, 867, 811, 589, 825, 617, 931, 664, 218, - 833, 508, 617, 617, -504, 841, 247, 847, 316, 248, - 249, 850, -418, 866, -418, 472, 520, 104, 297, 104, - 873, -418, 472, 514, 104, 104, 876, -106, 882, 125, - 104, 104, 104, 266, 872, 104, 886, -613, 888, -504, - 794, 1074, 1075, -613, 247, 576, -504, 248, 249, 457, - 950, 212, 928, 954, 554, 892, 894, 247, 474, 495, - 248, 249, 1055, 901, 432, 909, 896, 104, 909, 898, - 909, 947, 948, 432, 952, 218, 86, 251, 956, 958, - 962, 104, 663, 765, 973, 978, 920, -512, 250, 696, - 251, 505, 993, 955, 271, 271, 483, 703, 996, 458, - 782, 1003, -512, 786, 809, 615, 434, 715, 475, 218, - 1005, 432, 858, 277, 1010, 434, 277, 999, 776, 1001, - 1120, 1022, 776, 617, 1011, 909, -106, 589, 589, -106, - -106, -108, 809, 104, 277, 104, 125, -512, -614, 1023, - 1030, 125, 1132, 1133, -512, 972, 484, 731, -620, 495, - 1039, 1040, 470, 434, 736, 1070, 909, -106, 909, -106, - 909, 1050, 909, 579, 271, 1046, 742, 1051, 524, 1052, - 1065, 1066, 271, 1067, -616, 757, 1118, 1119, 125, 212, - 212, 593, 563, 432, 329, 330, 1079, 1081, 86, 835, - 247, 909, 1083, 248, 249, 316, 86, 622, 125, 1087, - 218, 1089, -508, 622, 218, 1103, 1107, 1091, 1093, 622, - 622, -617, -620, 1115, 1126, 86, 86, -508, 475, 766, - 767, 1027, 1028, 251, 1122, 434, 104, -620, 1127, 86, - -108, 227, 218, -108, -108, 739, 331, 332, 130, 104, - 104, 86, 86, 1080, 673, 675, 1102, 903, 835, 797, - -614, 247, -508, 664, 248, 249, -614, 1108, 941, -508, - -620, -108, -620, -108, 86, 772, -616, 1106, 1101, -620, - 208, 548, 1031, 774, 589, 86, 86, 0, 673, 675, - 706, 706, 250, 773, 251, 1054, 432, 492, 514, 0, - 693, 835, 104, -511, 910, 104, 0, 1059, 266, 0, - 104, 104, 992, 0, 104, 0, 125, 998, -511, 0, - 0, 104, 104, 0, 0, 366, 367, 368, 0, 104, - 0, 549, 915, 835, 835, 0, 827, 741, 434, 0, - 622, 495, 271, 212, 212, 0, 0, -292, 495, 0, - 86, 86, 369, -511, 1016, 0, 0, 663, 86, 835, - -511, 0, -292, 0, 0, 835, 835, 0, 0, 0, - 218, 218, 86, 0, 858, 104, 104, 104, 104, 104, - 104, 104, 104, 906, 0, 1128, 1129, 0, -616, 0, - 0, 357, 874, 358, 359, 360, 361, -292, 0, 73, - 104, 73, 121, 121, -292, 983, 0, 985, -303, 362, - 121, 986, 885, 0, 761, 0, 358, 359, 360, 361, - 0, 104, 0, -303, 104, 86, 104, 86, 0, 104, - 86, 0, 762, 0, 364, 803, 0, 0, 0, 271, - 365, 366, 367, 368, 0, 0, 0, 0, 943, 73, - 432, 0, -616, 121, 0, 0, 0, 364, -303, 104, - 0, 951, 0, 763, 0, -303, 0, -616, 369, 104, - 104, 370, 0, 959, 960, 218, 0, 0, 0, 121, - 86, 86, 858, 0, 104, 804, 104, 104, 822, 0, - 1041, 1042, 434, 0, 0, 0, 970, 104, 0, -617, - -616, 104, -616, 0, 0, 104, -616, 0, 976, -616, - 104, 0, 1061, 0, 1064, 104, -513, 73, 357, 971, - 358, 359, 360, 361, 218, 218, 86, 0, 664, 472, - 0, -513, -515, 0, 776, 980, 362, 915, 86, 86, - 915, 0, 915, 0, 0, 0, 0, -515, 104, 0, - 339, 329, 330, 0, 0, 0, 1082, 104, 0, 1084, - 0, 364, 0, -617, -516, 0, -513, 365, 366, 367, - 368, 0, 1012, -513, 0, 104, 0, 0, -617, -516, - 1020, 0, -515, 104, 0, 906, 0, 891, 906, -515, - 0, 906, 0, 906, 1029, 369, 1109, 915, 370, 0, - 1111, 0, 1113, 331, 332, 0, 1114, 0, 73, 1056, - 104, -617, 0, -617, -516, 0, 0, -617, 930, 932, - -617, -516, 0, 0, 936, 938, 0, 0, 915, 104, - 915, 0, 915, 946, 915, 1131, 419, 0, 0, 357, - 0, 358, 359, 360, 361, 0, 0, 1071, 906, 1072, - 930, 932, 1073, 936, 938, 0, 0, 362, 706, 0, - 0, 963, 0, 915, 426, 427, 428, 429, 430, 472, - -462, 363, 0, -462, 0, 0, 432, 0, 0, 906, - 0, 906, 364, 906, 0, 906, 73, 0, 365, 366, - 367, 368, -299, 73, 73, -299, -299, 0, 0, 0, - -462, 73, 1104, 1105, 0, 104, 104, 0, 0, -643, - 0, 458, 121, 0, 906, -462, 369, -462, 434, 370, - 0, 0, -299, -299, 0, -299, 74, -456, 74, 122, - 122, 785, 371, 358, 359, 360, 361, 122, -455, 104, - 1053, 0, -456, 0, 0, 1009, 0, 73, 1130, 362, - -462, 0, 73, -455, 1068, 432, 0, -462, 0, 472, - 1136, 1137, 341, 329, 330, 472, 0, 0, 1009, 432, - 0, 0, 73, 0, 364, 0, 74, -456, 0, 0, - 122, 366, 367, 368, -456, 0, 0, 0, -455, 0, - 458, 0, 0, 73, 0, -455, 0, 434, 73, 121, - 0, 73, 0, 0, 1069, 0, 122, 0, 369, 0, - 0, 434, 416, 417, 0, 331, 332, 0, 104, 0, - 555, 329, 330, 0, 0, 419, 104, 104, 0, 0, - 104, 0, 0, 104, 104, 0, 0, 472, 472, 104, - 104, 73, 73, 0, 74, 104, 104, 357, 0, 358, - 359, 360, 361, 426, 427, 428, 429, 430, 73, 104, - 247, 0, 104, 248, 249, 362, 0, 0, 0, 73, - 0, 104, 104, 331, 332, 0, 0, 73, 0, 363, - 560, 329, 330, 564, 329, 330, 0, 73, 0, 0, - 364, 250, 0, 251, 104, 0, 365, 366, 367, 368, - 565, 329, 330, 0, 0, 104, 104, 357, 0, 358, - 359, 360, 361, 756, 329, 330, 472, 0, 0, 0, - 73, 0, 0, 0, 369, 362, 0, 370, 0, 73, - 0, 0, 0, 331, 332, 74, 331, 332, 472, 472, - 371, 0, 0, 121, 0, 121, 0, 0, 247, 0, - 364, 248, 249, 331, 332, 73, 365, 366, 367, 368, - 104, 0, 0, 416, 417, 0, 331, 332, 0, 0, - 104, 104, 0, 0, 0, 502, 419, 0, 104, 250, - 0, 251, 0, 0, 369, 0, 0, 370, 0, 0, - 104, 104, 104, 761, 0, 358, 359, 360, 361, 0, - 551, 423, 424, 425, 426, 427, 428, 429, 430, 0, - 121, 762, 357, 74, 358, 359, 360, 361, 0, 0, - 74, 74, 0, 0, 0, 416, 417, 0, 74, 0, - 362, 350, 351, 352, 353, 354, 364, 0, 419, 122, - 247, 0, 979, 248, 249, 104, 581, 104, 0, 0, - 104, 0, 0, 0, 357, 364, 358, 359, 360, 361, - 0, 365, 366, 367, 368, 425, 426, 427, 428, 429, - 430, 974, 362, 251, 74, 0, 0, 0, 73, 74, - 761, 0, 358, 359, 360, 361, 0, 0, 777, 369, - 0, 0, 370, 0, 0, 104, 0, 364, 762, 74, - 104, 104, 0, 365, 366, 367, 368, 103, 0, 103, - 128, 128, 0, 0, 121, 0, 0, 0, 232, 0, - 74, 0, 0, 364, 0, 74, 122, 0, 74, 0, - 0, 369, 0, 1035, 370, 358, 359, 360, 361, 0, - 0, 0, 0, 0, 104, 104, 104, 0, 0, 0, - 0, 762, 0, 0, 0, 0, 0, 103, 104, 104, - 0, 318, 0, 0, 0, 0, 0, 0, 74, 74, + 105, 285, 315, 266, 266, 402, 520, 266, 256, 212, + 212, 441, 286, 717, 507, 212, 479, 222, 107, 281, + 270, 270, 252, 206, 270, 246, 707, 205, 283, 545, + 206, 783, 70, 451, 70, 301, 553, 592, 656, 246, + 349, 780, 665, 394, 206, 668, 886, 435, 437, 860, + 540, 747, 308, 312, 542, 658, 834, -104, 306, 288, + 838, 559, 348, 1079, 819, 820, 686, 844, 439, 125, + 125, 395, 393, 393, 206, 272, 272, 125, 326, 272, + 685, 656, 1055, 665, 277, 282, 913, 86, 582, 86, + 126, 126, 686, -111, 218, 218, 439, 700, 229, 727, + 218, 218, 218, 727, 730, 218, 710, 621, 704, -110, + 281, 446, 790, 307, 311, 779, 798, 528, 448, 395, + 125, 336, 338, 340, 342, -107, 106, -625, 576, 294, + 671, 674, 686, 1095, 881, 730, -106, 86, -526, -109, + 561, 316, 585, 561, -108, 561, 125, 561, -105, 561, + 781, 218, 978, 784, 268, 274, 368, 686, 275, 791, + 935, 247, 1079, 604, 248, 249, 941, 316, 445, 497, + 833, 750, 284, 436, -96, 277, 282, 1098, -525, 476, + 440, 369, 468, 469, 396, 979, 276, 504, 432, 508, + 485, -516, 577, 445, 251, -526, 247, 532, 1055, 248, + 249, 534, 780, 218, -522, 86, -516, 443, 440, 615, + -103, 395, 393, 393, 470, 780, 946, -527, 882, 1141, + 398, 611, 297, 536, 212, 212, -102, 250, 687, 251, + 434, 480, 481, -112, 598, -525, 601, 399, 544, -625, + -528, -516, -99, -530, -628, -625, 490, -529, -516, 615, + 615, 525, 833, -98, 493, 507, -101, -345, -629, 206, + 345, -100, 545, 326, 266, -97, -531, 266, 753, 505, + 531, 505, -345, 1061, -527, 514, 779, 550, 538, 538, + 301, 512, 403, 538, 270, 516, 519, 758, 276, 779, + 297, -522, 530, 431, 271, 271, 86, -528, 271, 455, + -530, 493, 913, 921, -529, 913, 716, -345, 432, 218, + 218, 781, 467, 247, -345, -77, 248, 249, -516, 41, + -112, 449, 42, -531, 781, 450, 527, 545, 783, 727, + 727, 730, 271, 271, 533, -418, -91, -520, -521, 272, + 502, 462, 473, 433, 250, 1049, 251, 916, 613, 486, + 434, 212, 212, 212, 212, 477, 574, 575, 569, 570, + 571, 572, 218, 561, 568, 218, 58, -104, -521, 442, + 218, 218, 683, 1093, 86, -516, 589, 457, 589, 125, + 70, 86, 86, 482, 301, 573, 478, 556, -96, 86, + 1142, 1143, 432, 963, -520, 830, 488, -104, 463, -418, + 316, 474, 493, 609, 913, 506, 731, 727, 609, 779, + 656, 502, 665, 736, -418, -111, 432, 1160, 515, 779, + 522, 266, 419, 1164, 1165, 742, 926, 458, 529, 734, + 735, 1131, 514, 892, 434, 86, 218, 218, 218, 218, + 86, 218, 218, -76, 526, 520, 266, -418, 824, -418, + 995, 475, 663, 838, 535, 663, -418, 514, 434, 523, + 86, 1093, 688, 266, 541, 693, 125, 297, 444, 746, + 872, 544, 266, -110, 514, -524, 663, 724, 766, 767, + 866, 86, 543, 514, 218, 419, 86, 316, 877, 622, + -524, 526, 547, 663, 931, 483, 566, -111, 719, 664, + 937, 939, 663, 567, 1050, 733, 738, 578, 797, 584, + 432, 505, 505, 870, 545, 428, 429, 430, -103, 218, + -110, 105, 444, 664, 524, -524, 796, 520, 779, 622, + 622, 587, -524, 246, 867, -537, 544, 266, 206, 432, + 664, -102, 663, 590, 218, 484, 86, 218, 514, 664, + 591, -111, 434, 70, 594, 271, 599, 86, 271, 813, + 918, 218, 743, 1077, 728, 86, 1080, 663, 1005, 1006, + 218, 297, 769, 842, 475, 86, 812, 843, 727, 730, + 597, 434, 959, 805, 600, 827, 603, 944, -106, 664, + -302, 787, 602, 607, 614, -626, 745, 337, 617, 329, + 330, 520, -106, 638, 794, -302, -108, 615, 86, -98, + 125, -105, 125, 615, 664, 806, 872, 86, 676, 615, + 615, 690, 866, 1019, 779, 691, 895, 897, 899, 694, + 901, 316, 902, 316, 779, 218, 869, 813, 617, 617, + -302, 876, 696, 86, -629, 508, 695, -302, 697, 986, + 703, 331, 332, 555, 977, 380, 380, 814, 505, -520, + 715, 887, 732, 810, 281, 1137, -106, 281, 794, 794, + 218, 936, 816, 720, -520, 818, 867, 125, 343, 344, + 212, 563, 554, 329, 330, 281, -108, 823, 737, 218, + 832, 835, 355, 356, 686, 835, 609, 740, 316, 849, + -105, -91, 835, 380, 380, 755, 206, -626, 1120, -520, + 828, 771, 271, -626, 212, 1024, -520, 538, 452, 453, + 809, 848, 768, 544, 836, 833, 246, 505, 757, 277, + 1108, 206, 277, 789, 583, 331, 332, 271, 814, 936, + 942, 799, 615, 866, 800, 1030, 801, 470, 809, 811, + 277, 1032, 815, -632, 271, 817, 825, 761, 826, 358, + 359, 360, 361, 271, 548, 218, 86, -108, -105, -523, + 982, 975, 976, 815, 589, 762, 1000, 1001, 833, 432, + 841, 125, 847, 271, -523, 868, 991, 271, -100, -97, + 850, 983, 266, 875, 874, 380, 380, 867, 878, 218, + 884, 888, 859, 514, 866, 866, 761, 890, 358, 359, + 360, 361, 454, 454, 549, 271, 775, -632, 271, -523, + 794, 434, 663, 520, 762, 576, -523, 894, 271, 896, + 952, 922, -632, 956, 898, 900, 903, 212, 1096, 1097, + 1062, 1064, 1065, 1066, 957, 949, 247, 950, 885, 248, + 249, 954, 964, 958, 673, 675, 960, 308, 867, 867, + 984, 989, 866, 306, 125, -632, 1004, -632, 1007, 664, + 1010, -628, 874, 505, -632, 1012, 1014, 250, 86, 251, + 1016, 1021, 1033, -292, 1022, 316, 86, 622, 673, 675, + 218, 866, 866, 622, 218, 1034, 929, 1060, -292, 622, + 622, 380, 1036, 1039, 491, 86, 86, 248, 249, 589, + 589, 1040, 1056, 1041, 554, 1047, 867, 1057, 307, 86, + 1067, 104, 218, 104, 470, 1146, 1063, 1068, 104, 104, + 525, 86, 86, -292, 104, 104, 104, 741, 247, 104, + -292, 248, 249, 765, 969, 867, 867, -106, 1158, 1159, + -303, 1069, 1135, 380, 247, 1082, 86, 248, 249, 1083, + 782, 1084, 930, 786, -628, -303, 1101, 86, 86, 1103, + -108, 104, 1125, 125, 803, 1105, 212, 212, 125, 1126, + 835, 1132, 1109, 1044, 1045, 104, 1111, 251, 1087, 432, + 1113, 945, 1115, 776, 1003, 1127, 617, 776, 1128, 1009, + -303, -629, 617, 933, 953, 1148, 1140, -303, 617, 617, + 470, 1152, 1153, 271, 271, 125, 961, 962, 739, 227, + 911, 130, 622, 247, 804, 1124, 248, 249, 1102, 905, + 772, 434, 86, 86, 1144, 1145, 1027, 104, 1133, 104, + 86, 981, 943, 1094, 125, 835, -106, 1123, 773, -106, + -106, 974, 1048, 987, 250, -628, 251, 355, 356, 492, + 208, 218, 218, 86, 908, 859, 432, 774, 1076, -108, + 1071, 589, -108, -108, 266, 0, 0, -106, 0, -106, + 366, 367, 368, 271, 0, 514, 0, 693, 835, 0, + 0, 271, 472, 1052, 0, 358, 359, 360, 361, 472, + -108, 458, -108, 0, 663, 125, 125, 369, 434, 247, + 0, 762, 248, 249, 0, 0, 86, 1023, 86, -628, + 0, 86, 0, 0, 0, 1031, 859, 859, 835, 835, + 104, 617, 0, 380, -628, 247, 495, 271, 248, 249, + 250, 1038, 251, 104, 104, 212, 212, 0, 1046, 419, + 1070, 664, 1154, 1155, 912, 835, 432, 0, 0, 0, + 1085, 835, 835, 125, 0, 432, 250, -628, 251, -628, + 0, 0, 218, -628, 0, 432, -628, 426, 427, 428, + 429, 430, 86, 86, 859, -629, 350, 351, 352, 353, + 354, 475, 125, 125, 0, 0, 104, 917, 434, 104, + 458, 1088, 0, 1089, 104, 104, 1090, 434, 104, 0, + 1086, 0, 0, 859, 859, 104, 104, 434, 932, 934, + 0, 0, 0, 104, 938, 940, 495, 0, 0, 0, + 218, 218, 86, 1072, 0, 0, 911, 0, 0, 911, + 579, 911, 0, 0, 86, 86, 0, 0, 0, -629, + 932, 934, 335, 938, 940, 329, 330, 994, 593, 996, + 0, 0, 271, 997, -629, 0, 0, 1129, 1130, 104, + 104, 104, 104, 104, 104, 104, 104, 908, 562, 0, + 908, 329, 330, 908, 0, 908, 0, 0, 0, 73, + 0, 73, 121, 121, 104, 0, 0, -629, 0, -629, + 121, 0, 911, -629, 0, 0, -629, 331, 332, 0, + 0, 0, 0, 0, 0, 104, 0, 1156, 104, 0, + 104, 0, 0, 104, 0, 1011, 1013, 0, 247, 1162, + 1163, 248, 249, 331, 332, 0, 0, 0, 911, 73, + 911, 0, 911, 121, 911, 0, 908, 1020, 328, 329, + 330, 1058, 1059, 104, 0, 502, 0, 706, 706, 250, + 0, 251, 0, 104, 104, 271, 339, 329, 330, 121, + 1020, 0, 0, 1078, 0, 1081, 0, 911, 104, 0, + 104, 104, 908, 0, 908, 0, 908, 0, 908, 0, + 0, 104, 341, 329, 330, 104, 0, 0, 0, 104, + 0, 331, 332, 0, 104, 0, 0, 73, 495, 104, + 776, 0, 0, 917, 0, 495, 917, 1075, 917, 331, + 332, 908, 0, 1104, 0, -299, 1106, 0, -299, -299, + 0, 0, 357, 0, 358, 359, 360, 361, 0, 0, + 247, 0, 104, 248, 249, 331, 332, 555, 329, 330, + 362, 104, 560, 329, 330, -299, -299, 0, -299, 0, + 564, 329, 330, 0, 363, 0, 0, 0, 1134, 104, + 0, 250, 1136, 251, 1138, 364, 0, 104, 1139, 917, + 0, 365, 366, 367, 368, 0, 1110, 1112, 1114, 0, + 1116, 1117, 357, 0, 358, 359, 360, 361, 73, 0, + 331, 332, -655, 0, 104, 331, 332, 0, 0, 369, + 362, 1157, 370, 331, 332, 917, 0, 917, 0, 917, + 0, 917, 0, 104, 363, 371, 0, 785, 0, 358, + 359, 360, 361, 0, 0, 364, 565, 329, 330, 0, + 0, 365, 366, 367, 368, 362, 1147, 1149, 1150, 1151, + 0, 0, 0, 0, 917, 822, 0, 0, 0, 0, + 74, 0, 74, 122, 122, 0, 0, 1161, 0, 369, + 364, 122, 370, 0, 0, 0, 73, 366, 367, 368, + 0, 0, 0, 73, 73, 371, 0, 802, 0, 331, + 332, 73, 756, 329, 330, 0, 472, 0, 0, 104, + 104, 0, 121, 247, 369, 0, 248, 249, 0, 0, + 74, 0, 0, 0, 122, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 0, 0, 0, + 0, 416, 417, 104, 985, 0, 251, 73, 0, 0, + 122, 0, 73, 0, 419, 331, 332, 0, 0, 0, + 0, 0, 0, 0, 893, 0, 0, 0, 0, 0, + 0, 0, 73, 0, 0, 420, 0, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 0, 74, 0, + 0, 0, 0, 73, 0, -277, 0, 0, 73, 121, + 0, 73, 0, 357, 0, 358, 359, 360, 361, 0, + 948, 0, 0, 0, 761, 0, 358, 359, 360, 361, + 0, 362, 104, 0, 0, 0, 0, 0, 0, 0, + 104, 104, 762, 0, 104, 706, 0, 104, 104, 0, + 0, 73, 73, 104, 104, 0, 364, 472, 0, 104, + 104, 0, 365, 366, 367, 368, 0, 364, 73, 0, + 0, 0, 0, 104, 0, 0, 104, 0, 0, 73, + 0, 0, 416, 417, 0, 104, 104, 73, 0, 74, + 369, -655, 0, 370, 0, 419, 0, 73, 0, 0, + 0, 0, 0, 0, -655, -655, -655, -655, -655, -655, + 104, -655, 0, 0, 0, 0, -655, -655, -655, 0, + 0, 104, 104, 426, 427, 428, 429, 430, -655, -655, + 73, -655, -655, -655, -655, -655, 0, 0, 0, 73, + 761, 0, 358, 359, 360, 361, 0, 0, 472, 0, + 0, 0, 0, 121, 472, 121, 0, 0, 762, 761, + 0, 358, 359, 360, 361, 73, 0, 74, 0, 0, + 0, 0, 0, 0, 74, 74, 104, 762, 0, 0, + 0, -655, 74, 364, 0, 0, 104, 104, 0, 763, + 0, 0, 0, 122, 104, 0, -655, 0, 0, 0, + 0, 0, 364, 0, 0, 0, -655, 0, 990, -655, + -655, 0, 0, 0, 0, 104, 104, 104, 0, 0, + 121, 0, 0, 0, 0, 0, 0, 0, 74, -655, + -655, 0, 0, 74, 0, 276, -655, -655, -655, -655, + 0, 472, 472, 0, 0, 0, 0, 0, 0, 0, + 0, 416, 417, 74, 0, 357, 0, 358, 359, 360, + 361, 0, 0, 0, 419, 0, 0, 0, 416, 417, + 104, 0, 104, 362, 74, 104, 0, 0, 0, 74, + 122, 419, 74, 0, 0, 0, 0, 0, 73, 423, + 424, 425, 426, 427, 428, 429, 430, 0, 364, 0, + 0, 0, 0, 0, 365, 366, 367, 368, 425, 426, + 427, 428, 429, 430, 0, 0, 103, 0, 103, 128, + 128, 0, 74, 74, 121, 0, 104, 232, 472, 0, + 0, 0, 369, 0, 0, 370, 104, 104, 0, 74, + 0, 0, 0, 0, 0, 0, 0, 0, 551, 0, + 74, 472, 472, 0, 0, 0, 0, 0, 74, 0, + 0, 0, 0, 0, 0, 0, 103, 0, 74, 0, + 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 104, 104, 104, 0, 357, 0, + 358, 359, 360, 361, 0, 0, 318, 0, 104, 104, + 73, 74, 0, 0, 0, 0, 362, 121, 73, 73, + 74, 0, 0, 0, 0, 73, 0, 0, 0, 0, + 0, 73, 73, 0, 122, 0, 122, 73, 73, 0, + 0, 364, 0, 0, 103, 0, 74, 365, 366, 367, + 368, 73, 0, 357, 0, 358, 359, 360, 361, 0, + 0, 0, 0, 73, 73, 0, 0, 0, 0, 0, + 0, 362, 0, 0, 0, 369, 0, 0, 370, 0, + 0, 0, 0, 0, 0, 0, 0, 581, 73, 1073, + 0, 0, 0, 0, 0, 0, 364, 0, 0, 73, + 73, 122, 365, 366, 367, 368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 74, 0, 318, 0, 0, - 73, 0, 0, 0, 0, 0, 74, 121, 73, 73, - 0, 0, 0, 0, 74, 73, 0, 0, 0, 0, - 0, 73, 73, 0, 74, 0, 0, 73, 73, 0, - 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, - 0, 73, 0, 0, 0, 0, 0, 357, 0, 358, - 359, 360, 361, 73, 73, 0, 0, 74, 0, 0, - 0, 0, 0, 0, 0, 362, 74, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, - 122, 887, 122, 0, 0, 0, 0, 73, 73, 0, - 364, 0, 74, 0, 0, -643, 365, 366, 367, 368, - 0, 0, 0, 0, 0, 0, 0, 0, -643, -643, - -643, -643, -643, -643, 121, -643, 0, 0, 0, 121, - -643, -643, -643, 0, 369, 0, 103, 370, 0, 0, - 0, 0, -643, -643, 0, -643, -643, -643, -643, -643, - 0, 0, 73, 0, 0, 0, 0, 122, 0, 0, - 0, 0, 73, 73, 0, 0, 121, 0, 0, 0, - 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 73, 0, 121, 0, 0, 0, - 0, 0, 0, 0, 0, -643, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, + 369, 121, 0, 370, 0, 103, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 802, + 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 73, 73, 0, 0, 121, 74, + 0, 0, 73, 0, 0, 0, 0, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, + 0, 0, 0, 416, 417, 73, 0, 121, 0, 0, + 0, 0, 0, 0, 0, 122, 419, 0, 0, 0, + 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, + 103, 103, 0, 0, 0, 0, 0, 420, 103, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 318, + 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, + 73, 0, 0, 73, 0, 0, 0, 0, 121, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -643, 0, 0, 0, 103, 0, 0, 0, 0, 0, - -643, 103, 103, -643, -643, 74, 0, 0, 0, 103, - 0, 0, 0, 0, 0, 0, 0, 73, 0, 73, - 318, 0, 73, -643, -643, 0, 0, 0, 0, 276, - -643, -643, -643, -643, 100, 0, 100, 127, 127, 127, - 0, 122, 0, 0, 0, 231, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, - 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 73, 73, 121, 0, 0, 0, 0, 0, - 103, 0, 0, 0, 100, 0, 0, 0, 317, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 103, 0, 0, 0, 0, 103, 318, 0, 623, - 0, 0, 0, 0, 317, 0, 0, 74, 73, 0, - 0, 0, 0, 0, 122, 74, 74, 0, 0, 0, - 73, 73, 74, 0, 0, 0, 0, 0, 74, 74, - 0, 0, 0, 0, 74, 74, 0, 0, 0, 623, - 623, 0, 100, 0, 0, 0, 0, 0, 74, 404, - 405, 406, 407, 408, 409, 410, 103, 412, 413, 0, - 74, 74, 0, 0, 0, 416, 417, 103, 0, 0, - 0, 0, 0, 0, 0, 103, 0, 0, 419, 0, - 0, 0, 0, 74, 0, 103, 0, 0, 0, 0, - 0, 0, 0, 0, 74, 74, 0, 0, 0, 0, - 0, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 0, 0, 0, 0, 0, 0, 0, 103, 0, - 0, 122, 0, 0, 0, 0, 122, 103, 0, 0, - 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, - 0, 318, 0, 318, 0, 0, 0, 0, 0, 74, - 0, 0, 0, 103, 0, 0, 0, 0, 0, 74, - 74, 0, 0, 122, 0, 0, 0, 74, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 74, 0, 122, 0, 0, 0, 0, 0, 0, - 83, 0, 83, 0, 0, 0, 0, 0, 0, 0, - 0, 228, 0, 0, 0, 0, 0, 0, 318, 0, - 0, 100, 0, 0, 0, 0, 0, 0, 100, 100, - 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, - 0, 0, 0, 0, 74, 0, 74, 317, 0, 74, - 83, 0, 0, 0, 0, 0, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 0, 0, - 0, 0, 416, 417, 0, 0, 0, 0, 0, 0, - 0, 0, 100, 0, 0, 419, 103, 100, 0, 0, + 0, 0, 0, 0, 103, 0, 0, 0, 0, 103, + 0, 74, 0, 0, 0, 0, 0, 0, 122, 74, + 74, 0, 0, 0, 0, 0, 74, 0, 0, 103, + 0, 0, 74, 74, 0, 0, 0, 0, 74, 74, + 0, 0, 0, 0, 73, 73, 121, 0, 0, 0, + 103, 0, 74, 0, 0, 103, 318, 0, 623, 0, + 0, 0, 0, 0, 74, 74, 0, 0, 357, 0, + 358, 359, 360, 361, 0, 121, 121, 0, 0, 357, + 0, 358, 359, 360, 361, 0, 362, 0, 0, 74, + 0, 0, 0, 0, 73, 0, 0, 362, 623, 623, + 74, 74, 777, 0, 0, 0, 73, 73, 0, 0, + 0, 364, 0, 889, 0, 103, 0, 365, 366, 367, + 368, 0, 364, 0, 0, 0, 103, 122, 365, 366, + 367, 368, 122, 0, 103, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 103, 369, 0, 0, 370, 0, + 0, 0, 0, 0, 0, 74, 369, 0, 0, 370, + 0, 0, 0, 0, 0, 74, 74, 0, 0, 122, + 0, 0, 0, 74, 0, 0, 100, 103, 100, 127, + 127, 127, 0, 0, 0, 0, 103, 231, 0, 0, + 0, 0, 0, 0, 0, 0, 74, 0, 122, 0, + 318, 0, 318, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 103, 0, 0, 0, 83, 0, 83, 0, + 0, 0, 0, 0, 0, 0, 100, 228, 0, 0, + 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, - 74, 122, 0, 0, 0, 0, 420, 100, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 83, 0, - 0, 0, 128, 0, 0, 0, -277, 0, 100, 0, - 0, 0, 0, 100, 317, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 74, 74, 0, + 0, 74, 0, 0, 74, 0, 317, 0, 0, 122, + 122, 0, 0, 0, 0, 0, 83, 318, 0, 0, + 0, 0, 0, 0, 0, 0, 651, 652, 0, 0, + 653, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 100, 174, 175, 176, 177, 178, + 179, 180, 181, 0, 0, 182, 183, 0, 0, 0, + 0, 184, 185, 186, 187, 74, 74, 122, 0, 0, + 0, 0, 0, 0, 0, 188, 189, 190, 0, 0, + 0, 0, 0, 0, 83, 103, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 122, 122, 0, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 0, + 201, 202, 0, 0, 0, 74, 0, 0, 203, 276, + 0, 128, 0, 0, 0, 0, 0, 74, 74, -656, + -656, -656, -656, 408, 409, 100, 0, -656, -656, 0, + 0, 0, 0, 0, 0, 416, 417, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, + 0, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 0, 0, 0, 0, 0, 0, 103, 0, 0, + 0, 0, 0, 0, 318, 103, 623, 0, 0, 0, + 0, 0, 623, 100, 0, 0, 0, 0, 623, 623, + 100, 100, 0, 0, 103, 103, 0, 0, 100, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 103, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 103, 103, 0, 83, 0, 0, 0, 0, 0, 0, + 83, 83, 0, 0, 0, 0, 0, 0, 83, 0, + 0, 0, 0, 0, 100, 103, 0, 0, 0, 100, + 0, 0, 0, 0, 0, 0, 103, 103, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 101, 100, 101, 0, 0, 0, 103, 0, - 0, 0, 0, 0, 100, 318, 103, 623, 0, 83, - 0, 0, 100, 623, 0, 0, 0, 0, 0, 623, - 623, 0, 100, 0, 0, 103, 103, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, - 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, - 0, 103, 103, 0, 0, 100, 0, 0, 0, 0, - 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 103, 0, 0, 0, 317, 0, - 317, 0, 0, 0, 0, 103, 103, 83, 0, 0, - 100, 0, 0, 0, 83, 83, 0, 0, 802, 0, - 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, - 101, 0, 128, 0, 0, 0, 0, 128, 0, 0, - 0, 0, 0, 0, 0, 0, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 0, 0, - 623, 0, 416, 417, 0, 317, 0, 0, 83, 0, - 103, 103, 0, 83, 1018, 419, 0, 0, 103, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 103, 83, 128, 0, 420, 0, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 0, 0, - 0, 0, 0, 0, 83, 0, -277, 0, 0, 83, - 0, 101, 618, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 103, 0, 103, 0, 0, - 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 618, 618, 0, 0, 0, 0, 0, 127, + 0, 0, 0, 128, 83, 0, 0, 0, 128, 83, + 100, 0, 0, 0, 0, 100, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, + 0, 623, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 103, 103, 0, 0, 1029, 0, 0, 0, 103, + 83, 101, 0, 101, 0, 83, 0, 0, 618, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 83, 0, 0, 0, 0, 0, 0, 0, 83, 101, - 103, 103, 128, 0, 0, 0, 101, 101, 83, 0, - 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 83, 0, 0, 0, 100, 103, 0, 0, 0, - 83, 0, 317, 100, 0, 0, 0, 0, 103, 103, - 101, 0, 0, 0, 0, 101, 0, 0, 0, 0, - 0, 0, 100, 100, 0, 0, 83, 0, 0, 0, - 0, 0, 0, 0, 0, 101, 100, -644, -644, -644, - -644, 408, 409, 0, 0, -644, -644, 0, 100, 100, - 0, 0, 0, 416, 417, 0, 101, 0, 0, 0, - 0, 101, 0, 0, 101, 0, 419, 0, 0, 0, - 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 100, 100, 0, 0, 0, 0, 0, 421, + 0, 0, 103, 0, 128, 100, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, + 0, 0, 0, 0, 100, 0, 0, 0, 618, 618, + 0, 101, 0, 0, 100, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 83, 0, 0, 0, 891, + 0, 0, 0, 0, 0, 103, 83, 103, 0, 0, + 103, 0, 0, 0, 83, 128, 128, 100, 0, 0, + 0, 0, 0, 0, 83, 0, 100, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, + 317, 0, 317, 416, 417, 0, 0, 0, 0, 101, + 0, 0, 100, 0, 0, 0, 419, 83, 0, 0, + 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, + 0, 103, 103, 128, 0, 0, 0, 420, 0, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 0, - 0, 0, 0, 0, 101, 101, 0, 0, 0, 127, - 0, 0, 0, 0, 127, 0, 0, 0, 0, 0, - 0, 101, 0, 0, 0, 0, 0, 0, 802, 0, - 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, - 101, 0, 0, 0, 0, 0, 0, 100, 100, 83, - 101, 1017, 0, 0, 0, 100, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 0, 100, - 0, 127, 416, 417, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 101, 0, 419, 0, 0, 0, 0, - 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 420, 0, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 101, 0, - 0, 0, 100, 0, 100, 0, 0, 100, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, -644, -644, - 0, 0, 0, 0, 416, 417, 0, 0, 0, 0, - 0, 83, 0, 0, 0, 0, 0, 419, 0, 83, - 618, 0, 0, 0, 0, 0, 618, 100, 100, 127, - 0, 0, 618, 618, 0, 0, 0, 0, 83, 83, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 83, 0, 0, 0, 0, - 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 100, 100, 83, 0, 0, - 0, 101, 0, 0, 889, 0, 0, 0, 83, 83, - 0, 0, 0, 0, 217, 217, 0, 0, 0, 0, - 217, 267, 267, 0, 0, 267, 0, 0, 0, 0, - 0, 0, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 0, 0, 0, 0, 416, 417, - 0, 0, 289, 291, 292, 293, 0, 0, 0, 267, - 309, 419, 0, 618, 0, 0, 0, 0, 0, 0, - 0, 346, 347, 83, 83, 0, 0, 1015, 0, 0, - 0, 83, 420, 0, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 0, 83, 0, 0, 0, 0, + 0, 0, 128, 128, 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, - 0, 101, 101, 217, 0, 0, 0, 0, 101, 0, - 0, 0, 0, 0, 101, 101, 0, 0, 0, 0, - 101, 101, 0, 0, 0, 0, 0, 0, 83, 0, - 83, 0, 0, 83, 101, 0, 0, 0, 651, 652, - 0, 0, 653, 0, 0, 0, 101, 101, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 174, 175, 176, - 177, 178, 179, 180, 181, 0, 0, 182, 183, 101, - 0, 0, 0, 184, 185, 186, 187, 0, 0, 0, - 101, 101, 0, 83, 83, 0, 0, 188, 189, 190, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 217, - 217, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 0, 201, 202, 0, 0, 0, 0, 0, 83, - 203, 276, 0, 0, 0, 101, 0, 0, 0, 0, - 0, 83, 83, 0, 0, 101, 101, 0, 498, 499, - 500, 346, 0, 101, 0, 0, 0, 0, 0, 0, - 0, 0, 267, 0, 0, 267, 0, 101, 0, 0, - 217, 217, 0, 0, 0, 0, 0, 0, 660, 661, - 0, 0, 662, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 174, 175, 176, - 177, 178, 179, 180, 181, 0, 0, 182, 183, 0, - 0, 0, 0, 184, 185, 186, 187, 0, 0, 0, - 101, 0, 101, 0, 0, 101, 0, 188, 189, 190, - 0, 0, 0, 0, 0, 0, 217, 217, 217, 217, - 0, 217, 217, 0, 0, 0, 0, 0, 0, 0, - 0, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 586, 201, 202, 0, 0, 0, 0, 0, 0, - 203, 276, 596, 0, 0, 101, 101, 0, 0, 0, - 0, 0, 0, 0, 608, 0, 0, 0, 0, 619, - 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, - 634, 635, 636, 637, 0, 639, 640, 641, 642, 643, - 644, 645, 646, 647, 648, 649, 650, 0, 0, 267, - 0, 101, 0, 0, 0, 0, 0, 0, 0, 672, - 672, 0, 0, 101, 101, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 267, 0, 0, 217, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 672, - 0, 267, 0, 672, 672, 0, 0, 0, 0, 0, - 267, 0, 0, 0, 0, 0, 0, 0, 0, 718, - 0, 0, 721, 722, 0, 0, -293, 723, 0, 0, - 726, 0, 729, 0, 309, 293, 0, 0, 0, -293, - -293, -293, -293, -293, -293, 0, -293, 0, 0, 0, - 0, -293, 672, -293, -293, -293, 0, 0, 0, 0, - 0, 0, 726, -293, -293, 309, -293, -293, -293, -293, - -293, 0, 0, 0, 0, 267, 0, 0, 0, 0, - 0, 0, 0, -293, 0, 0, 0, 0, 0, 0, - 0, 0, 759, 760, 0, 0, 0, 0, -293, -293, - -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, - 770, 0, 0, 0, -293, -293, -293, 0, 0, -293, - 0, 0, 0, 0, 0, -293, 0, -293, 0, 788, - 0, -293, 795, 0, 0, 0, 0, 0, 0, -293, - 0, -293, 0, 0, -293, -293, 0, 0, -293, -293, - -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, - 0, 0, 0, 0, 0, -293, -293, -293, -293, 0, - 0, -293, -293, -293, -293, 0, 0, 0, 0, 0, + 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 103, 103, 0, 0, 0, 0, 0, + 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 14, 0, 108, 109, - 17, 18, 0, 0, 0, 217, 0, 110, 111, 112, - 22, 23, 24, 25, 0, 0, 113, 829, 0, 0, - 770, 788, 0, 0, 0, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 0, 39, 40, 41, 0, 217, - 42, 0, 0, 43, 44, 0, 116, 0, 0, 0, - 0, 869, 0, 0, 0, 0, 0, 0, 0, 0, - 726, 309, 0, 0, 902, 0, 0, 0, 313, 0, + 17, 18, 0, 0, 0, 100, 0, 110, 111, 112, + 22, 23, 24, 25, 0, 0, 113, 0, 0, 0, + 0, 0, 0, 0, 0, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, + 42, 127, 0, 43, 44, 83, 116, 0, 101, 0, + 0, 0, 0, 0, 0, 101, 101, 0, 0, 0, + 0, 0, 0, 101, 0, 0, 0, 0, 313, 0, 0, 119, 52, 0, 53, 54, 0, 0, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, - 0, 63, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 0, 0, 0, 0, 416, 417, - 0, 120, 0, 0, 0, 0, 0, 0, 0, 314, - 0, 419, 918, 0, 0, 0, 0, 672, 921, 0, - 267, 0, 0, 672, 672, 0, 0, 0, 726, 672, - 672, 0, 420, 0, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 0, 0, 0, 0, 0, 0, - 0, 0, 217, 0, 0, 672, 672, 0, 672, 672, + 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, + 0, 120, 0, 0, 101, 0, 0, 100, 0, 314, + 0, 0, 0, 0, 317, 100, 0, 0, 0, 0, + 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 100, 100, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 101, 0, 83, 100, 0, + 101, 0, 0, 101, 0, 83, 618, 0, 0, 0, + 100, 100, 618, 0, 0, 0, 0, 0, 618, 618, + 0, 0, 0, 0, 83, 83, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 100, 0, 0, 83, 0, + 0, 0, 0, 101, 101, 0, 100, 100, 0, 0, + 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, + 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 101, 0, 127, 0, 83, 0, 0, 127, 101, + 0, 0, 0, 0, 0, 0, 83, 83, 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 969, 0, 0, 0, 293, 0, 0, - 681, 652, 0, 0, 682, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 981, 982, 0, 0, 0, 174, - 175, 176, 177, 178, 179, 180, 181, 987, 988, 182, - 183, 0, 0, 0, 0, 184, 185, 186, 187, 0, - 0, 0, 0, 1004, 0, 0, 0, 0, 0, 188, - 189, 190, 0, 1006, 1007, 0, 0, 0, 0, 0, - 672, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 672, 201, 202, 0, 0, 0, 0, - 217, 217, 203, 276, 0, 0, 0, 0, 309, 0, - 0, 0, -643, 3, 0, 4, 5, 6, 7, 8, + 0, 100, 100, 0, 0, 1028, 0, 0, 0, 100, + 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, + 0, 101, 904, 0, 0, 0, 0, 0, 0, 0, + 0, 618, 100, 0, 127, 0, 0, 0, 0, 0, + 0, 83, 83, 0, 0, 1026, 0, 101, 0, 83, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 0, 0, 0, 0, 416, 417, 0, 0, + 0, 0, 83, 0, 0, 0, 0, 0, 0, 419, + 0, 0, 0, 0, 0, 100, 0, 100, 0, 0, + 100, 0, 0, 0, 0, 127, 127, 0, 0, 0, + 420, 0, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 83, 0, 83, 0, 0, + 83, 0, 0, 0, 0, 0, 0, 0, 0, 217, + 217, 0, 0, 0, 0, 217, 267, 267, 0, 0, + 267, 100, 100, 127, 0, 0, 0, 0, 0, 0, + 0, 0, -439, 0, 0, 0, 0, 0, 0, 0, + 101, 0, 0, 0, 0, 0, 0, 289, 291, 292, + 293, 0, 127, 127, 267, 309, -439, -439, 0, 0, + 0, 83, 83, 0, 0, 0, 346, 347, 0, 0, + 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 100, 100, 0, 0, 0, -525, -525, + -525, -525, -525, -525, -525, -525, -525, -525, -525, -525, + 0, 0, 0, 0, -525, -525, -525, 0, 0, -439, + 0, 83, 0, 0, 0, 0, 0, -525, 217, 0, + 0, -525, 0, 83, 83, 0, 0, 0, 0, 0, + 0, -439, 0, 0, -439, -439, 0, 0, -525, 0, + -525, -525, -439, -525, -525, -525, -525, -525, -525, -525, + 0, 0, 101, 0, 0, 0, -525, -439, -439, 0, + 101, 101, -439, -525, -439, 0, 0, 101, 0, 0, + 0, 0, 0, 101, 101, 0, 0, 0, 0, 101, + 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 101, 404, 405, 406, 407, 408, 409, + 410, 0, 412, 413, 0, 101, 101, 0, 0, 0, + 416, 417, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 419, 217, 217, 0, 0, 0, 0, + 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 101, 101, 0, 0, 0, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 0, 0, 0, 0, + 0, 0, 0, 498, 499, 500, 346, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 267, 0, 0, + 267, 0, 0, 0, 0, 217, 217, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 101, 101, 0, 0, + 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 217, 217, 217, 217, 0, 217, 217, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 586, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 596, 0, 0, + 101, 0, 101, 0, 0, 101, 0, 0, 0, 608, + 0, 0, 0, 0, 619, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 0, + 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, + 649, 650, 0, 0, 267, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 672, 672, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 101, 101, 0, 267, + 0, 0, 217, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 672, 0, 267, 0, 672, 672, + 0, 0, 0, 0, 0, 267, 0, 0, 0, 0, + 0, 0, 0, 0, 718, 0, 0, 721, 722, 0, + 0, 0, 723, 0, 0, 726, 101, 729, 0, 309, + 293, 0, 0, 0, 0, 0, 0, 0, 101, 101, + 0, 0, 0, 0, 0, 0, 0, 672, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 726, 0, 0, + 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 267, 0, 0, 0, 0, 0, 0, 404, 405, 406, + 407, 408, 409, 0, 0, 412, 413, 759, 760, 0, + 0, 0, 0, 416, 417, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 770, 419, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 788, 0, 0, 795, 0, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -293, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -293, -293, -293, -293, -293, -293, 0, -293, 0, + 0, 0, 0, -293, 0, -293, -293, -293, 0, 0, + 0, 0, 0, 0, 0, -293, -293, 0, -293, -293, + -293, -293, -293, 0, 0, 0, 0, 0, 0, 0, + 217, 0, 0, 0, 0, -293, 0, 0, 0, 0, + 0, 0, 829, 0, 0, 770, 788, 0, 0, 0, + -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, + -293, -293, 0, 0, 217, 0, -293, -293, -293, 0, + 0, -293, 0, 0, 0, 0, 871, -293, 0, -293, + 0, 0, 0, -293, 0, 726, 309, 0, 0, 0, + 0, -293, 0, -293, 0, 0, -293, -293, 0, 0, + -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, + -293, -293, 0, 0, 0, 0, 0, -293, -293, -293, + -293, 0, 0, -293, -293, -293, -293, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 920, 0, 0, + 0, 0, 672, 923, 0, 267, 0, 0, 672, 672, + 0, 0, 0, 726, 672, 672, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 217, 0, 0, + 672, 672, 0, 672, 672, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 267, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 980, 0, 0, 0, 293, 0, 0, 660, 661, 0, + 0, 662, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 992, 993, 0, 0, 0, 174, 175, 176, 177, + 178, 179, 180, 181, 998, 999, 182, 183, 0, 0, + 0, 0, 184, 185, 186, 187, 0, 0, 0, 0, + 1015, 0, 0, 0, 0, 0, 188, 189, 190, 0, + 1017, 1018, 0, 0, 0, 0, 0, 672, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 672, 201, 202, 0, 0, 0, 0, 0, 498, 203, + 276, 0, 0, 0, 0, 0, 217, 217, 0, 0, + 0, 0, -655, 3, 309, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, 14, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, @@ -3845,14 +3893,14 @@ static const yytype_int16 yytable[] = 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, - 0, 0, 0, 50, 0, 267, 51, 52, 0, 53, - 54, 0, 55, 0, 0, 0, 56, 0, 57, 58, - 59, 0, 60, 61, 62, -417, 63, -643, 0, 0, - -643, -643, 0, 0, 0, 0, 0, 0, -417, -417, + 0, 0, 0, 50, 0, 0, 51, 52, 0, 53, + 54, 0, 55, 0, 0, 0, 56, 267, 57, 58, + 59, 0, 60, 61, 62, -417, 63, -655, 0, 0, + -655, -655, 0, 0, 0, 0, 0, 0, -417, -417, -417, -417, -417, -417, 0, -417, 64, 65, 66, 0, - -417, -417, -417, -417, 217, 217, 0, 0, -643, 0, - -643, 0, -417, -417, 0, -417, -417, -417, -417, -417, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -417, -417, -417, -417, 0, 0, 0, 0, -655, 0, + -655, 0, -417, -417, 0, -417, -417, -417, -417, -417, + 0, 0, 0, 0, 0, 217, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, 0, @@ -3861,76 +3909,76 @@ static const yytype_int16 yytable[] = -417, 0, 0, 0, 0, 0, 0, 0, 0, 0, -417, 0, 0, -417, -417, 0, 0, -417, 0, -417, -417, -417, -417, -417, -417, -417, -417, -417, -417, 0, - 0, -504, 0, -417, -417, -417, -417, -417, 0, 276, - -417, -417, -417, -417, -504, -504, -504, -504, -504, -504, - 0, -504, 0, 0, 0, 0, -504, 0, -504, -504, - 0, 0, 0, 0, 0, 0, 0, 0, -504, -504, - 0, -504, -504, -504, -504, -504, 0, 0, 0, 0, + 0, -516, 0, -417, -417, -417, -417, -417, 0, 276, + -417, -417, -417, -417, -516, -516, -516, -516, -516, -516, + 0, -516, 0, 0, 0, 0, -516, 0, -516, -516, + 0, 0, 0, 0, 0, 0, 0, 0, -516, -516, + 0, -516, -516, -516, -516, -516, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -504, -504, -504, -504, -504, -504, -504, - -504, -504, -504, -504, -504, 0, 0, 0, 0, -504, - -504, -504, 0, -504, -504, 0, 0, 0, 0, 0, - -504, 0, -504, 0, 0, 0, -504, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -504, 0, 0, -504, - -504, 0, -504, -504, 0, -504, -504, -504, -504, -504, - -504, -504, -504, -504, -504, 0, 0, -643, 0, 0, - -504, -504, -504, -504, 0, 0, -504, -504, -504, -504, - -643, -643, -643, -643, -643, -643, 0, -643, 0, 0, - 0, 0, -643, -643, -643, -643, 0, 0, 0, 0, - 0, 0, 0, 0, -643, -643, 0, -643, -643, -643, - -643, -643, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -516, -516, -516, -516, -516, -516, -516, + -516, -516, -516, -516, -516, 0, 0, 0, 0, -516, + -516, -516, 0, -516, -516, 0, 0, 0, 0, 0, + -516, 0, -516, 0, 0, 0, -516, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -516, 0, 0, -516, + -516, 0, -516, -516, 0, -516, -516, -516, -516, -516, + -516, -516, -516, -516, -516, 0, 0, -655, 0, 0, + -516, -516, -516, -516, 0, 0, -516, -516, -516, -516, + -655, -655, -655, -655, -655, -655, 0, -655, 0, 0, + 0, 0, -655, -655, -655, -655, 0, 0, 0, 0, + 0, 0, 0, 0, -655, -655, 0, -655, -655, -655, + -655, -655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -643, - -643, -643, -643, -643, -643, -643, -643, -643, -643, -643, - -643, 0, 0, 0, 0, -643, -643, -643, 0, 0, - -643, 0, 0, 0, 0, 0, -643, 0, -643, 0, - 0, 0, -643, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -643, 0, 0, -643, -643, 0, 0, -643, - 0, -643, -643, -643, -643, -643, -643, -643, -643, -643, - -643, 0, 0, -643, 0, -643, -643, -643, -643, -643, - 0, 276, -643, -643, -643, -643, -643, -643, -643, -643, - -643, -643, 0, -643, 0, 0, 0, 0, -643, 0, - -643, -643, 0, 0, 0, 0, 0, 0, 0, 0, - -643, -643, 0, -643, -643, -643, -643, -643, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -655, + -655, -655, -655, -655, -655, -655, -655, -655, -655, -655, + -655, 0, 0, 0, 0, -655, -655, -655, 0, 0, + -655, 0, 0, 0, 0, 0, -655, 0, -655, 0, + 0, 0, -655, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -655, 0, 0, -655, -655, 0, 0, -655, + 0, -655, -655, -655, -655, -655, -655, -655, -655, -655, + -655, 0, 0, -655, 0, -655, -655, -655, -655, -655, + 0, 276, -655, -655, -655, -655, -655, -655, -655, -655, + -655, -655, 0, -655, 0, 0, 0, 0, -655, 0, + -655, -655, 0, 0, 0, 0, 0, 0, 0, 0, + -655, -655, 0, -655, -655, -655, -655, -655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -643, -643, -643, -643, -643, - -643, -643, -643, -643, -643, -643, -643, 0, 0, 0, - 0, -643, -643, -643, 0, 0, -643, 0, 0, 0, - 0, 0, -643, 0, -643, 0, 0, 0, -643, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -643, 0, - 0, -643, -643, 0, 0, -643, 0, -643, -643, -643, - -643, -643, -643, -643, -643, -643, -643, 0, 0, -620, - 0, 0, -643, -643, -643, -643, 0, 276, -643, -643, - -643, -643, -620, -620, -620, 0, -620, -620, 0, -620, - 0, 0, 0, 0, -620, -620, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -620, -620, 0, -620, - -620, -620, -620, -620, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -655, -655, -655, -655, -655, + -655, -655, -655, -655, -655, -655, -655, 0, 0, 0, + 0, -655, -655, -655, 0, 0, -655, 0, 0, 0, + 0, 0, -655, 0, -655, 0, 0, 0, -655, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -655, 0, + 0, -655, -655, 0, 0, -655, 0, -655, -655, -655, + -655, -655, -655, -655, -655, -655, -655, 0, 0, -632, + 0, 0, -655, -655, -655, -655, 0, 276, -655, -655, + -655, -655, -632, -632, -632, 0, -632, -632, 0, -632, + 0, 0, 0, 0, -632, -632, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -632, -632, 0, -632, + -632, -632, -632, -632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -620, -620, -620, -620, -620, -620, -620, -620, -620, - -620, -620, -620, 0, 0, 0, 0, -620, -620, -620, - 0, 807, -620, 0, 0, 0, 0, 0, 0, 0, - -620, 0, 0, 0, -620, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -620, 0, 0, -620, -620, 0, - -107, -620, 0, -620, -620, -620, -620, -620, -620, -620, - -620, -620, -620, 0, 0, -620, 0, -620, -620, -620, - 0, -99, 0, 0, -620, -620, -620, -620, -620, -620, - -620, 0, -620, -620, 0, -620, 0, 0, 0, 0, - -620, -620, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -620, -620, 0, -620, -620, -620, -620, -620, + 0, -632, -632, -632, -632, -632, -632, -632, -632, -632, + -632, -632, -632, 0, 0, 0, 0, -632, -632, -632, + 0, 807, -632, 0, 0, 0, 0, 0, 0, 0, + -632, 0, 0, 0, -632, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -632, 0, 0, -632, -632, 0, + -107, -632, 0, -632, -632, -632, -632, -632, -632, -632, + -632, -632, -632, 0, 0, -632, 0, -632, -632, -632, + 0, -99, 0, 0, -632, -632, -632, -632, -632, -632, + -632, 0, -632, -632, 0, -632, 0, 0, 0, 0, + -632, -632, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -632, -632, 0, -632, -632, -632, -632, -632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -620, -620, -620, - -620, -620, -620, -620, -620, -620, -620, -620, -620, 0, - 0, 0, 0, -620, -620, -620, 0, 807, -620, 0, - 0, 0, 0, 0, 0, 0, -620, 0, 0, 0, - -620, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -620, 0, 0, -620, -620, 0, -107, -620, 0, -620, - -620, -620, -620, -620, -620, -620, -620, -620, -620, 0, - 0, -302, 0, -620, -620, -620, 0, -620, 0, 0, - -620, -620, -620, -620, -302, -302, -302, 0, -302, -302, + 0, 0, 0, 0, 0, 0, 0, -632, -632, -632, + -632, -632, -632, -632, -632, -632, -632, -632, -632, 0, + 0, 0, 0, -632, -632, -632, 0, 807, -632, 0, + 0, 0, 0, 0, 0, 0, -632, 0, 0, 0, + -632, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -632, 0, 0, -632, -632, 0, -107, -632, 0, -632, + -632, -632, -632, -632, -632, -632, -632, -632, -632, 0, + 0, -302, 0, -632, -632, -632, 0, -632, 0, 0, + -632, -632, -632, -632, -302, -302, -302, 0, -302, -302, 0, -302, 0, 0, 0, 0, -302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -302, -302, 0, -302, -302, -302, -302, -302, 0, 0, 0, 0, @@ -3958,8 +4006,8 @@ static const yytype_int16 yytable[] = 0, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 0, 0, 0, 0, 0, -302, -302, 0, -302, 0, 0, -302, -302, -302, -302, 295, 0, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, -643, -643, - -643, 0, 0, -643, 14, 0, 15, 16, 17, 18, + 6, 7, 8, 9, 10, 11, 12, 13, -655, -655, + -655, 0, 0, -655, 14, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, 0, 29, 30, 31, 32, 33, 34, 35, 36, @@ -3969,11 +4017,11 @@ static const yytype_int16 yytable[] = 49, 0, 0, 0, 0, 0, 50, 0, 0, 51, 52, 0, 53, 54, 0, 55, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, - -643, 0, 0, -643, -643, 0, 0, 0, 0, 0, + -655, 0, 0, -655, -655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -643, 295, -643, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 0, 0, -643, 0, -643, -643, + 0, -655, 295, -655, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 0, 0, -655, 0, -655, -655, 14, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, 0, 29, 30, @@ -3983,12 +4031,12 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 50, 0, 0, 51, 52, 0, 53, 54, 0, 55, 0, 0, 0, 56, 0, 57, 58, 59, - 0, 60, 61, 62, 0, 63, -643, 0, 0, -643, - -643, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 60, 61, 62, 0, 63, -655, 0, 0, -655, + -655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, 66, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -643, 295, -643, + 0, 0, 0, 0, 0, 0, 0, -655, 295, -655, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 0, 0, -643, 0, 0, -643, 14, -643, 15, 16, + 0, 0, -655, 0, 0, -655, 14, -655, 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, 0, 29, 30, 31, 32, 33, 34, @@ -3998,12 +4046,12 @@ static const yytype_int16 yytable[] = 0, 48, 49, 0, 0, 0, 0, 0, 50, 0, 0, 51, 52, 0, 53, 54, 0, 55, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, - 0, 63, -643, 0, 0, -643, -643, 0, 0, 0, + 0, 63, -655, 0, 0, -655, -655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, 66, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -643, 295, -643, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 0, 0, -643, 0, - 0, -643, 14, 0, 15, 16, 17, 18, -643, 0, + 0, 0, 0, -655, 295, -655, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 0, 0, -655, 0, + 0, -655, 14, 0, 15, 16, 17, 18, -655, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, 0, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, @@ -4012,12 +4060,12 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 50, 0, 0, 51, 52, 0, 53, 54, 0, 55, 0, 0, 0, 56, 0, 57, - 58, 59, 0, 60, 61, 62, 0, 63, -643, 0, - 0, -643, -643, 0, 0, 0, 0, 0, 0, 0, + 58, 59, 0, 60, 61, 62, 0, 63, -655, 0, + 0, -655, -655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, 66, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -643, - 295, -643, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 0, 0, -643, 0, 0, -643, 14, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -655, + 295, -655, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 0, 0, -655, 0, 0, -655, 14, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, 0, 29, 30, 31, 32, @@ -4027,10 +4075,10 @@ static const yytype_int16 yytable[] = 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 50, 0, 0, 51, 52, 0, 53, 54, 0, 55, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, - 61, 62, 0, 63, -643, 0, 0, -643, -643, 3, + 61, 62, 0, 63, -655, 0, 0, -655, -655, 3, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 64, 65, 66, 0, 14, 0, 15, - 16, 17, 18, 0, 0, -643, 0, -643, 19, 20, + 16, 17, 18, 0, 0, -655, 0, -655, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, @@ -4039,11 +4087,11 @@ static const yytype_int16 yytable[] = 0, 0, 48, 49, 0, 0, 0, 0, 0, 50, 0, 0, 51, 52, 0, 53, 54, 0, 55, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, - 62, 0, 63, -643, 0, 0, -643, -643, 0, 0, + 62, 0, 63, -655, 0, 0, -655, -655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 64, 65, 66, 0, 0, -643, 0, 0, - 0, 0, 0, 0, -643, 295, -643, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 0, -643, -643, + 0, 0, 64, 65, 66, 0, 0, -655, 0, 0, + 0, 0, 0, 0, -655, 295, -655, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 0, -655, -655, 0, 0, 0, 14, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, @@ -4053,11 +4101,11 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 50, 0, 0, 51, 52, 0, 53, 54, 0, 55, 0, 0, 0, 56, 0, - 57, 58, 59, 0, 60, 61, 62, 0, 63, -643, - 0, 0, -643, -643, 295, 0, 4, 5, 6, 7, + 57, 58, 59, 0, 60, 61, 62, 0, 63, -655, + 0, 0, -655, -655, 295, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 64, 65, 66, 0, 14, 0, 15, 16, 17, 18, 0, 0, - -643, 0, -643, 19, 20, 21, 22, 23, 24, 25, + -655, 0, -655, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, 0, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, @@ -4065,11 +4113,11 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 50, 0, 0, 296, 52, 0, 53, 54, 0, 55, 0, 0, 0, 56, 0, 57, - 58, 59, 0, 60, 61, 62, 0, 63, -643, 0, - 0, -643, -643, 295, 0, 4, 5, 6, 7, 8, + 58, 59, 0, 60, 61, 62, 0, 63, -655, 0, + 0, -655, -655, 295, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 64, 65, 66, - 0, 14, 0, 15, 16, 17, 18, 0, -643, -643, - 0, -643, 19, 20, 21, 22, 23, 24, 25, 0, + 0, 14, 0, 15, 16, 17, 18, 0, -655, -655, + 0, -655, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, 0, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, @@ -4077,11 +4125,11 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 50, 0, 0, 51, 52, 0, 53, 54, 0, 55, 0, 0, 0, 56, 0, 57, 58, - 59, 0, 60, 61, 62, 0, 63, -643, 0, 0, - -643, -643, 295, 0, 4, 5, 6, 7, 8, 9, + 59, 0, 60, 61, 62, 0, 63, -655, 0, 0, + -655, -655, 295, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 64, 65, 66, 0, - 14, 0, 15, 16, 17, 18, 0, -643, -643, 0, - -643, 19, 20, 21, 22, 23, 24, 25, 0, 0, + 14, 0, 15, 16, 17, 18, 0, -655, -655, 0, + -655, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, 0, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, @@ -4089,12 +4137,12 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 50, 0, 0, 51, 52, 0, 53, 54, 0, 55, 0, 0, 0, 56, 0, 57, 58, 59, - 0, 60, 61, 62, 0, 63, -643, 0, 0, -643, - -643, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 60, 61, 62, 0, 63, -655, 0, 0, -655, + -655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, 66, 0, 0, - -643, 0, 0, 0, 0, 0, 0, -643, 295, -643, + -655, 0, 0, 0, 0, 0, 0, -655, 295, -655, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 0, 0, -643, 0, 0, 0, 14, 0, 15, 16, + 0, 0, -655, 0, 0, 0, 14, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, 0, 29, 30, 31, 32, 33, 34, @@ -4104,10 +4152,10 @@ static const yytype_int16 yytable[] = 0, 48, 49, 0, 0, 0, 0, 0, 50, 0, 0, 51, 52, 0, 53, 54, 0, 55, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, - 0, 63, -643, 0, 0, -643, -643, 0, 0, 4, + 0, 63, -655, 0, 0, -655, -655, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 64, 65, 66, 0, 14, 0, 15, 16, 17, - 18, 0, 0, -643, 0, -643, 19, 20, 21, 22, + 18, 0, 0, -655, 0, -655, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, @@ -4130,438 +4178,206 @@ static const yytype_int16 yytable[] = 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 247, 0, 0, 248, 249, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 64, - 65, 66, 0, 14, 0, 15, 16, 17, 18, 0, - 0, 250, 0, 251, 19, 20, 21, 22, 23, 24, - 25, 0, 0, 26, 0, 0, 0, 0, 0, 0, - 0, 0, 30, 31, 32, 33, 34, 35, 36, 37, + 65, 66, 0, 14, 0, 108, 109, 17, 18, 0, + 0, 250, 0, 251, 110, 111, 112, 22, 23, 24, + 25, 0, 0, 113, 0, 0, 0, 0, 0, 0, + 0, 0, 30, 31, 32, 1037, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 211, 0, 0, 119, 52, 0, 53, 54, 0, 0, 0, 0, 0, 56, 0, - 57, 58, 59, 0, 60, 61, 62, 0, 63, 247, - 0, 0, 248, 249, 0, 0, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 0, 0, 0, 64, 65, - 66, 0, 14, 0, 108, 109, 17, 18, 0, 0, - 250, 0, 251, 110, 111, 112, 22, 23, 24, 25, - 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, - 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, - 44, 0, 45, 46, 47, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, - 0, 0, 0, 0, 211, 0, 0, 119, 52, 0, - 53, 54, 0, 0, 0, 0, 0, 56, 0, 57, - 58, 59, 0, 60, 61, 62, 0, 63, 247, 0, - 0, 248, 249, 0, 0, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 0, 0, 0, 64, 265, 66, - 0, 14, 0, 15, 16, 17, 18, 0, 0, 250, - 0, 251, 19, 20, 21, 22, 23, 24, 25, 0, - 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, - 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, - 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, - 0, 0, 0, 211, 0, 0, 119, 52, 0, 53, - 54, 0, 0, 0, 0, 0, 56, 0, 57, 58, - 59, 0, 60, 61, 62, 0, 63, 247, 0, 0, - 248, 249, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 64, 65, 66, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 251, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 0, 0, 0, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 0, 0, - 0, 0, 0, 165, 166, 167, 168, 169, 170, 171, - 172, 35, 36, 173, 38, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 116, 174, 175, - 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, - 0, 0, 0, 0, 184, 185, 186, 187, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 188, 189, - 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 0, 201, 202, 0, 0, 0, 0, 0, - 0, 203, 204, -613, -613, -613, -613, -613, -613, -613, - -613, -613, 0, 0, 0, 0, 0, 0, 0, -613, - 0, -613, -613, -613, -613, 0, -613, 0, 0, 0, - -613, -613, -613, -613, -613, -613, -613, 0, 0, -613, - 0, 0, 0, 0, 0, 0, 0, 0, -613, -613, - -613, -613, -613, -613, -613, -613, -613, 0, -613, -613, - -613, 0, 0, -613, 0, 0, -613, -613, 0, -613, - -613, -613, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -613, -613, 0, 0, 0, 0, - 0, -613, 0, 0, -613, -613, 0, -613, -613, 0, - -613, 0, -613, -613, -613, 0, -613, -613, -613, 0, - -613, -613, -613, 0, -613, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -613, -613, -613, 0, -613, 0, - 0, 0, 0, 0, -613, -614, -614, -614, -614, -614, - -614, -614, -614, -614, 0, 0, 0, 0, 0, 0, - 0, -614, 0, -614, -614, -614, -614, 0, -614, 0, - 0, 0, -614, -614, -614, -614, -614, -614, -614, 0, - 0, -614, 0, 0, 0, 0, 0, 0, 0, 0, - -614, -614, -614, -614, -614, -614, -614, -614, -614, 0, - -614, -614, -614, 0, 0, -614, 0, 0, -614, -614, - 0, -614, -614, -614, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -614, -614, 0, 0, - 0, 0, 0, -614, 0, 0, -614, -614, 0, -614, - -614, 0, -614, 0, -614, -614, -614, 0, -614, -614, - -614, 0, -614, -614, -614, 0, -614, 0, 0, 0, - 0, 0, 0, -616, -616, -616, -616, -616, -616, -616, - -616, -616, 0, 0, 0, 0, -614, -614, -614, -616, - -614, -616, -616, -616, -616, 0, -614, 0, 0, 0, - -616, -616, -616, -616, -616, -616, -616, 0, 0, -616, - 0, 0, 0, 0, 0, 0, 0, 0, -616, -616, - -616, -616, -616, -616, -616, -616, -616, 0, -616, -616, - -616, 0, 0, -616, 0, 0, -616, -616, 0, -616, - -616, -616, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -616, -616, 0, 0, 0, 0, - 0, -616, 839, 0, -616, -616, 0, -616, -616, 0, - -616, 0, -616, -616, -616, 0, -616, -616, -616, 0, - -616, -616, -616, 0, -616, 0, 0, 0, 0, 0, - 0, -107, -617, -617, -617, -617, -617, -617, -617, -617, - -617, 0, 0, 0, -616, -616, -616, 0, -617, 0, - -617, -617, -617, -617, -616, 0, 0, 0, 0, -617, - -617, -617, -617, -617, -617, -617, 0, 0, -617, 0, - 0, 0, 0, 0, 0, 0, 0, -617, -617, -617, - -617, -617, -617, -617, -617, -617, 0, -617, -617, -617, - 0, 0, -617, 0, 0, -617, -617, 0, -617, -617, - -617, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -617, -617, 0, 0, 0, 0, 0, - -617, 840, 0, -617, -617, 0, -617, -617, 0, -617, - 0, -617, -617, -617, 0, -617, -617, -617, 0, -617, - -617, -617, 0, -617, 0, 0, 0, 0, 0, 0, - -109, -618, -618, -618, -618, -618, -618, -618, -618, -618, - 0, 0, 0, -617, -617, -617, 0, -618, 0, -618, - -618, -618, -618, -617, 0, 0, 0, 0, -618, -618, - -618, -618, -618, -618, -618, 0, 0, -618, 0, 0, - 0, 0, 0, 0, 0, 0, -618, -618, -618, -618, - -618, -618, -618, -618, -618, 0, -618, -618, -618, 0, - 0, -618, 0, 0, -618, -618, 0, -618, -618, -618, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -618, -618, 0, 0, 0, 0, 0, -618, - 0, 0, -618, -618, 0, -618, -618, 0, -618, 0, - -618, -618, -618, 0, -618, -618, -618, 0, -618, -618, - -618, 0, -618, 0, 0, 0, 0, 0, 0, -619, - -619, -619, -619, -619, -619, -619, -619, -619, 0, 0, - 0, 0, -618, -618, -618, -619, 0, -619, -619, -619, - -619, 0, -618, 0, 0, 0, -619, -619, -619, -619, - -619, -619, -619, 0, 0, -619, 0, 0, 0, 0, - 0, 0, 0, 0, -619, -619, -619, -619, -619, -619, - -619, -619, -619, 0, -619, -619, -619, 0, 0, -619, - 0, 0, -619, -619, 0, -619, -619, -619, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -619, -619, 0, 0, 0, 0, 0, -619, 0, 0, - -619, -619, 0, -619, -619, 0, -619, 0, -619, -619, - -619, 0, -619, -619, -619, 0, -619, -619, -619, 0, - -619, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -619, -619, -619, 0, 0, 0, 0, 0, 0, 0, - -619, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 0, 0, 0, 155, 156, - 157, 233, 234, 235, 236, 162, 163, 164, 0, 0, - 0, 0, 0, 165, 166, 167, 237, 238, 239, 240, - 172, 320, 321, 241, 322, 0, 0, 0, 0, 0, - 0, 323, 0, 0, 0, 0, 0, 324, 174, 175, - 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, - 0, 0, 0, 0, 184, 185, 186, 187, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 188, 189, - 190, 0, 0, 0, 0, 325, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 0, 201, 202, 0, 0, 0, 0, 0, - 0, 203, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 0, 0, 0, 155, - 156, 157, 233, 234, 235, 236, 162, 163, 164, 0, - 0, 0, 0, 0, 165, 166, 167, 237, 238, 239, - 240, 172, 320, 321, 241, 322, 0, 0, 0, 0, - 0, 0, 323, 0, 0, 0, 0, 0, 0, 174, - 175, 176, 177, 178, 179, 180, 181, 0, 0, 182, - 183, 0, 0, 0, 0, 184, 185, 186, 187, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 188, - 189, 190, 0, 0, 0, 0, 487, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 0, 201, 202, 0, 0, 0, 0, - 0, 0, 203, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 0, 0, 0, - 155, 156, 157, 233, 234, 235, 236, 162, 163, 164, - 0, 0, 0, 0, 0, 165, 166, 167, 237, 238, - 239, 240, 172, 0, 0, 241, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 174, 175, 176, 177, 178, 179, 180, 181, 0, 0, - 182, 183, 0, 0, 0, 0, 184, 185, 186, 187, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 188, 189, 190, 0, 0, 0, 242, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 0, 201, 202, 0, 0, 0, - 0, 0, 0, 203, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 0, 0, - 0, 155, 156, 157, 233, 234, 235, 236, 162, 163, - 164, 0, 0, 0, 0, 0, 165, 166, 167, 237, - 238, 239, 240, 172, 0, 0, 241, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 174, 175, 176, 177, 178, 179, 180, 181, 0, - 0, 182, 183, 0, 0, 0, 0, 184, 185, 186, - 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 0, 201, 202, 0, 0, - 0, 0, 0, 0, 203, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, - 0, 14, 0, 108, 109, 17, 18, 0, 0, 0, - 0, 0, 110, 111, 112, 22, 23, 24, 25, 0, - 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, - 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, - 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 313, 0, 0, 119, 52, 0, 53, - 54, 0, 0, 0, 0, 0, 56, 0, 57, 58, - 59, 0, 60, 61, 62, 0, 63, 0, 0, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, - 0, 0, 0, 0, 0, 14, 120, 15, 16, 17, - 18, 0, 0, 0, 612, 0, 19, 20, 21, 22, - 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, - 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, - 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 49, 0, 0, 0, 0, 0, 50, 0, 0, - 51, 52, 0, 53, 54, 0, 55, 0, 0, 0, - 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, - 63, 0, 0, 0, 0, 0, 0, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, - 64, 65, 66, 14, 0, 15, 16, 17, 18, 0, - 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, - 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, - 0, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, - 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, - 0, 0, 0, 0, 0, 50, 0, 0, 51, 52, - 0, 53, 54, 0, 55, 0, 0, 0, 56, 0, - 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, - 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 0, 0, 0, 0, 64, 65, - 66, 14, 0, 15, 16, 17, 18, 0, 0, 0, - 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, - 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, - 30, 31, 32, 260, 34, 35, 36, 37, 38, 0, - 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, - 0, 261, 46, 47, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, - 0, 0, 0, 211, 0, 0, 119, 52, 0, 53, - 54, 0, 262, 0, 263, 264, 56, 0, 57, 58, - 59, 0, 60, 61, 62, 0, 63, 0, 0, 0, - 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 0, 0, 0, 0, 64, 265, 66, 14, + 57, 58, 59, 0, 60, 61, 62, 0, 63, -278, + 0, 0, -278, -278, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64, 265, + 66, 0, 0, 0, 0, -278, -278, 0, 0, 0, + -278, 0, -278, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 0, 0, 0, 0, 0, 0, 0, 14, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, - 19, 20, 21, 22, 23, 24, 25, 0, 0, 113, - 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, - 32, 260, 34, 35, 36, 37, 38, 0, 39, 40, - 41, 0, 0, 42, 0, 0, 43, 44, 0, 261, - 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 509, 0, 0, 0, 0, - 0, 211, 0, 0, 119, 52, 0, 53, 54, 0, - 262, 0, 263, 264, 56, 0, 57, 58, 59, 0, - 60, 61, 62, 0, 63, 0, 0, 0, 0, 0, - 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 0, 0, 0, 0, 64, 265, 66, 14, 0, 108, - 109, 17, 18, 0, 0, 0, 0, 0, 110, 111, - 112, 22, 23, 24, 25, 0, 0, 113, 0, 0, - 0, 0, 0, 0, 0, 0, 30, 31, 32, 260, - 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, - 0, 42, 0, 0, 43, 44, 0, 261, 46, 47, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 48, 49, 0, 0, 0, 0, 0, 211, - 0, 0, 119, 52, 0, 53, 54, 0, 725, 0, - 263, 264, 56, 0, 57, 58, 59, 0, 60, 61, - 62, 0, 63, 0, 0, 0, 0, 0, 0, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, - 0, 0, 64, 265, 66, 14, 0, 108, 109, 17, - 18, 0, 0, 0, 0, 0, 110, 111, 112, 22, - 23, 24, 25, 0, 0, 113, 0, 0, 0, 0, - 0, 0, 0, 0, 30, 31, 32, 260, 34, 35, - 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, - 0, 0, 43, 44, 0, 261, 46, 47, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 871, 0, 0, 0, 0, 0, 211, 0, 0, - 119, 52, 0, 53, 54, 0, 725, 0, 263, 264, - 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, - 63, 0, 0, 0, 0, 0, 0, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, - 64, 265, 66, 14, 0, 108, 109, 17, 18, 0, - 0, 0, 0, 0, 110, 111, 112, 22, 23, 24, - 25, 0, 0, 113, 0, 0, 0, 0, 0, 0, - 0, 0, 30, 31, 32, 260, 34, 35, 36, 37, - 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, - 43, 44, 0, 261, 46, 47, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, - 0, 0, 0, 0, 0, 211, 0, 0, 119, 52, - 0, 53, 54, 0, 262, 0, 263, 0, 56, 0, - 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, - 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 0, 0, 0, 0, 64, 265, - 66, 14, 0, 108, 109, 17, 18, 0, 0, 0, - 0, 0, 110, 111, 112, 22, 23, 24, 25, 0, - 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, - 30, 31, 32, 260, 34, 35, 36, 37, 38, 0, - 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, - 0, 261, 46, 47, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, - 0, 0, 0, 211, 0, 0, 119, 52, 0, 53, - 54, 0, 0, 0, 263, 264, 56, 0, 57, 58, - 59, 0, 60, 61, 62, 0, 63, 0, 0, 0, - 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 0, 0, 0, 0, 64, 265, 66, 14, - 0, 108, 109, 17, 18, 0, 0, 0, 0, 0, - 110, 111, 112, 22, 23, 24, 25, 0, 0, 113, - 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, - 32, 260, 34, 35, 36, 37, 38, 0, 39, 40, - 41, 0, 0, 42, 0, 0, 43, 44, 0, 261, - 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, - 0, 211, 0, 0, 119, 52, 0, 53, 54, 0, - 725, 0, 263, 0, 56, 0, 57, 58, 59, 0, - 60, 61, 62, 0, 63, 0, 0, 0, 0, 0, - 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 0, 0, 0, 0, 64, 265, 66, 14, 0, 108, - 109, 17, 18, 0, 0, 0, 0, 0, 110, 111, - 112, 22, 23, 24, 25, 0, 0, 113, 0, 0, - 0, 0, 0, 0, 0, 0, 30, 31, 32, 260, - 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, - 0, 42, 0, 0, 43, 44, 0, 261, 46, 47, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 48, 49, 0, 0, 0, 0, 0, 211, - 0, 0, 119, 52, 0, 53, 54, 0, 0, 0, - 263, 0, 56, 0, 57, 58, 59, 0, 60, 61, - 62, 0, 63, 0, 0, 0, 0, 0, 0, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, - 0, 0, 64, 265, 66, 14, 0, 15, 16, 17, - 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, - 23, 24, 25, 0, 0, 113, 0, 0, 0, 0, - 0, 0, 0, 0, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, - 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 49, 0, 0, 0, 0, 0, 211, 0, 0, - 119, 52, 0, 53, 54, 0, 606, 0, 0, 0, - 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, - 63, 0, 0, 0, 0, 0, 0, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, - 64, 265, 66, 14, 0, 108, 109, 17, 18, 0, - 0, 0, 0, 0, 110, 111, 112, 22, 23, 24, - 25, 0, 0, 113, 0, 0, 0, 0, 0, 0, - 0, 0, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, - 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, - 0, 0, 0, 0, 0, 211, 0, 0, 119, 52, - 0, 53, 54, 0, 262, 0, 0, 0, 56, 0, - 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, - 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 0, 0, 0, 0, 64, 265, - 66, 14, 0, 108, 109, 17, 18, 0, 0, 0, - 0, 0, 110, 111, 112, 22, 23, 24, 25, 0, - 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, - 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, - 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, - 0, 0, 0, 211, 0, 0, 119, 52, 0, 53, - 54, 0, 606, 0, 0, 0, 56, 0, 57, 58, - 59, 0, 60, 61, 62, 0, 63, 0, 0, 0, - 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 0, 0, 0, 0, 64, 265, 66, 14, - 0, 108, 109, 17, 18, 0, 0, 0, 0, 0, - 110, 111, 112, 22, 23, 24, 25, 0, 0, 113, + 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 211, 0, 0, 119, 52, 0, 53, 54, 0, - 917, 0, 0, 0, 56, 0, 57, 58, 59, 0, - 60, 61, 62, 0, 63, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 56, 0, 57, 58, 59, 0, + 60, 61, 62, 0, 63, 247, 0, 0, 248, 249, + 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 0, 0, 0, 64, 65, 66, 0, 14, 0, + 108, 109, 17, 18, 0, 0, 250, 0, 251, 110, + 111, 112, 22, 23, 24, 25, 0, 0, 113, 0, + 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, + 0, 0, 42, 0, 0, 43, 44, 0, 45, 46, + 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, + 211, 0, 0, 119, 52, 0, 53, 54, 0, 0, + 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, + 61, 62, 0, 63, 247, 0, 0, 248, 249, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 0, 0, 0, 0, 64, 265, 66, 14, 0, 108, - 109, 17, 18, 0, 0, 0, 0, 0, 110, 111, - 112, 22, 23, 24, 25, 0, 0, 113, 0, 0, + 0, 0, 0, 64, 265, 66, 0, 14, 0, 15, + 16, 17, 18, 0, 0, 250, 0, 251, 19, 20, + 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 211, - 0, 0, 119, 52, 0, 53, 54, 0, 725, 0, + 0, 0, 119, 52, 0, 53, 54, 0, 0, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, - 62, 0, 63, 0, 0, 0, 0, 0, 0, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, - 0, 0, 64, 265, 66, 14, 0, 15, 16, 17, - 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, - 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, - 0, 0, 0, 0, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, - 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, + 62, 0, 63, 247, 0, 0, 248, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 49, 0, 0, 0, 0, 0, 211, 0, 0, - 119, 52, 0, 53, 54, 0, 0, 0, 0, 0, - 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, - 63, 0, 0, 0, 0, 0, 0, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, - 64, 65, 66, 14, 0, 108, 109, 17, 18, 0, - 0, 0, 0, 0, 110, 111, 112, 22, 23, 24, - 25, 0, 0, 113, 0, 0, 0, 0, 0, 0, - 0, 0, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, - 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, - 0, 0, 0, 0, 0, 211, 0, 0, 119, 52, - 0, 53, 54, 0, 0, 0, 0, 0, 56, 0, - 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, - 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 0, 0, 0, 0, 64, 265, - 66, 14, 0, 15, 16, 17, 18, 0, 0, 0, - 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, - 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, - 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, - 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, - 0, 0, 0, 211, 0, 0, 119, 52, 0, 53, - 54, 0, 0, 0, 0, 0, 56, 0, 57, 58, - 59, 0, 60, 61, 62, 0, 63, 0, 0, 0, - 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 0, 0, 0, 0, 64, 265, 66, 14, - 0, 108, 109, 17, 18, 0, 0, 0, 0, 0, - 110, 111, 112, 22, 23, 24, 25, 0, 0, 113, - 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, - 32, 114, 34, 35, 36, 115, 38, 0, 39, 40, - 41, 0, 0, 42, 0, 0, 43, 44, 0, 116, + 0, 0, 64, 65, 66, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 251, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 0, 0, 0, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 0, 0, 0, 0, 0, 165, + 166, 167, 168, 169, 170, 171, 172, 35, 36, 173, + 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 116, 174, 175, 176, 177, 178, 179, + 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, + 184, 185, 186, 187, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, - 0, 118, 0, 0, 119, 52, 0, 53, 54, 0, - 0, 0, 0, 0, 56, 0, 57, 58, 59, 0, - 60, 61, 62, 0, 63, 0, 0, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, - 0, 0, 0, 14, 120, 108, 109, 17, 18, 0, - 0, 0, 0, 0, 110, 111, 112, 22, 23, 24, - 25, 0, 0, 113, 0, 0, 0, 0, 0, 0, - 0, 0, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, - 43, 44, 0, 225, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 0, 201, + 202, 0, 0, 0, 0, 0, 0, 203, 204, -625, + -625, -625, -625, -625, -625, -625, -625, -625, 0, 0, + 0, 0, 0, 0, 0, -625, 0, -625, -625, -625, + -625, 0, -625, 0, 0, 0, -625, -625, -625, -625, + -625, -625, -625, 0, 0, -625, 0, 0, 0, 0, + 0, 0, 0, 0, -625, -625, -625, -625, -625, -625, + -625, -625, -625, 0, -625, -625, -625, 0, 0, -625, + 0, 0, -625, -625, 0, -625, -625, -625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 226, 0, 0, 51, 52, - 0, 53, 54, 0, 55, 0, 0, 0, 56, 0, - 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, - 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 0, 0, 0, 0, 0, 0, 0, 14, 120, 108, + -625, -625, 0, 0, 0, 0, 0, -625, 0, 0, + -625, -625, 0, -625, -625, 0, -625, 0, -625, -625, + -625, 0, -625, -625, -625, 0, -625, -625, -625, 0, + -625, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -625, -625, -625, 0, -625, 0, 0, 0, 0, 0, + -625, -626, -626, -626, -626, -626, -626, -626, -626, -626, + 0, 0, 0, 0, 0, 0, 0, -626, 0, -626, + -626, -626, -626, 0, -626, 0, 0, 0, -626, -626, + -626, -626, -626, -626, -626, 0, 0, -626, 0, 0, + 0, 0, 0, 0, 0, 0, -626, -626, -626, -626, + -626, -626, -626, -626, -626, 0, -626, -626, -626, 0, + 0, -626, 0, 0, -626, -626, 0, -626, -626, -626, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -626, -626, 0, 0, 0, 0, 0, -626, + 0, 0, -626, -626, 0, -626, -626, 0, -626, 0, + -626, -626, -626, 0, -626, -626, -626, 0, -626, -626, + -626, 0, -626, 0, 0, 0, 0, 0, 0, -628, + -628, -628, -628, -628, -628, -628, -628, -628, 0, 0, + 0, 0, -626, -626, -626, -628, -626, -628, -628, -628, + -628, 0, -626, 0, 0, 0, -628, -628, -628, -628, + -628, -628, -628, 0, 0, -628, 0, 0, 0, 0, + 0, 0, 0, 0, -628, -628, -628, -628, -628, -628, + -628, -628, -628, 0, -628, -628, -628, 0, 0, -628, + 0, 0, -628, -628, 0, -628, -628, -628, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -628, -628, 0, 0, 0, 0, 0, -628, 839, 0, + -628, -628, 0, -628, -628, 0, -628, 0, -628, -628, + -628, 0, -628, -628, -628, 0, -628, -628, -628, 0, + -628, 0, 0, 0, 0, 0, 0, -107, -629, -629, + -629, -629, -629, -629, -629, -629, -629, 0, 0, 0, + -628, -628, -628, 0, -629, 0, -629, -629, -629, -629, + -628, 0, 0, 0, 0, -629, -629, -629, -629, -629, + -629, -629, 0, 0, -629, 0, 0, 0, 0, 0, + 0, 0, 0, -629, -629, -629, -629, -629, -629, -629, + -629, -629, 0, -629, -629, -629, 0, 0, -629, 0, + 0, -629, -629, 0, -629, -629, -629, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -629, + -629, 0, 0, 0, 0, 0, -629, 840, 0, -629, + -629, 0, -629, -629, 0, -629, 0, -629, -629, -629, + 0, -629, -629, -629, 0, -629, -629, -629, 0, -629, + 0, 0, 0, 0, 0, 0, -109, -630, -630, -630, + -630, -630, -630, -630, -630, -630, 0, 0, 0, -629, + -629, -629, 0, -630, 0, -630, -630, -630, -630, -629, + 0, 0, 0, 0, -630, -630, -630, -630, -630, -630, + -630, 0, 0, -630, 0, 0, 0, 0, 0, 0, + 0, 0, -630, -630, -630, -630, -630, -630, -630, -630, + -630, 0, -630, -630, -630, 0, 0, -630, 0, 0, + -630, -630, 0, -630, -630, -630, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -630, -630, + 0, 0, 0, 0, 0, -630, 0, 0, -630, -630, + 0, -630, -630, 0, -630, 0, -630, -630, -630, 0, + -630, -630, -630, 0, -630, -630, -630, 0, -630, 0, + 0, 0, 0, 0, 0, -631, -631, -631, -631, -631, + -631, -631, -631, -631, 0, 0, 0, 0, -630, -630, + -630, -631, 0, -631, -631, -631, -631, 0, -630, 0, + 0, 0, -631, -631, -631, -631, -631, -631, -631, 0, + 0, -631, 0, 0, 0, 0, 0, 0, 0, 0, + -631, -631, -631, -631, -631, -631, -631, -631, -631, 0, + -631, -631, -631, 0, 0, -631, 0, 0, -631, -631, + 0, -631, -631, -631, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -631, -631, 0, 0, + 0, 0, 0, -631, 0, 0, -631, -631, 0, -631, + -631, 0, -631, 0, -631, -631, -631, 0, -631, -631, + -631, 0, -631, -631, -631, 0, -631, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -631, -631, -631, 0, + 0, 0, 0, 0, 0, 0, -631, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 0, 0, 0, 155, 156, 157, 233, 234, 235, + 236, 162, 163, 164, 0, 0, 0, 0, 0, 165, + 166, 167, 237, 238, 239, 240, 172, 320, 321, 241, + 322, 0, 0, 0, 0, 0, 0, 323, 0, 0, + 0, 0, 0, 324, 174, 175, 176, 177, 178, 179, + 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, + 184, 185, 186, 187, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 188, 189, 190, 0, 0, 0, + 0, 325, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 0, 201, + 202, 0, 0, 0, 0, 0, 0, 203, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 0, 0, 0, 155, 156, 157, 233, 234, + 235, 236, 162, 163, 164, 0, 0, 0, 0, 0, + 165, 166, 167, 237, 238, 239, 240, 172, 320, 321, + 241, 322, 0, 0, 0, 0, 0, 0, 323, 0, + 0, 0, 0, 0, 0, 174, 175, 176, 177, 178, + 179, 180, 181, 0, 0, 182, 183, 0, 0, 0, + 0, 184, 185, 186, 187, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 188, 189, 190, 0, 0, + 0, 0, 487, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 0, + 201, 202, 0, 0, 0, 0, 0, 0, 203, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 0, 0, 0, 155, 156, 157, 233, + 234, 235, 236, 162, 163, 164, 0, 0, 0, 0, + 0, 165, 166, 167, 237, 238, 239, 240, 172, 0, + 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 174, 175, 176, 177, + 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, + 0, 0, 184, 185, 186, 187, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 188, 189, 190, 0, + 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 0, 201, 202, 0, 0, 0, 0, 0, 0, 203, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 0, 0, 0, 155, 156, 157, + 233, 234, 235, 236, 162, 163, 164, 0, 0, 0, + 0, 0, 165, 166, 167, 237, 238, 239, 240, 172, + 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 174, 175, 176, + 177, 178, 179, 180, 181, 0, 0, 182, 183, 0, + 0, 0, 0, 184, 185, 186, 187, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 188, 189, 190, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 0, 201, 202, 0, 0, 0, 0, 0, 0, + 203, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 0, 0, 0, 0, 0, 0, 0, 14, 0, 108, 109, 17, 18, 0, 0, 0, 0, 0, 110, 111, 112, 22, 23, 24, 25, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, 33, @@ -4569,19 +4385,304 @@ static const yytype_int16 yytable[] = 0, 42, 0, 0, 43, 44, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, - 0, 0, 400, 52, 0, 53, 54, 0, 401, 0, + 0, 0, 119, 52, 0, 53, 54, 0, 0, 0, + 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, + 62, 0, 63, 0, 0, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, + 0, 14, 120, 108, 109, 17, 18, 0, 0, 0, + 612, 0, 110, 111, 112, 22, 851, 852, 853, 0, + 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, + 30, 31, 32, 965, 34, 35, 36, 855, 38, 0, + 39, 40, 41, 0, 0, 856, 0, 0, 43, 44, + 0, 261, 46, 47, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, + 0, 0, 0, 966, 0, 0, 119, 52, 0, 858, + 54, 0, 967, 0, 263, 0, 56, 0, 57, 58, + 59, 0, 60, 61, 62, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 64, 265, 66, 0, + 0, 0, 14, 968, 15, 16, 17, 18, 0, 0, + 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, + 0, 0, 26, 0, 0, 0, 0, 0, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, + 44, 0, 45, 46, 47, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, + 0, 0, 0, 0, 50, 0, 0, 51, 52, 0, + 53, 54, 0, 55, 0, 0, 0, 56, 0, 57, + 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, + 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 0, 0, 0, 64, 65, 66, + 14, 0, 15, 16, 17, 18, 0, 0, 0, 0, + 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, + 26, 0, 0, 0, 0, 0, 27, 0, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, + 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, + 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, + 0, 0, 50, 0, 0, 51, 52, 0, 53, 54, + 0, 55, 0, 0, 0, 56, 0, 57, 58, 59, + 0, 60, 61, 62, 0, 63, 0, 0, 0, 0, + 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 0, 0, 0, 0, 64, 65, 66, 14, 0, + 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, + 20, 21, 22, 23, 24, 25, 0, 0, 113, 0, + 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, + 260, 34, 35, 36, 37, 38, 0, 39, 40, 41, + 0, 0, 42, 0, 0, 43, 44, 0, 261, 46, + 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, + 211, 0, 0, 119, 52, 0, 53, 54, 0, 262, + 0, 263, 264, 56, 0, 57, 58, 59, 0, 60, + 61, 62, 0, 63, 0, 0, 0, 0, 0, 0, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, + 0, 0, 0, 64, 265, 66, 14, 0, 15, 16, + 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, + 22, 23, 24, 25, 0, 0, 113, 0, 0, 0, + 0, 0, 0, 0, 0, 30, 31, 32, 260, 34, + 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, + 42, 0, 0, 43, 44, 0, 261, 46, 47, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 509, 0, 0, 0, 0, 0, 211, 0, + 0, 119, 52, 0, 53, 54, 0, 262, 0, 263, + 264, 56, 0, 57, 58, 59, 0, 60, 61, 62, + 0, 63, 0, 0, 0, 0, 0, 0, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, + 0, 64, 265, 66, 14, 0, 108, 109, 17, 18, + 0, 0, 0, 0, 0, 110, 111, 112, 22, 23, + 24, 25, 0, 0, 113, 0, 0, 0, 0, 0, + 0, 0, 0, 30, 31, 32, 260, 34, 35, 36, + 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, + 0, 43, 44, 0, 261, 46, 47, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 49, 0, 0, 0, 0, 0, 211, 0, 0, 119, + 52, 0, 53, 54, 0, 725, 0, 263, 264, 56, + 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, + 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 0, 0, 0, 0, 64, + 265, 66, 14, 0, 108, 109, 17, 18, 0, 0, + 0, 0, 0, 110, 111, 112, 22, 23, 24, 25, + 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, + 0, 30, 31, 32, 260, 34, 35, 36, 37, 38, + 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, + 44, 0, 261, 46, 47, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 48, 873, 0, + 0, 0, 0, 0, 211, 0, 0, 119, 52, 0, + 53, 54, 0, 725, 0, 263, 264, 56, 0, 57, + 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, + 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 0, 0, 0, 0, 64, 265, 66, + 14, 0, 108, 109, 17, 18, 0, 0, 0, 0, + 0, 110, 111, 112, 22, 23, 24, 25, 0, 0, + 113, 0, 0, 0, 0, 0, 0, 0, 0, 30, + 31, 32, 260, 34, 35, 36, 37, 38, 0, 39, + 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, + 261, 46, 47, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, + 0, 0, 211, 0, 0, 119, 52, 0, 53, 54, + 0, 262, 0, 263, 0, 56, 0, 57, 58, 59, + 0, 60, 61, 62, 0, 63, 0, 0, 0, 0, + 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 0, 0, 0, 0, 64, 265, 66, 14, 0, + 108, 109, 17, 18, 0, 0, 0, 0, 0, 110, + 111, 112, 22, 23, 24, 25, 0, 0, 113, 0, + 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, + 260, 34, 35, 36, 37, 38, 0, 39, 40, 41, + 0, 0, 42, 0, 0, 43, 44, 0, 261, 46, + 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, + 211, 0, 0, 119, 52, 0, 53, 54, 0, 0, + 0, 263, 264, 56, 0, 57, 58, 59, 0, 60, + 61, 62, 0, 63, 0, 0, 0, 0, 0, 0, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, + 0, 0, 0, 64, 265, 66, 14, 0, 108, 109, + 17, 18, 0, 0, 0, 0, 0, 110, 111, 112, + 22, 23, 24, 25, 0, 0, 113, 0, 0, 0, + 0, 0, 0, 0, 0, 30, 31, 32, 260, 34, + 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, + 42, 0, 0, 43, 44, 0, 261, 46, 47, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 49, 0, 0, 0, 0, 0, 211, 0, + 0, 119, 52, 0, 53, 54, 0, 725, 0, 263, + 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, + 0, 63, 0, 0, 0, 0, 0, 0, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, + 0, 64, 265, 66, 14, 0, 108, 109, 17, 18, + 0, 0, 0, 0, 0, 110, 111, 112, 22, 23, + 24, 25, 0, 0, 113, 0, 0, 0, 0, 0, + 0, 0, 0, 30, 31, 32, 260, 34, 35, 36, + 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, + 0, 43, 44, 0, 261, 46, 47, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 49, 0, 0, 0, 0, 0, 211, 0, 0, 119, + 52, 0, 53, 54, 0, 0, 0, 263, 0, 56, + 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, + 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 0, 0, 0, 0, 64, + 265, 66, 14, 0, 15, 16, 17, 18, 0, 0, + 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, + 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, + 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, + 44, 0, 45, 46, 47, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, + 0, 0, 0, 0, 211, 0, 0, 119, 52, 0, + 53, 54, 0, 606, 0, 0, 0, 56, 0, 57, + 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, + 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 0, 0, 0, 0, 64, 265, 66, + 14, 0, 108, 109, 17, 18, 0, 0, 0, 0, + 0, 110, 111, 112, 22, 23, 24, 25, 0, 0, + 113, 0, 0, 0, 0, 0, 0, 0, 0, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, + 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, + 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, + 0, 0, 211, 0, 0, 119, 52, 0, 53, 54, + 0, 262, 0, 0, 0, 56, 0, 57, 58, 59, + 0, 60, 61, 62, 0, 63, 0, 0, 0, 0, + 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 0, 0, 0, 0, 64, 265, 66, 14, 0, + 108, 109, 17, 18, 0, 0, 0, 0, 0, 110, + 111, 112, 22, 23, 24, 25, 0, 0, 113, 0, + 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, + 0, 0, 42, 0, 0, 43, 44, 0, 45, 46, + 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, + 211, 0, 0, 119, 52, 0, 53, 54, 0, 606, + 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, + 61, 62, 0, 63, 0, 0, 0, 0, 0, 0, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, + 0, 0, 0, 64, 265, 66, 14, 0, 108, 109, + 17, 18, 0, 0, 0, 0, 0, 110, 111, 112, + 22, 23, 24, 25, 0, 0, 113, 0, 0, 0, + 0, 0, 0, 0, 0, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, + 42, 0, 0, 43, 44, 0, 45, 46, 47, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 49, 0, 0, 0, 0, 0, 211, 0, + 0, 119, 52, 0, 53, 54, 0, 919, 0, 0, + 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, + 0, 63, 0, 0, 0, 0, 0, 0, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, + 0, 64, 265, 66, 14, 0, 108, 109, 17, 18, + 0, 0, 0, 0, 0, 110, 111, 112, 22, 23, + 24, 25, 0, 0, 113, 0, 0, 0, 0, 0, + 0, 0, 0, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, + 0, 43, 44, 0, 45, 46, 47, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 49, 0, 0, 0, 0, 0, 211, 0, 0, 119, + 52, 0, 53, 54, 0, 725, 0, 0, 0, 56, + 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, + 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 0, 0, 0, 0, 64, + 265, 66, 14, 0, 15, 16, 17, 18, 0, 0, + 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, + 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, + 44, 0, 45, 46, 47, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, + 0, 0, 0, 0, 211, 0, 0, 119, 52, 0, + 53, 54, 0, 0, 0, 0, 0, 56, 0, 57, + 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, + 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 0, 0, 0, 0, 64, 65, 66, + 14, 0, 108, 109, 17, 18, 0, 0, 0, 0, + 0, 110, 111, 112, 22, 23, 24, 25, 0, 0, + 113, 0, 0, 0, 0, 0, 0, 0, 0, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, + 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, + 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, + 0, 0, 211, 0, 0, 119, 52, 0, 53, 54, + 0, 0, 0, 0, 0, 56, 0, 57, 58, 59, + 0, 60, 61, 62, 0, 63, 0, 0, 0, 0, + 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 0, 0, 0, 0, 64, 265, 66, 14, 0, + 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, + 20, 21, 22, 23, 24, 25, 0, 0, 113, 0, + 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, + 0, 0, 42, 0, -442, 43, 44, 0, 45, 46, + 47, 0, 0, 0, -626, 0, 0, 0, 0, 0, + 0, 0, 0, 48, 49, 0, 0, 0, -442, -442, + 211, 0, 0, 119, 52, 0, 53, 54, 0, 0, + 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, + 61, 62, 0, 63, 0, 0, 0, 0, 0, 0, + -520, -520, -520, -520, -520, -520, -520, -520, -520, -520, + -520, -520, 0, 64, 265, 66, -520, -520, -520, 0, + -520, -442, 0, 0, 0, 0, 0, 0, 0, -520, + 0, 0, 0, -520, 0, 0, 0, 0, -438, 0, + 0, 0, 0, -442, 0, 0, -442, -442, 0, -520, + -520, 0, -520, -520, -442, -520, -520, -520, -520, -520, + -520, -520, -438, -438, 0, 0, -626, 0, -520, -442, + -442, 0, -626, 0, -442, -520, -442, 0, 0, -474, + 0, 0, -474, 0, 0, -474, 0, 0, 0, 0, + 0, 0, 0, 0, -474, -474, -474, -474, -474, -474, + -474, -474, -474, -474, -474, -474, 0, 0, 0, 0, + -474, -474, -474, 0, 0, -438, 0, 0, -440, 0, + 0, 0, 0, -474, 0, 0, 0, -474, 0, -474, + 0, 0, 0, 0, 0, 0, 0, -438, 0, 0, + -438, -438, -440, -440, -474, 0, -474, -474, -438, -474, + -474, -474, -474, -474, -474, -474, 0, 0, 0, 0, + 0, 0, -474, -438, -438, 0, 0, 0, -438, -474, + -438, 0, 0, 0, -527, -527, -527, -527, -527, -527, + -527, -527, -527, -527, -527, -527, 0, 0, 0, 0, + -527, -527, -527, 0, 0, -440, 0, 0, -441, 0, + 0, 0, 0, -527, 0, 0, 0, -527, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -440, 0, 0, + -440, -440, -441, -441, -527, 0, -527, -527, -440, -527, + -527, -527, -527, -527, -527, -527, 0, 0, 0, 0, + 0, 0, -527, -440, -440, 0, 0, 0, -440, -527, + -440, 0, 0, 0, -528, -528, -528, -528, -528, -528, + -528, -528, -528, -528, -528, -528, 0, 0, 0, 0, + -528, -528, -528, 0, 0, -441, 0, 0, -437, 0, + 0, 0, 0, -528, 0, 0, 0, -528, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -441, 0, 0, + -441, -441, -437, -437, -528, 0, -528, -528, -441, -528, + -528, -528, -528, -528, -528, -528, 0, 0, 0, 0, + 0, 0, -528, -441, -441, 0, 0, 0, -441, -528, + -441, 0, 0, 0, -468, -468, -468, -468, -468, -468, + -468, -468, -468, -468, -468, -468, 0, 0, 0, 0, + -468, -468, -468, 0, 0, -437, 0, 0, -436, 0, + 0, 0, 0, -468, 0, 0, 0, -468, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -437, 0, 0, + -437, -437, -436, -436, -468, 0, -468, -468, -437, -468, + -468, -468, -468, -468, -468, -468, 0, 0, 0, 0, + 0, 0, -468, -437, -437, 0, 0, 0, -437, -468, + -437, 0, 0, 0, -467, -467, -467, -467, -467, -467, + -467, -467, -467, -467, -467, -467, 0, 0, 0, 0, + -467, -467, -467, 0, 0, -436, 0, 0, 0, 0, + 0, 0, 0, -467, 0, 0, 0, -467, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -436, 0, 0, + -436, -436, 0, 0, -467, 0, -467, -467, -436, -467, + -467, -467, -467, -467, -467, -467, 0, 0, 0, 0, + 0, 0, -467, -436, -436, 0, 0, 0, -436, -467, + -436, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 0, 0, 0, 0, 0, 0, 0, 14, 0, 108, + 109, 17, 18, 0, 0, 0, 0, 0, 110, 111, + 112, 22, 23, 24, 25, 0, 0, 113, 0, 0, + 0, 0, 0, 0, 0, 0, 30, 31, 32, 114, + 34, 35, 36, 115, 38, 0, 39, 40, 41, 0, + 0, 42, 0, 0, 43, 44, 0, 116, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 117, 0, 0, 118, + 0, 0, 119, 52, 0, 53, 54, 0, 0, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 14, 120, 108, 109, 17, 18, 0, 0, 0, 0, 0, 110, 111, 112, 22, 23, 24, 25, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, - 30, 31, 32, 114, 34, 35, 36, 115, 38, 0, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, - 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 118, 0, 0, 119, 52, 0, 53, - 54, 0, 0, 0, 0, 0, 56, 0, 57, 58, + 0, 0, 0, 226, 0, 0, 51, 52, 0, 53, + 54, 0, 55, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 14, 120, 108, 109, 17, @@ -4592,7 +4693,7 @@ static const yytype_int16 yytable[] = 0, 0, 43, 44, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, - 400, 52, 0, 53, 54, 0, 0, 0, 0, 0, + 400, 52, 0, 53, 54, 0, 401, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 14, @@ -4603,18 +4704,18 @@ static const yytype_int16 yytable[] = 41, 0, 0, 856, 0, 0, 43, 44, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 857, 0, 0, 119, 52, 0, 53, 54, 0, - 0, 0, 0, 0, 56, 0, 57, 58, 59, 0, + 0, 857, 0, 0, 119, 52, 0, 858, 54, 0, + 1092, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 14, 120, 108, 109, 17, 18, 0, 0, 0, 0, 0, 110, 111, 112, 22, 23, 24, 25, 0, 0, 113, 0, 0, 0, 0, 0, 0, - 0, 0, 30, 31, 32, 33, 34, 35, 36, 37, + 0, 0, 30, 31, 32, 114, 34, 35, 36, 115, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 991, 0, 0, 119, 52, + 0, 0, 0, 0, 0, 118, 0, 0, 119, 52, 0, 53, 54, 0, 0, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, @@ -4623,606 +4724,729 @@ static const yytype_int16 yytable[] = 112, 22, 23, 24, 25, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, - 0, 42, 0, 0, 43, 44, 0, 225, 0, 0, + 0, 42, 0, 0, 43, 44, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1014, - 0, 0, 119, 52, 0, 53, 54, 0, 0, 666, - 661, 0, 56, 667, 57, 58, 59, 0, 60, 61, - 62, 0, 63, 0, 0, 0, 0, 0, 174, 175, - 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, - 0, 0, 120, 0, 184, 185, 186, 187, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 188, 189, - 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, + 0, 0, 400, 52, 0, 53, 54, 0, 0, 0, + 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, + 62, 0, 63, 0, 0, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, + 0, 14, 120, 108, 109, 17, 18, 0, 0, 0, + 0, 0, 110, 111, 112, 22, 851, 852, 853, 0, + 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, + 30, 31, 32, 854, 34, 35, 36, 855, 38, 0, + 39, 40, 41, 0, 0, 856, 0, 0, 43, 44, + 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 0, 201, 202, 698, 652, 0, 0, 699, - 0, 203, 276, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 174, 175, 176, 177, 178, 179, - 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, - 184, 185, 186, 187, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 188, 189, 190, 0, 0, 0, + 0, 0, 0, 857, 0, 0, 119, 52, 0, 858, + 54, 0, 0, 0, 0, 0, 56, 0, 57, 58, + 59, 0, 60, 61, 62, 0, 63, 0, 0, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, + 0, 0, 0, 0, 0, 14, 120, 108, 109, 17, + 18, 0, 0, 0, 0, 0, 110, 111, 112, 22, + 23, 24, 25, 0, 0, 113, 0, 0, 0, 0, + 0, 0, 0, 0, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, + 0, 0, 43, 44, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 0, 201, - 202, 701, 661, 0, 0, 702, 0, 203, 276, 0, + 0, 0, 0, 0, 0, 0, 0, 1002, 0, 0, + 119, 52, 0, 53, 54, 0, 0, 0, 0, 0, + 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, + 63, 0, 0, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 0, 0, 0, 0, 0, 0, 0, 14, + 120, 108, 109, 17, 18, 0, 0, 0, 0, 0, + 110, 111, 112, 22, 23, 24, 25, 0, 0, 113, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, + 41, 0, 0, 42, 0, 0, 43, 44, 0, 225, + 0, 0, 0, 0, -625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 174, 175, 176, 177, 178, 179, 180, 181, 0, 0, - 182, 183, 0, 0, 0, 0, 184, 185, 186, 187, + 0, 1025, 0, 0, 119, 52, 0, 53, 54, 0, + 0, 0, 0, 0, 56, 496, 57, 58, 59, 0, + 60, 61, 62, 0, 63, 0, 0, 0, 0, 0, + -516, -516, -516, -516, -516, -516, -516, -516, -516, -516, + -516, -516, 0, 0, 120, 0, -516, -516, -516, 0, + -516, -457, 0, 0, 0, 0, 0, 0, 0, -516, + 0, -625, 0, -516, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -516, 0, 0, -516, -516, 0, -516, + -516, 0, -516, -516, -457, -516, -516, -516, -516, -516, + -516, -516, 0, 0, 0, 0, -625, 0, -516, -457, + -457, 0, -625, 0, -516, -516, -516, -516, -516, -516, + -516, -516, -516, -516, -516, -516, -516, -516, -516, 0, + 0, 0, 0, -516, -516, -516, 0, -516, 0, 0, + 0, 0, 0, 0, 0, 0, -516, 0, 0, 0, + -516, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -516, 0, 0, -516, -516, 0, -516, -516, 0, -516, + -516, -516, -516, -516, -516, -516, -516, -516, -516, 0, + 681, 652, 0, -625, 682, -516, -455, -455, 0, -625, + 0, -516, -516, -516, 0, 0, 0, 0, 0, 174, + 175, 176, 177, 178, 179, 180, 181, 0, 0, 182, + 183, 0, 0, 0, 0, 184, 185, 186, 187, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 188, + 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 0, 201, 202, 666, 661, 0, 0, + 667, 0, 203, 276, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 174, 175, 176, 177, 178, + 179, 180, 181, 0, 0, 182, 183, 0, 0, 0, + 0, 184, 185, 186, 187, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 0, 201, 202, 708, 652, 0, - 0, 709, 0, 203, 276, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 174, 175, 176, 177, - 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, - 0, 0, 184, 185, 186, 187, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 188, 189, 190, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 0, + 201, 202, 698, 652, 0, 0, 699, 0, 203, 276, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 174, 175, 176, 177, 178, 179, 180, 181, 0, + 0, 182, 183, 0, 0, 0, 0, 184, 185, 186, + 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 0, 201, 202, 701, 661, + 0, 0, 702, 0, 203, 276, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 174, 175, 176, + 177, 178, 179, 180, 181, 0, 0, 182, 183, 0, + 0, 0, 0, 184, 185, 186, 187, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 0, 201, 202, 711, 661, 0, 0, 712, 0, 203, - 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 174, 175, 176, 177, 178, 179, 180, 181, - 0, 0, 182, 183, 0, 0, 0, 0, 184, 185, - 186, 187, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, + 0, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 0, 201, 202, 708, 652, 0, 0, 709, 0, + 203, 276, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 174, 175, 176, 177, 178, 179, 180, + 181, 0, 0, 182, 183, 0, 0, 0, 0, 184, + 185, 186, 187, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 0, 201, 202, 748, - 652, 0, 0, 749, 0, 203, 276, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, - 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, - 0, 0, 0, 0, 184, 185, 186, 187, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 188, 189, - 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 0, 201, 202, + 711, 661, 0, 0, 712, 0, 203, 276, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, + 175, 176, 177, 178, 179, 180, 181, 0, 0, 182, + 183, 0, 0, 0, 0, 184, 185, 186, 187, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 188, + 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 0, 201, 202, 751, 661, 0, 0, 752, - 0, 203, 276, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 174, 175, 176, 177, 178, 179, - 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, - 184, 185, 186, 187, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 188, 189, 190, 0, 0, 0, + 0, 0, 0, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 0, 201, 202, 748, 652, 0, 0, + 749, 0, 203, 276, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 174, 175, 176, 177, 178, + 179, 180, 181, 0, 0, 182, 183, 0, 0, 0, + 0, 184, 185, 186, 187, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 0, 201, - 202, 922, 652, 0, 0, 923, 0, 203, 276, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 0, + 201, 202, 751, 661, 0, 0, 752, 0, 203, 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 174, 175, 176, 177, 178, 179, 180, 181, 0, 0, - 182, 183, 0, 0, 0, 0, 184, 185, 186, 187, + 0, 174, 175, 176, 177, 178, 179, 180, 181, 0, + 0, 182, 183, 0, 0, 0, 0, 184, 185, 186, + 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 0, 201, 202, 925, 661, 0, - 0, 926, 0, 203, 276, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 174, 175, 176, 177, - 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, - 0, 0, 184, 185, 186, 187, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 188, 189, 190, 0, + 0, 0, 0, 0, 0, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 0, 201, 202, 924, 652, + 0, 0, 925, 0, 203, 276, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 174, 175, 176, + 177, 178, 179, 180, 181, 0, 0, 182, 183, 0, + 0, 0, 0, 184, 185, 186, 187, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 0, 201, 202, 1025, 652, 0, 0, 1026, 0, 203, - 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 174, 175, 176, 177, 178, 179, 180, 181, - 0, 0, 182, 183, 0, 0, 0, 0, 184, 185, - 186, 187, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, + 0, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 0, 201, 202, 927, 661, 0, 0, 928, 0, + 203, 276, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 174, 175, 176, 177, 178, 179, 180, + 181, 0, 0, 182, 183, 0, 0, 0, 0, 184, + 185, 186, 187, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 0, 201, 202, 1025, - 652, 0, 0, 1085, 0, 203, 276, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, - 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, - 0, 0, 0, 0, 184, 185, 186, 187, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 188, 189, - 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 0, 201, 202, + 1042, 652, 0, 0, 1043, 0, 203, 276, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, + 175, 176, 177, 178, 179, 180, 181, 0, 0, 182, + 183, 0, 0, 0, 0, 184, 185, 186, 187, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 188, + 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 0, 201, 202, 1096, 652, 0, 0, 1097, - 0, 203, 276, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 174, 175, 176, 177, 178, 179, - 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, - 184, 185, 186, 187, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 188, 189, 190, 0, 0, 0, + 0, 0, 0, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 0, 201, 202, 698, 652, 0, 0, + 1091, 0, 203, 276, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 174, 175, 176, 177, 178, + 179, 180, 181, 0, 0, 182, 183, 0, 0, 0, + 0, 184, 185, 186, 187, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 0, 201, - 202, 1099, 661, 0, 0, 1100, 0, 203, 276, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 0, + 201, 202, 1042, 652, 0, 0, 1107, 0, 203, 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 174, 175, 176, 177, 178, 179, 180, 181, 0, 0, - 182, 183, 0, 0, 0, 0, 184, 185, 186, 187, + 0, 174, 175, 176, 177, 178, 179, 180, 181, 0, + 0, 182, 183, 0, 0, 0, 0, 184, 185, 186, + 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 0, 201, 202, 1118, 652, + 0, 0, 1119, 0, 203, 276, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 174, 175, 176, + 177, 178, 179, 180, 181, 0, 0, 182, 183, 0, + 0, 0, 0, 184, 185, 186, 187, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 0, 201, 202, 666, 661, 0, - 0, 667, 0, 203, 276, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 174, 175, 176, 177, - 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, - 0, 0, 184, 185, 186, 187, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 188, 189, 190, 0, - 0, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 0, 201, 202, 1121, 661, 0, 0, 1122, 0, + 203, 276, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 174, 175, 176, 177, 178, 179, 180, + 181, 0, 0, 182, 183, 0, 0, 0, 0, 184, + 185, 186, 187, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 188, 189, 190, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 0, 201, 202, + 666, 661, 0, 0, 667, 0, 203, 276, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, + 175, 176, 177, 178, 179, 180, 181, 0, 0, 182, + 183, 0, 0, 0, 0, 184, 185, 186, 187, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 188, + 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 0, 201, 202, 0, 0, 0, 0, + 0, 0, 203, -302, -302, -302, -302, -302, -302, -302, + -302, -302, -302, -302, -302, 0, 0, 0, 0, -302, + -302, -302, 0, 840, -302, 0, 0, 0, 0, 0, + 0, 0, -302, 0, 0, 0, -302, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -302, 0, 0, -302, + -302, 0, -109, -302, 0, -302, -302, -302, -302, -302, + -302, -302, -302, -302, -302, 0, 0, 0, 0, 0, + 0, -302, -302, -302, 0, -629, 0, -302, -302, -302, + -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, + -303, -303, 0, 0, 0, 0, -303, -303, -303, 0, + 526, -303, 0, 0, 0, 0, 0, 0, 0, -303, + 0, 0, 0, -303, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -303, 0, 0, -303, -303, 0, -110, + -303, 0, -303, -303, -303, -303, -303, -303, -303, -303, + -303, -303, 0, 0, 0, 0, 0, 0, -303, -303, + -303, 0, 0, 0, -303, -303, -303, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, + 0, 0, 0, 416, 417, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 419, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 420, 0, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 0, + 0, 0, 0, 0, 0, 0, 0, -277, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 0, 0, 0, 0, 416, 417, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 419, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 420, 0, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 0, 0, 0, 0, 0, 0, 0, 0, -279, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 0, 0, 0, 0, 416, 417, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 419, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 420, + 0, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 0, 0, 0, 0, 0, 0, 0, 0, -280, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 0, 0, 0, 0, 416, 417, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 420, 0, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 0, 0, 0, 0, 0, 0, 0, 0, + -282, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 0, 0, 0, 416, 417, 0, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 419, 201, 202, 0, 0, 0, 0, 0, 0, 203, + 0, 0, 418, 0, 0, 0, 0, 0, 0, 0, + 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 420, 0, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 0, 0, 0, 0, 0, 0, 0, - 0, -279, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 0, 0, 0, 0, 416, 417, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 420, 0, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 0, 0, 0, 0, 0, 0, - 0, 0, -280, 404, 405, 406, 407, 408, 409, 410, + 428, 429, 430, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 0, 0, 0, 416, - 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 417, 0, 0, 0, 501, 0, 0, 0, 0, 0, 0, 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 420, 0, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 0, 0, 0, 0, 0, - 0, 0, 0, -282, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 0, 0, 0, 0, - 416, 417, 0, 0, 0, 418, 0, 0, 0, 0, - 0, 0, 0, 419, 0, 0, 0, 0, 0, 0, + 426, 427, 428, 429, 430, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 0, 0, 0, + 0, 416, 417, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 420, 0, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 0, 0, - 0, 0, 416, 417, 0, 0, 0, 501, 0, 0, - 0, 0, 0, 0, 0, 419, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 420, 0, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, -656, -656, 0, + 0, 0, 0, 416, 417, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 420, 0, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 0, 0, 0, 0, 416, 417, 404, 405, 406, 407, - 408, 409, 0, 0, 412, 413, 0, 419, 0, 0, - 0, 0, 416, 417, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 419, 0, 0, 420, 0, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 0, 0, 0, 0, 0, 0, 0, 0, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430 }; static const yytype_int16 yycheck[] = { - 1, 285, 88, 8, 9, 86, 87, 379, 481, 14, - 27, 314, 81, 26, 4, 5, 222, 15, 16, 20, - 490, 19, 12, 6, 15, 16, 21, 13, 19, 118, - 73, 74, 431, 388, 65, 390, 435, 716, 791, 438, - 597, 27, 272, 692, 332, 716, 9, 696, 763, 14, - 3, 14, 53, 54, 703, 53, 54, 433, 51, 508, - 459, 403, 68, 6, 374, 55, 547, 1, 594, 3, - 13, 597, 73, 74, 57, 474, 504, 476, 121, 122, - 508, 319, 458, 25, 27, 395, 485, 55, 25, 594, - 539, 81, 15, 16, 15, 16, 19, 74, 19, 475, - 669, 670, 307, 68, 26, 974, 311, 25, 484, 104, - 111, 25, 117, 74, 57, 25, 594, 443, 444, 59, - 60, 61, 62, 25, 29, 57, 525, 26, 0, 333, - 53, 612, 336, 371, 338, 999, 340, 218, 342, 25, - 57, 25, 51, 93, 53, 54, 55, 56, 229, 90, - 460, 550, 16, 92, 90, 15, 16, 90, 296, 19, - 69, 122, 121, 90, 913, 914, 101, 58, 59, 105, - 213, 214, 92, 549, 103, 92, 126, 1, 79, 3, - 4, 5, 121, 142, 8, 9, 37, 38, 12, 121, - 14, 15, 16, 53, 54, 19, 131, 132, 133, 128, - 142, 121, 144, 142, 121, 142, 147, 144, 113, 290, - 1079, 147, 213, 214, 147, 90, 138, 90, 223, 224, - 147, 20, 144, 1087, 142, 126, 25, 51, 142, 755, - 90, 55, 142, 142, 90, 316, 213, 214, 144, 138, - 142, 65, 768, 996, 547, 314, 999, 996, 20, 21, - 755, 115, 821, 214, 118, 119, 142, 81, 142, 242, - 223, 224, 400, 768, 979, 791, 63, 64, 65, 270, - 558, 272, 147, 90, 147, 276, 319, 755, 142, 284, - 285, 279, 146, 513, 148, 276, 735, 252, 279, 968, - 768, 147, 298, 117, 138, 119, 810, 968, 90, 242, - 306, 307, 816, 296, 55, 311, 734, 735, 92, 612, - 1059, 1060, 1061, 551, 1063, 1064, 90, 90, 799, 116, - 117, 970, 18, 270, 314, 272, 58, 59, 371, 25, - 147, 92, 104, 298, 1087, 892, 16, 121, 28, 111, - 112, 18, 92, 20, 121, 350, 351, 352, 353, 691, - 355, 356, 556, 276, 403, 147, 279, 129, 279, 306, - 121, 295, 1111, 1112, 1113, 1114, 892, 398, 457, 303, - 680, 121, 403, 147, 147, 848, 377, 142, 379, 51, - 92, 142, 1131, 55, 812, 325, 210, 350, 351, 352, - 353, 121, 142, 92, 443, 444, 349, 1076, 61, 223, - 224, 64, 65, 775, 803, 1076, 805, 400, 886, 121, - 92, 401, 443, 444, 125, 349, 276, 92, 896, 279, - 354, 144, 121, 1072, 55, 780, 781, 782, 804, 784, - 142, 786, 433, 401, 92, 115, 587, 121, 118, 119, - 724, 92, 433, 142, 90, 55, 121, 61, 92, 51, - 64, 65, 276, 116, 117, 279, 461, 458, 25, 105, - 284, 285, 92, 121, 288, 466, 146, 458, 148, 142, - 996, 295, 296, 999, 475, 398, 545, 121, 547, 303, - 403, 807, 792, 484, 475, 17, 18, 813, 814, 502, - 314, 121, 435, 484, 140, 438, 799, 142, 728, 20, - 970, 147, 116, 117, 521, 92, 504, 57, 551, 819, - 138, 512, 513, 719, 37, 38, 459, 119, 996, 145, - 92, 522, 806, 972, 101, 349, 350, 351, 352, 353, - 354, 355, 356, 476, 121, 521, 908, 909, 536, 92, - 745, 622, 485, 612, 972, 121, 511, 141, 549, 121, - 374, 62, 55, 64, 65, 545, 139, 547, 549, 665, - 90, 1087, 668, 142, 60, 512, 513, 63, 121, 879, - 493, 395, 101, 433, 398, 105, 400, 401, 521, 403, - 686, 51, 525, 53, 54, 55, 56, 92, 522, 142, - 27, 101, 115, 584, 878, 118, 119, 531, 458, 69, - 1104, 1105, 319, 1081, 605, 116, 117, 550, 934, 433, - 140, 107, 603, 1091, 144, 475, 121, 147, 57, 443, - 444, 92, 612, 146, 484, 148, 1130, 640, 983, 984, - 985, 986, 1136, 1137, 458, 945, 460, 461, 904, 905, - 791, 121, 872, 121, 504, 142, 92, 471, 508, 51, - 121, 475, 142, 859, 371, 479, 121, 122, 659, 142, - 484, 656, 609, 435, 665, 489, 142, 668, 669, 670, - 665, 1070, 142, 668, 679, 121, 536, 51, 115, 539, - 26, 118, 119, 1055, 90, 686, 288, 459, 142, 549, - 691, 692, 51, 1069, 296, 696, 121, 714, 522, 105, - 142, 51, 703, 99, 476, 26, 689, 531, 713, 146, - 15, 148, 659, 485, 13, 16, 679, 121, 300, 63, - 121, 545, 304, 547, 145, 549, 716, 728, 714, 1084, - 799, 817, 15, 557, 140, 145, 734, 142, 16, 745, - 139, 147, 142, 949, 90, 142, 689, 15, 15, 955, - 713, 115, 801, 525, 118, 119, 142, 44, 807, 105, - 584, 121, 40, 41, 813, 814, 57, 15, 691, 90, - 801, 714, 719, 141, 775, 141, 807, 808, 550, 603, - 18, 728, 813, 814, 105, 141, 115, 141, 612, 118, - 119, 139, 138, 15, 140, 215, 1080, 1, 400, 3, - 139, 147, 222, 804, 8, 9, 141, 16, 139, 799, - 14, 15, 16, 804, 812, 19, 142, 138, 44, 140, - 821, 1027, 1028, 144, 115, 57, 147, 118, 119, 90, - 831, 836, 123, 834, 551, 142, 142, 115, 90, 259, - 118, 119, 993, 44, 105, 996, 142, 51, 999, 142, - 1001, 15, 93, 105, 14, 679, 680, 148, 15, 15, - 55, 65, 805, 580, 145, 142, 800, 90, 146, 471, - 148, 872, 142, 836, 734, 735, 90, 479, 142, 140, - 597, 15, 105, 600, 656, 934, 147, 489, 140, 713, - 141, 105, 716, 665, 15, 147, 668, 142, 587, 142, - 1106, 15, 591, 934, 139, 1056, 115, 908, 909, 118, - 119, 16, 684, 117, 686, 119, 906, 140, 26, 15, - 51, 911, 1128, 1129, 147, 872, 140, 509, 26, 349, - 15, 139, 16, 147, 516, 1016, 1087, 146, 1089, 148, - 1091, 126, 1093, 363, 804, 142, 528, 126, 90, 55, - 139, 15, 812, 55, 144, 557, 40, 41, 948, 964, - 965, 381, 62, 105, 64, 65, 142, 142, 792, 970, - 115, 1122, 142, 118, 119, 799, 800, 801, 968, 142, - 804, 142, 90, 807, 808, 15, 15, 142, 142, 813, - 814, 144, 90, 141, 15, 819, 820, 105, 140, 581, - 582, 964, 965, 148, 142, 147, 210, 105, 15, 833, - 115, 12, 836, 118, 119, 522, 116, 117, 5, 223, - 224, 845, 846, 1036, 443, 444, 1072, 791, 1029, 611, - 138, 115, 140, 805, 118, 119, 144, 1079, 818, 147, - 138, 146, 140, 148, 868, 51, 144, 1076, 1071, 147, - 6, 90, 968, 587, 1055, 879, 880, -1, 477, 478, - 480, 481, 146, 69, 148, 993, 105, 254, 1069, -1, - 1071, 1072, 276, 90, 791, 279, -1, 996, 1069, -1, - 284, 285, 906, -1, 288, -1, 1076, 911, 105, -1, - -1, 295, 296, -1, -1, 101, 102, 103, -1, 303, - -1, 140, 791, 1104, 1105, -1, 688, 526, 147, -1, - 934, 531, 972, 1118, 1119, -1, -1, 90, 538, -1, - 944, 945, 128, 140, 948, -1, -1, 1070, 952, 1130, - 147, -1, 105, -1, -1, 1136, 1137, -1, -1, -1, - 964, 965, 966, -1, 968, 349, 350, 351, 352, 353, - 354, 355, 356, 791, -1, 1118, 1119, -1, 26, -1, - -1, 51, 744, 53, 54, 55, 56, 140, -1, 1, - 374, 3, 4, 5, 147, 892, -1, 894, 90, 69, - 12, 898, 764, -1, 51, -1, 53, 54, 55, 56, - -1, 395, -1, 105, 398, 1019, 400, 1021, -1, 403, - 1024, -1, 69, -1, 94, 90, -1, -1, -1, 1069, - 100, 101, 102, 103, -1, -1, -1, -1, 820, 51, - 105, -1, 90, 55, -1, -1, -1, 94, 140, 433, - -1, 833, -1, 100, -1, 147, -1, 105, 128, 443, - 444, 131, -1, 845, 846, 1069, -1, -1, -1, 81, - 1074, 1075, 1076, -1, 458, 140, 460, 461, 678, -1, - 977, 978, 147, -1, -1, -1, 868, 471, -1, 26, - 138, 475, 140, -1, -1, 479, 144, -1, 880, 147, - 484, -1, 999, -1, 1001, 489, 90, 119, 51, 871, - 53, 54, 55, 56, 1118, 1119, 1120, -1, 1070, 719, - -1, 105, 90, -1, 993, 887, 69, 996, 1132, 1133, - 999, -1, 1001, -1, -1, -1, -1, 105, 522, -1, - 63, 64, 65, -1, -1, -1, 1043, 531, -1, 1046, - -1, 94, -1, 90, 90, -1, 140, 100, 101, 102, - 103, -1, 944, 147, -1, 549, -1, -1, 105, 105, - 952, -1, 140, 557, -1, 993, -1, 777, 996, 147, - -1, 999, -1, 1001, 966, 128, 1083, 1056, 131, -1, - 1087, -1, 1089, 116, 117, -1, 1093, -1, 210, 142, - 584, 138, -1, 140, 140, -1, -1, 144, 807, 808, - 147, 147, -1, -1, 813, 814, -1, -1, 1087, 603, - 1089, -1, 1091, 823, 1093, 1122, 101, -1, -1, 51, - -1, 53, 54, 55, 56, -1, -1, 1019, 1056, 1021, - 839, 840, 1024, 842, 843, -1, -1, 69, 848, -1, - -1, 90, -1, 1122, 129, 130, 131, 132, 133, 859, - 60, 83, -1, 63, -1, -1, 105, -1, -1, 1087, - -1, 1089, 94, 1091, -1, 1093, 288, -1, 100, 101, - 102, 103, 115, 295, 296, 118, 119, -1, -1, -1, - 90, 303, 1074, 1075, -1, 679, 680, -1, -1, 121, - -1, 140, 314, -1, 1122, 105, 128, 107, 147, 131, - -1, -1, 145, 146, -1, 148, 1, 90, 3, 4, - 5, 51, 144, 53, 54, 55, 56, 12, 90, 713, - 90, -1, 105, -1, -1, 934, -1, 349, 1120, 69, - 140, -1, 354, 105, 90, 105, -1, 147, -1, 949, - 1132, 1133, 63, 64, 65, 955, -1, -1, 957, 105, - -1, -1, 374, -1, 94, -1, 51, 140, -1, -1, - 55, 101, 102, 103, 147, -1, -1, -1, 140, -1, - 140, -1, -1, 395, -1, 147, -1, 147, 400, 401, - -1, 403, -1, -1, 140, -1, 81, -1, 128, -1, - -1, 147, 88, 89, -1, 116, 117, -1, 792, -1, - 63, 64, 65, -1, -1, 101, 800, 801, -1, -1, - 804, -1, -1, 807, 808, -1, -1, 1027, 1028, 813, - 814, 443, 444, -1, 119, 819, 820, 51, -1, 53, - 54, 55, 56, 129, 130, 131, 132, 133, 460, 833, - 115, -1, 836, 118, 119, 69, -1, -1, -1, 471, - -1, 845, 846, 116, 117, -1, -1, 479, -1, 83, - 63, 64, 65, 63, 64, 65, -1, 489, -1, -1, - 94, 146, -1, 148, 868, -1, 100, 101, 102, 103, - 63, 64, 65, -1, -1, 879, 880, 51, -1, 53, - 54, 55, 56, 63, 64, 65, 1106, -1, -1, -1, - 522, -1, -1, -1, 128, 69, -1, 131, -1, 531, - -1, -1, -1, 116, 117, 210, 116, 117, 1128, 1129, - 144, -1, -1, 545, -1, 547, -1, -1, 115, -1, - 94, 118, 119, 116, 117, 557, 100, 101, 102, 103, - 934, -1, -1, 88, 89, -1, 116, 117, -1, -1, - 944, 945, -1, -1, -1, 142, 101, -1, 952, 146, - -1, 148, -1, -1, 128, -1, -1, 131, -1, -1, - 964, 965, 966, 51, -1, 53, 54, 55, 56, -1, - 144, 126, 127, 128, 129, 130, 131, 132, 133, -1, - 612, 69, 51, 288, 53, 54, 55, 56, -1, -1, - 295, 296, -1, -1, -1, 88, 89, -1, 303, -1, - 69, 40, 41, 42, 43, 44, 94, -1, 101, 314, - 115, -1, 100, 118, 119, 1019, 85, 1021, -1, -1, - 1024, -1, -1, -1, 51, 94, 53, 54, 55, 56, - -1, 100, 101, 102, 103, 128, 129, 130, 131, 132, - 133, 146, 69, 148, 349, -1, -1, -1, 680, 354, - 51, -1, 53, 54, 55, 56, -1, -1, 85, 128, - -1, -1, 131, -1, -1, 1069, -1, 94, 69, 374, - 1074, 1075, -1, 100, 101, 102, 103, 1, -1, 3, - 4, 5, -1, -1, 716, -1, -1, -1, 12, -1, - 395, -1, -1, 94, -1, 400, 401, -1, 403, -1, - -1, 128, -1, 51, 131, 53, 54, 55, 56, -1, - -1, -1, -1, -1, 1118, 1119, 1120, -1, -1, -1, - -1, 69, -1, -1, -1, -1, -1, 51, 1132, 1133, - -1, 55, -1, -1, -1, -1, -1, -1, 443, 444, + 1, 26, 55, 15, 16, 81, 285, 19, 14, 8, + 9, 88, 27, 490, 272, 14, 222, 9, 3, 20, + 15, 16, 14, 6, 19, 13, 481, 6, 21, 314, + 13, 597, 1, 118, 3, 51, 319, 379, 431, 27, + 68, 594, 435, 74, 27, 438, 763, 86, 87, 716, + 307, 547, 53, 54, 311, 433, 692, 25, 53, 138, + 696, 332, 68, 1010, 669, 670, 459, 703, 26, 4, + 5, 74, 73, 74, 57, 15, 16, 12, 57, 19, + 458, 474, 985, 476, 20, 21, 791, 1, 371, 3, + 4, 5, 485, 25, 8, 9, 26, 475, 12, 504, + 14, 15, 16, 508, 508, 19, 484, 403, 27, 25, + 111, 104, 79, 53, 54, 594, 612, 296, 117, 122, + 55, 59, 60, 61, 62, 25, 0, 26, 57, 55, + 443, 444, 525, 1041, 29, 539, 25, 51, 90, 25, + 333, 55, 374, 336, 25, 338, 81, 340, 25, 342, + 594, 65, 93, 597, 15, 16, 103, 550, 19, 126, + 810, 115, 1109, 395, 118, 119, 816, 81, 104, 57, + 18, 549, 144, 90, 142, 111, 112, 25, 90, 218, + 138, 128, 213, 214, 28, 126, 144, 270, 105, 272, + 229, 90, 121, 129, 148, 147, 115, 300, 1101, 118, + 119, 304, 755, 117, 92, 119, 105, 92, 138, 403, + 142, 214, 213, 214, 16, 768, 821, 90, 113, 1127, + 121, 400, 51, 306, 223, 224, 142, 146, 460, 148, + 147, 223, 224, 121, 388, 147, 390, 142, 314, 138, + 90, 140, 142, 90, 144, 144, 252, 90, 147, 443, + 444, 290, 18, 142, 20, 513, 142, 90, 144, 242, + 65, 142, 547, 242, 276, 142, 90, 279, 551, 270, + 298, 272, 105, 990, 147, 276, 755, 316, 306, 307, + 296, 276, 121, 311, 279, 284, 285, 558, 144, 768, + 119, 92, 298, 90, 15, 16, 210, 147, 19, 125, + 147, 20, 1007, 799, 147, 1010, 25, 140, 105, 223, + 224, 755, 55, 115, 147, 121, 118, 119, 90, 60, + 121, 51, 63, 147, 768, 55, 295, 612, 894, 734, + 735, 735, 53, 54, 303, 26, 142, 90, 92, 279, + 142, 90, 121, 140, 146, 981, 148, 791, 401, 25, + 147, 350, 351, 352, 353, 92, 355, 356, 350, 351, + 352, 353, 276, 556, 349, 279, 107, 121, 92, 90, + 284, 285, 457, 1040, 288, 147, 377, 90, 379, 314, + 349, 295, 296, 55, 400, 354, 92, 325, 142, 303, + 1129, 1130, 105, 848, 147, 691, 142, 121, 147, 90, + 314, 90, 20, 398, 1109, 57, 509, 812, 403, 888, + 803, 142, 805, 516, 105, 121, 105, 1156, 279, 898, + 138, 433, 101, 1162, 1163, 528, 804, 140, 145, 512, + 513, 1098, 433, 775, 147, 349, 350, 351, 352, 353, + 354, 355, 356, 121, 92, 724, 458, 138, 680, 140, + 894, 140, 435, 1089, 141, 438, 147, 458, 147, 288, + 374, 1128, 461, 475, 139, 466, 401, 296, 92, 545, + 728, 547, 484, 121, 475, 90, 459, 502, 581, 582, + 716, 395, 55, 484, 398, 101, 400, 401, 745, 403, + 105, 92, 142, 476, 807, 90, 101, 121, 493, 435, + 813, 814, 485, 101, 981, 511, 521, 57, 611, 121, + 105, 512, 513, 719, 799, 131, 132, 133, 142, 433, + 121, 522, 92, 459, 90, 140, 609, 806, 1007, 443, + 444, 142, 147, 521, 716, 121, 612, 549, 521, 105, + 476, 142, 525, 51, 458, 140, 460, 461, 549, 485, + 142, 121, 147, 522, 142, 276, 51, 471, 279, 92, + 792, 475, 531, 1007, 504, 479, 1010, 550, 910, 911, + 484, 400, 584, 92, 140, 489, 659, 92, 983, 983, + 142, 147, 92, 622, 142, 688, 121, 819, 121, 525, + 90, 603, 51, 398, 142, 26, 536, 62, 403, 64, + 65, 880, 121, 51, 605, 105, 121, 801, 522, 142, + 545, 121, 547, 807, 550, 640, 874, 531, 99, 813, + 814, 15, 858, 936, 1103, 13, 780, 781, 782, 121, + 784, 545, 786, 547, 1113, 549, 719, 92, 443, 444, + 140, 744, 471, 557, 144, 728, 121, 147, 16, 881, + 479, 116, 117, 63, 860, 73, 74, 92, 659, 90, + 489, 764, 145, 656, 665, 1109, 121, 668, 669, 670, + 584, 92, 665, 15, 105, 668, 858, 612, 58, 59, + 679, 62, 319, 64, 65, 686, 121, 679, 145, 603, + 691, 692, 37, 38, 1087, 696, 691, 139, 612, 714, + 121, 142, 703, 121, 122, 142, 689, 138, 1086, 140, + 689, 15, 433, 144, 713, 947, 147, 745, 58, 59, + 656, 713, 142, 799, 17, 18, 714, 728, 557, 665, + 1072, 714, 668, 15, 371, 116, 117, 458, 92, 92, + 817, 142, 936, 979, 44, 951, 121, 16, 684, 141, + 686, 957, 665, 26, 475, 668, 141, 51, 15, 53, + 54, 55, 56, 484, 90, 679, 680, 121, 121, 90, + 873, 40, 41, 686, 775, 69, 906, 907, 18, 105, + 141, 716, 141, 504, 105, 15, 889, 508, 142, 142, + 139, 874, 804, 139, 734, 213, 214, 979, 141, 713, + 139, 142, 716, 804, 1040, 1041, 51, 44, 53, 54, + 55, 56, 121, 122, 140, 536, 587, 90, 539, 140, + 821, 147, 805, 1102, 69, 57, 147, 142, 549, 142, + 831, 800, 105, 834, 142, 142, 44, 836, 1044, 1045, + 994, 995, 996, 997, 836, 15, 115, 93, 142, 118, + 119, 14, 55, 15, 443, 444, 15, 858, 1040, 1041, + 145, 142, 1098, 858, 799, 138, 142, 140, 142, 805, + 142, 144, 812, 874, 147, 142, 15, 146, 792, 148, + 141, 15, 15, 90, 139, 799, 800, 801, 477, 478, + 804, 1127, 1128, 807, 808, 15, 57, 142, 105, 813, + 814, 319, 55, 141, 115, 819, 820, 118, 119, 910, + 911, 142, 15, 142, 551, 51, 1098, 139, 858, 833, + 126, 1, 836, 3, 16, 1131, 142, 126, 8, 9, + 969, 845, 846, 140, 14, 15, 16, 526, 115, 19, + 147, 118, 119, 580, 858, 1127, 1128, 16, 1154, 1155, + 90, 55, 1106, 371, 115, 139, 870, 118, 119, 15, + 597, 55, 123, 600, 144, 105, 142, 881, 882, 142, + 16, 51, 15, 908, 90, 142, 975, 976, 913, 51, + 981, 15, 142, 975, 976, 65, 142, 148, 1027, 105, + 142, 820, 142, 587, 908, 142, 801, 591, 142, 913, + 140, 144, 807, 808, 833, 142, 141, 147, 813, 814, + 16, 15, 15, 734, 735, 950, 845, 846, 522, 12, + 791, 5, 936, 115, 140, 1089, 118, 119, 1053, 791, + 51, 147, 946, 947, 40, 41, 950, 117, 1101, 119, + 954, 870, 818, 1040, 979, 1046, 115, 1088, 69, 118, + 119, 90, 979, 882, 146, 26, 148, 37, 38, 254, + 6, 975, 976, 977, 791, 979, 105, 587, 1007, 115, + 1004, 1072, 118, 119, 1086, -1, -1, 146, -1, 148, + 101, 102, 103, 804, -1, 1086, -1, 1088, 1089, -1, + -1, 812, 215, 51, -1, 53, 54, 55, 56, 222, + 146, 140, 148, -1, 1087, 1040, 1041, 128, 147, 115, + -1, 69, 118, 119, -1, -1, 1030, 946, 1032, 90, + -1, 1035, -1, -1, -1, 954, 1040, 1041, 1129, 1130, + 210, 936, -1, 551, 105, 115, 259, 858, 118, 119, + 146, 90, 148, 223, 224, 1144, 1145, -1, 977, 101, + 90, 1087, 1144, 1145, 791, 1156, 105, -1, -1, -1, + 90, 1162, 1163, 1098, -1, 105, 146, 138, 148, 140, + -1, -1, 1086, 144, -1, 105, 147, 129, 130, 131, + 132, 133, 1096, 1097, 1098, 26, 40, 41, 42, 43, + 44, 140, 1127, 1128, -1, -1, 276, 791, 147, 279, + 140, 1030, -1, 1032, 284, 285, 1035, 147, 288, -1, + 140, -1, -1, 1127, 1128, 295, 296, 147, 807, 808, + -1, -1, -1, 303, 813, 814, 349, -1, -1, -1, + 1144, 1145, 1146, 1004, -1, -1, 1007, -1, -1, 1010, + 363, 1012, -1, -1, 1158, 1159, -1, -1, -1, 90, + 839, 840, 61, 842, 843, 64, 65, 894, 381, 896, + -1, -1, 983, 900, 105, -1, -1, 1096, 1097, 349, + 350, 351, 352, 353, 354, 355, 356, 1004, 61, -1, + 1007, 64, 65, 1010, -1, 1012, -1, -1, -1, 1, + -1, 3, 4, 5, 374, -1, -1, 138, -1, 140, + 12, -1, 1073, 144, -1, -1, 147, 116, 117, -1, + -1, -1, -1, -1, -1, 395, -1, 1146, 398, -1, + 400, -1, -1, 403, -1, 915, 916, -1, 115, 1158, + 1159, 118, 119, 116, 117, -1, -1, -1, 1109, 51, + 1111, -1, 1113, 55, 1115, -1, 1073, 936, 63, 64, + 65, 988, 989, 433, -1, 142, -1, 480, 481, 146, + -1, 148, -1, 443, 444, 1086, 63, 64, 65, 81, + 959, -1, -1, 1010, -1, 1012, -1, 1148, 458, -1, + 460, 461, 1109, -1, 1111, -1, 1113, -1, 1115, -1, + -1, 471, 63, 64, 65, 475, -1, -1, -1, 479, + -1, 116, 117, -1, 484, -1, -1, 119, 531, 489, + 1004, -1, -1, 1007, -1, 538, 1010, 1007, 1012, 116, + 117, 1148, -1, 1060, -1, 115, 1063, -1, 118, 119, + -1, -1, 51, -1, 53, 54, 55, 56, -1, -1, + 115, -1, 522, 118, 119, 116, 117, 63, 64, 65, + 69, 531, 63, 64, 65, 145, 146, -1, 148, -1, + 63, 64, 65, -1, 83, -1, -1, -1, 1105, 549, + -1, 146, 1109, 148, 1111, 94, -1, 557, 1115, 1073, + -1, 100, 101, 102, 103, -1, 1076, 1077, 1078, -1, + 1080, 1081, 51, -1, 53, 54, 55, 56, 210, -1, + 116, 117, 121, -1, 584, 116, 117, -1, -1, 128, + 69, 1148, 131, 116, 117, 1109, -1, 1111, -1, 1113, + -1, 1115, -1, 603, 83, 144, -1, 51, -1, 53, + 54, 55, 56, -1, -1, 94, 63, 64, 65, -1, + -1, 100, 101, 102, 103, 69, 1136, 1137, 1138, 1139, + -1, -1, -1, -1, 1148, 678, -1, -1, -1, -1, + 1, -1, 3, 4, 5, -1, -1, 1157, -1, 128, + 94, 12, 131, -1, -1, -1, 288, 101, 102, 103, + -1, -1, -1, 295, 296, 144, -1, 44, -1, 116, + 117, 303, 63, 64, 65, -1, 719, -1, -1, 679, + 680, -1, 314, 115, 128, -1, 118, 119, -1, -1, + 51, -1, -1, -1, 55, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, -1, -1, -1, + -1, 88, 89, 713, 146, -1, 148, 349, -1, -1, + 81, -1, 354, -1, 101, 116, 117, -1, -1, -1, + -1, -1, -1, -1, 777, -1, -1, -1, -1, -1, + -1, -1, 374, -1, -1, 122, -1, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, -1, 119, -1, + -1, -1, -1, 395, -1, 142, -1, -1, 400, 401, + -1, 403, -1, 51, -1, 53, 54, 55, 56, -1, + 823, -1, -1, -1, 51, -1, 53, 54, 55, 56, + -1, 69, 792, -1, -1, -1, -1, -1, -1, -1, + 800, 801, 69, -1, 804, 848, -1, 807, 808, -1, + -1, 443, 444, 813, 814, -1, 94, 860, -1, 819, + 820, -1, 100, 101, 102, 103, -1, 94, 460, -1, + -1, -1, -1, 833, -1, -1, 836, -1, -1, 471, + -1, -1, 88, 89, -1, 845, 846, 479, -1, 210, + 128, 0, -1, 131, -1, 101, -1, 489, -1, -1, + -1, -1, -1, -1, 13, 14, 15, 16, 17, 18, + 870, 20, -1, -1, -1, -1, 25, 26, 27, -1, + -1, 881, 882, 129, 130, 131, 132, 133, 37, 38, + 522, 40, 41, 42, 43, 44, -1, -1, -1, 531, + 51, -1, 53, 54, 55, 56, -1, -1, 951, -1, + -1, -1, -1, 545, 957, 547, -1, -1, 69, 51, + -1, 53, 54, 55, 56, 557, -1, 288, -1, -1, + -1, -1, -1, -1, 295, 296, 936, 69, -1, -1, + -1, 90, 303, 94, -1, -1, 946, 947, -1, 100, + -1, -1, -1, 314, 954, -1, 105, -1, -1, -1, + -1, -1, 94, -1, -1, -1, 115, -1, 100, 118, + 119, -1, -1, -1, -1, 975, 976, 977, -1, -1, + 612, -1, -1, -1, -1, -1, -1, -1, 349, 138, + 139, -1, -1, 354, -1, 144, 145, 146, 147, 148, + -1, 1044, 1045, -1, -1, -1, -1, -1, -1, -1, + -1, 88, 89, 374, -1, 51, -1, 53, 54, 55, + 56, -1, -1, -1, 101, -1, -1, -1, 88, 89, + 1030, -1, 1032, 69, 395, 1035, -1, -1, -1, 400, + 401, 101, 403, -1, -1, -1, -1, -1, 680, 126, + 127, 128, 129, 130, 131, 132, 133, -1, 94, -1, + -1, -1, -1, -1, 100, 101, 102, 103, 128, 129, + 130, 131, 132, 133, -1, -1, 1, -1, 3, 4, + 5, -1, 443, 444, 716, -1, 1086, 12, 1131, -1, + -1, -1, 128, -1, -1, 131, 1096, 1097, -1, 460, + -1, -1, -1, -1, -1, -1, -1, -1, 144, -1, + 471, 1154, 1155, -1, -1, -1, -1, -1, 479, -1, + -1, -1, -1, -1, -1, -1, 51, -1, 489, -1, + 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1144, 1145, 1146, -1, 51, -1, + 53, 54, 55, 56, -1, -1, 81, -1, 1158, 1159, + 792, 522, -1, -1, -1, -1, 69, 799, 800, 801, + 531, -1, -1, -1, -1, 807, -1, -1, -1, -1, + -1, 813, 814, -1, 545, -1, 547, 819, 820, -1, + -1, 94, -1, -1, 119, -1, 557, 100, 101, 102, + 103, 833, -1, 51, -1, 53, 54, 55, 56, -1, + -1, -1, -1, 845, 846, -1, -1, -1, -1, -1, + -1, 69, -1, -1, -1, 128, -1, -1, 131, -1, + -1, -1, -1, -1, -1, -1, -1, 85, 870, 142, + -1, -1, -1, -1, -1, -1, 94, -1, -1, 881, + 882, 612, 100, 101, 102, 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 460, -1, 81, -1, -1, - 792, -1, -1, -1, -1, -1, 471, 799, 800, 801, - -1, -1, -1, -1, 479, 807, -1, -1, -1, -1, - -1, 813, 814, -1, 489, -1, -1, 819, 820, -1, - -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, - -1, 833, -1, -1, -1, -1, -1, 51, -1, 53, - 54, 55, 56, 845, 846, -1, -1, 522, -1, -1, - -1, -1, -1, -1, -1, 69, 531, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 868, -1, -1, -1, - 545, 85, 547, -1, -1, -1, -1, 879, 880, -1, - 94, -1, 557, -1, -1, 0, 100, 101, 102, 103, - -1, -1, -1, -1, -1, -1, -1, -1, 13, 14, - 15, 16, 17, 18, 906, 20, -1, -1, -1, 911, - 25, 26, 27, -1, 128, -1, 210, 131, -1, -1, - -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, - -1, -1, 934, -1, -1, -1, -1, 612, -1, -1, - -1, -1, 944, 945, -1, -1, 948, -1, -1, -1, - 952, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 966, -1, 968, -1, -1, -1, - -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 908, -1, -1, -1, + 128, 913, -1, 131, -1, 210, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, + -1, -1, -1, -1, 936, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 946, 947, -1, -1, 950, 680, + -1, -1, 954, -1, -1, -1, -1, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, + -1, -1, -1, 88, 89, 977, -1, 979, -1, -1, + -1, -1, -1, -1, -1, 716, 101, -1, -1, -1, + -1, -1, -1, 288, -1, -1, -1, -1, -1, -1, + 295, 296, -1, -1, -1, -1, -1, 122, 303, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 314, + -1, -1, -1, -1, -1, -1, -1, -1, 1030, -1, + 1032, -1, -1, 1035, -1, -1, -1, -1, 1040, 1041, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 105, -1, -1, -1, 288, -1, -1, -1, -1, -1, - 115, 295, 296, 118, 119, 680, -1, -1, -1, 303, - -1, -1, -1, -1, -1, -1, -1, 1019, -1, 1021, - 314, -1, 1024, 138, 139, -1, -1, -1, -1, 144, - 145, 146, 147, 148, 1, -1, 3, 4, 5, 6, - -1, 716, -1, -1, -1, 12, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 349, -1, -1, -1, -1, - 354, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 1074, 1075, 1076, -1, -1, -1, -1, -1, - 374, -1, -1, -1, 51, -1, -1, -1, 55, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 395, -1, -1, -1, -1, 400, 401, -1, 403, - -1, -1, -1, -1, 81, -1, -1, 792, 1120, -1, - -1, -1, -1, -1, 799, 800, 801, -1, -1, -1, - 1132, 1133, 807, -1, -1, -1, -1, -1, 813, 814, - -1, -1, -1, -1, 819, 820, -1, -1, -1, 443, - 444, -1, 119, -1, -1, -1, -1, -1, 833, 72, - 73, 74, 75, 76, 77, 78, 460, 80, 81, -1, - 845, 846, -1, -1, -1, 88, 89, 471, -1, -1, - -1, -1, -1, -1, -1, 479, -1, -1, 101, -1, - -1, -1, -1, 868, -1, 489, -1, -1, -1, -1, - -1, -1, -1, -1, 879, 880, -1, -1, -1, -1, - -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, -1, -1, -1, -1, -1, 522, -1, - -1, 906, -1, -1, -1, -1, 911, 531, -1, -1, - -1, -1, -1, 210, -1, -1, -1, -1, -1, -1, - -1, 545, -1, 547, -1, -1, -1, -1, -1, 934, - -1, -1, -1, 557, -1, -1, -1, -1, -1, 944, - 945, -1, -1, 948, -1, -1, -1, 952, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 966, -1, 968, -1, -1, -1, -1, -1, -1, - 1, -1, 3, -1, -1, -1, -1, -1, -1, -1, - -1, 12, -1, -1, -1, -1, -1, -1, 612, -1, - -1, 288, -1, -1, -1, -1, -1, -1, 295, 296, - -1, -1, -1, -1, -1, -1, 303, -1, -1, -1, - -1, -1, -1, -1, 1019, -1, 1021, 314, -1, 1024, - 51, -1, -1, -1, -1, -1, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, -1, -1, - -1, -1, 88, 89, -1, -1, -1, -1, -1, -1, - -1, -1, 349, -1, -1, 101, 680, 354, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 1074, - 1075, 1076, -1, -1, -1, -1, 122, 374, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 119, -1, - -1, -1, 716, -1, -1, -1, 142, -1, 395, -1, - -1, -1, -1, 400, 401, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1120, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1132, 1133, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 1, 460, 3, -1, -1, -1, 792, -1, - -1, -1, -1, -1, 471, 799, 800, 801, -1, 210, - -1, -1, 479, 807, -1, -1, -1, -1, -1, 813, - 814, -1, 489, -1, -1, 819, 820, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 833, - -1, -1, 51, -1, -1, -1, -1, -1, -1, -1, - -1, 845, 846, -1, -1, 522, -1, -1, -1, -1, - -1, -1, -1, -1, 531, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 868, -1, -1, -1, 545, -1, - 547, -1, -1, -1, -1, 879, 880, 288, -1, -1, - 557, -1, -1, -1, 295, 296, -1, -1, 44, -1, - -1, -1, 303, -1, -1, -1, -1, -1, -1, -1, - 119, -1, 906, -1, -1, -1, -1, 911, -1, -1, - -1, -1, -1, -1, -1, -1, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, -1, -1, - 934, -1, 88, 89, -1, 612, -1, -1, 349, -1, - 944, 945, -1, 354, 948, 101, -1, -1, 952, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 966, 374, 968, -1, 122, -1, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, -1, -1, - -1, -1, -1, -1, 395, -1, 142, -1, -1, 400, - -1, 210, 403, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 680, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1019, -1, 1021, -1, -1, - 1024, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 443, 444, -1, -1, -1, -1, -1, 716, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 460, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 471, -1, -1, -1, -1, -1, -1, -1, 479, 288, - 1074, 1075, 1076, -1, -1, -1, 295, 296, 489, -1, - -1, -1, -1, -1, 303, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 522, -1, -1, -1, 792, 1120, -1, -1, -1, - 531, -1, 799, 800, -1, -1, -1, -1, 1132, 1133, - 349, -1, -1, -1, -1, 354, -1, -1, -1, -1, - -1, -1, 819, 820, -1, -1, 557, -1, -1, -1, - -1, -1, -1, -1, -1, 374, 833, 72, 73, 74, - 75, 76, 77, -1, -1, 80, 81, -1, 845, 846, - -1, -1, -1, 88, 89, -1, 395, -1, -1, -1, - -1, 400, -1, -1, 403, -1, 101, -1, -1, -1, - -1, 868, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 879, 880, -1, -1, -1, -1, -1, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - -1, -1, -1, -1, 443, 444, -1, -1, -1, 906, - -1, -1, -1, -1, 911, -1, -1, -1, -1, -1, - -1, 460, -1, -1, -1, -1, -1, -1, 44, -1, - -1, -1, 471, -1, -1, -1, -1, -1, -1, -1, - 479, -1, -1, -1, -1, -1, -1, 944, 945, 680, - 489, 948, -1, -1, -1, 952, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, -1, 966, - -1, 968, 88, 89, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 522, -1, 101, -1, -1, -1, -1, - -1, -1, 531, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 122, -1, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 557, -1, - -1, -1, 1019, -1, 1021, -1, -1, 1024, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - -1, -1, -1, -1, 88, 89, -1, -1, -1, -1, - -1, 792, -1, -1, -1, -1, -1, 101, -1, 800, - 801, -1, -1, -1, -1, -1, 807, 1074, 1075, 1076, + -1, -1, -1, -1, 349, -1, -1, -1, -1, 354, + -1, 792, -1, -1, -1, -1, -1, -1, 799, 800, + 801, -1, -1, -1, -1, -1, 807, -1, -1, 374, -1, -1, 813, 814, -1, -1, -1, -1, 819, 820, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - -1, -1, 833, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 845, 846, -1, -1, -1, -1, - -1, -1, -1, 1120, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1132, 1133, 868, -1, -1, - -1, 680, -1, -1, 44, -1, -1, -1, 879, 880, - -1, -1, -1, -1, 8, 9, -1, -1, -1, -1, - 14, 15, 16, -1, -1, 19, -1, -1, -1, -1, - -1, -1, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, -1, -1, -1, -1, 88, 89, - -1, -1, 46, 47, 48, 49, -1, -1, -1, 53, - 54, 101, -1, 934, -1, -1, -1, -1, -1, -1, - -1, 65, 66, 944, 945, -1, -1, 948, -1, -1, - -1, 952, 122, -1, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, -1, 966, -1, -1, -1, -1, + -1, -1, -1, -1, 1096, 1097, 1098, -1, -1, -1, + 395, -1, 833, -1, -1, 400, 401, -1, 403, -1, + -1, -1, -1, -1, 845, 846, -1, -1, 51, -1, + 53, 54, 55, 56, -1, 1127, 1128, -1, -1, 51, + -1, 53, 54, 55, 56, -1, 69, -1, -1, 870, + -1, -1, -1, -1, 1146, -1, -1, 69, 443, 444, + 881, 882, 85, -1, -1, -1, 1158, 1159, -1, -1, + -1, 94, -1, 85, -1, 460, -1, 100, 101, 102, + 103, -1, 94, -1, -1, -1, 471, 908, 100, 101, + 102, 103, 913, -1, 479, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 489, 128, -1, -1, 131, -1, + -1, -1, -1, -1, -1, 936, 128, -1, -1, 131, + -1, -1, -1, -1, -1, 946, 947, -1, -1, 950, + -1, -1, -1, 954, -1, -1, 1, 522, 3, 4, + 5, 6, -1, -1, -1, -1, 531, 12, -1, -1, + -1, -1, -1, -1, -1, -1, 977, -1, 979, -1, + 545, -1, 547, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 557, -1, -1, -1, 1, -1, 3, -1, + -1, -1, -1, -1, -1, -1, 51, 12, -1, -1, + 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1030, + -1, 1032, -1, -1, 1035, -1, 81, -1, -1, 1040, + 1041, -1, -1, -1, -1, -1, 51, 612, -1, -1, + -1, -1, -1, -1, -1, -1, 51, 52, -1, -1, + 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 119, 70, 71, 72, 73, 74, + 75, 76, 77, -1, -1, 80, 81, -1, -1, -1, + -1, 86, 87, 88, 89, 1096, 1097, 1098, -1, -1, + -1, -1, -1, -1, -1, 100, 101, 102, -1, -1, + -1, -1, -1, -1, 119, 680, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1127, 1128, -1, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, + 135, 136, -1, -1, -1, 1146, -1, -1, 143, 144, + -1, 716, -1, -1, -1, -1, -1, 1158, 1159, 72, + 73, 74, 75, 76, 77, 210, -1, 80, 81, -1, + -1, -1, -1, -1, -1, 88, 89, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 792, -1, -1, -1, -1, -1, -1, - -1, 800, 801, 117, -1, -1, -1, -1, 807, -1, - -1, -1, -1, -1, 813, 814, -1, -1, -1, -1, - 819, 820, -1, -1, -1, -1, -1, -1, 1019, -1, - 1021, -1, -1, 1024, 833, -1, -1, -1, 51, 52, - -1, -1, 55, -1, -1, -1, 845, 846, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 70, 71, 72, - 73, 74, 75, 76, 77, -1, -1, 80, 81, 868, - -1, -1, -1, 86, 87, 88, 89, -1, -1, -1, - 879, 880, -1, 1074, 1075, -1, -1, 100, 101, 102, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 223, - 224, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, 135, 136, -1, -1, -1, -1, -1, 1120, - 143, 144, -1, -1, -1, 934, -1, -1, -1, -1, - -1, 1132, 1133, -1, -1, 944, 945, -1, 262, 263, - 264, 265, -1, 952, -1, -1, -1, -1, -1, -1, - -1, -1, 276, -1, -1, 279, -1, 966, -1, -1, - 284, 285, -1, -1, -1, -1, -1, -1, 51, 52, - -1, -1, 55, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 70, 71, 72, - 73, 74, 75, 76, 77, -1, -1, 80, 81, -1, - -1, -1, -1, 86, 87, 88, 89, -1, -1, -1, - 1019, -1, 1021, -1, -1, 1024, -1, 100, 101, 102, - -1, -1, -1, -1, -1, -1, 350, 351, 352, 353, - -1, 355, 356, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 210, -1, -1, -1, -1, -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 375, 135, 136, -1, -1, -1, -1, -1, -1, - 143, 144, 386, -1, -1, 1074, 1075, -1, -1, -1, - -1, -1, -1, -1, 398, -1, -1, -1, -1, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, -1, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, -1, -1, 433, - -1, 1120, -1, -1, -1, -1, -1, -1, -1, 443, - 444, -1, -1, 1132, 1133, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 458, -1, -1, 461, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 473, - -1, 475, -1, 477, 478, -1, -1, -1, -1, -1, - 484, -1, -1, -1, -1, -1, -1, -1, -1, 493, - -1, -1, 496, 497, -1, -1, 0, 501, -1, -1, - 504, -1, 506, -1, 508, 509, -1, -1, -1, 13, - 14, 15, 16, 17, 18, -1, 20, -1, -1, -1, - -1, 25, 526, 27, 28, 29, -1, -1, -1, -1, - -1, -1, 536, 37, 38, 539, 40, 41, 42, 43, - 44, -1, -1, -1, -1, 549, -1, -1, -1, -1, - -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, - -1, -1, 566, 567, -1, -1, -1, -1, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 584, -1, -1, -1, 88, 89, 90, -1, -1, 93, - -1, -1, -1, -1, -1, 99, -1, 101, -1, 603, - -1, 105, 606, -1, -1, -1, -1, -1, -1, 113, - -1, 115, -1, -1, 118, 119, -1, -1, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - -1, -1, -1, -1, -1, 139, 140, 141, 142, -1, - -1, 145, 146, 147, 148, -1, -1, -1, -1, -1, + 133, -1, -1, -1, -1, -1, -1, 792, -1, -1, + -1, -1, -1, -1, 799, 800, 801, -1, -1, -1, + -1, -1, 807, 288, -1, -1, -1, -1, 813, 814, + 295, 296, -1, -1, 819, 820, -1, -1, 303, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 833, 314, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 845, 846, -1, 288, -1, -1, -1, -1, -1, -1, + 295, 296, -1, -1, -1, -1, -1, -1, 303, -1, + -1, -1, -1, -1, 349, 870, -1, -1, -1, 354, + -1, -1, -1, -1, -1, -1, 881, 882, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 374, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 908, 349, -1, -1, -1, 913, 354, + 395, -1, -1, -1, -1, 400, 401, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 374, + -1, 936, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 946, 947, -1, -1, 950, -1, -1, -1, 954, + 395, 1, -1, 3, -1, 400, -1, -1, 403, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 977, -1, 979, 460, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 471, -1, -1, -1, + -1, -1, -1, -1, 479, -1, -1, -1, 443, 444, + -1, 51, -1, -1, 489, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 460, -1, -1, -1, 44, + -1, -1, -1, -1, -1, 1030, 471, 1032, -1, -1, + 1035, -1, -1, -1, 479, 1040, 1041, 522, -1, -1, + -1, -1, -1, -1, 489, -1, 531, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, + 545, -1, 547, 88, 89, -1, -1, -1, -1, 119, + -1, -1, 557, -1, -1, -1, 101, 522, -1, -1, + -1, -1, -1, -1, -1, -1, 531, -1, -1, -1, + -1, 1096, 1097, 1098, -1, -1, -1, 122, -1, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, + -1, -1, 557, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1127, 1128, -1, -1, -1, 612, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1146, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1158, 1159, -1, -1, -1, -1, -1, + 210, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, 19, -1, 21, 22, - 23, 24, -1, -1, -1, 679, -1, 30, 31, 32, - 33, 34, 35, 36, -1, -1, 39, 691, -1, -1, - 694, 695, -1, -1, -1, 48, 49, 50, 51, 52, - 53, 54, 55, 56, -1, 58, 59, 60, -1, 713, - 63, -1, -1, 66, 67, -1, 69, -1, -1, -1, - -1, 725, -1, -1, -1, -1, -1, -1, -1, -1, - 734, 735, -1, -1, 44, -1, -1, -1, 91, -1, + 23, 24, -1, -1, -1, 680, -1, 30, 31, 32, + 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, + -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, + 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, + 63, 716, -1, 66, 67, 680, 69, -1, 288, -1, + -1, -1, -1, -1, -1, 295, 296, -1, -1, -1, + -1, -1, -1, 303, -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, -1, -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, - -1, 114, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, -1, -1, -1, -1, 88, 89, - -1, 134, -1, -1, -1, -1, -1, -1, -1, 142, - -1, 101, 796, -1, -1, -1, -1, 801, 802, -1, - 804, -1, -1, 807, 808, -1, -1, -1, 812, 813, - 814, -1, 122, -1, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, -1, -1, -1, -1, -1, -1, - -1, -1, 836, -1, -1, 839, 840, -1, 842, 843, + -1, 114, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 349, + -1, 134, -1, -1, 354, -1, -1, 792, -1, 142, + -1, -1, -1, -1, 799, 800, -1, -1, -1, -1, + -1, -1, -1, -1, 374, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 819, 820, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 395, -1, 792, 833, -1, + 400, -1, -1, 403, -1, 800, 801, -1, -1, -1, + 845, 846, 807, -1, -1, -1, -1, -1, 813, 814, + -1, -1, -1, -1, 819, 820, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 870, -1, -1, 833, -1, + -1, -1, -1, 443, 444, -1, 881, 882, -1, -1, + 845, 846, -1, -1, -1, -1, -1, -1, -1, -1, + 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 471, -1, 908, -1, 870, -1, -1, 913, 479, + -1, -1, -1, -1, -1, -1, 881, 882, -1, 489, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 867, -1, -1, -1, 871, -1, -1, - 51, 52, -1, -1, 55, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 888, 889, -1, -1, -1, 70, - 71, 72, 73, 74, 75, 76, 77, 901, 902, 80, - 81, -1, -1, -1, -1, 86, 87, 88, 89, -1, - -1, -1, -1, 917, -1, -1, -1, -1, -1, 100, - 101, 102, -1, 927, 928, -1, -1, -1, -1, -1, - 934, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 957, 135, 136, -1, -1, -1, -1, - 964, 965, 143, 144, -1, -1, -1, -1, 972, -1, - -1, -1, 0, 1, -1, 3, 4, 5, 6, 7, + -1, 946, 947, -1, -1, 950, -1, -1, -1, 954, + -1, -1, 522, -1, -1, -1, -1, -1, -1, -1, + -1, 531, 44, -1, -1, -1, -1, -1, -1, -1, + -1, 936, 977, -1, 979, -1, -1, -1, -1, -1, + -1, 946, 947, -1, -1, 950, -1, 557, -1, 954, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, -1, -1, -1, -1, 88, 89, -1, -1, + -1, -1, 977, -1, -1, -1, -1, -1, -1, 101, + -1, -1, -1, -1, -1, 1030, -1, 1032, -1, -1, + 1035, -1, -1, -1, -1, 1040, 1041, -1, -1, -1, + 122, -1, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1030, -1, 1032, -1, -1, + 1035, -1, -1, -1, -1, -1, -1, -1, -1, 8, + 9, -1, -1, -1, -1, 14, 15, 16, -1, -1, + 19, 1096, 1097, 1098, -1, -1, -1, -1, -1, -1, + -1, -1, 16, -1, -1, -1, -1, -1, -1, -1, + 680, -1, -1, -1, -1, -1, -1, 46, 47, 48, + 49, -1, 1127, 1128, 53, 54, 40, 41, -1, -1, + -1, 1096, 1097, -1, -1, -1, 65, 66, -1, -1, + -1, 1146, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1158, 1159, -1, -1, -1, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + -1, -1, -1, -1, 88, 89, 90, -1, -1, 93, + -1, 1146, -1, -1, -1, -1, -1, 101, 117, -1, + -1, 105, -1, 1158, 1159, -1, -1, -1, -1, -1, + -1, 115, -1, -1, 118, 119, -1, -1, 122, -1, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + -1, -1, 792, -1, -1, -1, 140, 141, 142, -1, + 800, 801, 146, 147, 148, -1, -1, 807, -1, -1, + -1, -1, -1, 813, 814, -1, -1, -1, -1, 819, + 820, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 833, 72, 73, 74, 75, 76, 77, + 78, -1, 80, 81, -1, 845, 846, -1, -1, -1, + 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 101, 223, 224, -1, -1, -1, -1, + 870, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 881, 882, -1, -1, -1, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, -1, -1, -1, -1, + -1, -1, -1, 262, 263, 264, 265, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 276, -1, -1, + 279, -1, -1, -1, -1, 284, 285, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 936, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 946, 947, -1, -1, + -1, -1, -1, -1, 954, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 977, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 350, 351, 352, 353, -1, 355, 356, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 375, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 386, -1, -1, + 1030, -1, 1032, -1, -1, 1035, -1, -1, -1, 398, + -1, -1, -1, -1, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, -1, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, -1, -1, 433, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 443, 444, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1096, 1097, -1, 458, + -1, -1, 461, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 473, -1, 475, -1, 477, 478, + -1, -1, -1, -1, -1, 484, -1, -1, -1, -1, + -1, -1, -1, -1, 493, -1, -1, 496, 497, -1, + -1, -1, 501, -1, -1, 504, 1146, 506, -1, 508, + 509, -1, -1, -1, -1, -1, -1, -1, 1158, 1159, + -1, -1, -1, -1, -1, -1, -1, 526, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 536, -1, -1, + 539, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 549, -1, -1, -1, -1, -1, -1, 72, 73, 74, + 75, 76, 77, -1, -1, 80, 81, 566, 567, -1, + -1, -1, -1, 88, 89, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 584, 101, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 603, -1, -1, 606, -1, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 13, 14, 15, 16, 17, 18, -1, 20, -1, + -1, -1, -1, 25, -1, 27, 28, 29, -1, -1, + -1, -1, -1, -1, -1, 37, 38, -1, 40, 41, + 42, 43, 44, -1, -1, -1, -1, -1, -1, -1, + 679, -1, -1, -1, -1, 57, -1, -1, -1, -1, + -1, -1, 691, -1, -1, 694, 695, -1, -1, -1, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, -1, -1, 713, -1, 88, 89, 90, -1, + -1, 93, -1, -1, -1, -1, 725, 99, -1, 101, + -1, -1, -1, 105, -1, 734, 735, -1, -1, -1, + -1, 113, -1, 115, -1, -1, 118, 119, -1, -1, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, -1, -1, -1, -1, -1, 139, 140, 141, + 142, -1, -1, 145, 146, 147, 148, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 796, -1, -1, + -1, -1, 801, 802, -1, 804, -1, -1, 807, 808, + -1, -1, -1, 812, 813, 814, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 836, -1, -1, + 839, 840, -1, 842, 843, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 858, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 869, -1, -1, -1, 873, -1, -1, 51, 52, -1, + -1, 55, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 890, 891, -1, -1, -1, 70, 71, 72, 73, + 74, 75, 76, 77, 903, 904, 80, 81, -1, -1, + -1, -1, 86, 87, 88, 89, -1, -1, -1, -1, + 919, -1, -1, -1, -1, -1, 100, 101, 102, -1, + 929, 930, -1, -1, -1, -1, -1, 936, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 959, 135, 136, -1, -1, -1, -1, -1, 967, 143, + 144, -1, -1, -1, -1, -1, 975, 976, -1, -1, + -1, -1, 0, 1, 983, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 19, -1, 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, @@ -5231,14 +5455,14 @@ static const yytype_int16 yycheck[] = 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, - -1, -1, -1, 91, -1, 1069, 94, 95, -1, 97, - 98, -1, 100, -1, -1, -1, 104, -1, 106, 107, + -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, + 98, -1, 100, -1, -1, -1, 104, 1086, 106, 107, 108, -1, 110, 111, 112, 0, 114, 115, -1, -1, 118, 119, -1, -1, -1, -1, -1, -1, 13, 14, 15, 16, 17, 18, -1, 20, 134, 135, 136, -1, - 25, 26, 27, 28, 1118, 1119, -1, -1, 146, -1, + 25, 26, 27, 28, -1, -1, -1, -1, 146, -1, 148, -1, 37, 38, -1, 40, 41, 42, 43, 44, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1144, 1145, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, @@ -5526,50 +5750,12 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, -1, -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, 115, - -1, -1, 118, 119, -1, -1, 3, 4, 5, 6, - 7, 8, 9, 10, 11, -1, -1, -1, 134, 135, - 136, -1, 19, -1, 21, 22, 23, 24, -1, -1, - 146, -1, 148, 30, 31, 32, 33, 34, 35, 36, - -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, - -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, - -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, - 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, - -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, - 97, 98, -1, -1, -1, -1, -1, 104, -1, 106, - 107, 108, -1, 110, 111, 112, -1, 114, 115, -1, - -1, 118, 119, -1, -1, 3, 4, 5, 6, 7, - 8, 9, 10, 11, -1, -1, -1, 134, 135, 136, - -1, 19, -1, 21, 22, 23, 24, -1, -1, 146, - -1, 148, 30, 31, 32, 33, 34, 35, 36, -1, - -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, - 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, - 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, - -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, - -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, - 98, -1, -1, -1, -1, -1, 104, -1, 106, 107, - 108, -1, 110, 111, 112, -1, 114, 115, -1, -1, - 118, 119, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 134, 135, 136, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 148, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, -1, -1, -1, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, - -1, -1, -1, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 69, 70, 71, - 72, 73, 74, 75, 76, 77, -1, -1, 80, 81, - -1, -1, -1, -1, 86, 87, 88, 89, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, - 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, -1, 135, 136, -1, -1, -1, -1, -1, - -1, 143, 144, 3, 4, 5, 6, 7, 8, 9, + -1, -1, 118, 119, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 134, 135, + 136, -1, -1, -1, -1, 141, 142, -1, -1, -1, + 146, -1, 148, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, 19, - -1, 21, 22, 23, 24, -1, 26, -1, -1, -1, + -1, 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, @@ -5577,61 +5763,52 @@ static const yytype_int16 yycheck[] = 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, - 100, -1, 102, 103, 104, -1, 106, 107, 108, -1, - 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 134, 135, 136, -1, 138, -1, - -1, -1, -1, -1, 144, 3, 4, 5, 6, 7, - 8, 9, 10, 11, -1, -1, -1, -1, -1, -1, - -1, 19, -1, 21, 22, 23, 24, -1, 26, -1, - -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, - -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, - 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, - 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, - -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, - -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, - 98, -1, 100, -1, 102, 103, 104, -1, 106, 107, - 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, - -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, - 10, 11, -1, -1, -1, -1, 134, 135, 136, 19, - 138, 21, 22, 23, 24, -1, 144, -1, -1, -1, - 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, - -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, - 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, - 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, - 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, - -1, 91, 92, -1, 94, 95, -1, 97, 98, -1, - 100, -1, 102, 103, 104, -1, 106, 107, 108, -1, - 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, - -1, 121, 3, 4, 5, 6, 7, 8, 9, 10, + -1, -1, -1, -1, 104, -1, 106, 107, 108, -1, + 110, 111, 112, -1, 114, 115, -1, -1, 118, 119, + -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, 134, 135, 136, -1, 19, -1, - 21, 22, 23, 24, 144, -1, -1, -1, -1, 30, + 21, 22, 23, 24, -1, -1, 146, -1, 148, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, - 91, 92, -1, 94, 95, -1, 97, 98, -1, 100, - -1, 102, 103, 104, -1, 106, 107, 108, -1, 110, - 111, 112, -1, 114, -1, -1, -1, -1, -1, -1, - 121, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 91, -1, -1, 94, 95, -1, 97, 98, -1, -1, + -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, + 111, 112, -1, 114, 115, -1, -1, 118, 119, -1, + -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, 134, 135, 136, -1, 19, -1, 21, - 22, 23, 24, 144, -1, -1, -1, -1, 30, 31, + 22, 23, 24, -1, -1, 146, -1, 148, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, - -1, -1, 94, 95, -1, 97, 98, -1, 100, -1, - 102, 103, 104, -1, 106, 107, 108, -1, 110, 111, - 112, -1, 114, -1, -1, -1, -1, -1, -1, 3, + -1, -1, 94, 95, -1, 97, 98, -1, -1, -1, + -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, + 112, -1, 114, 115, -1, -1, 118, 119, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 134, 135, 136, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 148, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, -1, -1, -1, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, -1, -1, -1, -1, -1, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 69, 70, 71, 72, 73, 74, 75, + 76, 77, -1, -1, 80, 81, -1, -1, -1, -1, + 86, 87, 88, 89, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 100, 101, 102, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, -1, 135, + 136, -1, -1, -1, -1, -1, -1, 143, 144, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, - -1, -1, 134, 135, 136, 19, -1, 21, 22, 23, - 24, -1, 144, -1, -1, -1, 30, 31, 32, 33, + -1, -1, -1, -1, -1, 19, -1, 21, 22, 23, + 24, -1, 26, -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, @@ -5642,125 +5819,10 @@ static const yytype_int16 yycheck[] = 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 134, 135, 136, -1, -1, -1, -1, -1, -1, -1, + 134, 135, 136, -1, 138, -1, -1, -1, -1, -1, 144, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, -1, -1, -1, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, - -1, -1, -1, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, -1, -1, -1, -1, -1, - -1, 63, -1, -1, -1, -1, -1, 69, 70, 71, - 72, 73, 74, 75, 76, 77, -1, -1, 80, 81, - -1, -1, -1, -1, 86, 87, 88, 89, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, - 102, -1, -1, -1, -1, 107, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, -1, 135, 136, -1, -1, -1, -1, -1, - -1, 143, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, -1, -1, -1, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, -1, - -1, -1, -1, -1, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, -1, -1, -1, -1, - -1, -1, 63, -1, -1, -1, -1, -1, -1, 70, - 71, 72, 73, 74, 75, 76, 77, -1, -1, 80, - 81, -1, -1, -1, -1, 86, 87, 88, 89, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, - 101, 102, -1, -1, -1, -1, 107, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, 135, 136, -1, -1, -1, -1, - -1, -1, 143, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, -1, -1, -1, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - -1, -1, -1, -1, -1, 45, 46, 47, 48, 49, - 50, 51, 52, -1, -1, 55, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, - 80, 81, -1, -1, -1, -1, 86, 87, 88, 89, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 100, 101, 102, -1, -1, -1, 106, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, -1, 135, 136, -1, -1, -1, - -1, -1, -1, 143, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, - -1, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, -1, -1, -1, -1, -1, 45, 46, 47, 48, - 49, 50, 51, 52, -1, -1, 55, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 70, 71, 72, 73, 74, 75, 76, 77, -1, - -1, 80, 81, -1, -1, -1, -1, 86, 87, 88, - 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 100, 101, 102, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, 135, 136, -1, -1, - -1, -1, -1, -1, 143, 3, 4, 5, 6, 7, - 8, 9, 10, 11, -1, -1, -1, -1, -1, -1, - -1, 19, -1, 21, 22, 23, 24, -1, -1, -1, - -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, - -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, - 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, - 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, - -1, 69, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, - 98, -1, -1, -1, -1, -1, 104, -1, 106, 107, - 108, -1, 110, 111, 112, -1, 114, -1, -1, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, - -1, -1, -1, -1, -1, 19, 134, 21, 22, 23, - 24, -1, -1, -1, 142, -1, 30, 31, 32, 33, - 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, - -1, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, - -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, - 94, 95, -1, 97, 98, -1, 100, -1, -1, -1, - 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, - 114, -1, -1, -1, -1, -1, -1, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, - 134, 135, 136, 19, -1, 21, 22, 23, 24, -1, - -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, - 36, -1, -1, 39, -1, -1, -1, -1, -1, 45, - -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, - 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, - -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, - -1, 97, 98, -1, 100, -1, -1, -1, 104, -1, - 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, - -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, - 8, 9, 10, 11, -1, -1, -1, -1, 134, 135, - 136, 19, -1, 21, 22, 23, 24, -1, -1, -1, - -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, - -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, - 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, - 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, - -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, - -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, - 98, -1, 100, -1, 102, 103, 104, -1, 106, 107, - 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, - -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, - 10, 11, -1, -1, -1, -1, 134, 135, 136, 19, - -1, 21, 22, 23, 24, -1, -1, -1, -1, -1, - 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, - -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, - 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, - 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, - 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, - -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, - 100, -1, 102, 103, 104, -1, 106, 107, 108, -1, - 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, - -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, - -1, -1, -1, -1, 134, 135, 136, 19, -1, 21, - 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, + -1, -1, -1, -1, -1, -1, -1, 19, -1, 21, + 22, 23, 24, -1, 26, -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, @@ -5771,19 +5833,31 @@ static const yytype_int16 yycheck[] = 102, 103, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, - -1, -1, 134, 135, 136, 19, -1, 21, 22, 23, - 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, + -1, -1, 134, 135, 136, 19, 138, 21, 22, 23, + 24, -1, 144, -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, + 84, 85, -1, -1, -1, -1, -1, 91, 92, -1, 94, 95, -1, 97, 98, -1, 100, -1, 102, 103, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, - 114, -1, -1, -1, -1, -1, -1, 3, 4, 5, - 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, - 134, 135, 136, 19, -1, 21, 22, 23, 24, -1, + 114, -1, -1, -1, -1, -1, -1, 121, 3, 4, + 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, + 134, 135, 136, -1, 19, -1, 21, 22, 23, 24, + 144, -1, -1, -1, -1, 30, 31, 32, 33, 34, + 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, + -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, + 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, + -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, + 85, -1, -1, -1, -1, -1, 91, 92, -1, 94, + 95, -1, 97, 98, -1, 100, -1, 102, 103, 104, + -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, + -1, -1, -1, -1, -1, -1, 121, 3, 4, 5, + 6, 7, 8, 9, 10, 11, -1, -1, -1, 134, + 135, 136, -1, 19, -1, 21, 22, 23, 24, 144, -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, @@ -5791,11 +5865,11 @@ static const yytype_int16 yycheck[] = 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, - -1, 97, 98, -1, 100, -1, 102, -1, 104, -1, + -1, 97, 98, -1, 100, -1, 102, 103, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, 134, 135, - 136, 19, -1, 21, 22, 23, 24, -1, -1, -1, + 136, 19, -1, 21, 22, 23, 24, -1, 144, -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, @@ -5803,137 +5877,397 @@ static const yytype_int16 yycheck[] = -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, - 98, -1, -1, -1, 102, 103, 104, -1, 106, 107, + 98, -1, 100, -1, 102, 103, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, - -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, - 10, 11, -1, -1, -1, -1, 134, 135, 136, 19, - -1, 21, 22, 23, 24, -1, -1, -1, -1, -1, - 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, - -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, - 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, - 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, - 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, - -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, - 100, -1, 102, -1, 104, -1, 106, 107, 108, -1, - 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, - -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, - -1, -1, -1, -1, 134, 135, 136, 19, -1, 21, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 134, 135, 136, -1, + -1, -1, -1, -1, -1, -1, 144, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, -1, -1, -1, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, -1, -1, -1, -1, -1, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, -1, -1, -1, -1, -1, -1, 63, -1, -1, + -1, -1, -1, 69, 70, 71, 72, 73, 74, 75, + 76, 77, -1, -1, 80, 81, -1, -1, -1, -1, + 86, 87, 88, 89, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 100, 101, 102, -1, -1, -1, + -1, 107, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, -1, 135, + 136, -1, -1, -1, -1, -1, -1, 143, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, -1, -1, -1, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, -1, -1, -1, -1, -1, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, -1, -1, -1, -1, -1, -1, 63, -1, + -1, -1, -1, -1, -1, 70, 71, 72, 73, 74, + 75, 76, 77, -1, -1, 80, 81, -1, -1, -1, + -1, 86, 87, 88, 89, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 100, 101, 102, -1, -1, + -1, -1, 107, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, + 135, 136, -1, -1, -1, -1, -1, -1, 143, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, -1, -1, -1, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, -1, -1, -1, -1, + -1, 45, 46, 47, 48, 49, 50, 51, 52, -1, + -1, 55, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 70, 71, 72, 73, + 74, 75, 76, 77, -1, -1, 80, 81, -1, -1, + -1, -1, 86, 87, 88, 89, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 100, 101, 102, -1, + -1, -1, 106, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + -1, 135, 136, -1, -1, -1, -1, -1, -1, 143, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, -1, -1, -1, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, -1, -1, -1, + -1, -1, 45, 46, 47, 48, 49, 50, 51, 52, + -1, -1, 55, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 70, 71, 72, + 73, 74, 75, 76, 77, -1, -1, 80, 81, -1, + -1, -1, -1, 86, 87, 88, 89, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, -1, 135, 136, -1, -1, -1, -1, -1, -1, + 143, 3, 4, 5, 6, 7, 8, 9, 10, 11, + -1, -1, -1, -1, -1, -1, -1, 19, -1, 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, - -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, + -1, 63, -1, -1, 66, 67, -1, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, -1, -1, - 102, -1, 104, -1, 106, 107, 108, -1, 110, 111, - 112, -1, 114, -1, -1, -1, -1, -1, -1, 3, - 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, - -1, -1, 134, 135, 136, 19, -1, 21, 22, 23, - 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, - 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, - -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, - 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, - -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, - 94, 95, -1, 97, 98, -1, 100, -1, -1, -1, - 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, - 114, -1, -1, -1, -1, -1, -1, 3, 4, 5, - 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, - 134, 135, 136, 19, -1, 21, 22, 23, 24, -1, - -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, - 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, - -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, - 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, - 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, - -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, - -1, 97, 98, -1, 100, -1, -1, -1, 104, -1, - 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, - -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, - 8, 9, 10, 11, -1, -1, -1, -1, 134, 135, - 136, 19, -1, 21, 22, 23, 24, -1, -1, -1, - -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, + -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, + 112, -1, 114, -1, -1, 3, 4, 5, 6, 7, + 8, 9, 10, 11, -1, -1, -1, -1, -1, -1, + -1, 19, 134, 21, 22, 23, 24, -1, -1, -1, + 142, -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, + 98, -1, 100, -1, 102, -1, 104, -1, 106, 107, + 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 134, 135, 136, -1, + -1, -1, 19, 141, 21, 22, 23, 24, -1, -1, + -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, + -1, -1, 39, -1, -1, -1, -1, -1, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, + 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, + -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, + 97, 98, -1, 100, -1, -1, -1, 104, -1, 106, + 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, + -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, -1, -1, -1, 134, 135, 136, + 19, -1, 21, 22, 23, 24, -1, -1, -1, -1, + -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, + 39, -1, -1, -1, -1, -1, 45, -1, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, + 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, + 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, + -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, + -1, 100, -1, -1, -1, 104, -1, 106, 107, 108, + -1, 110, 111, 112, -1, 114, -1, -1, -1, -1, + -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, + 11, -1, -1, -1, -1, 134, 135, 136, 19, -1, + 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, + 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, + -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, + 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, + -1, -1, 63, -1, -1, 66, 67, -1, 69, 70, + 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, + 91, -1, -1, 94, 95, -1, 97, 98, -1, 100, + -1, 102, 103, 104, -1, 106, 107, 108, -1, 110, + 111, 112, -1, 114, -1, -1, -1, -1, -1, -1, + 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, + -1, -1, -1, 134, 135, 136, 19, -1, 21, 22, + 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, + 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, + -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, + 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, + 63, -1, -1, 66, 67, -1, 69, 70, 71, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, + -1, 94, 95, -1, 97, 98, -1, 100, -1, 102, + 103, 104, -1, 106, 107, 108, -1, 110, 111, 112, + -1, 114, -1, -1, -1, -1, -1, -1, 3, 4, + 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, + -1, 134, 135, 136, 19, -1, 21, 22, 23, 24, + -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, + 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, + -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, + 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, + -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, + 85, -1, -1, -1, -1, -1, 91, -1, -1, 94, + 95, -1, 97, 98, -1, 100, -1, 102, 103, 104, + -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, + -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, + 7, 8, 9, 10, 11, -1, -1, -1, -1, 134, + 135, 136, 19, -1, 21, 22, 23, 24, -1, -1, + -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, + -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, + -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, + -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, + 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, + -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, + 97, 98, -1, 100, -1, 102, 103, 104, -1, 106, + 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, + -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, + 9, 10, 11, -1, -1, -1, -1, 134, 135, 136, + 19, -1, 21, 22, 23, 24, -1, -1, -1, -1, + -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, + 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, + 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, + 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, + 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, + -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, + -1, 100, -1, 102, -1, 104, -1, 106, 107, 108, + -1, 110, 111, 112, -1, 114, -1, -1, -1, -1, + -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, + 11, -1, -1, -1, -1, 134, 135, 136, 19, -1, + 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, + 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, + -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, + 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, + -1, -1, 63, -1, -1, 66, 67, -1, 69, 70, + 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, + 91, -1, -1, 94, 95, -1, 97, 98, -1, -1, + -1, 102, 103, 104, -1, 106, 107, 108, -1, 110, + 111, 112, -1, 114, -1, -1, -1, -1, -1, -1, + 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, + -1, -1, -1, 134, 135, 136, 19, -1, 21, 22, + 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, + 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, + -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, + 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, + 63, -1, -1, 66, 67, -1, 69, 70, 71, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, + -1, 94, 95, -1, 97, 98, -1, 100, -1, 102, + -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, + -1, 114, -1, -1, -1, -1, -1, -1, 3, 4, + 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, + -1, 134, 135, 136, 19, -1, 21, 22, 23, 24, + -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, + 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, + -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, + 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, + -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, + 85, -1, -1, -1, -1, -1, 91, -1, -1, 94, + 95, -1, 97, 98, -1, -1, -1, 102, -1, 104, + -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, + -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, + 7, 8, 9, 10, 11, -1, -1, -1, -1, 134, + 135, 136, 19, -1, 21, 22, 23, 24, -1, -1, + -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, + -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, + -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, + -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, + 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, + -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, + 97, 98, -1, 100, -1, -1, -1, 104, -1, 106, + 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, + -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, + 9, 10, 11, -1, -1, -1, -1, 134, 135, 136, + 19, -1, 21, 22, 23, 24, -1, -1, -1, -1, + -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, + 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, + 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, + 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, + 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, + -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, + -1, 100, -1, -1, -1, 104, -1, 106, 107, 108, + -1, 110, 111, 112, -1, 114, -1, -1, -1, -1, + -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, + 11, -1, -1, -1, -1, 134, 135, 136, 19, -1, + 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, + 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, + -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, + 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, + -1, -1, 63, -1, -1, 66, 67, -1, 69, 70, + 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, + 91, -1, -1, 94, 95, -1, 97, 98, -1, 100, + -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, + 111, 112, -1, 114, -1, -1, -1, -1, -1, -1, + 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, + -1, -1, -1, 134, 135, 136, 19, -1, 21, 22, + 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, + 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, + -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, + 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, + 63, -1, -1, 66, 67, -1, 69, 70, 71, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, + -1, 94, 95, -1, 97, 98, -1, 100, -1, -1, + -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, + -1, 114, -1, -1, -1, -1, -1, -1, 3, 4, + 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, + -1, 134, 135, 136, 19, -1, 21, 22, 23, 24, + -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, + 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, + -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, + 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, + -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, + 85, -1, -1, -1, -1, -1, 91, -1, -1, 94, + 95, -1, 97, 98, -1, 100, -1, -1, -1, 104, + -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, + -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, + 7, 8, 9, 10, 11, -1, -1, -1, -1, 134, + 135, 136, 19, -1, 21, 22, 23, 24, -1, -1, + -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, + -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, + -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, + -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, + 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, + -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, + 97, 98, -1, -1, -1, -1, -1, 104, -1, 106, + 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, + -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, + 9, 10, 11, -1, -1, -1, -1, 134, 135, 136, + 19, -1, 21, 22, 23, 24, -1, -1, -1, -1, + -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, + 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, + 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, + 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, + 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, + -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, + -1, -1, -1, -1, -1, 104, -1, 106, 107, 108, + -1, 110, 111, 112, -1, 114, -1, -1, -1, -1, + -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, + 11, -1, -1, -1, -1, 134, 135, 136, 19, -1, + 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, + 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, + -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, + 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, + -1, -1, 63, -1, 16, 66, 67, -1, 69, 70, + 71, -1, -1, -1, 26, -1, -1, -1, -1, -1, + -1, -1, -1, 84, 85, -1, -1, -1, 40, 41, + 91, -1, -1, 94, 95, -1, 97, 98, -1, -1, + -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, + 111, 112, -1, 114, -1, -1, -1, -1, -1, -1, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, -1, 134, 135, 136, 88, 89, 90, -1, + 92, 93, -1, -1, -1, -1, -1, -1, -1, 101, + -1, -1, -1, 105, -1, -1, -1, -1, 16, -1, + -1, -1, -1, 115, -1, -1, 118, 119, -1, 121, + 122, -1, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 40, 41, -1, -1, 138, -1, 140, 141, + 142, -1, 144, -1, 146, 147, 148, -1, -1, 57, + -1, -1, 60, -1, -1, 63, -1, -1, -1, -1, + -1, -1, -1, -1, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, -1, -1, -1, -1, + 88, 89, 90, -1, -1, 93, -1, -1, 16, -1, + -1, -1, -1, 101, -1, -1, -1, 105, -1, 107, + -1, -1, -1, -1, -1, -1, -1, 115, -1, -1, + 118, 119, 40, 41, 122, -1, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, -1, -1, -1, -1, + -1, -1, 140, 141, 142, -1, -1, -1, 146, 147, + 148, -1, -1, -1, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, -1, -1, -1, -1, + 88, 89, 90, -1, -1, 93, -1, -1, 16, -1, + -1, -1, -1, 101, -1, -1, -1, 105, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 115, -1, -1, + 118, 119, 40, 41, 122, -1, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, -1, -1, -1, -1, + -1, -1, 140, 141, 142, -1, -1, -1, 146, 147, + 148, -1, -1, -1, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, -1, -1, -1, -1, + 88, 89, 90, -1, -1, 93, -1, -1, 16, -1, + -1, -1, -1, 101, -1, -1, -1, 105, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 115, -1, -1, + 118, 119, 40, 41, 122, -1, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, -1, -1, -1, -1, + -1, -1, 140, 141, 142, -1, -1, -1, 146, 147, + 148, -1, -1, -1, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, -1, -1, -1, -1, + 88, 89, 90, -1, -1, 93, -1, -1, 16, -1, + -1, -1, -1, 101, -1, -1, -1, 105, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 115, -1, -1, + 118, 119, 40, 41, 122, -1, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, -1, -1, -1, -1, + -1, -1, 140, 141, 142, -1, -1, -1, 146, 147, + 148, -1, -1, -1, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, -1, -1, -1, -1, + 88, 89, 90, -1, -1, 93, -1, -1, -1, -1, + -1, -1, -1, 101, -1, -1, -1, 105, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 115, -1, -1, + 118, 119, -1, -1, 122, -1, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, -1, -1, -1, -1, + -1, -1, 140, 141, 142, -1, -1, -1, 146, 147, + 148, 3, 4, 5, 6, 7, 8, 9, 10, 11, + -1, -1, -1, -1, -1, -1, -1, 19, -1, 21, + 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, + 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, + -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, + 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, + -1, 63, -1, -1, 66, 67, -1, 69, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 88, -1, -1, 91, + -1, -1, 94, 95, -1, 97, 98, -1, -1, -1, + -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, + 112, -1, 114, -1, -1, 3, 4, 5, 6, 7, + 8, 9, 10, 11, -1, -1, -1, -1, -1, -1, + -1, 19, 134, 21, 22, 23, 24, -1, -1, -1, + -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, + -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, + 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, + 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, + -1, 69, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, 100, -1, -1, -1, 104, -1, 106, 107, - 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, - -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, - 10, 11, -1, -1, -1, -1, 134, 135, 136, 19, - -1, 21, 22, 23, 24, -1, -1, -1, -1, -1, - 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, - -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, - 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, - 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, - 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, - -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, - 100, -1, -1, -1, 104, -1, 106, 107, 108, -1, - 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, - -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, - -1, -1, -1, -1, 134, 135, 136, 19, -1, 21, - 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, - 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, - -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, - 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, - -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, - -1, -1, 94, 95, -1, 97, 98, -1, 100, -1, - -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, - 112, -1, 114, -1, -1, -1, -1, -1, -1, 3, + 108, -1, 110, 111, 112, -1, 114, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, - -1, -1, 134, 135, 136, 19, -1, 21, 22, 23, + -1, -1, -1, -1, -1, 19, 134, 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, - -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, + -1, -1, 66, 67, -1, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, - 94, 95, -1, 97, 98, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, + 94, 95, -1, 97, 98, -1, 100, -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, - 114, -1, -1, -1, -1, -1, -1, 3, 4, 5, - 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, - 134, 135, 136, 19, -1, 21, 22, 23, 24, -1, - -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, - 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, - -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, - 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, - 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, - -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, - -1, 97, 98, -1, -1, -1, -1, -1, 104, -1, - 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, - -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, - 8, 9, 10, 11, -1, -1, -1, -1, 134, 135, - 136, 19, -1, 21, 22, 23, 24, -1, -1, -1, - -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, - -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, - 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, - 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, - -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, - -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, - 98, -1, -1, -1, -1, -1, 104, -1, 106, 107, - 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, - -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, - 10, 11, -1, -1, -1, -1, 134, 135, 136, 19, - -1, 21, 22, 23, 24, -1, -1, -1, -1, -1, + 114, -1, -1, 3, 4, 5, 6, 7, 8, 9, + 10, 11, -1, -1, -1, -1, -1, -1, -1, 19, + 134, 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, - -1, -1, -1, -1, 104, -1, 106, 107, 108, -1, + 100, -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, 19, 134, 21, 22, 23, 24, -1, @@ -5944,7 +6278,7 @@ static const yytype_int16 yycheck[] = 66, 67, -1, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, - -1, 97, 98, -1, 100, -1, -1, -1, 104, -1, + -1, 97, 98, -1, -1, -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, 19, 134, 21, @@ -5955,7 +6289,7 @@ static const yytype_int16 yycheck[] = -1, 63, -1, -1, 66, 67, -1, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, - -1, -1, 94, 95, -1, 97, 98, -1, 100, -1, + -1, -1, 94, 95, -1, 97, 98, -1, -1, -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, -1, -1, @@ -5987,191 +6321,232 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, - -1, -1, -1, -1, 104, -1, 106, 107, 108, -1, - 110, 111, 112, -1, 114, -1, -1, 3, 4, 5, - 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, - -1, -1, -1, 19, 134, 21, 22, 23, 24, -1, - -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, - 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, - -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, - 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, - 66, 67, -1, 69, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 104, 57, 106, 107, 108, -1, + 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, -1, -1, 134, -1, 88, 89, 90, -1, + 92, 93, -1, -1, -1, -1, -1, -1, -1, 101, + -1, 26, -1, 105, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 115, -1, -1, 118, 119, -1, 121, + 122, -1, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, -1, -1, -1, -1, 138, -1, 140, 141, + 142, -1, 144, -1, 146, 147, 148, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, + -1, -1, -1, 88, 89, 90, -1, 92, -1, -1, + -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, + 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 115, -1, -1, 118, 119, -1, 121, 122, -1, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, + 51, 52, -1, 138, 55, 140, 141, 142, -1, 144, + -1, 146, 147, 148, -1, -1, -1, -1, -1, 70, + 71, 72, 73, 74, 75, 76, 77, -1, -1, 80, + 81, -1, -1, -1, -1, 86, 87, 88, 89, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, + 101, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, - -1, 97, 98, -1, -1, -1, -1, -1, 104, -1, - 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, - -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, - -1, -1, -1, -1, -1, -1, -1, 19, 134, 21, - 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, - 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, - -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, - 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, - -1, 63, -1, -1, 66, 67, -1, 69, -1, -1, + -1, -1, -1, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, -1, 135, 136, 51, 52, -1, -1, + 55, -1, 143, 144, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 70, 71, 72, 73, 74, + 75, 76, 77, -1, -1, 80, 81, -1, -1, -1, + -1, 86, 87, 88, 89, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 100, 101, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, - -1, -1, 94, 95, -1, 97, 98, -1, -1, 51, - 52, -1, 104, 55, 106, 107, 108, -1, 110, 111, - 112, -1, 114, -1, -1, -1, -1, -1, 70, 71, - 72, 73, 74, 75, 76, 77, -1, -1, 80, 81, - -1, -1, 134, -1, 86, 87, 88, 89, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, - 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, + 135, 136, 51, 52, -1, -1, 55, -1, 143, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, -1, 135, 136, 51, 52, -1, -1, 55, - -1, 143, 144, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 70, 71, 72, 73, 74, 75, - 76, 77, -1, -1, 80, 81, -1, -1, -1, -1, - 86, 87, 88, 89, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 100, 101, 102, -1, -1, -1, + -1, 70, 71, 72, 73, 74, 75, 76, 77, -1, + -1, 80, 81, -1, -1, -1, -1, 86, 87, 88, + 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 100, 101, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, -1, 135, - 136, 51, 52, -1, -1, 55, -1, 143, 144, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, - 80, 81, -1, -1, -1, -1, 86, 87, 88, 89, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 100, 101, 102, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, -1, 135, 136, 51, 52, -1, - -1, 55, -1, 143, 144, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 70, 71, 72, 73, - 74, 75, 76, 77, -1, -1, 80, 81, -1, -1, - -1, -1, 86, 87, 88, 89, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 100, 101, 102, -1, + -1, -1, -1, -1, -1, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, -1, 135, 136, 51, 52, + -1, -1, 55, -1, 143, 144, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 70, 71, 72, + 73, 74, 75, 76, 77, -1, -1, 80, 81, -1, + -1, -1, -1, 86, 87, 88, 89, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, -1, 135, 136, 51, 52, -1, -1, 55, -1, + 143, 144, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 70, 71, 72, 73, 74, 75, 76, + 77, -1, -1, 80, 81, -1, -1, -1, -1, 86, + 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 100, 101, 102, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, -1, 135, 136, + 51, 52, -1, -1, 55, -1, 143, 144, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, + 71, 72, 73, 74, 75, 76, 77, -1, -1, 80, + 81, -1, -1, -1, -1, 86, 87, 88, 89, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, + 101, 102, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, -1, 135, 136, 51, 52, -1, -1, + 55, -1, 143, 144, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 70, 71, 72, 73, 74, + 75, 76, 77, -1, -1, 80, 81, -1, -1, -1, + -1, 86, 87, 88, 89, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 100, 101, 102, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, + 135, 136, 51, 52, -1, -1, 55, -1, 143, 144, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 70, 71, 72, 73, 74, 75, 76, 77, -1, + -1, 80, 81, -1, -1, -1, -1, 86, 87, 88, + 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 100, 101, 102, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, -1, 135, 136, 51, 52, + -1, -1, 55, -1, 143, 144, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 70, 71, 72, + 73, 74, 75, 76, 77, -1, -1, 80, 81, -1, + -1, -1, -1, 86, 87, 88, 89, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, -1, 135, 136, 51, 52, -1, -1, 55, -1, + 143, 144, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 70, 71, 72, 73, 74, 75, 76, + 77, -1, -1, 80, 81, -1, -1, -1, -1, 86, + 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 100, 101, 102, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, -1, 135, 136, + 51, 52, -1, -1, 55, -1, 143, 144, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, + 71, 72, 73, 74, 75, 76, 77, -1, -1, 80, + 81, -1, -1, -1, -1, 86, 87, 88, 89, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, + 101, 102, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, -1, 135, 136, 51, 52, -1, -1, + 55, -1, 143, 144, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 70, 71, 72, 73, 74, + 75, 76, 77, -1, -1, 80, 81, -1, -1, -1, + -1, 86, 87, 88, 89, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 100, 101, 102, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, + 135, 136, 51, 52, -1, -1, 55, -1, 143, 144, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 70, 71, 72, 73, 74, 75, 76, 77, -1, + -1, 80, 81, -1, -1, -1, -1, 86, 87, 88, + 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 100, 101, 102, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, -1, 135, 136, 51, 52, + -1, -1, 55, -1, 143, 144, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 70, 71, 72, + 73, 74, 75, 76, 77, -1, -1, 80, 81, -1, + -1, -1, -1, 86, 87, 88, 89, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, -1, 135, 136, 51, 52, -1, -1, 55, -1, + 143, 144, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 70, 71, 72, 73, 74, 75, 76, + 77, -1, -1, 80, 81, -1, -1, -1, -1, 86, + 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 100, 101, 102, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, -1, 135, 136, + 51, 52, -1, -1, 55, -1, 143, 144, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, + 71, 72, 73, 74, 75, 76, 77, -1, -1, 80, + 81, -1, -1, -1, -1, 86, 87, 88, 89, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, + 101, 102, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, -1, 135, 136, -1, -1, -1, -1, + -1, -1, 143, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, -1, -1, -1, -1, 88, + 89, 90, -1, 92, 93, -1, -1, -1, -1, -1, + -1, -1, 101, -1, -1, -1, 105, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 115, -1, -1, 118, + 119, -1, 121, 122, -1, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, -1, -1, -1, -1, -1, + -1, 140, 141, 142, -1, 144, -1, 146, 147, 148, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, -1, -1, -1, -1, 88, 89, 90, -1, + 92, 93, -1, -1, -1, -1, -1, -1, -1, 101, + -1, -1, -1, 105, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 115, -1, -1, 118, 119, -1, 121, + 122, -1, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, -1, -1, -1, -1, -1, -1, 140, 141, + 142, -1, -1, -1, 146, 147, 148, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, + -1, -1, -1, 88, 89, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 122, -1, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, + -1, -1, -1, -1, -1, -1, -1, 142, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + -1, -1, -1, -1, 88, 89, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - -1, 135, 136, 51, 52, -1, -1, 55, -1, 143, - 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 70, 71, 72, 73, 74, 75, 76, 77, - -1, -1, 80, 81, -1, -1, -1, -1, 86, 87, - 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 100, 101, 102, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 142, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, -1, -1, -1, -1, 88, 89, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, -1, 135, 136, 51, - 52, -1, -1, 55, -1, 143, 144, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 70, 71, - 72, 73, 74, 75, 76, 77, -1, -1, 80, 81, - -1, -1, -1, -1, 86, 87, 88, 89, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, - 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, -1, 135, 136, 51, 52, -1, -1, 55, - -1, 143, 144, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 70, 71, 72, 73, 74, 75, - 76, 77, -1, -1, 80, 81, -1, -1, -1, -1, - 86, 87, 88, 89, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 100, 101, 102, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, -1, 135, - 136, 51, 52, -1, -1, 55, -1, 143, 144, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, - 80, 81, -1, -1, -1, -1, 86, 87, 88, 89, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 100, 101, 102, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, -1, 135, 136, 51, 52, -1, - -1, 55, -1, 143, 144, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 70, 71, 72, 73, - 74, 75, 76, 77, -1, -1, 80, 81, -1, -1, - -1, -1, 86, 87, 88, 89, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 100, 101, 102, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, + -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, -1, -1, -1, -1, -1, -1, -1, -1, 142, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, -1, -1, -1, -1, 88, 89, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - -1, 135, 136, 51, 52, -1, -1, 55, -1, 143, - 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 70, 71, 72, 73, 74, 75, 76, 77, - -1, -1, 80, 81, -1, -1, -1, -1, 86, 87, - 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 100, 101, 102, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, -1, 135, 136, 51, - 52, -1, -1, 55, -1, 143, 144, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 70, 71, - 72, 73, 74, 75, 76, 77, -1, -1, 80, 81, - -1, -1, -1, -1, 86, 87, 88, 89, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, - 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, -1, 135, 136, 51, 52, -1, -1, 55, - -1, 143, 144, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 70, 71, 72, 73, 74, 75, - 76, 77, -1, -1, 80, 81, -1, -1, -1, -1, - 86, 87, 88, 89, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 100, 101, 102, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, -1, 135, - 136, 51, 52, -1, -1, 55, -1, 143, 144, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, - 80, 81, -1, -1, -1, -1, 86, 87, 88, 89, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 100, 101, 102, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, -1, 135, 136, 51, 52, -1, - -1, 55, -1, 143, 144, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 70, 71, 72, 73, - 74, 75, 76, 77, -1, -1, 80, 81, -1, -1, - -1, -1, 86, 87, 88, 89, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 100, 101, 102, -1, - -1, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 122, -1, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, -1, -1, -1, -1, -1, -1, -1, -1, + 142, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, -1, -1, -1, 88, 89, -1, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 101, 135, 136, -1, -1, -1, -1, -1, -1, 143, + -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, + 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, -1, -1, -1, -1, - -1, 142, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, -1, -1, -1, -1, 88, 89, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 122, -1, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, -1, -1, -1, -1, -1, -1, - -1, -1, 142, 72, 73, 74, 75, 76, 77, 78, + 131, 132, 133, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, -1, -1, -1, 88, - 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 89, -1, -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, -1, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, -1, -1, -1, -1, - -1, -1, -1, 142, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, -1, -1, -1, -1, - 88, 89, -1, -1, -1, 93, -1, -1, -1, -1, - -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, + 129, 130, 131, 132, 133, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, -1, -1, -1, + -1, 88, 89, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 122, -1, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, -1, -1, - -1, -1, 88, 89, -1, -1, -1, 93, -1, -1, - -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 122, -1, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, + -1, -1, -1, 88, 89, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 122, -1, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - -1, -1, -1, -1, 88, 89, 72, 73, 74, 75, - 76, 77, -1, -1, 80, 81, -1, 101, -1, -1, - -1, -1, 88, 89, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 101, -1, -1, 122, -1, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133 + -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133 }; /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of @@ -6186,11 +6561,11 @@ static const yytype_int16 yystos[] = 91, 94, 95, 97, 98, 100, 104, 106, 107, 108, 110, 111, 112, 114, 134, 135, 136, 152, 153, 154, 160, 161, 163, 164, 166, 168, 169, 172, 173, 175, - 176, 177, 179, 180, 189, 203, 220, 241, 242, 258, - 259, 260, 264, 265, 266, 272, 273, 274, 276, 277, - 278, 279, 280, 281, 317, 330, 0, 154, 21, 22, + 176, 177, 179, 180, 189, 203, 220, 241, 242, 262, + 263, 264, 268, 269, 270, 276, 277, 278, 280, 281, + 282, 283, 284, 285, 321, 334, 0, 154, 21, 22, 30, 31, 32, 39, 51, 55, 69, 88, 91, 94, - 134, 164, 166, 181, 182, 203, 220, 278, 281, 317, + 134, 164, 166, 181, 182, 203, 220, 282, 285, 321, 182, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 30, 31, 32, 33, 34, @@ -6198,100 +6573,103 @@ static const yytype_int16 yystos[] = 50, 51, 52, 55, 70, 71, 72, 73, 74, 75, 76, 77, 80, 81, 86, 87, 88, 89, 100, 101, 102, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 135, 136, 143, 144, 183, 187, 188, 280, 312, - 204, 91, 163, 164, 166, 167, 180, 189, 220, 278, - 279, 281, 167, 210, 212, 69, 91, 173, 180, 220, - 225, 278, 281, 33, 34, 35, 36, 48, 49, 50, - 51, 55, 106, 183, 184, 185, 274, 115, 118, 119, - 146, 148, 167, 268, 269, 270, 323, 327, 328, 329, + 133, 135, 136, 143, 144, 183, 187, 188, 284, 316, + 204, 91, 163, 164, 166, 167, 180, 189, 220, 282, + 283, 285, 167, 210, 212, 69, 91, 173, 180, 220, + 225, 282, 285, 33, 34, 35, 36, 48, 49, 50, + 51, 55, 106, 183, 184, 185, 278, 115, 118, 119, + 146, 148, 167, 272, 273, 274, 327, 331, 332, 333, 51, 69, 100, 102, 103, 135, 172, 189, 195, 198, - 201, 260, 315, 316, 195, 195, 144, 192, 193, 196, - 197, 330, 192, 197, 144, 324, 184, 155, 138, 189, + 201, 264, 319, 320, 195, 195, 144, 192, 193, 196, + 197, 334, 192, 197, 144, 328, 184, 155, 138, 189, 220, 189, 189, 189, 55, 1, 94, 157, 158, 160, - 174, 175, 330, 205, 207, 190, 201, 315, 330, 189, - 314, 315, 330, 91, 142, 179, 220, 278, 281, 208, - 53, 54, 56, 63, 69, 107, 183, 275, 63, 64, - 65, 116, 117, 261, 262, 61, 261, 62, 261, 63, - 261, 63, 261, 58, 59, 168, 189, 189, 323, 329, + 174, 175, 334, 205, 207, 190, 201, 319, 334, 189, + 318, 319, 334, 91, 142, 179, 220, 282, 285, 208, + 53, 54, 56, 63, 69, 107, 183, 279, 63, 64, + 65, 116, 117, 265, 266, 61, 265, 62, 265, 63, + 265, 63, 265, 58, 59, 168, 189, 189, 327, 333, 40, 41, 42, 43, 44, 37, 38, 51, 53, 54, 55, 56, 69, 83, 94, 100, 101, 102, 103, 128, - 131, 144, 284, 285, 286, 287, 288, 291, 292, 293, - 294, 296, 297, 298, 299, 301, 302, 303, 306, 307, - 308, 309, 310, 330, 284, 286, 28, 240, 121, 142, + 131, 144, 288, 289, 290, 291, 292, 295, 296, 297, + 298, 300, 301, 302, 303, 305, 306, 307, 310, 311, + 312, 313, 314, 334, 288, 290, 28, 240, 121, 142, 94, 100, 176, 121, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 88, 89, 93, 101, 122, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 90, 105, 140, 147, 321, 90, 321, 322, 26, - 138, 244, 260, 92, 92, 192, 197, 244, 163, 51, - 55, 181, 58, 59, 285, 125, 282, 90, 140, 321, - 219, 313, 90, 147, 320, 156, 157, 55, 284, 284, - 16, 221, 327, 121, 90, 140, 321, 92, 92, 221, - 167, 167, 55, 90, 140, 321, 25, 107, 142, 271, - 323, 115, 270, 20, 246, 327, 57, 57, 189, 189, - 189, 93, 142, 199, 200, 330, 57, 199, 200, 85, - 194, 195, 201, 315, 330, 195, 163, 323, 325, 163, - 328, 159, 138, 157, 90, 321, 92, 160, 174, 145, - 323, 329, 325, 160, 325, 141, 200, 326, 329, 200, - 326, 139, 326, 55, 176, 177, 178, 142, 90, 140, - 321, 144, 237, 296, 301, 63, 261, 263, 267, 268, - 63, 262, 61, 62, 63, 63, 101, 101, 154, 167, - 167, 167, 167, 160, 163, 163, 57, 121, 57, 327, - 300, 85, 296, 301, 121, 156, 189, 142, 311, 330, - 51, 142, 311, 327, 142, 295, 189, 142, 295, 51, - 142, 295, 51, 121, 156, 239, 100, 168, 189, 201, + 133, 90, 105, 140, 147, 325, 90, 325, 326, 26, + 138, 244, 264, 92, 92, 192, 197, 244, 163, 51, + 55, 181, 58, 59, 289, 125, 286, 90, 140, 325, + 219, 317, 90, 147, 324, 156, 157, 55, 288, 288, + 16, 221, 331, 121, 90, 140, 325, 92, 92, 221, + 167, 167, 55, 90, 140, 325, 25, 107, 142, 275, + 327, 115, 274, 20, 246, 331, 57, 57, 189, 189, + 189, 93, 142, 199, 200, 334, 57, 199, 200, 85, + 194, 195, 201, 319, 334, 195, 163, 327, 329, 163, + 332, 159, 138, 157, 90, 325, 92, 160, 174, 145, + 327, 333, 329, 160, 329, 141, 200, 330, 333, 200, + 330, 139, 330, 55, 176, 177, 178, 142, 90, 140, + 325, 144, 237, 300, 305, 63, 265, 267, 271, 272, + 63, 266, 61, 62, 63, 63, 101, 101, 154, 167, + 167, 167, 167, 160, 163, 163, 57, 121, 57, 331, + 304, 85, 300, 305, 121, 156, 189, 142, 315, 334, + 51, 142, 315, 331, 142, 299, 189, 142, 299, 51, + 142, 299, 51, 121, 156, 239, 100, 168, 189, 201, 202, 174, 142, 179, 142, 161, 162, 168, 180, 189, - 191, 202, 220, 281, 189, 189, 189, 189, 189, 189, + 191, 202, 220, 285, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 51, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, - 189, 51, 52, 55, 187, 192, 318, 319, 194, 201, - 51, 52, 55, 187, 192, 318, 51, 55, 318, 245, - 243, 162, 189, 191, 162, 191, 99, 171, 217, 283, - 216, 51, 55, 181, 318, 194, 318, 156, 163, 165, - 15, 13, 254, 330, 121, 121, 157, 16, 51, 55, - 194, 51, 55, 157, 27, 222, 327, 222, 51, 55, + 189, 51, 52, 55, 187, 192, 322, 323, 194, 201, + 51, 52, 55, 187, 192, 322, 51, 55, 322, 245, + 243, 162, 189, 191, 162, 191, 99, 171, 217, 287, + 216, 51, 55, 181, 322, 194, 322, 156, 163, 165, + 15, 13, 258, 334, 121, 121, 157, 16, 51, 55, + 194, 51, 55, 157, 27, 222, 331, 222, 51, 55, 194, 51, 55, 214, 186, 157, 25, 246, 189, 201, - 15, 189, 189, 189, 324, 100, 189, 198, 315, 189, - 316, 325, 145, 323, 200, 200, 325, 145, 184, 152, - 139, 191, 325, 160, 206, 315, 176, 178, 51, 55, - 194, 51, 55, 296, 209, 142, 63, 157, 268, 189, - 189, 51, 69, 100, 226, 301, 325, 325, 142, 172, - 189, 15, 51, 69, 288, 293, 310, 85, 294, 299, - 306, 308, 301, 303, 308, 51, 301, 172, 189, 15, - 79, 126, 231, 233, 330, 189, 200, 325, 178, 142, - 44, 121, 44, 90, 140, 321, 324, 92, 92, 192, + 15, 189, 189, 189, 328, 100, 189, 198, 319, 189, + 320, 329, 145, 327, 200, 200, 329, 145, 184, 152, + 139, 191, 329, 160, 206, 319, 176, 178, 51, 55, + 194, 51, 55, 300, 209, 142, 63, 157, 272, 189, + 189, 51, 69, 100, 226, 305, 329, 329, 142, 172, + 189, 15, 51, 69, 292, 297, 314, 85, 298, 303, + 310, 312, 305, 307, 312, 51, 305, 172, 189, 15, + 79, 126, 231, 233, 334, 189, 200, 329, 178, 142, + 44, 121, 44, 90, 140, 325, 328, 92, 92, 192, 197, 141, 200, 92, 92, 193, 197, 193, 197, 231, - 231, 170, 327, 167, 156, 141, 15, 325, 183, 189, - 202, 255, 330, 18, 224, 330, 17, 223, 224, 92, + 231, 170, 331, 167, 156, 141, 15, 329, 183, 189, + 202, 259, 334, 18, 224, 334, 17, 223, 224, 92, 92, 141, 92, 92, 224, 211, 213, 141, 167, 184, - 139, 34, 35, 36, 51, 55, 63, 91, 220, 249, - 250, 251, 252, 253, 273, 277, 15, 200, 221, 189, - 199, 85, 315, 139, 325, 326, 141, 234, 324, 29, - 113, 238, 139, 142, 298, 325, 142, 85, 44, 44, - 311, 327, 142, 295, 142, 295, 142, 295, 142, 295, - 295, 44, 44, 228, 230, 232, 287, 289, 290, 293, - 301, 302, 304, 305, 308, 310, 156, 100, 189, 178, - 160, 189, 51, 55, 194, 51, 55, 57, 123, 162, - 191, 168, 191, 171, 92, 162, 191, 162, 191, 171, - 244, 240, 156, 157, 231, 218, 327, 15, 93, 256, - 330, 157, 14, 257, 330, 167, 15, 92, 15, 157, - 157, 222, 55, 90, 40, 41, 221, 93, 126, 189, - 157, 325, 200, 145, 146, 156, 157, 227, 142, 100, - 325, 189, 189, 301, 308, 301, 301, 189, 189, 234, - 234, 91, 220, 142, 311, 311, 142, 229, 220, 142, - 229, 142, 229, 15, 189, 141, 189, 189, 162, 191, - 15, 139, 157, 156, 91, 180, 220, 278, 281, 221, - 157, 221, 15, 15, 215, 51, 55, 167, 167, 157, - 51, 252, 224, 246, 247, 51, 235, 236, 297, 15, - 139, 301, 301, 142, 298, 295, 142, 295, 295, 295, - 126, 126, 55, 90, 289, 293, 142, 228, 229, 305, - 308, 301, 304, 308, 301, 139, 15, 55, 90, 140, - 321, 157, 157, 157, 221, 221, 25, 224, 248, 142, - 324, 142, 301, 142, 301, 55, 311, 142, 229, 142, - 229, 142, 229, 142, 229, 229, 51, 55, 194, 51, - 55, 254, 223, 15, 157, 157, 249, 15, 236, 301, - 295, 301, 308, 301, 301, 141, 248, 248, 40, 41, - 221, 229, 142, 229, 229, 229, 15, 15, 167, 167, - 157, 301, 221, 221, 248, 229, 157, 157, 248, 248 + 139, 34, 35, 36, 51, 55, 63, 91, 97, 220, + 249, 250, 251, 252, 253, 257, 277, 281, 15, 200, + 221, 189, 199, 85, 319, 139, 329, 330, 141, 234, + 328, 29, 113, 238, 139, 142, 302, 329, 142, 85, + 44, 44, 315, 331, 142, 299, 142, 299, 142, 299, + 142, 299, 299, 44, 44, 228, 230, 232, 291, 293, + 294, 297, 305, 306, 308, 309, 312, 314, 156, 100, + 189, 178, 160, 189, 51, 55, 194, 51, 55, 57, + 123, 162, 191, 168, 191, 171, 92, 162, 191, 162, + 191, 171, 244, 240, 156, 157, 231, 218, 331, 15, + 93, 260, 334, 157, 14, 261, 334, 167, 15, 92, + 15, 157, 157, 222, 55, 51, 91, 100, 141, 220, + 249, 254, 255, 256, 90, 40, 41, 221, 93, 126, + 189, 157, 329, 200, 145, 146, 156, 157, 227, 142, + 100, 329, 189, 189, 305, 312, 305, 305, 189, 189, + 234, 234, 91, 220, 142, 315, 315, 142, 229, 220, + 142, 229, 142, 229, 15, 189, 141, 189, 189, 162, + 191, 15, 139, 157, 156, 91, 180, 220, 282, 285, + 221, 157, 221, 15, 15, 215, 55, 51, 90, 141, + 142, 142, 51, 55, 167, 167, 157, 51, 252, 224, + 246, 247, 51, 235, 236, 301, 15, 139, 305, 305, + 142, 302, 299, 142, 299, 299, 299, 126, 126, 55, + 90, 293, 297, 142, 228, 229, 309, 312, 305, 308, + 312, 305, 139, 15, 55, 90, 140, 325, 157, 157, + 157, 55, 100, 249, 256, 255, 221, 221, 25, 224, + 248, 142, 328, 142, 305, 142, 305, 55, 315, 142, + 229, 142, 229, 142, 229, 142, 229, 229, 51, 55, + 194, 51, 55, 258, 223, 15, 51, 142, 142, 157, + 157, 249, 15, 236, 305, 299, 305, 312, 305, 305, + 141, 255, 248, 248, 40, 41, 221, 229, 142, 229, + 229, 229, 15, 15, 167, 167, 157, 305, 221, 221, + 248, 229, 157, 157, 248, 248 }; /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ @@ -6341,27 +6719,28 @@ static const yytype_int16 yyr1[] = 242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 244, 245, 244, 246, 247, 247, 248, 248, 248, 248, 249, 250, 250, 251, 251, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 253, 254, 254, 255, 255, - 255, 256, 256, 257, 257, 258, 258, 258, 258, 259, - 259, 260, 260, 260, 260, 261, 261, 262, 263, 262, - 262, 262, 264, 264, 265, 265, 266, 267, 267, 268, - 268, 269, 269, 270, 271, 270, 272, 272, 273, 273, - 273, 274, 275, 275, 275, 275, 275, 275, 276, 276, - 277, 277, 277, 277, 278, 278, 278, 278, 278, 279, - 279, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 281, 281, 282, 283, 282, 284, 284, 285, 285, 285, - 286, 286, 286, 286, 287, 287, 288, 288, 289, 289, - 290, 290, 291, 291, 292, 292, 293, 293, 294, 294, - 294, 294, 295, 295, 296, 296, 296, 296, 296, 296, - 296, 296, 296, 296, 296, 296, 296, 296, 296, 297, - 297, 297, 297, 297, 298, 298, 299, 300, 299, 301, - 301, 302, 303, 304, 305, 305, 306, 306, 307, 307, - 308, 308, 309, 309, 310, 310, 311, 311, 312, 313, - 312, 314, 314, 315, 315, 316, 316, 316, 316, 316, - 316, 316, 316, 317, 317, 317, 318, 318, 318, 318, - 319, 319, 319, 320, 320, 321, 321, 322, 322, 323, - 323, 324, 324, 325, 326, 326, 326, 327, 327, 328, - 328, 329, 329, 330 + 252, 252, 252, 252, 252, 252, 253, 253, 254, 254, + 254, 254, 254, 255, 255, 256, 256, 257, 258, 258, + 259, 259, 259, 260, 260, 261, 261, 262, 262, 262, + 262, 263, 263, 264, 264, 264, 264, 265, 265, 266, + 267, 266, 266, 266, 268, 268, 269, 269, 270, 271, + 271, 272, 272, 273, 273, 274, 275, 274, 276, 276, + 277, 277, 277, 278, 279, 279, 279, 279, 279, 279, + 280, 280, 281, 281, 281, 281, 282, 282, 282, 282, + 282, 283, 283, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 285, 285, 286, 287, 286, 288, 288, 289, + 289, 289, 290, 290, 290, 290, 291, 291, 292, 292, + 293, 293, 294, 294, 295, 295, 296, 296, 297, 297, + 298, 298, 298, 298, 299, 299, 300, 300, 300, 300, + 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, + 300, 301, 301, 301, 301, 301, 302, 302, 303, 304, + 303, 305, 305, 306, 307, 308, 309, 309, 310, 310, + 311, 311, 312, 312, 313, 313, 314, 314, 315, 315, + 316, 317, 316, 318, 318, 319, 319, 320, 320, 320, + 320, 320, 320, 320, 320, 321, 321, 321, 322, 322, + 322, 322, 323, 323, 323, 324, 324, 325, 325, 326, + 326, 327, 327, 328, 328, 329, 330, 330, 330, 331, + 331, 332, 332, 333, 333, 334 }; /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ @@ -6411,27 +6790,28 @@ static const yytype_int8 yyr2[] = 2, 4, 4, 3, 3, 3, 2, 1, 4, 0, 5, 0, 5, 5, 1, 1, 1, 5, 7, 7, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 2, 1, 6, 1, 1, 1, - 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, - 2, 1, 1, 2, 3, 1, 2, 1, 0, 4, - 1, 2, 2, 3, 2, 3, 1, 1, 2, 1, - 2, 1, 2, 1, 0, 4, 2, 3, 1, 4, - 2, 2, 1, 1, 1, 1, 1, 2, 2, 3, - 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 3, 2, 1, 3, 2, 1, 3, + 5, 1, 3, 1, 3, 2, 1, 1, 6, 1, + 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, + 1, 1, 2, 1, 1, 2, 3, 1, 2, 1, + 0, 4, 1, 2, 2, 3, 2, 3, 1, 1, + 2, 1, 2, 1, 2, 1, 0, 4, 2, 3, + 1, 4, 2, 2, 1, 1, 1, 1, 1, 2, + 2, 3, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 0, 4, 1, 1, 3, 5, 3, - 1, 2, 4, 2, 2, 2, 2, 1, 2, 1, - 1, 3, 1, 3, 1, 1, 2, 1, 4, 2, - 2, 1, 2, 0, 6, 8, 4, 6, 4, 6, - 2, 4, 6, 2, 4, 2, 4, 1, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 4, 1, - 3, 2, 2, 2, 1, 3, 1, 3, 1, 1, - 2, 1, 1, 1, 2, 1, 2, 1, 1, 0, - 4, 1, 2, 1, 3, 3, 3, 2, 2, 3, - 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 1, 0, 2, 2, 0, 1, 1, 1, 1, 1, - 1, 1, 2, 0 + 1, 1, 1, 1, 0, 0, 4, 1, 1, 3, + 5, 3, 1, 2, 4, 2, 2, 2, 2, 1, + 2, 1, 1, 3, 1, 3, 1, 1, 2, 1, + 4, 2, 2, 1, 2, 0, 6, 8, 4, 6, + 4, 6, 2, 4, 6, 2, 4, 2, 4, 1, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 4, 1, 3, 2, 2, 2, 1, 3, 1, 3, + 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, + 1, 0, 4, 1, 2, 1, 3, 3, 3, 2, + 2, 3, 3, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 0, 1, 0, 2, 2, 0, 1, 1, 1, + 1, 1, 1, 1, 2, 0 }; @@ -7098,7 +7478,7 @@ YYLTYPE yylloc = yyloc_default; -#line 7102 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7482 "mrbgems/mruby-compiler/core/y.tab.c" yylsp[0] = yylloc; goto yysetstate; @@ -7311,84 +7691,84 @@ yyreduce: switch (yyn) { case 2: /* $@1: %empty */ -#line 2126 "mrbgems/mruby-compiler/core/parse.y" +#line 2137 "mrbgems/mruby-compiler/core/parse.y" { p->lstate = EXPR_BEG; if (!p->locals) p->locals = cons(0,0); } -#line 7320 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7700 "mrbgems/mruby-compiler/core/y.tab.c" break; case 3: /* program: $@1 top_compstmt */ -#line 2131 "mrbgems/mruby-compiler/core/parse.y" +#line 2142 "mrbgems/mruby-compiler/core/parse.y" { p->tree = new_scope(p, (yyvsp[0].nd)); } -#line 7328 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7708 "mrbgems/mruby-compiler/core/y.tab.c" break; case 4: /* top_compstmt: top_stmts opt_terms */ -#line 2137 "mrbgems/mruby-compiler/core/parse.y" +#line 2148 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 7336 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7716 "mrbgems/mruby-compiler/core/y.tab.c" break; case 5: /* top_stmts: none */ -#line 2143 "mrbgems/mruby-compiler/core/parse.y" +#line 2154 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_stmts(p, 0); } -#line 7344 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7724 "mrbgems/mruby-compiler/core/y.tab.c" break; case 6: /* top_stmts: top_stmt */ -#line 2147 "mrbgems/mruby-compiler/core/parse.y" +#line 2158 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_stmts(p, (yyvsp[0].nd)); } -#line 7352 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7732 "mrbgems/mruby-compiler/core/y.tab.c" break; case 7: /* top_stmts: top_stmts terms top_stmt */ -#line 2151 "mrbgems/mruby-compiler/core/parse.y" +#line 2162 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = stmts_push(p, (yyvsp[-2].nd), newline_node((yyvsp[0].nd))); } -#line 7360 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7740 "mrbgems/mruby-compiler/core/y.tab.c" break; case 8: /* top_stmts: error top_stmt */ -#line 2155 "mrbgems/mruby-compiler/core/parse.y" +#line 2166 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_stmts(p, 0); } -#line 7368 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7748 "mrbgems/mruby-compiler/core/y.tab.c" break; case 10: /* @2: %empty */ -#line 2162 "mrbgems/mruby-compiler/core/parse.y" +#line 2173 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = local_switch(p); nvars_block(p); } -#line 7377 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7757 "mrbgems/mruby-compiler/core/y.tab.c" break; case 11: /* top_stmt: "'BEGIN'" @2 '{' top_compstmt '}' */ -#line 2167 "mrbgems/mruby-compiler/core/parse.y" +#line 2178 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[-4]), p, "BEGIN not supported"); local_resume(p, (yyvsp[-3].nd)); nvars_unnest(p); (yyval.nd) = 0; } -#line 7388 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7768 "mrbgems/mruby-compiler/core/y.tab.c" break; case 12: /* bodystmt: compstmt opt_rescue opt_else opt_ensure */ -#line 2179 "mrbgems/mruby-compiler/core/parse.y" +#line 2190 "mrbgems/mruby-compiler/core/parse.y" { if ((yyvsp[-2].nd)) { (yyval.nd) = new_rescue(p, (yyvsp[-3].nd), (yyvsp[-2].nd), (yyvsp[-1].nd)); @@ -7409,89 +7789,89 @@ yyreduce: } } } -#line 7413 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7793 "mrbgems/mruby-compiler/core/y.tab.c" break; case 13: /* compstmt: stmts opt_terms */ -#line 2202 "mrbgems/mruby-compiler/core/parse.y" +#line 2213 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 7421 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7801 "mrbgems/mruby-compiler/core/y.tab.c" break; case 14: /* stmts: none */ -#line 2208 "mrbgems/mruby-compiler/core/parse.y" +#line 2219 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_stmts(p, 0); } -#line 7429 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7809 "mrbgems/mruby-compiler/core/y.tab.c" break; case 15: /* stmts: stmt */ -#line 2212 "mrbgems/mruby-compiler/core/parse.y" +#line 2223 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_stmts(p, (yyvsp[0].nd)); } -#line 7437 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7817 "mrbgems/mruby-compiler/core/y.tab.c" break; case 16: /* stmts: stmts terms stmt */ -#line 2216 "mrbgems/mruby-compiler/core/parse.y" +#line 2227 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = stmts_push(p, (yyvsp[-2].nd), newline_node((yyvsp[0].nd))); } -#line 7445 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7825 "mrbgems/mruby-compiler/core/y.tab.c" break; case 17: /* stmts: error stmt */ -#line 2220 "mrbgems/mruby-compiler/core/parse.y" +#line 2231 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_stmts(p, (yyvsp[0].nd)); } -#line 7453 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7833 "mrbgems/mruby-compiler/core/y.tab.c" break; case 18: /* $@3: %empty */ -#line 2225 "mrbgems/mruby-compiler/core/parse.y" +#line 2236 "mrbgems/mruby-compiler/core/parse.y" {p->lstate = EXPR_FNAME;} -#line 7459 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7839 "mrbgems/mruby-compiler/core/y.tab.c" break; case 19: /* stmt: "'alias'" fsym $@3 fsym */ -#line 2226 "mrbgems/mruby-compiler/core/parse.y" +#line 2237 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_alias(p, (yyvsp[-2].id), (yyvsp[0].id)); } -#line 7467 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7847 "mrbgems/mruby-compiler/core/y.tab.c" break; case 20: /* stmt: "'undef'" undef_list */ -#line 2230 "mrbgems/mruby-compiler/core/parse.y" +#line 2241 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_undef(p, (yyvsp[0].nd)); } -#line 7475 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7855 "mrbgems/mruby-compiler/core/y.tab.c" break; case 21: /* stmt: stmt "'if' modifier" expr_value */ -#line 2234 "mrbgems/mruby-compiler/core/parse.y" +#line 2245 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_if(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd), 0); } -#line 7483 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7863 "mrbgems/mruby-compiler/core/y.tab.c" break; case 22: /* stmt: stmt "'unless' modifier" expr_value */ -#line 2238 "mrbgems/mruby-compiler/core/parse.y" +#line 2249 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_if(p, cond((yyvsp[0].nd)), 0, (yyvsp[-2].nd)); } -#line 7491 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7871 "mrbgems/mruby-compiler/core/y.tab.c" break; case 23: /* stmt: stmt "'while' modifier" expr_value */ -#line 2242 "mrbgems/mruby-compiler/core/parse.y" +#line 2253 "mrbgems/mruby-compiler/core/parse.y" { if ((yyvsp[-2].nd) && node_type_p((yyvsp[-2].nd), NODE_BEGIN)) { (yyval.nd) = new_while_mod(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd)); @@ -7500,11 +7880,11 @@ yyreduce: (yyval.nd) = new_while(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd)); } } -#line 7504 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7884 "mrbgems/mruby-compiler/core/y.tab.c" break; case 24: /* stmt: stmt "'until' modifier" expr_value */ -#line 2251 "mrbgems/mruby-compiler/core/parse.y" +#line 2262 "mrbgems/mruby-compiler/core/parse.y" { if ((yyvsp[-2].nd) && node_type_p((yyvsp[-2].nd), NODE_BEGIN)) { (yyval.nd) = new_until_mod(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd)); @@ -7513,127 +7893,127 @@ yyreduce: (yyval.nd) = new_until(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd)); } } -#line 7517 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7897 "mrbgems/mruby-compiler/core/y.tab.c" break; case 25: /* stmt: stmt "'rescue' modifier" stmt */ -#line 2260 "mrbgems/mruby-compiler/core/parse.y" +#line 2271 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7525 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7905 "mrbgems/mruby-compiler/core/y.tab.c" break; case 26: /* stmt: "'END'" '{' compstmt '}' */ -#line 2264 "mrbgems/mruby-compiler/core/parse.y" +#line 2275 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[-3]), p, "END not supported"); (yyval.nd) = new_postexe(p, (yyvsp[-1].nd)); } -#line 7534 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7914 "mrbgems/mruby-compiler/core/y.tab.c" break; case 28: /* stmt: mlhs '=' command_call */ -#line 2270 "mrbgems/mruby-compiler/core/parse.y" +#line 2281 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_masgn(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7542 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7922 "mrbgems/mruby-compiler/core/y.tab.c" break; case 29: /* stmt: lhs '=' mrhs */ -#line 2274 "mrbgems/mruby-compiler/core/parse.y" +#line 2285 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_asgn(p, (yyvsp[-2].nd), new_array(p, (yyvsp[0].nd))); } -#line 7550 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7930 "mrbgems/mruby-compiler/core/y.tab.c" break; case 30: /* stmt: mlhs '=' arg */ -#line 2278 "mrbgems/mruby-compiler/core/parse.y" +#line 2289 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_masgn(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7558 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7938 "mrbgems/mruby-compiler/core/y.tab.c" break; case 31: /* stmt: mlhs '=' mrhs */ -#line 2282 "mrbgems/mruby-compiler/core/parse.y" +#line 2293 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_masgn(p, (yyvsp[-2].nd), new_array(p, (yyvsp[0].nd))); } -#line 7566 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7946 "mrbgems/mruby-compiler/core/y.tab.c" break; case 32: /* stmt: arg "=>" "local variable or method" */ -#line 2286 "mrbgems/mruby-compiler/core/parse.y" +#line 2297 "mrbgems/mruby-compiler/core/parse.y" { node *lhs = new_lvar(p, (yyvsp[0].id)); assignable(p, lhs); (yyval.nd) = new_asgn(p, lhs, (yyvsp[-2].nd)); } -#line 7576 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7956 "mrbgems/mruby-compiler/core/y.tab.c" break; case 34: /* command_asgn: lhs '=' command_rhs */ -#line 2295 "mrbgems/mruby-compiler/core/parse.y" +#line 2306 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_asgn(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7584 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7964 "mrbgems/mruby-compiler/core/y.tab.c" break; case 35: /* command_asgn: var_lhs tOP_ASGN command_rhs */ -#line 2299 "mrbgems/mruby-compiler/core/parse.y" +#line 2310 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, (yyvsp[-2].nd), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 7592 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7972 "mrbgems/mruby-compiler/core/y.tab.c" break; case 36: /* command_asgn: primary_value '[' opt_call_args ']' tOP_ASGN command_rhs */ -#line 2303 "mrbgems/mruby-compiler/core/parse.y" +#line 2314 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-5].nd), intern_op(aref), (yyvsp[-3].nd), '.'), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 7600 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7980 "mrbgems/mruby-compiler/core/y.tab.c" break; case 37: /* command_asgn: primary_value call_op "local variable or method" tOP_ASGN command_rhs */ -#line 2307 "mrbgems/mruby-compiler/core/parse.y" +#line 2318 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, (yyvsp[-3].num)), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 7608 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7988 "mrbgems/mruby-compiler/core/y.tab.c" break; case 38: /* command_asgn: primary_value call_op "constant" tOP_ASGN command_rhs */ -#line 2311 "mrbgems/mruby-compiler/core/parse.y" +#line 2322 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, (yyvsp[-3].num)), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 7616 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7996 "mrbgems/mruby-compiler/core/y.tab.c" break; case 39: /* command_asgn: primary_value "::" "constant" tOP_ASGN command_call */ -#line 2315 "mrbgems/mruby-compiler/core/parse.y" +#line 2326 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[-4]), p, "constant re-assignment"); (yyval.nd) = 0; } -#line 7625 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8005 "mrbgems/mruby-compiler/core/y.tab.c" break; case 40: /* command_asgn: primary_value "::" "local variable or method" tOP_ASGN command_rhs */ -#line 2320 "mrbgems/mruby-compiler/core/parse.y" +#line 2331 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, tCOLON2), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 7633 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8013 "mrbgems/mruby-compiler/core/y.tab.c" break; case 41: /* command_asgn: defn_head f_opt_arglist_paren '=' command */ -#line 2324 "mrbgems/mruby-compiler/core/parse.y" +#line 2335 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-3].nd); endless_method_name(p, (yyvsp[-3].nd)); @@ -7642,11 +8022,11 @@ yyreduce: nvars_unnest(p); p->in_def--; } -#line 7646 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8026 "mrbgems/mruby-compiler/core/y.tab.c" break; case 42: /* command_asgn: defn_head f_opt_arglist_paren '=' command "'rescue' modifier" arg */ -#line 2333 "mrbgems/mruby-compiler/core/parse.y" +#line 2344 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-5].nd); endless_method_name(p, (yyvsp[-5].nd)); @@ -7655,11 +8035,11 @@ yyreduce: nvars_unnest(p); p->in_def--; } -#line 7659 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8039 "mrbgems/mruby-compiler/core/y.tab.c" break; case 43: /* command_asgn: defs_head f_opt_arglist_paren '=' command */ -#line 2342 "mrbgems/mruby-compiler/core/parse.y" +#line 2353 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-3].nd); void_expr_error(p, (yyvsp[0].nd)); @@ -7668,11 +8048,11 @@ yyreduce: p->in_def--; p->in_single--; } -#line 7672 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8052 "mrbgems/mruby-compiler/core/y.tab.c" break; case 44: /* command_asgn: defs_head f_opt_arglist_paren '=' command "'rescue' modifier" arg */ -#line 2351 "mrbgems/mruby-compiler/core/parse.y" +#line 2362 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-5].nd); void_expr_error(p, (yyvsp[-2].nd)); @@ -7681,79 +8061,79 @@ yyreduce: p->in_def--; p->in_single--; } -#line 7685 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8065 "mrbgems/mruby-compiler/core/y.tab.c" break; case 45: /* command_asgn: backref tOP_ASGN command_rhs */ -#line 2360 "mrbgems/mruby-compiler/core/parse.y" +#line 2371 "mrbgems/mruby-compiler/core/parse.y" { backref_error(p, (yyvsp[-2].nd)); (yyval.nd) = new_stmts(p, 0); } -#line 7694 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8074 "mrbgems/mruby-compiler/core/y.tab.c" break; case 47: /* command_rhs: command_call "'rescue' modifier" stmt */ -#line 2368 "mrbgems/mruby-compiler/core/parse.y" +#line 2379 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7702 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8082 "mrbgems/mruby-compiler/core/y.tab.c" break; case 50: /* expr: expr "'and'" expr */ -#line 2376 "mrbgems/mruby-compiler/core/parse.y" +#line 2387 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_and(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7710 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8090 "mrbgems/mruby-compiler/core/y.tab.c" break; case 51: /* expr: expr "'or'" expr */ -#line 2380 "mrbgems/mruby-compiler/core/parse.y" +#line 2391 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_or(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7718 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8098 "mrbgems/mruby-compiler/core/y.tab.c" break; case 52: /* expr: "'not'" opt_nl expr */ -#line 2384 "mrbgems/mruby-compiler/core/parse.y" +#line 2395 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "!"); } -#line 7726 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8106 "mrbgems/mruby-compiler/core/y.tab.c" break; case 53: /* expr: '!' command_call */ -#line 2388 "mrbgems/mruby-compiler/core/parse.y" +#line 2399 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "!"); } -#line 7734 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8114 "mrbgems/mruby-compiler/core/y.tab.c" break; case 55: /* defn_head: "'def'" fname */ -#line 2395 "mrbgems/mruby-compiler/core/parse.y" +#line 2406 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_def(p, (yyvsp[0].id)); p->cmdarg_stack = 0; p->in_def++; nvars_block(p); } -#line 7745 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8125 "mrbgems/mruby-compiler/core/y.tab.c" break; case 56: /* $@4: %empty */ -#line 2404 "mrbgems/mruby-compiler/core/parse.y" +#line 2415 "mrbgems/mruby-compiler/core/parse.y" { p->lstate = EXPR_FNAME; } -#line 7753 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8133 "mrbgems/mruby-compiler/core/y.tab.c" break; case 57: /* defs_head: "'def'" singleton dot_or_colon $@4 fname */ -#line 2408 "mrbgems/mruby-compiler/core/parse.y" +#line 2419 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_sdef(p, (yyvsp[-3].nd), (yyvsp[0].id)); p->cmdarg_stack = 0; @@ -7762,1054 +8142,1054 @@ yyreduce: nvars_block(p); p->lstate = EXPR_ENDFN; /* force for args */ } -#line 7766 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8146 "mrbgems/mruby-compiler/core/y.tab.c" break; case 58: /* expr_value: expr */ -#line 2419 "mrbgems/mruby-compiler/core/parse.y" +#line 2430 "mrbgems/mruby-compiler/core/parse.y" { if (!(yyvsp[0].nd)) (yyval.nd) = new_nil(p); else { (yyval.nd) = (yyvsp[0].nd); } } -#line 7777 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8157 "mrbgems/mruby-compiler/core/y.tab.c" break; case 62: /* block_command: block_call call_op2 operation2 command_args */ -#line 2433 "mrbgems/mruby-compiler/core/parse.y" +#line 2444 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num)); } -#line 7785 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8165 "mrbgems/mruby-compiler/core/y.tab.c" break; case 63: /* $@5: %empty */ -#line 2439 "mrbgems/mruby-compiler/core/parse.y" +#line 2450 "mrbgems/mruby-compiler/core/parse.y" { local_nest(p); nvars_nest(p); } -#line 7794 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8174 "mrbgems/mruby-compiler/core/y.tab.c" break; case 64: /* cmd_brace_block: "{" $@5 opt_block_param compstmt '}' */ -#line 2446 "mrbgems/mruby-compiler/core/parse.y" +#line 2457 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_block(p, (yyvsp[-2].nd), (yyvsp[-1].nd)); local_unnest(p); nvars_unnest(p); } -#line 7804 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8184 "mrbgems/mruby-compiler/core/y.tab.c" break; case 65: /* command: operation command_args */ -#line 2454 "mrbgems/mruby-compiler/core/parse.y" +#line 2465 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_fcall(p, (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 7812 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8192 "mrbgems/mruby-compiler/core/y.tab.c" break; case 66: /* command: operation command_args cmd_brace_block */ -#line 2458 "mrbgems/mruby-compiler/core/parse.y" +#line 2469 "mrbgems/mruby-compiler/core/parse.y" { args_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd)); (yyval.nd) = new_fcall(p, (yyvsp[-2].id), (yyvsp[-1].nd)); } -#line 7821 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 67: /* command: primary_value call_op operation2 command_args */ -#line 2463 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num)); - } -#line 7829 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 68: /* command: primary_value call_op operation2 command_args cmd_brace_block */ -#line 2467 "mrbgems/mruby-compiler/core/parse.y" - { - args_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd)); - (yyval.nd) = new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), (yyvsp[-1].nd), (yyvsp[-3].num)); - } -#line 7838 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 69: /* command: primary_value "::" operation2 command_args */ -#line 2472 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), tCOLON2); - } -#line 7846 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 70: /* command: primary_value "::" operation2 command_args cmd_brace_block */ -#line 2476 "mrbgems/mruby-compiler/core/parse.y" - { - args_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd)); - (yyval.nd) = new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), (yyvsp[-1].nd), tCOLON2); - } -#line 7855 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 71: /* command: "'super'" command_args */ -#line 2481 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_super(p, (yyvsp[0].nd)); - } -#line 7863 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 72: /* command: "'yield'" command_args */ -#line 2485 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_yield(p, (yyvsp[0].nd)); - } -#line 7871 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 73: /* command: "'return'" call_args */ -#line 2489 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_return(p, ret_args(p, (yyvsp[0].nd))); - } -#line 7879 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 74: /* command: "'break'" call_args */ -#line 2493 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_break(p, ret_args(p, (yyvsp[0].nd))); - } -#line 7887 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 75: /* command: "'next'" call_args */ -#line 2497 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_next(p, ret_args(p, (yyvsp[0].nd))); - } -#line 7895 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 76: /* mlhs: mlhs_basic */ -#line 2503 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = (yyvsp[0].nd); - } -#line 7903 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 77: /* mlhs: tLPAREN mlhs_inner rparen */ -#line 2507 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = (yyvsp[-1].nd); - } -#line 7911 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 79: /* mlhs_inner: tLPAREN mlhs_inner rparen */ -#line 2514 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = (yyvsp[-1].nd); - } -#line 7919 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 80: /* mlhs_basic: mlhs_list */ -#line 2520 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list1((yyvsp[0].nd)); - } -#line 7927 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 81: /* mlhs_basic: mlhs_list mlhs_item */ -#line 2524 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list1(push((yyvsp[-1].nd),(yyvsp[0].nd))); - } -#line 7935 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 82: /* mlhs_basic: mlhs_list "*" mlhs_node */ -#line 2528 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list2((yyvsp[-2].nd), (yyvsp[0].nd)); - } -#line 7943 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 83: /* mlhs_basic: mlhs_list "*" mlhs_node ',' mlhs_post */ -#line 2532 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list3((yyvsp[-4].nd), (yyvsp[-2].nd), (yyvsp[0].nd)); - } -#line 7951 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 84: /* mlhs_basic: mlhs_list "*" */ -#line 2536 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list2((yyvsp[-1].nd), new_nil(p)); - } -#line 7959 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 85: /* mlhs_basic: mlhs_list "*" ',' mlhs_post */ -#line 2540 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list3((yyvsp[-3].nd), new_nil(p), (yyvsp[0].nd)); - } -#line 7967 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 86: /* mlhs_basic: "*" mlhs_node */ -#line 2544 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list2(0, (yyvsp[0].nd)); - } -#line 7975 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 87: /* mlhs_basic: "*" mlhs_node ',' mlhs_post */ -#line 2548 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list3(0, (yyvsp[-2].nd), (yyvsp[0].nd)); - } -#line 7983 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 88: /* mlhs_basic: "*" */ -#line 2552 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list2(0, new_nil(p)); - } -#line 7991 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 89: /* mlhs_basic: "*" ',' mlhs_post */ -#line 2556 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list3(0, new_nil(p), (yyvsp[0].nd)); - } -#line 7999 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 91: /* mlhs_item: tLPAREN mlhs_inner rparen */ -#line 2563 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_masgn(p, (yyvsp[-1].nd), NULL); - } -#line 8007 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 92: /* mlhs_list: mlhs_item ',' */ -#line 2569 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list1((yyvsp[-1].nd)); - } -#line 8015 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 93: /* mlhs_list: mlhs_list mlhs_item ',' */ -#line 2573 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[-1].nd)); - } -#line 8023 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 94: /* mlhs_post: mlhs_item */ -#line 2579 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list1((yyvsp[0].nd)); - } -#line 8031 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 95: /* mlhs_post: mlhs_list mlhs_item */ -#line 2583 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = push((yyvsp[-1].nd), (yyvsp[0].nd)); - } -#line 8039 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 96: /* mlhs_node: variable */ -#line 2589 "mrbgems/mruby-compiler/core/parse.y" - { - assignable(p, (yyvsp[0].nd)); - } -#line 8047 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 97: /* mlhs_node: primary_value '[' opt_call_args ']' */ -#line 2593 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.'); - } -#line 8055 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 98: /* mlhs_node: primary_value call_op "local variable or method" */ -#line 2597 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); - } -#line 8063 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 99: /* mlhs_node: primary_value "::" "local variable or method" */ -#line 2601 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2); - } -#line 8071 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 100: /* mlhs_node: primary_value call_op "constant" */ -#line 2605 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); - } -#line 8079 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 101: /* mlhs_node: primary_value "::" "constant" */ -#line 2609 "mrbgems/mruby-compiler/core/parse.y" - { - if (p->in_def || p->in_single) - yyerror(&(yylsp[-2]), p, "dynamic constant assignment"); - (yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id)); - } -#line 8089 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 102: /* mlhs_node: tCOLON3 "constant" */ -#line 2615 "mrbgems/mruby-compiler/core/parse.y" - { - if (p->in_def || p->in_single) - yyerror(&(yylsp[-1]), p, "dynamic constant assignment"); - (yyval.nd) = new_colon3(p, (yyvsp[0].id)); - } -#line 8099 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 103: /* mlhs_node: backref */ -#line 2621 "mrbgems/mruby-compiler/core/parse.y" - { - backref_error(p, (yyvsp[0].nd)); - (yyval.nd) = 0; - } -#line 8108 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 104: /* lhs: variable */ -#line 2628 "mrbgems/mruby-compiler/core/parse.y" - { - assignable(p, (yyvsp[0].nd)); - } -#line 8116 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 105: /* lhs: primary_value '[' opt_call_args ']' */ -#line 2632 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.'); - } -#line 8124 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 106: /* lhs: primary_value call_op "local variable or method" */ -#line 2636 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); - } -#line 8132 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 107: /* lhs: primary_value "::" "local variable or method" */ -#line 2640 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2); - } -#line 8140 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 108: /* lhs: primary_value call_op "constant" */ -#line 2644 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); - } -#line 8148 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 109: /* lhs: primary_value "::" "constant" */ -#line 2648 "mrbgems/mruby-compiler/core/parse.y" - { - if (p->in_def || p->in_single) - yyerror(&(yylsp[-2]), p, "dynamic constant assignment"); - (yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id)); - } -#line 8158 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 110: /* lhs: tCOLON3 "constant" */ -#line 2654 "mrbgems/mruby-compiler/core/parse.y" - { - if (p->in_def || p->in_single) - yyerror(&(yylsp[-1]), p, "dynamic constant assignment"); - (yyval.nd) = new_colon3(p, (yyvsp[0].id)); - } -#line 8168 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 111: /* lhs: backref */ -#line 2660 "mrbgems/mruby-compiler/core/parse.y" - { - backref_error(p, (yyvsp[0].nd)); - (yyval.nd) = 0; - } -#line 8177 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 112: /* lhs: "numbered parameter" */ -#line 2665 "mrbgems/mruby-compiler/core/parse.y" - { - yyerror(&(yylsp[0]), p, "can't assign to numbered parameter"); - } -#line 8185 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 113: /* cname: "local variable or method" */ -#line 2671 "mrbgems/mruby-compiler/core/parse.y" - { - yyerror(&(yylsp[0]), p, "class/module name must be CONSTANT"); - } -#line 8193 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 115: /* cpath: tCOLON3 cname */ -#line 2678 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = cons(int_to_node(1), sym_to_node((yyvsp[0].id))); - } #line 8201 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 116: /* cpath: cname */ -#line 2682 "mrbgems/mruby-compiler/core/parse.y" + case 67: /* command: primary_value call_op operation2 command_args */ +#line 2474 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = cons(int_to_node(0), sym_to_node((yyvsp[0].id))); + (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num)); } #line 8209 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 117: /* cpath: primary_value "::" cname */ -#line 2686 "mrbgems/mruby-compiler/core/parse.y" + case 68: /* command: primary_value call_op operation2 command_args cmd_brace_block */ +#line 2478 "mrbgems/mruby-compiler/core/parse.y" { - void_expr_error(p, (yyvsp[-2].nd)); - (yyval.nd) = cons((yyvsp[-2].nd), sym_to_node((yyvsp[0].id))); - } + args_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd)); + (yyval.nd) = new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), (yyvsp[-1].nd), (yyvsp[-3].num)); + } #line 8218 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 121: /* fname: op */ -#line 2696 "mrbgems/mruby-compiler/core/parse.y" + case 69: /* command: primary_value "::" operation2 command_args */ +#line 2483 "mrbgems/mruby-compiler/core/parse.y" { - p->lstate = EXPR_ENDFN; - (yyval.id) = (yyvsp[0].id); + (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), tCOLON2); } -#line 8227 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8226 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 122: /* fname: reswords */ -#line 2701 "mrbgems/mruby-compiler/core/parse.y" + case 70: /* command: primary_value "::" operation2 command_args cmd_brace_block */ +#line 2487 "mrbgems/mruby-compiler/core/parse.y" { - p->lstate = EXPR_ENDFN; - (yyval.id) = (yyvsp[0].id); + args_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd)); + (yyval.nd) = new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), (yyvsp[-1].nd), tCOLON2); } -#line 8236 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8235 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 125: /* undef_list: fsym */ -#line 2712 "mrbgems/mruby-compiler/core/parse.y" + case 71: /* command: "'super'" command_args */ +#line 2492 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = cons(sym_to_node((yyvsp[0].id)), 0); + (yyval.nd) = new_super(p, (yyvsp[0].nd)); } -#line 8244 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8243 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 126: /* $@6: %empty */ -#line 2715 "mrbgems/mruby-compiler/core/parse.y" - {p->lstate = EXPR_FNAME;} -#line 8250 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 127: /* undef_list: undef_list ',' $@6 fsym */ -#line 2716 "mrbgems/mruby-compiler/core/parse.y" + case 72: /* command: "'yield'" command_args */ +#line 2496 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = push((yyvsp[-3].nd), sym_to_node((yyvsp[0].id))); + (yyval.nd) = new_yield(p, (yyvsp[0].nd)); } -#line 8258 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8251 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 128: /* op: '|' */ -#line 2721 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(or); } -#line 8264 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 129: /* op: '^' */ -#line 2722 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(xor); } -#line 8270 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 130: /* op: '&' */ -#line 2723 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(and); } -#line 8276 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 131: /* op: "<=>" */ -#line 2724 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(cmp); } -#line 8282 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 132: /* op: "==" */ -#line 2725 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(eq); } -#line 8288 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 133: /* op: "===" */ -#line 2726 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(eqq); } -#line 8294 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 134: /* op: "=~" */ -#line 2727 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(match); } -#line 8300 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 135: /* op: "!~" */ -#line 2728 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(nmatch); } -#line 8306 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 136: /* op: '>' */ -#line 2729 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(gt); } -#line 8312 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 137: /* op: ">=" */ -#line 2730 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(ge); } -#line 8318 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 138: /* op: '<' */ -#line 2731 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(lt); } -#line 8324 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 139: /* op: "<=" */ -#line 2732 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(le); } -#line 8330 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 140: /* op: "!=" */ -#line 2733 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(neq); } -#line 8336 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 141: /* op: "<<" */ -#line 2734 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(lshift); } -#line 8342 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 142: /* op: ">>" */ -#line 2735 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(rshift); } -#line 8348 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 143: /* op: '+' */ -#line 2736 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(add); } -#line 8354 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 144: /* op: '-' */ -#line 2737 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(sub); } -#line 8360 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 145: /* op: '*' */ -#line 2738 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(mul); } -#line 8366 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 146: /* op: "*" */ -#line 2739 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(mul); } -#line 8372 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 147: /* op: '/' */ -#line 2740 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(div); } -#line 8378 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 148: /* op: '%' */ -#line 2741 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(mod); } -#line 8384 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 149: /* op: tPOW */ -#line 2742 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(pow); } -#line 8390 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 150: /* op: "**" */ -#line 2743 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(pow); } -#line 8396 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 151: /* op: '!' */ -#line 2744 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(not); } -#line 8402 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 152: /* op: '~' */ -#line 2745 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(neg); } -#line 8408 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 153: /* op: "unary plus" */ -#line 2746 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(plus); } -#line 8414 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 154: /* op: "unary minus" */ -#line 2747 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(minus); } -#line 8420 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 155: /* op: tAREF */ -#line 2748 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(aref); } -#line 8426 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 156: /* op: tASET */ -#line 2749 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(aset); } -#line 8432 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 157: /* op: '`' */ -#line 2750 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = intern_op(tick); } -#line 8438 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 198: /* arg: lhs '=' arg_rhs */ -#line 2768 "mrbgems/mruby-compiler/core/parse.y" + case 73: /* command: "'return'" call_args */ +#line 2500 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = new_asgn(p, (yyvsp[-2].nd), (yyvsp[0].nd)); + (yyval.nd) = new_return(p, ret_args(p, (yyvsp[0].nd))); } -#line 8446 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8259 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 199: /* arg: var_lhs tOP_ASGN arg_rhs */ -#line 2772 "mrbgems/mruby-compiler/core/parse.y" + case 74: /* command: "'break'" call_args */ +#line 2504 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = new_op_asgn(p, (yyvsp[-2].nd), (yyvsp[-1].id), (yyvsp[0].nd)); + (yyval.nd) = new_break(p, ret_args(p, (yyvsp[0].nd))); } -#line 8454 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8267 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 200: /* arg: primary_value '[' opt_call_args ']' tOP_ASGN arg_rhs */ -#line 2776 "mrbgems/mruby-compiler/core/parse.y" + case 75: /* command: "'next'" call_args */ +#line 2508 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-5].nd), intern_op(aref), (yyvsp[-3].nd), '.'), (yyvsp[-1].id), (yyvsp[0].nd)); + (yyval.nd) = new_next(p, ret_args(p, (yyvsp[0].nd))); } -#line 8462 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8275 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 201: /* arg: primary_value call_op "local variable or method" tOP_ASGN arg_rhs */ -#line 2780 "mrbgems/mruby-compiler/core/parse.y" + case 76: /* mlhs: mlhs_basic */ +#line 2514 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, (yyvsp[-3].num)), (yyvsp[-1].id), (yyvsp[0].nd)); + (yyval.nd) = (yyvsp[0].nd); } -#line 8470 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8283 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 202: /* arg: primary_value call_op "constant" tOP_ASGN arg_rhs */ -#line 2784 "mrbgems/mruby-compiler/core/parse.y" + case 77: /* mlhs: tLPAREN mlhs_inner rparen */ +#line 2518 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, (yyvsp[-3].num)), (yyvsp[-1].id), (yyvsp[0].nd)); + (yyval.nd) = (yyvsp[-1].nd); } -#line 8478 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8291 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 203: /* arg: primary_value "::" "local variable or method" tOP_ASGN arg_rhs */ -#line 2788 "mrbgems/mruby-compiler/core/parse.y" + case 79: /* mlhs_inner: tLPAREN mlhs_inner rparen */ +#line 2525 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, tCOLON2), (yyvsp[-1].id), (yyvsp[0].nd)); + (yyval.nd) = (yyvsp[-1].nd); } -#line 8486 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8299 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 204: /* arg: primary_value "::" "constant" tOP_ASGN arg_rhs */ -#line 2792 "mrbgems/mruby-compiler/core/parse.y" + case 80: /* mlhs_basic: mlhs_list */ +#line 2531 "mrbgems/mruby-compiler/core/parse.y" { - yyerror(&(yylsp[-4]), p, "constant re-assignment"); - (yyval.nd) = new_stmts(p, 0); + (yyval.nd) = list1((yyvsp[0].nd)); } -#line 8495 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8307 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 205: /* arg: tCOLON3 "constant" tOP_ASGN arg_rhs */ -#line 2797 "mrbgems/mruby-compiler/core/parse.y" + case 81: /* mlhs_basic: mlhs_list mlhs_item */ +#line 2535 "mrbgems/mruby-compiler/core/parse.y" { - yyerror(&(yylsp[-3]), p, "constant re-assignment"); - (yyval.nd) = new_stmts(p, 0); + (yyval.nd) = list1(push((yyvsp[-1].nd),(yyvsp[0].nd))); + } +#line 8315 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 82: /* mlhs_basic: mlhs_list "*" mlhs_node */ +#line 2539 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = list2((yyvsp[-2].nd), (yyvsp[0].nd)); + } +#line 8323 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 83: /* mlhs_basic: mlhs_list "*" mlhs_node ',' mlhs_post */ +#line 2543 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = list3((yyvsp[-4].nd), (yyvsp[-2].nd), (yyvsp[0].nd)); + } +#line 8331 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 84: /* mlhs_basic: mlhs_list "*" */ +#line 2547 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = list2((yyvsp[-1].nd), new_nil(p)); + } +#line 8339 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 85: /* mlhs_basic: mlhs_list "*" ',' mlhs_post */ +#line 2551 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = list3((yyvsp[-3].nd), new_nil(p), (yyvsp[0].nd)); + } +#line 8347 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 86: /* mlhs_basic: "*" mlhs_node */ +#line 2555 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = list2(0, (yyvsp[0].nd)); + } +#line 8355 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 87: /* mlhs_basic: "*" mlhs_node ',' mlhs_post */ +#line 2559 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = list3(0, (yyvsp[-2].nd), (yyvsp[0].nd)); + } +#line 8363 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 88: /* mlhs_basic: "*" */ +#line 2563 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = list2(0, new_nil(p)); + } +#line 8371 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 89: /* mlhs_basic: "*" ',' mlhs_post */ +#line 2567 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = list3(0, new_nil(p), (yyvsp[0].nd)); + } +#line 8379 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 91: /* mlhs_item: tLPAREN mlhs_inner rparen */ +#line 2574 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_masgn(p, (yyvsp[-1].nd), NULL); + } +#line 8387 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 92: /* mlhs_list: mlhs_item ',' */ +#line 2580 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = list1((yyvsp[-1].nd)); + } +#line 8395 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 93: /* mlhs_list: mlhs_list mlhs_item ',' */ +#line 2584 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[-1].nd)); + } +#line 8403 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 94: /* mlhs_post: mlhs_item */ +#line 2590 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = list1((yyvsp[0].nd)); + } +#line 8411 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 95: /* mlhs_post: mlhs_list mlhs_item */ +#line 2594 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = push((yyvsp[-1].nd), (yyvsp[0].nd)); + } +#line 8419 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 96: /* mlhs_node: variable */ +#line 2600 "mrbgems/mruby-compiler/core/parse.y" + { + assignable(p, (yyvsp[0].nd)); + } +#line 8427 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 97: /* mlhs_node: primary_value '[' opt_call_args ']' */ +#line 2604 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.'); + } +#line 8435 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 98: /* mlhs_node: primary_value call_op "local variable or method" */ +#line 2608 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); + } +#line 8443 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 99: /* mlhs_node: primary_value "::" "local variable or method" */ +#line 2612 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2); + } +#line 8451 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 100: /* mlhs_node: primary_value call_op "constant" */ +#line 2616 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); + } +#line 8459 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 101: /* mlhs_node: primary_value "::" "constant" */ +#line 2620 "mrbgems/mruby-compiler/core/parse.y" + { + if (p->in_def || p->in_single) + yyerror(&(yylsp[-2]), p, "dynamic constant assignment"); + (yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id)); + } +#line 8469 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 102: /* mlhs_node: tCOLON3 "constant" */ +#line 2626 "mrbgems/mruby-compiler/core/parse.y" + { + if (p->in_def || p->in_single) + yyerror(&(yylsp[-1]), p, "dynamic constant assignment"); + (yyval.nd) = new_colon3(p, (yyvsp[0].id)); + } +#line 8479 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 103: /* mlhs_node: backref */ +#line 2632 "mrbgems/mruby-compiler/core/parse.y" + { + backref_error(p, (yyvsp[0].nd)); + (yyval.nd) = 0; + } +#line 8488 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 104: /* lhs: variable */ +#line 2639 "mrbgems/mruby-compiler/core/parse.y" + { + assignable(p, (yyvsp[0].nd)); + } +#line 8496 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 105: /* lhs: primary_value '[' opt_call_args ']' */ +#line 2643 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.'); } #line 8504 "mrbgems/mruby-compiler/core/y.tab.c" break; + case 106: /* lhs: primary_value call_op "local variable or method" */ +#line 2647 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); + } +#line 8512 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 107: /* lhs: primary_value "::" "local variable or method" */ +#line 2651 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2); + } +#line 8520 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 108: /* lhs: primary_value call_op "constant" */ +#line 2655 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); + } +#line 8528 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 109: /* lhs: primary_value "::" "constant" */ +#line 2659 "mrbgems/mruby-compiler/core/parse.y" + { + if (p->in_def || p->in_single) + yyerror(&(yylsp[-2]), p, "dynamic constant assignment"); + (yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id)); + } +#line 8538 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 110: /* lhs: tCOLON3 "constant" */ +#line 2665 "mrbgems/mruby-compiler/core/parse.y" + { + if (p->in_def || p->in_single) + yyerror(&(yylsp[-1]), p, "dynamic constant assignment"); + (yyval.nd) = new_colon3(p, (yyvsp[0].id)); + } +#line 8548 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 111: /* lhs: backref */ +#line 2671 "mrbgems/mruby-compiler/core/parse.y" + { + backref_error(p, (yyvsp[0].nd)); + (yyval.nd) = 0; + } +#line 8557 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 112: /* lhs: "numbered parameter" */ +#line 2676 "mrbgems/mruby-compiler/core/parse.y" + { + yyerror(&(yylsp[0]), p, "can't assign to numbered parameter"); + } +#line 8565 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 113: /* cname: "local variable or method" */ +#line 2682 "mrbgems/mruby-compiler/core/parse.y" + { + yyerror(&(yylsp[0]), p, "class/module name must be CONSTANT"); + } +#line 8573 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 115: /* cpath: tCOLON3 cname */ +#line 2689 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = cons(int_to_node(1), sym_to_node((yyvsp[0].id))); + } +#line 8581 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 116: /* cpath: cname */ +#line 2693 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = cons(int_to_node(0), sym_to_node((yyvsp[0].id))); + } +#line 8589 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 117: /* cpath: primary_value "::" cname */ +#line 2697 "mrbgems/mruby-compiler/core/parse.y" + { + void_expr_error(p, (yyvsp[-2].nd)); + (yyval.nd) = cons((yyvsp[-2].nd), sym_to_node((yyvsp[0].id))); + } +#line 8598 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 121: /* fname: op */ +#line 2707 "mrbgems/mruby-compiler/core/parse.y" + { + p->lstate = EXPR_ENDFN; + (yyval.id) = (yyvsp[0].id); + } +#line 8607 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 122: /* fname: reswords */ +#line 2712 "mrbgems/mruby-compiler/core/parse.y" + { + p->lstate = EXPR_ENDFN; + (yyval.id) = (yyvsp[0].id); + } +#line 8616 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 125: /* undef_list: fsym */ +#line 2723 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = cons(sym_to_node((yyvsp[0].id)), 0); + } +#line 8624 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 126: /* $@6: %empty */ +#line 2726 "mrbgems/mruby-compiler/core/parse.y" + {p->lstate = EXPR_FNAME;} +#line 8630 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 127: /* undef_list: undef_list ',' $@6 fsym */ +#line 2727 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = push((yyvsp[-3].nd), sym_to_node((yyvsp[0].id))); + } +#line 8638 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 128: /* op: '|' */ +#line 2732 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(or); } +#line 8644 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 129: /* op: '^' */ +#line 2733 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(xor); } +#line 8650 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 130: /* op: '&' */ +#line 2734 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(and); } +#line 8656 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 131: /* op: "<=>" */ +#line 2735 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(cmp); } +#line 8662 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 132: /* op: "==" */ +#line 2736 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(eq); } +#line 8668 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 133: /* op: "===" */ +#line 2737 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(eqq); } +#line 8674 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 134: /* op: "=~" */ +#line 2738 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(match); } +#line 8680 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 135: /* op: "!~" */ +#line 2739 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(nmatch); } +#line 8686 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 136: /* op: '>' */ +#line 2740 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(gt); } +#line 8692 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 137: /* op: ">=" */ +#line 2741 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(ge); } +#line 8698 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 138: /* op: '<' */ +#line 2742 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(lt); } +#line 8704 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 139: /* op: "<=" */ +#line 2743 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(le); } +#line 8710 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 140: /* op: "!=" */ +#line 2744 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(neq); } +#line 8716 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 141: /* op: "<<" */ +#line 2745 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(lshift); } +#line 8722 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 142: /* op: ">>" */ +#line 2746 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(rshift); } +#line 8728 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 143: /* op: '+' */ +#line 2747 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(add); } +#line 8734 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 144: /* op: '-' */ +#line 2748 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(sub); } +#line 8740 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 145: /* op: '*' */ +#line 2749 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(mul); } +#line 8746 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 146: /* op: "*" */ +#line 2750 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(mul); } +#line 8752 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 147: /* op: '/' */ +#line 2751 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(div); } +#line 8758 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 148: /* op: '%' */ +#line 2752 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(mod); } +#line 8764 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 149: /* op: tPOW */ +#line 2753 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(pow); } +#line 8770 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 150: /* op: "**" */ +#line 2754 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(pow); } +#line 8776 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 151: /* op: '!' */ +#line 2755 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(not); } +#line 8782 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 152: /* op: '~' */ +#line 2756 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(neg); } +#line 8788 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 153: /* op: "unary plus" */ +#line 2757 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(plus); } +#line 8794 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 154: /* op: "unary minus" */ +#line 2758 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(minus); } +#line 8800 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 155: /* op: tAREF */ +#line 2759 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(aref); } +#line 8806 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 156: /* op: tASET */ +#line 2760 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(aset); } +#line 8812 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 157: /* op: '`' */ +#line 2761 "mrbgems/mruby-compiler/core/parse.y" + { (yyval.id) = intern_op(tick); } +#line 8818 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 198: /* arg: lhs '=' arg_rhs */ +#line 2779 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_asgn(p, (yyvsp[-2].nd), (yyvsp[0].nd)); + } +#line 8826 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 199: /* arg: var_lhs tOP_ASGN arg_rhs */ +#line 2783 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_op_asgn(p, (yyvsp[-2].nd), (yyvsp[-1].id), (yyvsp[0].nd)); + } +#line 8834 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 200: /* arg: primary_value '[' opt_call_args ']' tOP_ASGN arg_rhs */ +#line 2787 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-5].nd), intern_op(aref), (yyvsp[-3].nd), '.'), (yyvsp[-1].id), (yyvsp[0].nd)); + } +#line 8842 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 201: /* arg: primary_value call_op "local variable or method" tOP_ASGN arg_rhs */ +#line 2791 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, (yyvsp[-3].num)), (yyvsp[-1].id), (yyvsp[0].nd)); + } +#line 8850 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 202: /* arg: primary_value call_op "constant" tOP_ASGN arg_rhs */ +#line 2795 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, (yyvsp[-3].num)), (yyvsp[-1].id), (yyvsp[0].nd)); + } +#line 8858 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 203: /* arg: primary_value "::" "local variable or method" tOP_ASGN arg_rhs */ +#line 2799 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, tCOLON2), (yyvsp[-1].id), (yyvsp[0].nd)); + } +#line 8866 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 204: /* arg: primary_value "::" "constant" tOP_ASGN arg_rhs */ +#line 2803 "mrbgems/mruby-compiler/core/parse.y" + { + yyerror(&(yylsp[-4]), p, "constant re-assignment"); + (yyval.nd) = new_stmts(p, 0); + } +#line 8875 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 205: /* arg: tCOLON3 "constant" tOP_ASGN arg_rhs */ +#line 2808 "mrbgems/mruby-compiler/core/parse.y" + { + yyerror(&(yylsp[-3]), p, "constant re-assignment"); + (yyval.nd) = new_stmts(p, 0); + } +#line 8884 "mrbgems/mruby-compiler/core/y.tab.c" + break; + case 206: /* arg: backref tOP_ASGN arg_rhs */ -#line 2802 "mrbgems/mruby-compiler/core/parse.y" +#line 2813 "mrbgems/mruby-compiler/core/parse.y" { backref_error(p, (yyvsp[-2].nd)); (yyval.nd) = new_stmts(p, 0); } -#line 8513 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8893 "mrbgems/mruby-compiler/core/y.tab.c" break; case 207: /* arg: arg ".." arg */ -#line 2807 "mrbgems/mruby-compiler/core/parse.y" +#line 2818 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_dot2(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8521 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8901 "mrbgems/mruby-compiler/core/y.tab.c" break; case 208: /* arg: arg ".." */ -#line 2811 "mrbgems/mruby-compiler/core/parse.y" +#line 2822 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_dot2(p, (yyvsp[-1].nd), new_nil(p)); } -#line 8529 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8909 "mrbgems/mruby-compiler/core/y.tab.c" break; case 209: /* arg: tBDOT2 arg */ -#line 2815 "mrbgems/mruby-compiler/core/parse.y" +#line 2826 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_dot2(p, new_nil(p), (yyvsp[0].nd)); } -#line 8537 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8917 "mrbgems/mruby-compiler/core/y.tab.c" break; case 210: /* arg: arg "..." arg */ -#line 2819 "mrbgems/mruby-compiler/core/parse.y" +#line 2830 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_dot3(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8545 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8925 "mrbgems/mruby-compiler/core/y.tab.c" break; case 211: /* arg: arg "..." */ -#line 2823 "mrbgems/mruby-compiler/core/parse.y" +#line 2834 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_dot3(p, (yyvsp[-1].nd), new_nil(p)); } -#line 8553 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8933 "mrbgems/mruby-compiler/core/y.tab.c" break; case 212: /* arg: tBDOT3 arg */ -#line 2827 "mrbgems/mruby-compiler/core/parse.y" +#line 2838 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_dot3(p, new_nil(p), (yyvsp[0].nd)); } -#line 8561 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8941 "mrbgems/mruby-compiler/core/y.tab.c" break; case 213: /* arg: arg '+' arg */ -#line 2831 "mrbgems/mruby-compiler/core/parse.y" +#line 2842 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "+", (yyvsp[0].nd)); } -#line 8569 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8949 "mrbgems/mruby-compiler/core/y.tab.c" break; case 214: /* arg: arg '-' arg */ -#line 2835 "mrbgems/mruby-compiler/core/parse.y" +#line 2846 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "-", (yyvsp[0].nd)); } -#line 8577 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8957 "mrbgems/mruby-compiler/core/y.tab.c" break; case 215: /* arg: arg '*' arg */ -#line 2839 "mrbgems/mruby-compiler/core/parse.y" +#line 2850 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "*", (yyvsp[0].nd)); } -#line 8585 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8965 "mrbgems/mruby-compiler/core/y.tab.c" break; case 216: /* arg: arg '/' arg */ -#line 2843 "mrbgems/mruby-compiler/core/parse.y" +#line 2854 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "/", (yyvsp[0].nd)); } -#line 8593 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8973 "mrbgems/mruby-compiler/core/y.tab.c" break; case 217: /* arg: arg '%' arg */ -#line 2847 "mrbgems/mruby-compiler/core/parse.y" +#line 2858 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "%", (yyvsp[0].nd)); } -#line 8601 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8981 "mrbgems/mruby-compiler/core/y.tab.c" break; case 218: /* arg: arg tPOW arg */ -#line 2851 "mrbgems/mruby-compiler/core/parse.y" +#line 2862 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd)); } -#line 8609 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8989 "mrbgems/mruby-compiler/core/y.tab.c" break; case 219: /* arg: tUMINUS_NUM "integer literal" tPOW arg */ -#line 2855 "mrbgems/mruby-compiler/core/parse.y" +#line 2866 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_negate(p, call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd))); } -#line 8617 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8997 "mrbgems/mruby-compiler/core/y.tab.c" break; case 220: /* arg: tUMINUS_NUM "float literal" tPOW arg */ -#line 2859 "mrbgems/mruby-compiler/core/parse.y" +#line 2870 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_negate(p, call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd))); } -#line 8625 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9005 "mrbgems/mruby-compiler/core/y.tab.c" break; case 221: /* arg: "unary plus" arg */ -#line 2863 "mrbgems/mruby-compiler/core/parse.y" +#line 2874 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, (yyvsp[0].nd), "+@"); } -#line 8633 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9013 "mrbgems/mruby-compiler/core/y.tab.c" break; case 222: /* arg: "unary minus" arg */ -#line 2867 "mrbgems/mruby-compiler/core/parse.y" +#line 2878 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_negate(p, (yyvsp[0].nd)); } -#line 8641 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9021 "mrbgems/mruby-compiler/core/y.tab.c" break; case 223: /* arg: arg '|' arg */ -#line 2871 "mrbgems/mruby-compiler/core/parse.y" +#line 2882 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "|", (yyvsp[0].nd)); } -#line 8649 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9029 "mrbgems/mruby-compiler/core/y.tab.c" break; case 224: /* arg: arg '^' arg */ -#line 2875 "mrbgems/mruby-compiler/core/parse.y" +#line 2886 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "^", (yyvsp[0].nd)); } -#line 8657 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9037 "mrbgems/mruby-compiler/core/y.tab.c" break; case 225: /* arg: arg '&' arg */ -#line 2879 "mrbgems/mruby-compiler/core/parse.y" +#line 2890 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "&", (yyvsp[0].nd)); } -#line 8665 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9045 "mrbgems/mruby-compiler/core/y.tab.c" break; case 226: /* arg: arg "<=>" arg */ -#line 2883 "mrbgems/mruby-compiler/core/parse.y" +#line 2894 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<=>", (yyvsp[0].nd)); } -#line 8673 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9053 "mrbgems/mruby-compiler/core/y.tab.c" break; case 227: /* arg: arg '>' arg */ -#line 2887 "mrbgems/mruby-compiler/core/parse.y" +#line 2898 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">", (yyvsp[0].nd)); } -#line 8681 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9061 "mrbgems/mruby-compiler/core/y.tab.c" break; case 228: /* arg: arg ">=" arg */ -#line 2891 "mrbgems/mruby-compiler/core/parse.y" +#line 2902 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">=", (yyvsp[0].nd)); } -#line 8689 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9069 "mrbgems/mruby-compiler/core/y.tab.c" break; case 229: /* arg: arg '<' arg */ -#line 2895 "mrbgems/mruby-compiler/core/parse.y" +#line 2906 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<", (yyvsp[0].nd)); } -#line 8697 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9077 "mrbgems/mruby-compiler/core/y.tab.c" break; case 230: /* arg: arg "<=" arg */ -#line 2899 "mrbgems/mruby-compiler/core/parse.y" +#line 2910 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<=", (yyvsp[0].nd)); } -#line 8705 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9085 "mrbgems/mruby-compiler/core/y.tab.c" break; case 231: /* arg: arg "==" arg */ -#line 2903 "mrbgems/mruby-compiler/core/parse.y" +#line 2914 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "==", (yyvsp[0].nd)); } -#line 8713 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9093 "mrbgems/mruby-compiler/core/y.tab.c" break; case 232: /* arg: arg "===" arg */ -#line 2907 "mrbgems/mruby-compiler/core/parse.y" +#line 2918 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "===", (yyvsp[0].nd)); } -#line 8721 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9101 "mrbgems/mruby-compiler/core/y.tab.c" break; case 233: /* arg: arg "!=" arg */ -#line 2911 "mrbgems/mruby-compiler/core/parse.y" +#line 2922 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "!=", (yyvsp[0].nd)); } -#line 8729 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9109 "mrbgems/mruby-compiler/core/y.tab.c" break; case 234: /* arg: arg "=~" arg */ -#line 2915 "mrbgems/mruby-compiler/core/parse.y" +#line 2926 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "=~", (yyvsp[0].nd)); } -#line 8737 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9117 "mrbgems/mruby-compiler/core/y.tab.c" break; case 235: /* arg: arg "!~" arg */ -#line 2919 "mrbgems/mruby-compiler/core/parse.y" +#line 2930 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "!~", (yyvsp[0].nd)); } -#line 8745 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9125 "mrbgems/mruby-compiler/core/y.tab.c" break; case 236: /* arg: '!' arg */ -#line 2923 "mrbgems/mruby-compiler/core/parse.y" +#line 2934 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "!"); } -#line 8753 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9133 "mrbgems/mruby-compiler/core/y.tab.c" break; case 237: /* arg: '~' arg */ -#line 2927 "mrbgems/mruby-compiler/core/parse.y" +#line 2938 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "~"); } -#line 8761 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9141 "mrbgems/mruby-compiler/core/y.tab.c" break; case 238: /* arg: arg "<<" arg */ -#line 2931 "mrbgems/mruby-compiler/core/parse.y" +#line 2942 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<<", (yyvsp[0].nd)); } -#line 8769 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9149 "mrbgems/mruby-compiler/core/y.tab.c" break; case 239: /* arg: arg ">>" arg */ -#line 2935 "mrbgems/mruby-compiler/core/parse.y" +#line 2946 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">>", (yyvsp[0].nd)); } -#line 8777 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9157 "mrbgems/mruby-compiler/core/y.tab.c" break; case 240: /* arg: arg "&&" arg */ -#line 2939 "mrbgems/mruby-compiler/core/parse.y" +#line 2950 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_and(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8785 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9165 "mrbgems/mruby-compiler/core/y.tab.c" break; case 241: /* arg: arg "||" arg */ -#line 2943 "mrbgems/mruby-compiler/core/parse.y" +#line 2954 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_or(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8793 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9173 "mrbgems/mruby-compiler/core/y.tab.c" break; case 242: /* arg: arg '?' arg opt_nl ':' arg */ -#line 2947 "mrbgems/mruby-compiler/core/parse.y" +#line 2958 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_if(p, cond((yyvsp[-5].nd)), (yyvsp[-3].nd), (yyvsp[0].nd)); } -#line 8801 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9181 "mrbgems/mruby-compiler/core/y.tab.c" break; case 243: /* arg: arg '?' arg opt_nl "label" arg */ -#line 2951 "mrbgems/mruby-compiler/core/parse.y" +#line 2962 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_if(p, cond((yyvsp[-5].nd)), (yyvsp[-3].nd), (yyvsp[0].nd)); } -#line 8809 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9189 "mrbgems/mruby-compiler/core/y.tab.c" break; case 244: /* arg: defn_head f_opt_arglist_paren '=' arg */ -#line 2955 "mrbgems/mruby-compiler/core/parse.y" +#line 2966 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-3].nd); endless_method_name(p, (yyvsp[-3].nd)); @@ -8818,11 +9198,11 @@ yyreduce: nvars_unnest(p); p->in_def--; } -#line 8822 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9202 "mrbgems/mruby-compiler/core/y.tab.c" break; case 245: /* arg: defn_head f_opt_arglist_paren '=' arg "'rescue' modifier" arg */ -#line 2964 "mrbgems/mruby-compiler/core/parse.y" +#line 2975 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-5].nd); endless_method_name(p, (yyvsp[-5].nd)); @@ -8831,11 +9211,11 @@ yyreduce: nvars_unnest(p); p->in_def--; } -#line 8835 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9215 "mrbgems/mruby-compiler/core/y.tab.c" break; case 246: /* arg: defs_head f_opt_arglist_paren '=' arg */ -#line 2973 "mrbgems/mruby-compiler/core/parse.y" +#line 2984 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-3].nd); void_expr_error(p, (yyvsp[0].nd)); @@ -8844,11 +9224,11 @@ yyreduce: p->in_def--; p->in_single--; } -#line 8848 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9228 "mrbgems/mruby-compiler/core/y.tab.c" break; case 247: /* arg: defs_head f_opt_arglist_paren '=' arg "'rescue' modifier" arg */ -#line 2982 "mrbgems/mruby-compiler/core/parse.y" +#line 2993 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-5].nd); void_expr_error(p, (yyvsp[-2].nd)); @@ -8857,68 +9237,68 @@ yyreduce: p->in_def--; p->in_single--; } -#line 8861 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9241 "mrbgems/mruby-compiler/core/y.tab.c" break; case 248: /* arg: primary */ -#line 2991 "mrbgems/mruby-compiler/core/parse.y" +#line 3002 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 8869 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9249 "mrbgems/mruby-compiler/core/y.tab.c" break; case 250: /* aref_args: args trailer */ -#line 2998 "mrbgems/mruby-compiler/core/parse.y" +#line 3009 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 8877 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9257 "mrbgems/mruby-compiler/core/y.tab.c" break; case 251: /* aref_args: args comma assocs trailer */ -#line 3002 "mrbgems/mruby-compiler/core/parse.y" +#line 3013 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-3].nd), new_hash(p, (yyvsp[-1].nd))); } -#line 8885 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9265 "mrbgems/mruby-compiler/core/y.tab.c" break; case 252: /* aref_args: assocs trailer */ -#line 3006 "mrbgems/mruby-compiler/core/parse.y" +#line 3017 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(new_hash(p, (yyvsp[-1].nd)), 0); } -#line 8893 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9273 "mrbgems/mruby-compiler/core/y.tab.c" break; case 253: /* arg_rhs: arg */ -#line 3012 "mrbgems/mruby-compiler/core/parse.y" +#line 3023 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 8901 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9281 "mrbgems/mruby-compiler/core/y.tab.c" break; case 254: /* arg_rhs: arg "'rescue' modifier" arg */ -#line 3016 "mrbgems/mruby-compiler/core/parse.y" +#line 3027 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[-2].nd)); (yyval.nd) = new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8910 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9290 "mrbgems/mruby-compiler/core/y.tab.c" break; case 255: /* paren_args: '(' opt_call_args ')' */ -#line 3023 "mrbgems/mruby-compiler/core/parse.y" +#line 3034 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 8918 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9298 "mrbgems/mruby-compiler/core/y.tab.c" break; case 256: /* paren_args: '(' args comma tBDOT3 rparen */ -#line 3027 "mrbgems/mruby-compiler/core/parse.y" +#line 3038 "mrbgems/mruby-compiler/core/parse.y" { mrb_sym r = intern_op(mul); mrb_sym k = intern_op(pow); @@ -8927,11 +9307,11 @@ yyreduce: list1(cons(new_kw_rest_args(p, 0), new_lvar(p, k))), new_block_arg(p, new_lvar(p, b))); } -#line 8931 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9311 "mrbgems/mruby-compiler/core/y.tab.c" break; case 257: /* paren_args: '(' tBDOT3 rparen */ -#line 3036 "mrbgems/mruby-compiler/core/parse.y" +#line 3047 "mrbgems/mruby-compiler/core/parse.y" { mrb_sym r = intern_op(mul); mrb_sym k = intern_op(pow); @@ -8946,390 +9326,390 @@ yyreduce: (yyval.nd) = 0; } } -#line 8950 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9330 "mrbgems/mruby-compiler/core/y.tab.c" break; case 262: /* opt_call_args: args comma */ -#line 3059 "mrbgems/mruby-compiler/core/parse.y" +#line 3070 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_callargs(p,(yyvsp[-1].nd),0,0); } -#line 8958 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9338 "mrbgems/mruby-compiler/core/y.tab.c" break; case 263: /* opt_call_args: args comma assocs comma */ -#line 3063 "mrbgems/mruby-compiler/core/parse.y" +#line 3074 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_callargs(p,(yyvsp[-3].nd),(yyvsp[-1].nd),0); } -#line 8966 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9346 "mrbgems/mruby-compiler/core/y.tab.c" break; case 264: /* opt_call_args: assocs comma */ -#line 3067 "mrbgems/mruby-compiler/core/parse.y" +#line 3078 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_callargs(p,0,(yyvsp[-1].nd),0); } -#line 8974 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9354 "mrbgems/mruby-compiler/core/y.tab.c" break; case 265: /* call_args: command */ -#line 3073 "mrbgems/mruby-compiler/core/parse.y" +#line 3084 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = new_callargs(p, list1((yyvsp[0].nd)), 0, 0); } -#line 8983 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9363 "mrbgems/mruby-compiler/core/y.tab.c" break; case 266: /* call_args: args opt_block_arg */ -#line 3078 "mrbgems/mruby-compiler/core/parse.y" +#line 3089 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_callargs(p, (yyvsp[-1].nd), 0, (yyvsp[0].nd)); } -#line 8991 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9371 "mrbgems/mruby-compiler/core/y.tab.c" break; case 267: /* call_args: assocs opt_block_arg */ -#line 3082 "mrbgems/mruby-compiler/core/parse.y" +#line 3093 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_callargs(p, 0, (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 8999 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9379 "mrbgems/mruby-compiler/core/y.tab.c" break; case 268: /* call_args: args comma assocs opt_block_arg */ -#line 3086 "mrbgems/mruby-compiler/core/parse.y" +#line 3097 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_callargs(p, (yyvsp[-3].nd), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9007 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9387 "mrbgems/mruby-compiler/core/y.tab.c" break; case 269: /* call_args: block_arg */ -#line 3090 "mrbgems/mruby-compiler/core/parse.y" +#line 3101 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_callargs(p, 0, 0, (yyvsp[0].nd)); } -#line 9015 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9395 "mrbgems/mruby-compiler/core/y.tab.c" break; case 270: /* @7: %empty */ -#line 3095 "mrbgems/mruby-compiler/core/parse.y" +#line 3106 "mrbgems/mruby-compiler/core/parse.y" { (yyval.stack) = p->cmdarg_stack; CMDARG_PUSH(1); } -#line 9024 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9404 "mrbgems/mruby-compiler/core/y.tab.c" break; case 271: /* command_args: @7 call_args */ -#line 3100 "mrbgems/mruby-compiler/core/parse.y" +#line 3111 "mrbgems/mruby-compiler/core/parse.y" { p->cmdarg_stack = (yyvsp[-1].stack); (yyval.nd) = (yyvsp[0].nd); } -#line 9033 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9413 "mrbgems/mruby-compiler/core/y.tab.c" break; case 272: /* block_arg: "&" arg */ -#line 3107 "mrbgems/mruby-compiler/core/parse.y" +#line 3118 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_block_arg(p, (yyvsp[0].nd)); } -#line 9041 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9421 "mrbgems/mruby-compiler/core/y.tab.c" break; case 273: /* block_arg: "&" */ -#line 3111 "mrbgems/mruby-compiler/core/parse.y" +#line 3122 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_block_arg(p, 0); } -#line 9049 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9429 "mrbgems/mruby-compiler/core/y.tab.c" break; case 274: /* opt_block_arg: comma block_arg */ -#line 3117 "mrbgems/mruby-compiler/core/parse.y" +#line 3128 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 9057 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9437 "mrbgems/mruby-compiler/core/y.tab.c" break; case 275: /* opt_block_arg: none */ -#line 3121 "mrbgems/mruby-compiler/core/parse.y" +#line 3132 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = 0; } -#line 9065 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9445 "mrbgems/mruby-compiler/core/y.tab.c" break; case 277: /* args: arg */ -#line 3130 "mrbgems/mruby-compiler/core/parse.y" +#line 3141 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = list1((yyvsp[0].nd)); } -#line 9074 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9454 "mrbgems/mruby-compiler/core/y.tab.c" break; case 278: /* args: "*" */ -#line 3135 "mrbgems/mruby-compiler/core/parse.y" +#line 3146 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1(new_splat(p, new_lvar(p, intern_op(mul)))); } -#line 9082 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9462 "mrbgems/mruby-compiler/core/y.tab.c" break; case 279: /* args: "*" arg */ -#line 3139 "mrbgems/mruby-compiler/core/parse.y" +#line 3150 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1(new_splat(p, (yyvsp[0].nd))); } -#line 9090 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9470 "mrbgems/mruby-compiler/core/y.tab.c" break; case 280: /* args: args comma arg */ -#line 3143 "mrbgems/mruby-compiler/core/parse.y" +#line 3154 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 9099 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9479 "mrbgems/mruby-compiler/core/y.tab.c" break; case 281: /* args: args comma "*" */ -#line 3148 "mrbgems/mruby-compiler/core/parse.y" +#line 3159 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), new_splat(p, new_lvar(p, intern_op(mul)))); } -#line 9107 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9487 "mrbgems/mruby-compiler/core/y.tab.c" break; case 282: /* args: args comma "*" arg */ -#line 3152 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = push((yyvsp[-3].nd), new_splat(p, (yyvsp[0].nd))); - } -#line 9115 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 283: /* mrhs: args comma arg */ -#line 3158 "mrbgems/mruby-compiler/core/parse.y" - { - void_expr_error(p, (yyvsp[0].nd)); - (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); - } -#line 9124 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 284: /* mrhs: args comma "*" arg */ #line 3163 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-3].nd), new_splat(p, (yyvsp[0].nd))); } -#line 9132 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9495 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 283: /* mrhs: args comma arg */ +#line 3169 "mrbgems/mruby-compiler/core/parse.y" + { + void_expr_error(p, (yyvsp[0].nd)); + (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); + } +#line 9504 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 284: /* mrhs: args comma "*" arg */ +#line 3174 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = push((yyvsp[-3].nd), new_splat(p, (yyvsp[0].nd))); + } +#line 9512 "mrbgems/mruby-compiler/core/y.tab.c" break; case 285: /* mrhs: "*" arg */ -#line 3167 "mrbgems/mruby-compiler/core/parse.y" +#line 3178 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1(new_splat(p, (yyvsp[0].nd))); } -#line 9140 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9520 "mrbgems/mruby-compiler/core/y.tab.c" break; case 287: /* primary: string */ -#line 3174 "mrbgems/mruby-compiler/core/parse.y" +#line 3185 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_str(p, (yyvsp[0].nd)); } -#line 9148 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9528 "mrbgems/mruby-compiler/core/y.tab.c" break; case 288: /* primary: xstring */ -#line 3178 "mrbgems/mruby-compiler/core/parse.y" +#line 3189 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_xstr(p, (yyvsp[0].nd)); } -#line 9156 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9536 "mrbgems/mruby-compiler/core/y.tab.c" break; case 293: /* primary: "method" */ -#line 3186 "mrbgems/mruby-compiler/core/parse.y" +#line 3197 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_fcall(p, (yyvsp[0].id), 0); } -#line 9164 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9544 "mrbgems/mruby-compiler/core/y.tab.c" break; case 294: /* @8: %empty */ -#line 3190 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.stack) = p->cmdarg_stack; - p->cmdarg_stack = 0; - } -#line 9173 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 295: /* primary: "'begin'" @8 bodystmt "'end'" */ -#line 3196 "mrbgems/mruby-compiler/core/parse.y" - { - p->cmdarg_stack = (yyvsp[-2].stack); - (yyval.nd) = new_begin(p, (yyvsp[-1].nd)); - } -#line 9182 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 296: /* @9: %empty */ #line 3201 "mrbgems/mruby-compiler/core/parse.y" { (yyval.stack) = p->cmdarg_stack; p->cmdarg_stack = 0; } -#line 9191 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9553 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 295: /* primary: "'begin'" @8 bodystmt "'end'" */ +#line 3207 "mrbgems/mruby-compiler/core/parse.y" + { + p->cmdarg_stack = (yyvsp[-2].stack); + (yyval.nd) = new_begin(p, (yyvsp[-1].nd)); + } +#line 9562 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 296: /* @9: %empty */ +#line 3212 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.stack) = p->cmdarg_stack; + p->cmdarg_stack = 0; + } +#line 9571 "mrbgems/mruby-compiler/core/y.tab.c" break; case 297: /* $@10: %empty */ -#line 3205 "mrbgems/mruby-compiler/core/parse.y" +#line 3216 "mrbgems/mruby-compiler/core/parse.y" {p->lstate = EXPR_ENDARG;} -#line 9197 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9577 "mrbgems/mruby-compiler/core/y.tab.c" break; case 298: /* primary: "(" @9 stmt $@10 rparen */ -#line 3206 "mrbgems/mruby-compiler/core/parse.y" +#line 3217 "mrbgems/mruby-compiler/core/parse.y" { p->cmdarg_stack = (yyvsp[-3].stack); (yyval.nd) = (yyvsp[-2].nd); } -#line 9206 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9586 "mrbgems/mruby-compiler/core/y.tab.c" break; case 299: /* $@11: %empty */ -#line 3210 "mrbgems/mruby-compiler/core/parse.y" +#line 3221 "mrbgems/mruby-compiler/core/parse.y" {p->lstate = EXPR_ENDARG;} -#line 9212 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9592 "mrbgems/mruby-compiler/core/y.tab.c" break; case 300: /* primary: "(" $@11 rparen */ -#line 3211 "mrbgems/mruby-compiler/core/parse.y" +#line 3222 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_nil(p); } -#line 9220 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9600 "mrbgems/mruby-compiler/core/y.tab.c" break; case 301: /* primary: tLPAREN compstmt ')' */ -#line 3215 "mrbgems/mruby-compiler/core/parse.y" +#line 3226 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 9228 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9608 "mrbgems/mruby-compiler/core/y.tab.c" break; case 302: /* primary: primary_value "::" "constant" */ -#line 3219 "mrbgems/mruby-compiler/core/parse.y" +#line 3230 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id)); } -#line 9236 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9616 "mrbgems/mruby-compiler/core/y.tab.c" break; case 303: /* primary: tCOLON3 "constant" */ -#line 3223 "mrbgems/mruby-compiler/core/parse.y" +#line 3234 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_colon3(p, (yyvsp[0].id)); } -#line 9244 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9624 "mrbgems/mruby-compiler/core/y.tab.c" break; case 304: /* primary: "[" aref_args ']' */ -#line 3227 "mrbgems/mruby-compiler/core/parse.y" +#line 3238 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_array(p, (yyvsp[-1].nd)); } -#line 9252 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9632 "mrbgems/mruby-compiler/core/y.tab.c" break; case 305: /* primary: tLBRACE assoc_list '}' */ -#line 3231 "mrbgems/mruby-compiler/core/parse.y" +#line 3242 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_hash(p, (yyvsp[-1].nd)); } -#line 9260 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9640 "mrbgems/mruby-compiler/core/y.tab.c" break; case 306: /* primary: "'return'" */ -#line 3235 "mrbgems/mruby-compiler/core/parse.y" +#line 3246 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_return(p, 0); } -#line 9268 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9648 "mrbgems/mruby-compiler/core/y.tab.c" break; case 307: /* primary: "'yield'" opt_paren_args */ -#line 3239 "mrbgems/mruby-compiler/core/parse.y" +#line 3250 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_yield(p, (yyvsp[0].nd)); } -#line 9276 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9656 "mrbgems/mruby-compiler/core/y.tab.c" break; case 308: /* primary: "'not'" '(' expr rparen */ -#line 3243 "mrbgems/mruby-compiler/core/parse.y" +#line 3254 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, cond((yyvsp[-1].nd)), "!"); } -#line 9284 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9664 "mrbgems/mruby-compiler/core/y.tab.c" break; case 309: /* primary: "'not'" '(' rparen */ -#line 3247 "mrbgems/mruby-compiler/core/parse.y" +#line 3258 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, new_nil(p), "!"); } -#line 9292 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9672 "mrbgems/mruby-compiler/core/y.tab.c" break; case 310: /* primary: operation brace_block */ -#line 3251 "mrbgems/mruby-compiler/core/parse.y" +#line 3262 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_fcall(p, (yyvsp[-1].id), new_callargs(p, 0, 0, (yyvsp[0].nd))); } -#line 9300 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9680 "mrbgems/mruby-compiler/core/y.tab.c" break; case 312: /* primary: method_call brace_block */ -#line 3256 "mrbgems/mruby-compiler/core/parse.y" +#line 3267 "mrbgems/mruby-compiler/core/parse.y" { call_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd)); (yyval.nd) = (yyvsp[-1].nd); } -#line 9309 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9689 "mrbgems/mruby-compiler/core/y.tab.c" break; case 313: /* @12: %empty */ -#line 3261 "mrbgems/mruby-compiler/core/parse.y" +#line 3272 "mrbgems/mruby-compiler/core/parse.y" { local_nest(p); nvars_nest(p); (yyval.num) = p->lpar_beg; p->lpar_beg = ++p->paren_nest; } -#line 9320 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9700 "mrbgems/mruby-compiler/core/y.tab.c" break; case 314: /* @13: %empty */ -#line 3268 "mrbgems/mruby-compiler/core/parse.y" +#line 3279 "mrbgems/mruby-compiler/core/parse.y" { (yyval.stack) = p->cmdarg_stack; p->cmdarg_stack = 0; } -#line 9329 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9709 "mrbgems/mruby-compiler/core/y.tab.c" break; case 315: /* primary: "->" @12 f_larglist @13 lambda_body */ -#line 3273 "mrbgems/mruby-compiler/core/parse.y" +#line 3284 "mrbgems/mruby-compiler/core/parse.y" { p->lpar_beg = (yyvsp[-3].num); (yyval.nd) = new_lambda(p, (yyvsp[-2].nd), (yyvsp[0].nd)); @@ -9338,176 +9718,176 @@ yyreduce: p->cmdarg_stack = (yyvsp[-1].stack); CMDARG_LEXPOP(); } -#line 9342 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9722 "mrbgems/mruby-compiler/core/y.tab.c" break; case 316: /* primary: "'if'" expr_value then compstmt if_tail "'end'" */ -#line 3285 "mrbgems/mruby-compiler/core/parse.y" +#line 3296 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_if(p, cond((yyvsp[-4].nd)), (yyvsp[-2].nd), (yyvsp[-1].nd)); SET_LINENO((yyval.nd), (yyvsp[-5].num)); } -#line 9351 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9731 "mrbgems/mruby-compiler/core/y.tab.c" break; case 317: /* primary: "'unless'" expr_value then compstmt opt_else "'end'" */ -#line 3293 "mrbgems/mruby-compiler/core/parse.y" +#line 3304 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_if(p, cond((yyvsp[-4].nd)), (yyvsp[-1].nd), (yyvsp[-2].nd)); SET_LINENO((yyval.nd), (yyvsp[-5].num)); } -#line 9360 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9740 "mrbgems/mruby-compiler/core/y.tab.c" break; case 318: /* $@14: %empty */ -#line 3297 "mrbgems/mruby-compiler/core/parse.y" +#line 3308 "mrbgems/mruby-compiler/core/parse.y" {COND_PUSH(1);} -#line 9366 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9746 "mrbgems/mruby-compiler/core/y.tab.c" break; case 319: /* $@15: %empty */ -#line 3297 "mrbgems/mruby-compiler/core/parse.y" +#line 3308 "mrbgems/mruby-compiler/core/parse.y" {COND_POP();} -#line 9372 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9752 "mrbgems/mruby-compiler/core/y.tab.c" break; case 320: /* primary: "'while'" $@14 expr_value do $@15 compstmt "'end'" */ -#line 3300 "mrbgems/mruby-compiler/core/parse.y" +#line 3311 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_while(p, cond((yyvsp[-4].nd)), (yyvsp[-1].nd)); SET_LINENO((yyval.nd), (yyvsp[-6].num)); } -#line 9381 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9761 "mrbgems/mruby-compiler/core/y.tab.c" break; case 321: /* $@16: %empty */ -#line 3304 "mrbgems/mruby-compiler/core/parse.y" +#line 3315 "mrbgems/mruby-compiler/core/parse.y" {COND_PUSH(1);} -#line 9387 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9767 "mrbgems/mruby-compiler/core/y.tab.c" break; case 322: /* $@17: %empty */ -#line 3304 "mrbgems/mruby-compiler/core/parse.y" +#line 3315 "mrbgems/mruby-compiler/core/parse.y" {COND_POP();} -#line 9393 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9773 "mrbgems/mruby-compiler/core/y.tab.c" break; case 323: /* primary: "'until'" $@16 expr_value do $@17 compstmt "'end'" */ -#line 3307 "mrbgems/mruby-compiler/core/parse.y" +#line 3318 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_until(p, cond((yyvsp[-4].nd)), (yyvsp[-1].nd)); SET_LINENO((yyval.nd), (yyvsp[-6].num)); } -#line 9402 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9782 "mrbgems/mruby-compiler/core/y.tab.c" break; case 324: /* primary: "'case'" expr_value opt_terms case_body "'end'" */ -#line 3314 "mrbgems/mruby-compiler/core/parse.y" +#line 3325 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_case(p, (yyvsp[-3].nd), (yyvsp[-1].nd)); } -#line 9410 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9790 "mrbgems/mruby-compiler/core/y.tab.c" break; case 325: /* primary: "'case'" opt_terms case_body "'end'" */ -#line 3318 "mrbgems/mruby-compiler/core/parse.y" +#line 3329 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_case(p, 0, (yyvsp[-1].nd)); } -#line 9418 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9798 "mrbgems/mruby-compiler/core/y.tab.c" break; case 326: /* primary: "'case'" expr_value opt_terms "'in'" p_expr then compstmt in_clauses "'end'" */ -#line 3326 "mrbgems/mruby-compiler/core/parse.y" +#line 3337 "mrbgems/mruby-compiler/core/parse.y" { node *in_clause = new_in(p, (yyvsp[-4].nd), NULL, (yyvsp[-2].nd), FALSE); (yyval.nd) = new_case_match(p, (yyvsp[-7].nd), cons(in_clause, (yyvsp[-1].nd))); } -#line 9427 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9807 "mrbgems/mruby-compiler/core/y.tab.c" break; case 327: /* primary: "'case'" expr_value opt_terms "'in'" p_expr "'if' modifier" expr_value then compstmt in_clauses "'end'" */ -#line 3335 "mrbgems/mruby-compiler/core/parse.y" +#line 3346 "mrbgems/mruby-compiler/core/parse.y" { node *in_clause = new_in(p, (yyvsp[-6].nd), (yyvsp[-4].nd), (yyvsp[-2].nd), FALSE); (yyval.nd) = new_case_match(p, (yyvsp[-9].nd), cons(in_clause, (yyvsp[-1].nd))); } -#line 9436 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9816 "mrbgems/mruby-compiler/core/y.tab.c" break; case 328: /* primary: "'case'" expr_value opt_terms "'in'" p_expr "'unless' modifier" expr_value then compstmt in_clauses "'end'" */ -#line 3344 "mrbgems/mruby-compiler/core/parse.y" +#line 3355 "mrbgems/mruby-compiler/core/parse.y" { node *in_clause = new_in(p, (yyvsp[-6].nd), (yyvsp[-4].nd), (yyvsp[-2].nd), TRUE); (yyval.nd) = new_case_match(p, (yyvsp[-9].nd), cons(in_clause, (yyvsp[-1].nd))); } -#line 9445 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9825 "mrbgems/mruby-compiler/core/y.tab.c" break; case 329: /* $@18: %empty */ -#line 3349 "mrbgems/mruby-compiler/core/parse.y" +#line 3360 "mrbgems/mruby-compiler/core/parse.y" {COND_PUSH(1);} -#line 9451 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9831 "mrbgems/mruby-compiler/core/y.tab.c" break; case 330: /* $@19: %empty */ -#line 3351 "mrbgems/mruby-compiler/core/parse.y" +#line 3362 "mrbgems/mruby-compiler/core/parse.y" {COND_POP();} -#line 9457 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9837 "mrbgems/mruby-compiler/core/y.tab.c" break; case 331: /* primary: "'for'" for_var "'in'" $@18 expr_value do $@19 compstmt "'end'" */ -#line 3354 "mrbgems/mruby-compiler/core/parse.y" +#line 3365 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_for(p, (yyvsp[-7].nd), (yyvsp[-4].nd), (yyvsp[-1].nd)); SET_LINENO((yyval.nd), (yyvsp[-8].num)); } -#line 9466 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9846 "mrbgems/mruby-compiler/core/y.tab.c" break; case 332: /* @20: %empty */ -#line 3360 "mrbgems/mruby-compiler/core/parse.y" +#line 3371 "mrbgems/mruby-compiler/core/parse.y" { if (p->in_def || p->in_single) yyerror(&(yylsp[-2]), p, "class definition in method body"); (yyval.nd) = local_switch(p); nvars_block(p); } -#line 9477 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9857 "mrbgems/mruby-compiler/core/y.tab.c" break; case 333: /* primary: "'class'" cpath superclass @20 bodystmt "'end'" */ -#line 3368 "mrbgems/mruby-compiler/core/parse.y" +#line 3379 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_class(p, (yyvsp[-4].nd), (yyvsp[-3].nd), (yyvsp[-1].nd)); SET_LINENO((yyval.nd), (yyvsp[-5].num)); local_resume(p, (yyvsp[-2].nd)); nvars_unnest(p); } -#line 9488 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9868 "mrbgems/mruby-compiler/core/y.tab.c" break; case 334: /* @21: %empty */ -#line 3376 "mrbgems/mruby-compiler/core/parse.y" +#line 3387 "mrbgems/mruby-compiler/core/parse.y" { (yyval.num) = p->in_def; p->in_def = 0; } -#line 9497 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9877 "mrbgems/mruby-compiler/core/y.tab.c" break; case 335: /* @22: %empty */ -#line 3381 "mrbgems/mruby-compiler/core/parse.y" +#line 3392 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(local_switch(p), int_to_node(p->in_single)); nvars_block(p); p->in_single = 0; } -#line 9507 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9887 "mrbgems/mruby-compiler/core/y.tab.c" break; case 336: /* primary: "'class'" "<<" expr @21 term @22 bodystmt "'end'" */ -#line 3388 "mrbgems/mruby-compiler/core/parse.y" +#line 3399 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_sclass(p, (yyvsp[-5].nd), (yyvsp[-1].nd)); SET_LINENO((yyval.nd), (yyvsp[-7].num)); @@ -9516,44 +9896,44 @@ yyreduce: p->in_def = (yyvsp[-4].num); p->in_single = node_to_int((yyvsp[-2].nd)->cdr); } -#line 9520 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9900 "mrbgems/mruby-compiler/core/y.tab.c" break; case 337: /* @23: %empty */ -#line 3398 "mrbgems/mruby-compiler/core/parse.y" +#line 3409 "mrbgems/mruby-compiler/core/parse.y" { if (p->in_def || p->in_single) yyerror(&(yylsp[-1]), p, "module definition in method body"); (yyval.nd) = local_switch(p); nvars_block(p); } -#line 9531 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9911 "mrbgems/mruby-compiler/core/y.tab.c" break; case 338: /* primary: "'module'" cpath @23 bodystmt "'end'" */ -#line 3406 "mrbgems/mruby-compiler/core/parse.y" +#line 3417 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_module(p, (yyvsp[-3].nd), (yyvsp[-1].nd)); SET_LINENO((yyval.nd), (yyvsp[-4].num)); local_resume(p, (yyvsp[-2].nd)); nvars_unnest(p); } -#line 9542 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9922 "mrbgems/mruby-compiler/core/y.tab.c" break; case 339: /* primary: defn_head f_arglist bodystmt "'end'" */ -#line 3416 "mrbgems/mruby-compiler/core/parse.y" +#line 3427 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-3].nd); defn_setup(p, (yyval.nd), (yyvsp[-2].nd), (yyvsp[-1].nd)); nvars_unnest(p); p->in_def--; } -#line 9553 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9933 "mrbgems/mruby-compiler/core/y.tab.c" break; case 340: /* primary: defs_head f_arglist bodystmt "'end'" */ -#line 3426 "mrbgems/mruby-compiler/core/parse.y" +#line 3437 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-3].nd); defn_setup(p, (yyval.nd), (yyvsp[-2].nd), (yyvsp[-1].nd)); @@ -9561,610 +9941,610 @@ yyreduce: p->in_def--; p->in_single--; } -#line 9565 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9945 "mrbgems/mruby-compiler/core/y.tab.c" break; case 341: /* primary: "'break'" */ -#line 3434 "mrbgems/mruby-compiler/core/parse.y" +#line 3445 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_break(p, 0); } -#line 9573 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9953 "mrbgems/mruby-compiler/core/y.tab.c" break; case 342: /* primary: "'next'" */ -#line 3438 "mrbgems/mruby-compiler/core/parse.y" +#line 3449 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_next(p, 0); } -#line 9581 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9961 "mrbgems/mruby-compiler/core/y.tab.c" break; case 343: /* primary: "'redo'" */ -#line 3442 "mrbgems/mruby-compiler/core/parse.y" +#line 3453 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_redo(p); } -#line 9589 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9969 "mrbgems/mruby-compiler/core/y.tab.c" break; case 344: /* primary: "'retry'" */ -#line 3446 "mrbgems/mruby-compiler/core/parse.y" +#line 3457 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_retry(p); } -#line 9597 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9977 "mrbgems/mruby-compiler/core/y.tab.c" break; case 345: /* primary_value: primary */ -#line 3452 "mrbgems/mruby-compiler/core/parse.y" +#line 3463 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); if (!(yyval.nd)) (yyval.nd) = new_nil(p); } -#line 9606 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9986 "mrbgems/mruby-compiler/core/y.tab.c" break; case 352: /* if_tail: "'elsif'" expr_value then compstmt if_tail */ -#line 3471 "mrbgems/mruby-compiler/core/parse.y" +#line 3482 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_if(p, cond((yyvsp[-3].nd)), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9614 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9994 "mrbgems/mruby-compiler/core/y.tab.c" break; case 354: /* opt_else: "'else'" compstmt */ -#line 3478 "mrbgems/mruby-compiler/core/parse.y" +#line 3489 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 9622 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10002 "mrbgems/mruby-compiler/core/y.tab.c" break; case 355: /* for_var: lhs */ -#line 3484 "mrbgems/mruby-compiler/core/parse.y" +#line 3495 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1(list1((yyvsp[0].nd))); } -#line 9630 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10010 "mrbgems/mruby-compiler/core/y.tab.c" break; case 357: /* f_margs: f_arg */ -#line 3491 "mrbgems/mruby-compiler/core/parse.y" +#line 3502 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3((yyvsp[0].nd),0,0); } -#line 9638 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10018 "mrbgems/mruby-compiler/core/y.tab.c" break; case 358: /* f_margs: f_arg ',' "*" f_norm_arg */ -#line 3495 "mrbgems/mruby-compiler/core/parse.y" +#line 3506 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3((yyvsp[-3].nd), new_lvar(p, (yyvsp[0].id)), 0); } -#line 9646 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10026 "mrbgems/mruby-compiler/core/y.tab.c" break; case 359: /* f_margs: f_arg ',' "*" f_norm_arg ',' f_arg */ -#line 3499 "mrbgems/mruby-compiler/core/parse.y" +#line 3510 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3((yyvsp[-5].nd), new_lvar(p, (yyvsp[-2].id)), (yyvsp[0].nd)); } -#line 9654 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10034 "mrbgems/mruby-compiler/core/y.tab.c" break; case 360: /* f_margs: f_arg ',' "*" */ -#line 3503 "mrbgems/mruby-compiler/core/parse.y" +#line 3514 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, intern_op(mul)); (yyval.nd) = list3((yyvsp[-2].nd), int_to_node(-1), 0); } -#line 9663 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10043 "mrbgems/mruby-compiler/core/y.tab.c" break; case 361: /* f_margs: f_arg ',' "*" ',' f_arg */ -#line 3508 "mrbgems/mruby-compiler/core/parse.y" +#line 3519 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3((yyvsp[-4].nd), int_to_node(-1), (yyvsp[0].nd)); } -#line 9671 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10051 "mrbgems/mruby-compiler/core/y.tab.c" break; case 362: /* f_margs: "*" f_norm_arg */ -#line 3512 "mrbgems/mruby-compiler/core/parse.y" +#line 3523 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3(0, new_lvar(p, (yyvsp[0].id)), 0); } -#line 9679 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10059 "mrbgems/mruby-compiler/core/y.tab.c" break; case 363: /* f_margs: "*" f_norm_arg ',' f_arg */ -#line 3516 "mrbgems/mruby-compiler/core/parse.y" +#line 3527 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3(0, new_lvar(p, (yyvsp[-2].id)), (yyvsp[0].nd)); } -#line 9687 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10067 "mrbgems/mruby-compiler/core/y.tab.c" break; case 364: /* f_margs: "*" */ -#line 3520 "mrbgems/mruby-compiler/core/parse.y" +#line 3531 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, intern_op(mul)); (yyval.nd) = list3(0, int_to_node(-1), 0); } -#line 9696 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10076 "mrbgems/mruby-compiler/core/y.tab.c" break; case 365: /* $@24: %empty */ -#line 3525 "mrbgems/mruby-compiler/core/parse.y" +#line 3536 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, intern_op(mul)); } -#line 9704 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10084 "mrbgems/mruby-compiler/core/y.tab.c" break; case 366: /* f_margs: "*" ',' $@24 f_arg */ -#line 3529 "mrbgems/mruby-compiler/core/parse.y" +#line 3540 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3(0, int_to_node(-1), (yyvsp[0].nd)); } -#line 9712 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10092 "mrbgems/mruby-compiler/core/y.tab.c" break; case 367: /* block_args_tail: f_block_kwarg ',' f_kwrest opt_f_block_arg */ -#line 3535 "mrbgems/mruby-compiler/core/parse.y" +#line 3546 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].id)); } -#line 9720 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10100 "mrbgems/mruby-compiler/core/y.tab.c" break; case 368: /* block_args_tail: f_block_kwarg opt_f_block_arg */ -#line 3539 "mrbgems/mruby-compiler/core/parse.y" +#line 3550 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, (yyvsp[-1].nd), 0, (yyvsp[0].id)); } -#line 9728 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10108 "mrbgems/mruby-compiler/core/y.tab.c" break; case 369: /* block_args_tail: f_kwrest opt_f_block_arg */ -#line 3543 "mrbgems/mruby-compiler/core/parse.y" +#line 3554 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, 0, (yyvsp[-1].id), (yyvsp[0].id)); } -#line 9736 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10116 "mrbgems/mruby-compiler/core/y.tab.c" break; case 370: /* block_args_tail: f_block_arg */ -#line 3547 "mrbgems/mruby-compiler/core/parse.y" +#line 3558 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, 0, 0, (yyvsp[0].id)); } -#line 9744 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 371: /* opt_block_args_tail: ',' block_args_tail */ -#line 3553 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = (yyvsp[0].nd); - } -#line 9752 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 372: /* opt_block_args_tail: %empty */ -#line 3557 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args_tail(p, 0, 0, 0); - } -#line 9760 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 373: /* block_param: f_arg ',' f_block_optarg ',' f_rest_arg opt_block_args_tail */ -#line 3563 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd)); - } -#line 9768 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 374: /* block_param: f_arg ',' f_block_optarg ',' f_rest_arg ',' f_arg opt_block_args_tail */ -#line 3567 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args(p, (yyvsp[-7].nd), (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); - } -#line 9776 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 375: /* block_param: f_arg ',' f_block_optarg opt_block_args_tail */ -#line 3571 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args(p, (yyvsp[-3].nd), (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd)); - } -#line 9784 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 376: /* block_param: f_arg ',' f_block_optarg ',' f_arg opt_block_args_tail */ -#line 3575 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd)); - } -#line 9792 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 377: /* block_param: f_arg ',' f_rest_arg opt_block_args_tail */ -#line 3579 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args(p, (yyvsp[-3].nd), 0, (yyvsp[-1].id), 0, (yyvsp[0].nd)); - } -#line 9800 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 378: /* block_param: f_arg ',' opt_block_args_tail */ -#line 3583 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args(p, (yyvsp[-2].nd), 0, 0, 0, (yyvsp[0].nd)); - } -#line 9808 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 379: /* block_param: f_arg ',' f_rest_arg ',' f_arg opt_block_args_tail */ -#line 3587 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args(p, (yyvsp[-5].nd), 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); - } -#line 9816 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 380: /* block_param: f_arg opt_block_args_tail */ -#line 3591 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args(p, (yyvsp[-1].nd), 0, 0, 0, (yyvsp[0].nd)); - } -#line 9824 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 381: /* block_param: f_block_optarg ',' f_rest_arg opt_block_args_tail */ -#line 3595 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd)); - } -#line 9832 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 382: /* block_param: f_block_optarg ',' f_rest_arg ',' f_arg opt_block_args_tail */ -#line 3599 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args(p, 0, (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); - } -#line 9840 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 383: /* block_param: f_block_optarg opt_block_args_tail */ -#line 3603 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args(p, 0, (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd)); - } -#line 9848 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 384: /* block_param: f_block_optarg ',' f_arg opt_block_args_tail */ -#line 3607 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd)); - } -#line 9856 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 385: /* block_param: f_rest_arg opt_block_args_tail */ -#line 3611 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args(p, 0, 0, (yyvsp[-1].id), 0, (yyvsp[0].nd)); - } -#line 9864 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 386: /* block_param: f_rest_arg ',' f_arg opt_block_args_tail */ -#line 3615 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args(p, 0, 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); - } -#line 9872 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 387: /* block_param: block_args_tail */ -#line 3619 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args(p, 0, 0, 0, 0, (yyvsp[0].nd)); - } -#line 9880 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 388: /* opt_block_param: none */ -#line 3625 "mrbgems/mruby-compiler/core/parse.y" - { - local_add_blk(p); - (yyval.nd) = 0; - } -#line 9889 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 389: /* opt_block_param: block_param_def */ -#line 3630 "mrbgems/mruby-compiler/core/parse.y" - { - p->cmd_start = TRUE; - (yyval.nd) = (yyvsp[0].nd); - } -#line 9898 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 390: /* $@25: %empty */ -#line 3636 "mrbgems/mruby-compiler/core/parse.y" - {local_add_blk(p);} -#line 9904 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 391: /* block_param_def: '|' $@25 opt_bv_decl '|' */ -#line 3637 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = 0; - } -#line 9912 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 392: /* block_param_def: "||" */ -#line 3641 "mrbgems/mruby-compiler/core/parse.y" - { - local_add_blk(p); - (yyval.nd) = 0; - } -#line 9921 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 393: /* block_param_def: '|' block_param opt_bv_decl '|' */ -#line 3646 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = (yyvsp[-2].nd); - } -#line 9929 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 394: /* opt_bv_decl: opt_nl */ -#line 3652 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = 0; - } -#line 9937 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 395: /* opt_bv_decl: opt_nl ';' bv_decls opt_nl */ -#line 3656 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = 0; - } -#line 9945 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 398: /* bvar: "local variable or method" */ -#line 3666 "mrbgems/mruby-compiler/core/parse.y" - { - local_add_f(p, (yyvsp[0].id)); - new_bv(p, (yyvsp[0].id)); - } -#line 9954 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 400: /* f_larglist: '(' f_args opt_bv_decl ')' */ -#line 3674 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = (yyvsp[-2].nd); - } -#line 9962 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 401: /* f_larglist: f_args */ -#line 3678 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = (yyvsp[0].nd); - } -#line 9970 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 402: /* lambda_body: tLAMBEG compstmt '}' */ -#line 3684 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = (yyvsp[-1].nd); - } -#line 9978 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 403: /* lambda_body: "'do' for lambda" bodystmt "'end'" */ -#line 3688 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = (yyvsp[-1].nd); - } -#line 9986 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 404: /* @26: %empty */ -#line 3694 "mrbgems/mruby-compiler/core/parse.y" - { - local_nest(p); - nvars_nest(p); - (yyval.num) = p->lineno; - } -#line 9996 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 405: /* do_block: "'do' for block" @26 opt_block_param bodystmt "'end'" */ -#line 3702 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_block(p,(yyvsp[-2].nd),(yyvsp[-1].nd)); - SET_LINENO((yyval.nd), (yyvsp[-3].num)); - local_unnest(p); - nvars_unnest(p); - } -#line 10007 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 406: /* block_call: command do_block */ -#line 3711 "mrbgems/mruby-compiler/core/parse.y" - { - call_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd)); - (yyval.nd) = (yyvsp[-1].nd); - } -#line 10016 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 407: /* block_call: block_call call_op2 operation2 opt_paren_args */ -#line 3716 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num)); - } -#line 10024 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 408: /* block_call: block_call call_op2 operation2 opt_paren_args brace_block */ -#line 3720 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), (yyvsp[-1].nd), (yyvsp[-3].num)); - call_with_block(p, (yyval.nd), (yyvsp[0].nd)); - } -#line 10033 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 409: /* block_call: block_call call_op2 operation2 command_args do_block */ -#line 3725 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), (yyvsp[-1].nd), (yyvsp[-3].num)); - call_with_block(p, (yyval.nd), (yyvsp[0].nd)); - } -#line 10042 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 410: /* method_call: operation paren_args */ -#line 3732 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_fcall(p, (yyvsp[-1].id), (yyvsp[0].nd)); - } -#line 10050 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 411: /* method_call: primary_value call_op operation2 opt_paren_args */ -#line 3736 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num)); - } -#line 10058 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 412: /* method_call: primary_value "::" operation2 paren_args */ -#line 3740 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), tCOLON2); - } -#line 10066 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 413: /* method_call: primary_value "::" operation3 */ -#line 3744 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2); - } -#line 10074 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 414: /* method_call: primary_value call_op paren_args */ -#line 3748 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_call(p, (yyvsp[-2].nd), MRB_SYM_2(p->mrb, call), (yyvsp[0].nd), (yyvsp[-1].num)); - } -#line 10082 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 415: /* method_call: primary_value "::" paren_args */ -#line 3752 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_call(p, (yyvsp[-2].nd), MRB_SYM_2(p->mrb, call), (yyvsp[0].nd), tCOLON2); - } -#line 10090 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 416: /* method_call: "'super'" paren_args */ -#line 3756 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_super(p, (yyvsp[0].nd)); - } -#line 10098 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 417: /* method_call: "'super'" */ -#line 3760 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_zsuper(p); - } -#line 10106 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 418: /* method_call: primary_value '[' opt_call_args ']' */ -#line 3764 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.'); - } -#line 10114 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 419: /* @27: %empty */ -#line 3770 "mrbgems/mruby-compiler/core/parse.y" - { - local_nest(p); - nvars_nest(p); - (yyval.num) = p->lineno; - } #line 10124 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 420: /* brace_block: '{' @27 opt_block_param compstmt '}' */ -#line 3777 "mrbgems/mruby-compiler/core/parse.y" + case 371: /* opt_block_args_tail: ',' block_args_tail */ +#line 3564 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = new_block(p,(yyvsp[-2].nd),(yyvsp[-1].nd)); - SET_LINENO((yyval.nd), (yyvsp[-3].num)); - local_unnest(p); - nvars_unnest(p); + (yyval.nd) = (yyvsp[0].nd); } -#line 10135 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10132 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 421: /* @28: %empty */ -#line 3784 "mrbgems/mruby-compiler/core/parse.y" + case 372: /* opt_block_args_tail: %empty */ +#line 3568 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args_tail(p, 0, 0, 0); + } +#line 10140 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 373: /* block_param: f_arg ',' f_block_optarg ',' f_rest_arg opt_block_args_tail */ +#line 3574 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd)); + } +#line 10148 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 374: /* block_param: f_arg ',' f_block_optarg ',' f_rest_arg ',' f_arg opt_block_args_tail */ +#line 3578 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[-7].nd), (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); + } +#line 10156 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 375: /* block_param: f_arg ',' f_block_optarg opt_block_args_tail */ +#line 3582 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[-3].nd), (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd)); + } +#line 10164 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 376: /* block_param: f_arg ',' f_block_optarg ',' f_arg opt_block_args_tail */ +#line 3586 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd)); + } +#line 10172 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 377: /* block_param: f_arg ',' f_rest_arg opt_block_args_tail */ +#line 3590 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[-3].nd), 0, (yyvsp[-1].id), 0, (yyvsp[0].nd)); + } +#line 10180 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 378: /* block_param: f_arg ',' opt_block_args_tail */ +#line 3594 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[-2].nd), 0, 0, 0, (yyvsp[0].nd)); + } +#line 10188 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 379: /* block_param: f_arg ',' f_rest_arg ',' f_arg opt_block_args_tail */ +#line 3598 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[-5].nd), 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); + } +#line 10196 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 380: /* block_param: f_arg opt_block_args_tail */ +#line 3602 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[-1].nd), 0, 0, 0, (yyvsp[0].nd)); + } +#line 10204 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 381: /* block_param: f_block_optarg ',' f_rest_arg opt_block_args_tail */ +#line 3606 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd)); + } +#line 10212 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 382: /* block_param: f_block_optarg ',' f_rest_arg ',' f_arg opt_block_args_tail */ +#line 3610 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, 0, (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); + } +#line 10220 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 383: /* block_param: f_block_optarg opt_block_args_tail */ +#line 3614 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, 0, (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd)); + } +#line 10228 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 384: /* block_param: f_block_optarg ',' f_arg opt_block_args_tail */ +#line 3618 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd)); + } +#line 10236 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 385: /* block_param: f_rest_arg opt_block_args_tail */ +#line 3622 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, 0, 0, (yyvsp[-1].id), 0, (yyvsp[0].nd)); + } +#line 10244 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 386: /* block_param: f_rest_arg ',' f_arg opt_block_args_tail */ +#line 3626 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, 0, 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); + } +#line 10252 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 387: /* block_param: block_args_tail */ +#line 3630 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args(p, 0, 0, 0, 0, (yyvsp[0].nd)); + } +#line 10260 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 388: /* opt_block_param: none */ +#line 3636 "mrbgems/mruby-compiler/core/parse.y" + { + local_add_blk(p); + (yyval.nd) = 0; + } +#line 10269 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 389: /* opt_block_param: block_param_def */ +#line 3641 "mrbgems/mruby-compiler/core/parse.y" + { + p->cmd_start = TRUE; + (yyval.nd) = (yyvsp[0].nd); + } +#line 10278 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 390: /* $@25: %empty */ +#line 3647 "mrbgems/mruby-compiler/core/parse.y" + {local_add_blk(p);} +#line 10284 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 391: /* block_param_def: '|' $@25 opt_bv_decl '|' */ +#line 3648 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = 0; + } +#line 10292 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 392: /* block_param_def: "||" */ +#line 3652 "mrbgems/mruby-compiler/core/parse.y" + { + local_add_blk(p); + (yyval.nd) = 0; + } +#line 10301 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 393: /* block_param_def: '|' block_param opt_bv_decl '|' */ +#line 3657 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = (yyvsp[-2].nd); + } +#line 10309 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 394: /* opt_bv_decl: opt_nl */ +#line 3663 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = 0; + } +#line 10317 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 395: /* opt_bv_decl: opt_nl ';' bv_decls opt_nl */ +#line 3667 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = 0; + } +#line 10325 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 398: /* bvar: "local variable or method" */ +#line 3677 "mrbgems/mruby-compiler/core/parse.y" + { + local_add_f(p, (yyvsp[0].id)); + new_bv(p, (yyvsp[0].id)); + } +#line 10334 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 400: /* f_larglist: '(' f_args opt_bv_decl ')' */ +#line 3685 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = (yyvsp[-2].nd); + } +#line 10342 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 401: /* f_larglist: f_args */ +#line 3689 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = (yyvsp[0].nd); + } +#line 10350 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 402: /* lambda_body: tLAMBEG compstmt '}' */ +#line 3695 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = (yyvsp[-1].nd); + } +#line 10358 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 403: /* lambda_body: "'do' for lambda" bodystmt "'end'" */ +#line 3699 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = (yyvsp[-1].nd); + } +#line 10366 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 404: /* @26: %empty */ +#line 3705 "mrbgems/mruby-compiler/core/parse.y" { local_nest(p); nvars_nest(p); (yyval.num) = p->lineno; } -#line 10145 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10376 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 422: /* brace_block: "'do'" @28 opt_block_param bodystmt "'end'" */ -#line 3791 "mrbgems/mruby-compiler/core/parse.y" + case 405: /* do_block: "'do' for block" @26 opt_block_param bodystmt "'end'" */ +#line 3713 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_block(p,(yyvsp[-2].nd),(yyvsp[-1].nd)); SET_LINENO((yyval.nd), (yyvsp[-3].num)); local_unnest(p); nvars_unnest(p); } -#line 10156 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10387 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 406: /* block_call: command do_block */ +#line 3722 "mrbgems/mruby-compiler/core/parse.y" + { + call_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd)); + (yyval.nd) = (yyvsp[-1].nd); + } +#line 10396 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 407: /* block_call: block_call call_op2 operation2 opt_paren_args */ +#line 3727 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num)); + } +#line 10404 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 408: /* block_call: block_call call_op2 operation2 opt_paren_args brace_block */ +#line 3731 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), (yyvsp[-1].nd), (yyvsp[-3].num)); + call_with_block(p, (yyval.nd), (yyvsp[0].nd)); + } +#line 10413 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 409: /* block_call: block_call call_op2 operation2 command_args do_block */ +#line 3736 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), (yyvsp[-1].nd), (yyvsp[-3].num)); + call_with_block(p, (yyval.nd), (yyvsp[0].nd)); + } +#line 10422 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 410: /* method_call: operation paren_args */ +#line 3743 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_fcall(p, (yyvsp[-1].id), (yyvsp[0].nd)); + } +#line 10430 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 411: /* method_call: primary_value call_op operation2 opt_paren_args */ +#line 3747 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num)); + } +#line 10438 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 412: /* method_call: primary_value "::" operation2 paren_args */ +#line 3751 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), tCOLON2); + } +#line 10446 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 413: /* method_call: primary_value "::" operation3 */ +#line 3755 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2); + } +#line 10454 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 414: /* method_call: primary_value call_op paren_args */ +#line 3759 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[-2].nd), MRB_SYM_2(p->mrb, call), (yyvsp[0].nd), (yyvsp[-1].num)); + } +#line 10462 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 415: /* method_call: primary_value "::" paren_args */ +#line 3763 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[-2].nd), MRB_SYM_2(p->mrb, call), (yyvsp[0].nd), tCOLON2); + } +#line 10470 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 416: /* method_call: "'super'" paren_args */ +#line 3767 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_super(p, (yyvsp[0].nd)); + } +#line 10478 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 417: /* method_call: "'super'" */ +#line 3771 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_zsuper(p); + } +#line 10486 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 418: /* method_call: primary_value '[' opt_call_args ']' */ +#line 3775 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.'); + } +#line 10494 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 419: /* @27: %empty */ +#line 3781 "mrbgems/mruby-compiler/core/parse.y" + { + local_nest(p); + nvars_nest(p); + (yyval.num) = p->lineno; + } +#line 10504 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 420: /* brace_block: '{' @27 opt_block_param compstmt '}' */ +#line 3788 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_block(p,(yyvsp[-2].nd),(yyvsp[-1].nd)); + SET_LINENO((yyval.nd), (yyvsp[-3].num)); + local_unnest(p); + nvars_unnest(p); + } +#line 10515 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 421: /* @28: %empty */ +#line 3795 "mrbgems/mruby-compiler/core/parse.y" + { + local_nest(p); + nvars_nest(p); + (yyval.num) = p->lineno; + } +#line 10525 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 422: /* brace_block: "'do'" @28 opt_block_param bodystmt "'end'" */ +#line 3802 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_block(p,(yyvsp[-2].nd),(yyvsp[-1].nd)); + SET_LINENO((yyval.nd), (yyvsp[-3].num)); + local_unnest(p); + nvars_unnest(p); + } +#line 10536 "mrbgems/mruby-compiler/core/y.tab.c" break; case 423: /* case_body: "'when'" args then compstmt cases */ -#line 3802 "mrbgems/mruby-compiler/core/parse.y" +#line 3813 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(cons((yyvsp[-3].nd), (yyvsp[-1].nd)), (yyvsp[0].nd)); } -#line 10164 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10544 "mrbgems/mruby-compiler/core/y.tab.c" break; case 424: /* cases: opt_else */ -#line 3808 "mrbgems/mruby-compiler/core/parse.y" +#line 3819 "mrbgems/mruby-compiler/core/parse.y" { if ((yyvsp[0].nd)) { (yyval.nd) = cons(cons(0, (yyvsp[0].nd)), 0); @@ -10173,286 +10553,380 @@ yyreduce: (yyval.nd) = 0; } } -#line 10177 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10557 "mrbgems/mruby-compiler/core/y.tab.c" break; case 426: /* in_clauses: opt_else */ -#line 3821 "mrbgems/mruby-compiler/core/parse.y" +#line 3832 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd) ? list1(new_in(p, NULL, NULL, (yyvsp[0].nd), FALSE)) : 0; } -#line 10185 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10565 "mrbgems/mruby-compiler/core/y.tab.c" break; case 427: /* in_clauses: "'in'" p_expr then compstmt in_clauses */ -#line 3825 "mrbgems/mruby-compiler/core/parse.y" +#line 3836 "mrbgems/mruby-compiler/core/parse.y" { node *in_clause = new_in(p, (yyvsp[-3].nd), NULL, (yyvsp[-1].nd), FALSE); (yyval.nd) = cons(in_clause, (yyvsp[0].nd)); } -#line 10194 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10574 "mrbgems/mruby-compiler/core/y.tab.c" break; case 428: /* in_clauses: "'in'" p_expr "'if' modifier" expr_value then compstmt in_clauses */ -#line 3830 "mrbgems/mruby-compiler/core/parse.y" +#line 3841 "mrbgems/mruby-compiler/core/parse.y" { node *in_clause = new_in(p, (yyvsp[-5].nd), (yyvsp[-3].nd), (yyvsp[-1].nd), FALSE); (yyval.nd) = cons(in_clause, (yyvsp[0].nd)); } -#line 10203 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10583 "mrbgems/mruby-compiler/core/y.tab.c" break; case 429: /* in_clauses: "'in'" p_expr "'unless' modifier" expr_value then compstmt in_clauses */ -#line 3835 "mrbgems/mruby-compiler/core/parse.y" +#line 3846 "mrbgems/mruby-compiler/core/parse.y" { node *in_clause = new_in(p, (yyvsp[-5].nd), (yyvsp[-3].nd), (yyvsp[-1].nd), TRUE); (yyval.nd) = cons(in_clause, (yyvsp[0].nd)); } -#line 10212 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10592 "mrbgems/mruby-compiler/core/y.tab.c" break; case 432: /* p_as: p_alt "=>" "local variable or method" */ -#line 3847 "mrbgems/mruby-compiler/core/parse.y" +#line 3858 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_as(p, (yyvsp[-2].nd), (yyvsp[0].id)); } -#line 10220 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10600 "mrbgems/mruby-compiler/core/y.tab.c" break; case 434: /* p_alt: p_alt '|' p_value */ -#line 3854 "mrbgems/mruby-compiler/core/parse.y" +#line 3865 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_alt(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 10228 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10608 "mrbgems/mruby-compiler/core/y.tab.c" break; case 436: /* p_value: numeric */ -#line 3861 "mrbgems/mruby-compiler/core/parse.y" +#line 3872 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_value(p, (yyvsp[0].nd)); } -#line 10236 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10616 "mrbgems/mruby-compiler/core/y.tab.c" break; case 437: /* p_value: symbol */ -#line 3865 "mrbgems/mruby-compiler/core/parse.y" +#line 3876 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_value(p, (yyvsp[0].nd)); } -#line 10244 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10624 "mrbgems/mruby-compiler/core/y.tab.c" break; case 438: /* p_value: tSTRING */ -#line 3869 "mrbgems/mruby-compiler/core/parse.y" +#line 3880 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_value(p, (yyvsp[0].nd)); } -#line 10252 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10632 "mrbgems/mruby-compiler/core/y.tab.c" break; case 439: /* p_value: "'nil'" */ -#line 3873 "mrbgems/mruby-compiler/core/parse.y" +#line 3884 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_value(p, new_nil(p)); } -#line 10260 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10640 "mrbgems/mruby-compiler/core/y.tab.c" break; case 440: /* p_value: "'true'" */ -#line 3877 "mrbgems/mruby-compiler/core/parse.y" +#line 3888 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_value(p, new_true(p)); } -#line 10268 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10648 "mrbgems/mruby-compiler/core/y.tab.c" break; case 441: /* p_value: "'false'" */ -#line 3881 "mrbgems/mruby-compiler/core/parse.y" +#line 3892 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_value(p, new_false(p)); } -#line 10276 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10656 "mrbgems/mruby-compiler/core/y.tab.c" break; case 442: /* p_value: "constant" */ -#line 3885 "mrbgems/mruby-compiler/core/parse.y" +#line 3896 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_value(p, new_const(p, (yyvsp[0].id))); } -#line 10284 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10664 "mrbgems/mruby-compiler/core/y.tab.c" break; case 443: /* p_value: primary_value "::" "constant" */ -#line 3889 "mrbgems/mruby-compiler/core/parse.y" +#line 3900 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_value(p, new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id))); } -#line 10292 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10672 "mrbgems/mruby-compiler/core/y.tab.c" break; case 444: /* p_value: tCOLON3 "constant" */ -#line 3893 "mrbgems/mruby-compiler/core/parse.y" +#line 3904 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_value(p, new_colon3(p, (yyvsp[0].id))); } -#line 10300 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10680 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 445: /* p_var: "local variable or method" */ -#line 3899 "mrbgems/mruby-compiler/core/parse.y" + case 446: /* p_array: "[" p_array_body ']' */ +#line 3912 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = (yyvsp[-1].nd); + } +#line 10688 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 447: /* p_array: "[" ']' */ +#line 3916 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_pat_array(p, 0, 0, 0); + } +#line 10696 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 448: /* p_array_body: p_array_elems */ +#line 3923 "mrbgems/mruby-compiler/core/parse.y" + { + /* Just pre elements, no rest */ + (yyval.nd) = new_pat_array(p, (yyvsp[0].nd), 0, 0); + } +#line 10705 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 449: /* p_array_body: p_array_elems ',' p_rest */ +#line 3928 "mrbgems/mruby-compiler/core/parse.y" + { + /* Pre elements + rest, no post */ + (yyval.nd) = new_pat_array(p, (yyvsp[-2].nd), (yyvsp[0].nd), 0); + } +#line 10714 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 450: /* p_array_body: p_array_elems ',' p_rest ',' p_array_elems */ +#line 3933 "mrbgems/mruby-compiler/core/parse.y" + { + /* Pre + rest + post */ + (yyval.nd) = new_pat_array(p, (yyvsp[-4].nd), (yyvsp[-2].nd), (yyvsp[0].nd)); + } +#line 10723 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 451: /* p_array_body: p_rest */ +#line 3938 "mrbgems/mruby-compiler/core/parse.y" + { + /* Just rest, no pre or post */ + (yyval.nd) = new_pat_array(p, 0, (yyvsp[0].nd), 0); + } +#line 10732 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 452: /* p_array_body: p_rest ',' p_array_elems */ +#line 3943 "mrbgems/mruby-compiler/core/parse.y" + { + /* Rest + post, no pre */ + (yyval.nd) = new_pat_array(p, 0, (yyvsp[-2].nd), (yyvsp[0].nd)); + } +#line 10741 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 453: /* p_array_elems: p_expr */ +#line 3951 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = list1((yyvsp[0].nd)); + } +#line 10749 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 454: /* p_array_elems: p_array_elems ',' p_expr */ +#line 3955 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); + } +#line 10757 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 455: /* p_rest: "*" "local variable or method" */ +#line 3962 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_var(p, (yyvsp[0].id)); } -#line 10308 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10765 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 446: /* opt_rescue: "'rescue'" exc_list exc_var then compstmt opt_rescue */ -#line 3907 "mrbgems/mruby-compiler/core/parse.y" + case 456: /* p_rest: "*" */ +#line 3966 "mrbgems/mruby-compiler/core/parse.y" + { + /* Anonymous rest pattern */ + (yyval.nd) = (node*)-1; + } +#line 10774 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 457: /* p_var: "local variable or method" */ +#line 3973 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_pat_var(p, (yyvsp[0].id)); + } +#line 10782 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 458: /* opt_rescue: "'rescue'" exc_list exc_var then compstmt opt_rescue */ +#line 3981 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1(list3((yyvsp[-4].nd), (yyvsp[-3].nd), (yyvsp[-1].nd))); if ((yyvsp[0].nd)) (yyval.nd) = append((yyval.nd), (yyvsp[0].nd)); } -#line 10317 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10791 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 448: /* exc_list: arg */ -#line 3915 "mrbgems/mruby-compiler/core/parse.y" + case 460: /* exc_list: arg */ +#line 3989 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10325 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10799 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 451: /* exc_var: "=>" lhs */ -#line 3923 "mrbgems/mruby-compiler/core/parse.y" + case 463: /* exc_var: "=>" lhs */ +#line 3997 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 10333 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10807 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 453: /* opt_ensure: "'ensure'" compstmt */ -#line 3930 "mrbgems/mruby-compiler/core/parse.y" + case 465: /* opt_ensure: "'ensure'" compstmt */ +#line 4004 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 10341 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10815 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 460: /* string: string string_fragment */ -#line 3944 "mrbgems/mruby-compiler/core/parse.y" + case 472: /* string: string string_fragment */ +#line 4018 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = append((yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 10349 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10823 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 461: /* string_fragment: "character literal" */ -#line 3950 "mrbgems/mruby-compiler/core/parse.y" + case 473: /* string_fragment: "character literal" */ +#line 4024 "mrbgems/mruby-compiler/core/parse.y" { /* tCHAR is (len . str), wrap as cons list */ (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10358 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10832 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 462: /* string_fragment: tSTRING */ -#line 3955 "mrbgems/mruby-compiler/core/parse.y" + case 474: /* string_fragment: tSTRING */ +#line 4029 "mrbgems/mruby-compiler/core/parse.y" { /* tSTRING is (len . str), wrap as cons list */ (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10367 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10841 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 463: /* string_fragment: "string literal" tSTRING */ -#line 3960 "mrbgems/mruby-compiler/core/parse.y" + case 475: /* string_fragment: "string literal" tSTRING */ +#line 4034 "mrbgems/mruby-compiler/core/parse.y" { /* $2 is (len . str), wrap as cons list */ (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10376 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10850 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 464: /* string_fragment: "string literal" string_rep tSTRING */ -#line 3965 "mrbgems/mruby-compiler/core/parse.y" + case 476: /* string_fragment: "string literal" string_rep tSTRING */ +#line 4039 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 10384 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10858 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 466: /* string_rep: string_rep string_interp */ -#line 3972 "mrbgems/mruby-compiler/core/parse.y" + case 478: /* string_rep: string_rep string_interp */ +#line 4046 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = append((yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 10392 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10866 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 467: /* string_interp: tSTRING_MID */ -#line 3978 "mrbgems/mruby-compiler/core/parse.y" + case 479: /* string_interp: tSTRING_MID */ +#line 4052 "mrbgems/mruby-compiler/core/parse.y" { /* $1 is already in (len . str) format */ (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10401 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10875 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 468: /* @29: %empty */ -#line 3983 "mrbgems/mruby-compiler/core/parse.y" + case 480: /* @29: %empty */ +#line 4057 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push_strterm(p); } -#line 10409 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10883 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 469: /* string_interp: tSTRING_PART @29 compstmt '}' */ -#line 3988 "mrbgems/mruby-compiler/core/parse.y" + case 481: /* string_interp: tSTRING_PART @29 compstmt '}' */ +#line 4062 "mrbgems/mruby-compiler/core/parse.y" { pop_strterm(p,(yyvsp[-2].nd)); /* $1 is already in (len . str) format, create (-1 . node) for expression */ node *expr_elem = cons(int_to_node(-1), (yyvsp[-1].nd)); (yyval.nd) = list2((yyvsp[-3].nd), expr_elem); } -#line 10420 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10894 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 470: /* string_interp: tLITERAL_DELIM */ -#line 3995 "mrbgems/mruby-compiler/core/parse.y" + case 482: /* string_interp: tLITERAL_DELIM */ +#line 4069 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1(new_literal_delim(p)); } -#line 10428 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10902 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 471: /* string_interp: tHD_LITERAL_DELIM heredoc_bodies */ -#line 3999 "mrbgems/mruby-compiler/core/parse.y" + case 483: /* string_interp: tHD_LITERAL_DELIM heredoc_bodies */ +#line 4073 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1(new_literal_delim(p)); } -#line 10436 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10910 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 472: /* xstring: tXSTRING_BEG tXSTRING */ -#line 4005 "mrbgems/mruby-compiler/core/parse.y" + case 484: /* xstring: tXSTRING_BEG tXSTRING */ +#line 4079 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons((yyvsp[0].nd), (node*)NULL); } -#line 10444 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10918 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 473: /* xstring: tXSTRING_BEG string_rep tXSTRING */ -#line 4009 "mrbgems/mruby-compiler/core/parse.y" + case 485: /* xstring: tXSTRING_BEG string_rep tXSTRING */ +#line 4083 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 10452 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10926 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 474: /* regexp: tREGEXP_BEG tREGEXP */ -#line 4015 "mrbgems/mruby-compiler/core/parse.y" + case 486: /* regexp: tREGEXP_BEG tREGEXP */ +#line 4089 "mrbgems/mruby-compiler/core/parse.y" { node *data = (yyvsp[0].nd); /* ((len . pattern) . (flags . encoding)) */ const char *flags = (const char*)data->cdr->car; @@ -10461,11 +10935,11 @@ yyreduce: node *pattern_list = cons(data->car, (node*)NULL); (yyval.nd) = new_regx(p, pattern_list, flags, encoding); } -#line 10465 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10939 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 475: /* regexp: tREGEXP_BEG string_rep tREGEXP */ -#line 4024 "mrbgems/mruby-compiler/core/parse.y" + case 487: /* regexp: tREGEXP_BEG string_rep tREGEXP */ +#line 4098 "mrbgems/mruby-compiler/core/parse.y" { node *data = (yyvsp[0].nd); /* ((len . pattern) . (flags . encoding)) */ const char *flags = (const char*)data->cdr->car; @@ -10474,47 +10948,47 @@ yyreduce: node *complete_list = push((yyvsp[-1].nd), data->car); (yyval.nd) = new_regx(p, complete_list, flags, encoding); } -#line 10478 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10952 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 479: /* heredoc_body: tHEREDOC_END */ -#line 4042 "mrbgems/mruby-compiler/core/parse.y" + case 491: /* heredoc_body: tHEREDOC_END */ +#line 4116 "mrbgems/mruby-compiler/core/parse.y" { parser_heredoc_info *info = parsing_heredoc_info(p); info->doc = push(info->doc, new_str_empty(p)); heredoc_end(p); } -#line 10488 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10962 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 480: /* heredoc_body: heredoc_string_rep tHEREDOC_END */ -#line 4048 "mrbgems/mruby-compiler/core/parse.y" + case 492: /* heredoc_body: heredoc_string_rep tHEREDOC_END */ +#line 4122 "mrbgems/mruby-compiler/core/parse.y" { heredoc_end(p); } -#line 10496 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10970 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 483: /* heredoc_string_interp: tHD_STRING_MID */ -#line 4058 "mrbgems/mruby-compiler/core/parse.y" + case 495: /* heredoc_string_interp: tHD_STRING_MID */ +#line 4132 "mrbgems/mruby-compiler/core/parse.y" { parser_heredoc_info *info = parsing_heredoc_info(p); info->doc = push(info->doc, (yyvsp[0].nd)); heredoc_treat_nextline(p); } -#line 10506 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10980 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 484: /* @30: %empty */ -#line 4064 "mrbgems/mruby-compiler/core/parse.y" + case 496: /* @30: %empty */ +#line 4138 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push_strterm(p); } -#line 10514 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10988 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 485: /* heredoc_string_interp: tHD_STRING_PART @30 compstmt '}' */ -#line 4069 "mrbgems/mruby-compiler/core/parse.y" + case 497: /* heredoc_string_interp: tHD_STRING_PART @30 compstmt '}' */ +#line 4143 "mrbgems/mruby-compiler/core/parse.y" { pop_strterm(p, (yyvsp[-2].nd)); parser_heredoc_info *info = parsing_heredoc_info(p); @@ -10522,37 +10996,37 @@ yyreduce: node *expr_elem = cons(int_to_node(-1), (yyvsp[-1].nd)); info->doc = push(push(info->doc, (yyvsp[-3].nd)), expr_elem); } -#line 10526 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11000 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 486: /* words: tWORDS_BEG tSTRING */ -#line 4079 "mrbgems/mruby-compiler/core/parse.y" + case 498: /* words: tWORDS_BEG tSTRING */ +#line 4153 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_words(p, list1((yyvsp[0].nd))); } -#line 10534 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11008 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 487: /* words: tWORDS_BEG string_rep tSTRING */ -#line 4083 "mrbgems/mruby-compiler/core/parse.y" + case 499: /* words: tWORDS_BEG string_rep tSTRING */ +#line 4157 "mrbgems/mruby-compiler/core/parse.y" { node *n = (yyvsp[-1].nd); n = push(n, (yyvsp[0].nd)); (yyval.nd) = new_words(p, n); } -#line 10544 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11018 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 488: /* symbol: basic_symbol */ -#line 4091 "mrbgems/mruby-compiler/core/parse.y" + case 500: /* symbol: basic_symbol */ +#line 4165 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_sym(p, (yyvsp[0].id)); } -#line 10552 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11026 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 489: /* symbol: "symbol" "string literal" string_rep tSTRING */ -#line 4095 "mrbgems/mruby-compiler/core/parse.y" + case 501: /* symbol: "symbol" "string literal" string_rep tSTRING */ +#line 4169 "mrbgems/mruby-compiler/core/parse.y" { node *n = (yyvsp[-1].nd); p->lstate = EXPR_ENDARG; @@ -10564,183 +11038,183 @@ yyreduce: } (yyval.nd) = new_dsym(p, n); } -#line 10568 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11042 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 490: /* symbol: "symbol" "numbered parameter" */ -#line 4107 "mrbgems/mruby-compiler/core/parse.y" + case 502: /* symbol: "symbol" "numbered parameter" */ +#line 4181 "mrbgems/mruby-compiler/core/parse.y" { mrb_sym sym = intern_numparam((yyvsp[0].num)); (yyval.nd) = new_sym(p, sym); } -#line 10577 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11051 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 491: /* basic_symbol: "symbol" sym */ -#line 4114 "mrbgems/mruby-compiler/core/parse.y" + case 503: /* basic_symbol: "symbol" sym */ +#line 4188 "mrbgems/mruby-compiler/core/parse.y" { p->lstate = EXPR_END; (yyval.id) = (yyvsp[0].id); } -#line 10586 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11060 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 496: /* sym: tSTRING */ -#line 4125 "mrbgems/mruby-compiler/core/parse.y" + case 508: /* sym: tSTRING */ +#line 4199 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = new_strsym(p, (yyvsp[0].nd)); } -#line 10594 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11068 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 497: /* sym: "string literal" tSTRING */ -#line 4129 "mrbgems/mruby-compiler/core/parse.y" + case 509: /* sym: "string literal" tSTRING */ +#line 4203 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = new_strsym(p, (yyvsp[0].nd)); } -#line 10602 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11076 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 498: /* symbols: tSYMBOLS_BEG tSTRING */ -#line 4135 "mrbgems/mruby-compiler/core/parse.y" + case 510: /* symbols: tSYMBOLS_BEG tSTRING */ +#line 4209 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_symbols(p, list1((yyvsp[0].nd))); } -#line 10610 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11084 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 499: /* symbols: tSYMBOLS_BEG string_rep tSTRING */ -#line 4139 "mrbgems/mruby-compiler/core/parse.y" + case 511: /* symbols: tSYMBOLS_BEG string_rep tSTRING */ +#line 4213 "mrbgems/mruby-compiler/core/parse.y" { node *n = (yyvsp[-1].nd); n = push(n, (yyvsp[0].nd)); (yyval.nd) = new_symbols(p, n); } -#line 10620 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11094 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 502: /* numeric: tUMINUS_NUM "integer literal" */ -#line 4149 "mrbgems/mruby-compiler/core/parse.y" + case 514: /* numeric: tUMINUS_NUM "integer literal" */ +#line 4223 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_negate(p, (yyvsp[0].nd)); } -#line 10628 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11102 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 503: /* numeric: tUMINUS_NUM "float literal" */ -#line 4153 "mrbgems/mruby-compiler/core/parse.y" + case 515: /* numeric: tUMINUS_NUM "float literal" */ +#line 4227 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_negate(p, (yyvsp[0].nd)); } -#line 10636 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11110 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 504: /* variable: "local variable or method" */ -#line 4159 "mrbgems/mruby-compiler/core/parse.y" + case 516: /* variable: "local variable or method" */ +#line 4233 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_lvar(p, (yyvsp[0].id)); } -#line 10644 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11118 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 505: /* variable: "instance variable" */ -#line 4163 "mrbgems/mruby-compiler/core/parse.y" + case 517: /* variable: "instance variable" */ +#line 4237 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_ivar(p, (yyvsp[0].id)); } -#line 10652 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11126 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 506: /* variable: "global variable" */ -#line 4167 "mrbgems/mruby-compiler/core/parse.y" + case 518: /* variable: "global variable" */ +#line 4241 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_gvar(p, (yyvsp[0].id)); } -#line 10660 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11134 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 507: /* variable: "class variable" */ -#line 4171 "mrbgems/mruby-compiler/core/parse.y" + case 519: /* variable: "class variable" */ +#line 4245 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_cvar(p, (yyvsp[0].id)); } -#line 10668 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11142 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 508: /* variable: "constant" */ -#line 4175 "mrbgems/mruby-compiler/core/parse.y" + case 520: /* variable: "constant" */ +#line 4249 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_const(p, (yyvsp[0].id)); } -#line 10676 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11150 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 509: /* var_lhs: variable */ -#line 4181 "mrbgems/mruby-compiler/core/parse.y" + case 521: /* var_lhs: variable */ +#line 4255 "mrbgems/mruby-compiler/core/parse.y" { assignable(p, (yyvsp[0].nd)); } -#line 10684 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11158 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 510: /* var_lhs: "numbered parameter" */ -#line 4185 "mrbgems/mruby-compiler/core/parse.y" + case 522: /* var_lhs: "numbered parameter" */ +#line 4259 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[0]), p, "can't assign to numbered parameter"); } -#line 10692 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11166 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 511: /* var_ref: variable */ -#line 4191 "mrbgems/mruby-compiler/core/parse.y" + case 523: /* var_ref: variable */ +#line 4265 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = var_reference(p, (yyvsp[0].nd)); } -#line 10700 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11174 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 512: /* var_ref: "numbered parameter" */ -#line 4195 "mrbgems/mruby-compiler/core/parse.y" + case 524: /* var_ref: "numbered parameter" */ +#line 4269 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_nvar(p, (yyvsp[0].num)); } -#line 10708 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11182 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 513: /* var_ref: "'nil'" */ -#line 4199 "mrbgems/mruby-compiler/core/parse.y" + case 525: /* var_ref: "'nil'" */ +#line 4273 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_nil(p); } -#line 10716 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11190 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 514: /* var_ref: "'self'" */ -#line 4203 "mrbgems/mruby-compiler/core/parse.y" + case 526: /* var_ref: "'self'" */ +#line 4277 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_self(p); } -#line 10724 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11198 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 515: /* var_ref: "'true'" */ -#line 4207 "mrbgems/mruby-compiler/core/parse.y" + case 527: /* var_ref: "'true'" */ +#line 4281 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_true(p); } -#line 10732 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11206 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 516: /* var_ref: "'false'" */ -#line 4211 "mrbgems/mruby-compiler/core/parse.y" + case 528: /* var_ref: "'false'" */ +#line 4285 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_false(p); } -#line 10740 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11214 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 517: /* var_ref: "'__FILE__'" */ -#line 4215 "mrbgems/mruby-compiler/core/parse.y" + case 529: /* var_ref: "'__FILE__'" */ +#line 4289 "mrbgems/mruby-compiler/core/parse.y" { const char *fn = mrb_sym_name_len(p->mrb, p->filename_sym, NULL); if (!fn) { @@ -10748,686 +11222,686 @@ yyreduce: } (yyval.nd) = new_str(p, cons(cons(int_to_node(strlen(fn)), (node*)fn), (node*)NULL)); } -#line 10752 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11226 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 518: /* var_ref: "'__LINE__'" */ -#line 4223 "mrbgems/mruby-compiler/core/parse.y" + case 530: /* var_ref: "'__LINE__'" */ +#line 4297 "mrbgems/mruby-compiler/core/parse.y" { char buf[16]; dump_int(p->lineno, buf); (yyval.nd) = new_int(p, buf, 10, 0); } -#line 10763 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11237 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 519: /* var_ref: "'__ENCODING__'" */ -#line 4230 "mrbgems/mruby-compiler/core/parse.y" + case 531: /* var_ref: "'__ENCODING__'" */ +#line 4304 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_fcall(p, MRB_SYM_2(p->mrb, __ENCODING__), 0); } -#line 10771 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11245 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 522: /* superclass: %empty */ -#line 4240 "mrbgems/mruby-compiler/core/parse.y" + case 534: /* superclass: %empty */ +#line 4314 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = 0; } -#line 10779 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11253 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 523: /* $@31: %empty */ -#line 4244 "mrbgems/mruby-compiler/core/parse.y" + case 535: /* $@31: %empty */ +#line 4318 "mrbgems/mruby-compiler/core/parse.y" { p->lstate = EXPR_BEG; p->cmd_start = TRUE; } -#line 10788 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11262 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 524: /* superclass: '<' $@31 expr_value term */ -#line 4249 "mrbgems/mruby-compiler/core/parse.y" + case 536: /* superclass: '<' $@31 expr_value term */ +#line 4323 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 10796 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11270 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 527: /* f_arglist_paren: '(' f_args rparen */ -#line 4265 "mrbgems/mruby-compiler/core/parse.y" + case 539: /* f_arglist_paren: '(' f_args rparen */ +#line 4339 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); p->lstate = EXPR_BEG; p->cmd_start = TRUE; } -#line 10806 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11280 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 528: /* f_arglist_paren: '(' f_arg ',' tBDOT3 rparen */ -#line 4271 "mrbgems/mruby-compiler/core/parse.y" + case 540: /* f_arglist_paren: '(' f_arg ',' tBDOT3 rparen */ +#line 4345 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_dots(p, (yyvsp[-3].nd)); } -#line 10814 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11288 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 529: /* f_arglist_paren: '(' tBDOT3 rparen */ -#line 4275 "mrbgems/mruby-compiler/core/parse.y" + case 541: /* f_arglist_paren: '(' tBDOT3 rparen */ +#line 4349 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_dots(p, 0); } -#line 10822 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11296 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 531: /* f_arglist: f_args term */ -#line 4282 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = (yyvsp[-1].nd); - } -#line 10830 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 532: /* f_arglist: f_arg ',' tBDOT3 term */ -#line 4286 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args_dots(p, (yyvsp[-3].nd)); - } -#line 10838 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 533: /* f_arglist: "..." term */ -#line 4290 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_args_dots(p, 0); - } -#line 10846 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 534: /* f_label: "local variable or method" "label" */ -#line 4296 "mrbgems/mruby-compiler/core/parse.y" - { - local_nest(p); - } -#line 10854 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 535: /* f_label: "numbered parameter" "label" */ -#line 4300 "mrbgems/mruby-compiler/core/parse.y" - { - local_nest(p); - } -#line 10862 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 536: /* f_kw: f_label arg */ -#line 4306 "mrbgems/mruby-compiler/core/parse.y" - { - void_expr_error(p, (yyvsp[0].nd)); - (yyval.nd) = new_kw_arg(p, (yyvsp[-1].id), cons((yyvsp[0].nd), locals_node(p))); - local_unnest(p); - } -#line 10872 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 537: /* f_kw: f_label */ -#line 4312 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_kw_arg(p, (yyvsp[0].id), 0); - local_unnest(p); - } -#line 10881 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 538: /* f_block_kw: f_label primary_value */ -#line 4319 "mrbgems/mruby-compiler/core/parse.y" - { - void_expr_error(p, (yyvsp[0].nd)); - (yyval.nd) = new_kw_arg(p, (yyvsp[-1].id), cons((yyvsp[0].nd), locals_node(p))); - local_unnest(p); - } -#line 10891 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 539: /* f_block_kw: f_label */ -#line 4325 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = new_kw_arg(p, (yyvsp[0].id), 0); - local_unnest(p); - } -#line 10900 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 540: /* f_block_kwarg: f_block_kw */ -#line 4332 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list1((yyvsp[0].nd)); - } -#line 10908 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 541: /* f_block_kwarg: f_block_kwarg ',' f_block_kw */ -#line 4336 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); - } -#line 10916 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 542: /* f_kwarg: f_kw */ -#line 4342 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = list1((yyvsp[0].nd)); - } -#line 10924 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 543: /* f_kwarg: f_kwarg ',' f_kw */ -#line 4346 "mrbgems/mruby-compiler/core/parse.y" - { - (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); - } -#line 10932 "mrbgems/mruby-compiler/core/y.tab.c" - break; - - case 546: /* f_kwrest: kwrest_mark "local variable or method" */ + case 543: /* f_arglist: f_args term */ #line 4356 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = (yyvsp[-1].nd); + } +#line 11304 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 544: /* f_arglist: f_arg ',' tBDOT3 term */ +#line 4360 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args_dots(p, (yyvsp[-3].nd)); + } +#line 11312 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 545: /* f_arglist: "..." term */ +#line 4364 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_args_dots(p, 0); + } +#line 11320 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 546: /* f_label: "local variable or method" "label" */ +#line 4370 "mrbgems/mruby-compiler/core/parse.y" + { + local_nest(p); + } +#line 11328 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 547: /* f_label: "numbered parameter" "label" */ +#line 4374 "mrbgems/mruby-compiler/core/parse.y" + { + local_nest(p); + } +#line 11336 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 548: /* f_kw: f_label arg */ +#line 4380 "mrbgems/mruby-compiler/core/parse.y" + { + void_expr_error(p, (yyvsp[0].nd)); + (yyval.nd) = new_kw_arg(p, (yyvsp[-1].id), cons((yyvsp[0].nd), locals_node(p))); + local_unnest(p); + } +#line 11346 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 549: /* f_kw: f_label */ +#line 4386 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_kw_arg(p, (yyvsp[0].id), 0); + local_unnest(p); + } +#line 11355 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 550: /* f_block_kw: f_label primary_value */ +#line 4393 "mrbgems/mruby-compiler/core/parse.y" + { + void_expr_error(p, (yyvsp[0].nd)); + (yyval.nd) = new_kw_arg(p, (yyvsp[-1].id), cons((yyvsp[0].nd), locals_node(p))); + local_unnest(p); + } +#line 11365 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 551: /* f_block_kw: f_label */ +#line 4399 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = new_kw_arg(p, (yyvsp[0].id), 0); + local_unnest(p); + } +#line 11374 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 552: /* f_block_kwarg: f_block_kw */ +#line 4406 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = list1((yyvsp[0].nd)); + } +#line 11382 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 553: /* f_block_kwarg: f_block_kwarg ',' f_block_kw */ +#line 4410 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); + } +#line 11390 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 554: /* f_kwarg: f_kw */ +#line 4416 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = list1((yyvsp[0].nd)); + } +#line 11398 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 555: /* f_kwarg: f_kwarg ',' f_kw */ +#line 4420 "mrbgems/mruby-compiler/core/parse.y" + { + (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); + } +#line 11406 "mrbgems/mruby-compiler/core/y.tab.c" + break; + + case 558: /* f_kwrest: kwrest_mark "local variable or method" */ +#line 4430 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = (yyvsp[0].id); } -#line 10940 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11414 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 547: /* f_kwrest: kwrest_mark */ -#line 4360 "mrbgems/mruby-compiler/core/parse.y" + case 559: /* f_kwrest: kwrest_mark */ +#line 4434 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(pow); } -#line 10948 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11422 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 548: /* args_tail: f_kwarg ',' f_kwrest opt_f_block_arg */ -#line 4366 "mrbgems/mruby-compiler/core/parse.y" + case 560: /* args_tail: f_kwarg ',' f_kwrest opt_f_block_arg */ +#line 4440 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].id)); } -#line 10956 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11430 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 549: /* args_tail: f_kwarg opt_f_block_arg */ -#line 4370 "mrbgems/mruby-compiler/core/parse.y" + case 561: /* args_tail: f_kwarg opt_f_block_arg */ +#line 4444 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, (yyvsp[-1].nd), 0, (yyvsp[0].id)); } -#line 10964 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11438 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 550: /* args_tail: f_kwrest opt_f_block_arg */ -#line 4374 "mrbgems/mruby-compiler/core/parse.y" + case 562: /* args_tail: f_kwrest opt_f_block_arg */ +#line 4448 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, 0, (yyvsp[-1].id), (yyvsp[0].id)); } -#line 10972 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11446 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 551: /* args_tail: f_block_arg */ -#line 4378 "mrbgems/mruby-compiler/core/parse.y" + case 563: /* args_tail: f_block_arg */ +#line 4452 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, 0, 0, (yyvsp[0].id)); } -#line 10980 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11454 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 552: /* opt_args_tail: ',' args_tail */ -#line 4384 "mrbgems/mruby-compiler/core/parse.y" + case 564: /* opt_args_tail: ',' args_tail */ +#line 4458 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 10988 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11462 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 553: /* opt_args_tail: %empty */ -#line 4388 "mrbgems/mruby-compiler/core/parse.y" + case 565: /* opt_args_tail: %empty */ +#line 4462 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, 0, 0, 0); } -#line 10996 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11470 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 554: /* f_args: f_arg ',' f_optarg ',' f_rest_arg opt_args_tail */ -#line 4394 "mrbgems/mruby-compiler/core/parse.y" + case 566: /* f_args: f_arg ',' f_optarg ',' f_rest_arg opt_args_tail */ +#line 4468 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 11004 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11478 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 555: /* f_args: f_arg ',' f_optarg ',' f_rest_arg ',' f_arg opt_args_tail */ -#line 4398 "mrbgems/mruby-compiler/core/parse.y" + case 567: /* f_args: f_arg ',' f_optarg ',' f_rest_arg ',' f_arg opt_args_tail */ +#line 4472 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-7].nd), (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 11012 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11486 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 556: /* f_args: f_arg ',' f_optarg opt_args_tail */ -#line 4402 "mrbgems/mruby-compiler/core/parse.y" + case 568: /* f_args: f_arg ',' f_optarg opt_args_tail */ +#line 4476 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-3].nd), (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd)); } -#line 11020 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11494 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 557: /* f_args: f_arg ',' f_optarg ',' f_arg opt_args_tail */ -#line 4406 "mrbgems/mruby-compiler/core/parse.y" + case 569: /* f_args: f_arg ',' f_optarg ',' f_arg opt_args_tail */ +#line 4480 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 11028 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11502 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 558: /* f_args: f_arg ',' f_rest_arg opt_args_tail */ -#line 4410 "mrbgems/mruby-compiler/core/parse.y" + case 570: /* f_args: f_arg ',' f_rest_arg opt_args_tail */ +#line 4484 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-3].nd), 0, (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 11036 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11510 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 559: /* f_args: f_arg ',' f_rest_arg ',' f_arg opt_args_tail */ -#line 4414 "mrbgems/mruby-compiler/core/parse.y" + case 571: /* f_args: f_arg ',' f_rest_arg ',' f_arg opt_args_tail */ +#line 4488 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-5].nd), 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 11044 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11518 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 560: /* f_args: f_arg opt_args_tail */ -#line 4418 "mrbgems/mruby-compiler/core/parse.y" + case 572: /* f_args: f_arg opt_args_tail */ +#line 4492 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-1].nd), 0, 0, 0, (yyvsp[0].nd)); } -#line 11052 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11526 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 561: /* f_args: f_optarg ',' f_rest_arg opt_args_tail */ -#line 4422 "mrbgems/mruby-compiler/core/parse.y" + case 573: /* f_args: f_optarg ',' f_rest_arg opt_args_tail */ +#line 4496 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 11060 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11534 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 562: /* f_args: f_optarg ',' f_rest_arg ',' f_arg opt_args_tail */ -#line 4426 "mrbgems/mruby-compiler/core/parse.y" + case 574: /* f_args: f_optarg ',' f_rest_arg ',' f_arg opt_args_tail */ +#line 4500 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 11068 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11542 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 563: /* f_args: f_optarg opt_args_tail */ -#line 4430 "mrbgems/mruby-compiler/core/parse.y" + case 575: /* f_args: f_optarg opt_args_tail */ +#line 4504 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd)); } -#line 11076 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11550 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 564: /* f_args: f_optarg ',' f_arg opt_args_tail */ -#line 4434 "mrbgems/mruby-compiler/core/parse.y" + case 576: /* f_args: f_optarg ',' f_arg opt_args_tail */ +#line 4508 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 11084 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11558 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 565: /* f_args: f_rest_arg opt_args_tail */ -#line 4438 "mrbgems/mruby-compiler/core/parse.y" + case 577: /* f_args: f_rest_arg opt_args_tail */ +#line 4512 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, 0, (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 11092 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11566 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 566: /* f_args: f_rest_arg ',' f_arg opt_args_tail */ -#line 4442 "mrbgems/mruby-compiler/core/parse.y" + case 578: /* f_args: f_rest_arg ',' f_arg opt_args_tail */ +#line 4516 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 11100 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11574 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 567: /* f_args: args_tail */ -#line 4446 "mrbgems/mruby-compiler/core/parse.y" + case 579: /* f_args: args_tail */ +#line 4520 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, 0, 0, 0, (yyvsp[0].nd)); } -#line 11108 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11582 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 568: /* f_args: %empty */ -#line 4450 "mrbgems/mruby-compiler/core/parse.y" + case 580: /* f_args: %empty */ +#line 4524 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, 0); (yyval.nd) = new_args(p, 0, 0, 0, 0, 0); } -#line 11117 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11591 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 569: /* f_bad_arg: "constant" */ -#line 4457 "mrbgems/mruby-compiler/core/parse.y" + case 581: /* f_bad_arg: "constant" */ +#line 4531 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[0]), p, "formal argument cannot be a constant"); (yyval.nd) = 0; } -#line 11126 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11600 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 570: /* f_bad_arg: "instance variable" */ -#line 4462 "mrbgems/mruby-compiler/core/parse.y" + case 582: /* f_bad_arg: "instance variable" */ +#line 4536 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[0]), p, "formal argument cannot be an instance variable"); (yyval.nd) = 0; } -#line 11135 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11609 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 571: /* f_bad_arg: "global variable" */ -#line 4467 "mrbgems/mruby-compiler/core/parse.y" + case 583: /* f_bad_arg: "global variable" */ +#line 4541 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[0]), p, "formal argument cannot be a global variable"); (yyval.nd) = 0; } -#line 11144 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11618 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 572: /* f_bad_arg: "class variable" */ -#line 4472 "mrbgems/mruby-compiler/core/parse.y" + case 584: /* f_bad_arg: "class variable" */ +#line 4546 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[0]), p, "formal argument cannot be a class variable"); (yyval.nd) = 0; } -#line 11153 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11627 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 573: /* f_bad_arg: "numbered parameter" */ -#line 4477 "mrbgems/mruby-compiler/core/parse.y" + case 585: /* f_bad_arg: "numbered parameter" */ +#line 4551 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[0]), p, "formal argument cannot be a numbered parameter"); (yyval.nd) = 0; } -#line 11162 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11636 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 574: /* f_norm_arg: f_bad_arg */ -#line 4484 "mrbgems/mruby-compiler/core/parse.y" + case 586: /* f_norm_arg: f_bad_arg */ +#line 4558 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = 0; } -#line 11170 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11644 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 575: /* f_norm_arg: "local variable or method" */ -#line 4488 "mrbgems/mruby-compiler/core/parse.y" + case 587: /* f_norm_arg: "local variable or method" */ +#line 4562 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, (yyvsp[0].id)); (yyval.id) = (yyvsp[0].id); } -#line 11179 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11653 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 576: /* f_arg_item: f_norm_arg */ -#line 4495 "mrbgems/mruby-compiler/core/parse.y" + case 588: /* f_arg_item: f_norm_arg */ +#line 4569 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_lvar(p, (yyvsp[0].id)); } -#line 11187 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11661 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 577: /* @32: %empty */ -#line 4499 "mrbgems/mruby-compiler/core/parse.y" + case 589: /* @32: %empty */ +#line 4573 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = local_switch(p); } -#line 11195 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11669 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 578: /* f_arg_item: tLPAREN @32 f_margs rparen */ -#line 4503 "mrbgems/mruby-compiler/core/parse.y" + case 590: /* f_arg_item: tLPAREN @32 f_margs rparen */ +#line 4577 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_marg(p, (yyvsp[-1].nd)); local_resume(p, (yyvsp[-2].nd)); local_add_f(p, 0); } -#line 11205 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11679 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 579: /* f_arg: f_arg_item */ -#line 4511 "mrbgems/mruby-compiler/core/parse.y" + case 591: /* f_arg: f_arg_item */ +#line 4585 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 11213 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11687 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 580: /* f_arg: f_arg ',' f_arg_item */ -#line 4515 "mrbgems/mruby-compiler/core/parse.y" + case 592: /* f_arg: f_arg ',' f_arg_item */ +#line 4589 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 11221 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11695 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 581: /* f_opt_asgn: "local variable or method" '=' */ -#line 4521 "mrbgems/mruby-compiler/core/parse.y" + case 593: /* f_opt_asgn: "local variable or method" '=' */ +#line 4595 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, (yyvsp[-1].id)); local_nest(p); (yyval.id) = (yyvsp[-1].id); } -#line 11231 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11705 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 582: /* f_opt: f_opt_asgn arg */ -#line 4529 "mrbgems/mruby-compiler/core/parse.y" + case 594: /* f_opt: f_opt_asgn arg */ +#line 4603 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = cons(sym_to_node((yyvsp[-1].id)), cons((yyvsp[0].nd), locals_node(p))); local_unnest(p); } -#line 11241 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11715 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 583: /* f_block_opt: f_opt_asgn primary_value */ -#line 4537 "mrbgems/mruby-compiler/core/parse.y" + case 595: /* f_block_opt: f_opt_asgn primary_value */ +#line 4611 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = cons(sym_to_node((yyvsp[-1].id)), cons((yyvsp[0].nd), locals_node(p))); local_unnest(p); } -#line 11251 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11725 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 584: /* f_block_optarg: f_block_opt */ -#line 4545 "mrbgems/mruby-compiler/core/parse.y" + case 596: /* f_block_optarg: f_block_opt */ +#line 4619 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 11259 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11733 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 585: /* f_block_optarg: f_block_optarg ',' f_block_opt */ -#line 4549 "mrbgems/mruby-compiler/core/parse.y" + case 597: /* f_block_optarg: f_block_optarg ',' f_block_opt */ +#line 4623 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 11267 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11741 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 586: /* f_optarg: f_opt */ -#line 4555 "mrbgems/mruby-compiler/core/parse.y" + case 598: /* f_optarg: f_opt */ +#line 4629 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 11275 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11749 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 587: /* f_optarg: f_optarg ',' f_opt */ -#line 4559 "mrbgems/mruby-compiler/core/parse.y" + case 599: /* f_optarg: f_optarg ',' f_opt */ +#line 4633 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 11283 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11757 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 590: /* f_rest_arg: restarg_mark "local variable or method" */ -#line 4569 "mrbgems/mruby-compiler/core/parse.y" + case 602: /* f_rest_arg: restarg_mark "local variable or method" */ +#line 4643 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, (yyvsp[0].id)); (yyval.id) = (yyvsp[0].id); } -#line 11292 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11766 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 591: /* f_rest_arg: restarg_mark */ -#line 4574 "mrbgems/mruby-compiler/core/parse.y" + case 603: /* f_rest_arg: restarg_mark */ +#line 4648 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(mul); local_add_f(p, (yyval.id)); } -#line 11301 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11775 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 594: /* f_block_arg: blkarg_mark "local variable or method" */ -#line 4585 "mrbgems/mruby-compiler/core/parse.y" + case 606: /* f_block_arg: blkarg_mark "local variable or method" */ +#line 4659 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = (yyvsp[0].id); } -#line 11309 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11783 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 595: /* f_block_arg: blkarg_mark */ -#line 4589 "mrbgems/mruby-compiler/core/parse.y" + case 607: /* f_block_arg: blkarg_mark */ +#line 4663 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(and); } -#line 11317 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11791 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 596: /* opt_f_block_arg: ',' f_block_arg */ -#line 4595 "mrbgems/mruby-compiler/core/parse.y" + case 608: /* opt_f_block_arg: ',' f_block_arg */ +#line 4669 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = (yyvsp[0].id); } -#line 11325 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11799 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 597: /* opt_f_block_arg: none */ -#line 4599 "mrbgems/mruby-compiler/core/parse.y" + case 609: /* opt_f_block_arg: none */ +#line 4673 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = 0; } -#line 11333 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11807 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 598: /* singleton: var_ref */ -#line 4605 "mrbgems/mruby-compiler/core/parse.y" + case 610: /* singleton: var_ref */ +#line 4679 "mrbgems/mruby-compiler/core/parse.y" { prohibit_literals(p, (yyvsp[0].nd)); (yyval.nd) = (yyvsp[0].nd); if (!(yyval.nd)) (yyval.nd) = new_nil(p); } -#line 11343 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11817 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 599: /* $@33: %empty */ -#line 4610 "mrbgems/mruby-compiler/core/parse.y" + case 611: /* $@33: %empty */ +#line 4684 "mrbgems/mruby-compiler/core/parse.y" {p->lstate = EXPR_BEG;} -#line 11349 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11823 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 600: /* singleton: '(' $@33 expr rparen */ -#line 4611 "mrbgems/mruby-compiler/core/parse.y" + case 612: /* singleton: '(' $@33 expr rparen */ +#line 4685 "mrbgems/mruby-compiler/core/parse.y" { prohibit_literals(p, (yyvsp[-1].nd)); (yyval.nd) = (yyvsp[-1].nd); } -#line 11358 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11832 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 602: /* assoc_list: assocs trailer */ -#line 4619 "mrbgems/mruby-compiler/core/parse.y" + case 614: /* assoc_list: assocs trailer */ +#line 4693 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 11366 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11840 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 603: /* assocs: assoc */ -#line 4625 "mrbgems/mruby-compiler/core/parse.y" + case 615: /* assocs: assoc */ +#line 4699 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 11374 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11848 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 604: /* assocs: assocs comma assoc */ -#line 4629 "mrbgems/mruby-compiler/core/parse.y" + case 616: /* assocs: assocs comma assoc */ +#line 4703 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 11382 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11856 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 605: /* assoc: arg "=>" arg */ -#line 4635 "mrbgems/mruby-compiler/core/parse.y" + case 617: /* assoc: arg "=>" arg */ +#line 4709 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[-2].nd)); void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = cons((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 11392 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11866 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 606: /* assoc: "local variable or method" "label" arg */ -#line 4641 "mrbgems/mruby-compiler/core/parse.y" + case 618: /* assoc: "local variable or method" "label" arg */ +#line 4715 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = cons(new_sym(p, (yyvsp[-2].id)), (yyvsp[0].nd)); } -#line 11401 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11875 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 607: /* assoc: "local variable or method" "label" */ -#line 4646 "mrbgems/mruby-compiler/core/parse.y" + case 619: /* assoc: "local variable or method" "label" */ +#line 4720 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(new_sym(p, (yyvsp[-1].id)), label_reference(p, (yyvsp[-1].id))); } -#line 11409 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11883 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 608: /* assoc: "numbered parameter" "label" */ -#line 4650 "mrbgems/mruby-compiler/core/parse.y" + case 620: /* assoc: "numbered parameter" "label" */ +#line 4724 "mrbgems/mruby-compiler/core/parse.y" { mrb_sym sym = intern_numparam((yyvsp[-1].num)); (yyval.nd) = cons(new_sym(p, sym), label_reference(p, sym)); } -#line 11418 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11892 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 609: /* assoc: "numbered parameter" "label" arg */ -#line 4655 "mrbgems/mruby-compiler/core/parse.y" + case 621: /* assoc: "numbered parameter" "label" arg */ +#line 4729 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = cons(new_sym(p, intern_numparam((yyvsp[-2].num))), (yyvsp[0].nd)); } -#line 11427 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11901 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 610: /* assoc: string_fragment "label" arg */ -#line 4660 "mrbgems/mruby-compiler/core/parse.y" + case 622: /* assoc: string_fragment "label" arg */ +#line 4734 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); if ((yyvsp[-2].nd)->cdr) { @@ -11443,75 +11917,75 @@ yyreduce: (yyval.nd) = cons(new_sym(p, new_strsym(p, (yyvsp[-2].nd)->car)), (yyvsp[0].nd)); } } -#line 11447 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11921 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 611: /* assoc: "**" arg */ -#line 4676 "mrbgems/mruby-compiler/core/parse.y" + case 623: /* assoc: "**" arg */ +#line 4750 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = cons(new_kw_rest_args(p, 0), (yyvsp[0].nd)); } -#line 11456 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11930 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 612: /* assoc: "**" */ -#line 4681 "mrbgems/mruby-compiler/core/parse.y" + case 624: /* assoc: "**" */ +#line 4755 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(new_kw_rest_args(p, 0), new_lvar(p, intern_op(pow))); } -#line 11464 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11938 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 625: /* call_op: '.' */ -#line 4707 "mrbgems/mruby-compiler/core/parse.y" + case 637: /* call_op: '.' */ +#line 4781 "mrbgems/mruby-compiler/core/parse.y" { (yyval.num) = '.'; } -#line 11472 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11946 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 626: /* call_op: "&." */ -#line 4711 "mrbgems/mruby-compiler/core/parse.y" + case 638: /* call_op: "&." */ +#line 4785 "mrbgems/mruby-compiler/core/parse.y" { (yyval.num) = 0; } -#line 11480 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11954 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 628: /* call_op2: "::" */ -#line 4718 "mrbgems/mruby-compiler/core/parse.y" + case 640: /* call_op2: "::" */ +#line 4792 "mrbgems/mruby-compiler/core/parse.y" { (yyval.num) = tCOLON2; } -#line 11488 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11962 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 637: /* term: ';' */ -#line 4739 "mrbgems/mruby-compiler/core/parse.y" + case 649: /* term: ';' */ +#line 4813 "mrbgems/mruby-compiler/core/parse.y" {yyerrok;} -#line 11494 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11968 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 639: /* nl: '\n' */ -#line 4744 "mrbgems/mruby-compiler/core/parse.y" + case 651: /* nl: '\n' */ +#line 4818 "mrbgems/mruby-compiler/core/parse.y" { p->lineno += (yyvsp[0].num); p->column = 0; } -#line 11503 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11977 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 643: /* none: %empty */ -#line 4756 "mrbgems/mruby-compiler/core/parse.y" + case 655: /* none: %empty */ +#line 4830 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = 0; } -#line 11511 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11985 "mrbgems/mruby-compiler/core/y.tab.c" break; -#line 11515 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11989 "mrbgems/mruby-compiler/core/y.tab.c" default: break; } @@ -11744,7 +12218,7 @@ yyreturnlab: return yyresult; } -#line 4760 "mrbgems/mruby-compiler/core/parse.y" +#line 4834 "mrbgems/mruby-compiler/core/parse.y" #define pylval (*((YYSTYPE*)(p->ylval))) diff --git a/mrblib/array.rb b/mrblib/array.rb index 8b04b680e..cbeaa6783 100644 --- a/mrblib/array.rb +++ b/mrblib/array.rb @@ -85,6 +85,16 @@ class Array self.dup.sort!(&block) end + ## + # call-seq: + # array.deconstruct -> self + # + # Returns self. Used for array pattern matching in case/in expressions. + # + def deconstruct + self + end + ## # Array is enumerable # ISO 15.2.12.3