From 5f43603c52e81d4d20fdf176e5316c638c0aa435 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Mon, 1 Sep 2025 07:17:08 +0900 Subject: [PATCH] mruby-compiler: remove obsolete NODE_STR and NODE_XSTR node types Remove NODE_STR and NODE_XSTR enum values and all associated code as these traditional node types are no longer used with the new cons list string representation. The compiler now exclusively uses the cons list format ((len . str) (-1 . node)...) for all string types. - remove NODE_STR and NODE_XSTR from node_type enum in node.h - remove NODE_STR and NODE_XSTR cases from codegen.c switch statements - remove NODE_STR and NODE_XSTR cases from parse.y codedump functions - remove unused codegen_str(), codegen_xstr(), and gen_xstr_var() functions - update codegen_dregx() to use cons list string handling instead of checking for obsolete NODE_STR - preserve str_dump() function wrapped in #if 0 for future codedump updates - update comment in node.h to reflect current node types NODE_DSTR remains available for dynamic string interpolation. All string functionality continues to work via the cons list representation and variable-sized node implementations. Co-authored-by: Claude --- mrbgems/mruby-compiler/core/codegen.c | 65 - mrbgems/mruby-compiler/core/node.h | 4 +- mrbgems/mruby-compiler/core/parse.y | 13 +- mrbgems/mruby-compiler/core/y.tab.c | 2063 ++++++++++++------------- 4 files changed, 1032 insertions(+), 1113 deletions(-) diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c index fc4c57f7a..e321be6ea 100644 --- a/mrbgems/mruby-compiler/core/codegen.c +++ b/mrbgems/mruby-compiler/core/codegen.c @@ -3355,7 +3355,6 @@ true_always(node *tree) switch (node_to_int(tree->car)) { case NODE_TRUE: case NODE_INT: - case NODE_STR: case NODE_SYM: return TRUE; default: @@ -4299,27 +4298,6 @@ codegen_int(codegen_scope *s, node *tree, int val) push(); } -static void -codegen_xstr(codegen_scope *s, node *tree, int val) -{ - char *p = (char*)tree->car; - mrb_int len = node_to_int(tree->cdr); - int off = new_lit_str(s, p, len); - int sym; - - /* Always execute backtick command for side effects, even in NOVAL mode */ - push(); - genop_2(s, OP_STRING, cursp(), off); - push(); push(); - pop_n(3); - sym = new_sym(s, MRB_OPSYM_2(s->mrb, tick)); /* ` */ - genop_3(s, OP_SSEND, cursp(), sym, 1); - - if (val) { - push(); /* Keep result on stack if needed */ - } - /* If val=0, the result is discarded but the method was still called */ -} static void codegen_dxstr(codegen_scope *s, node *tree, int val) @@ -4357,18 +4335,6 @@ codegen_heredoc_dstr(codegen_scope *s, node *tree, int val) codegen_cons_list_string(s, tree, val); } -static void -codegen_str(codegen_scope *s, node *tree, int val) -{ - if (val) { - char *p = (char*)tree->car; - mrb_int len = node_to_int(tree->cdr); - int off = new_lit_str(s, p, len); - - genop_2(s, OP_STRING, cursp(), off); - push(); - } -} /* Common function to generate bytecode for cons list string representation * Handles list of elements where each element is either: @@ -5759,17 +5725,6 @@ gen_until_mod_var(codegen_scope *s, node *varnode, int val) codegen_while_until(s, (node*)&temp_tree, val, NODE_UNTIL_MOD); } -static void -gen_xstr_var(codegen_scope *s, node *varnode, int val) -{ - struct mrb_ast_xstr_node *n = (struct mrb_ast_xstr_node*)varnode; - // Stack allocation for compatibility with existing codegen - mrb_int len; - const char *str = mrb_sym2name_len(s->mrb, n->name, &len); - struct mrb_ast_node temp_car = { .car = (node*)str, .cdr = int_to_node((int)len) }; - struct mrb_ast_node temp_tree = { .car = (node*)&temp_car, .cdr = NULL }; - codegen_xstr(s, (node*)&temp_tree, val); -} static void gen_dxstr_var(codegen_scope *s, node *varnode, int val) @@ -6192,14 +6147,6 @@ codegen_variable_node(codegen_scope *s, node *varnode, int val) } return TRUE; - case NODE_STR: - if (val) { - int off = new_lit_str(s, STR_NODE_PTR(varnode), STR_NODE_LEN(varnode)); - genop_2(s, OP_STRING, cursp(), off); - push(); - } - return TRUE; - case NODE_SYM: codegen_sym(s, SYM_NODE_VALUE(varnode), val); return TRUE; @@ -6376,10 +6323,6 @@ codegen_variable_node(codegen_scope *s, node *varnode, int val) gen_until_mod_var(s, varnode, val); return TRUE; - case NODE_XSTR: - gen_xstr_var(s, varnode, val); - return TRUE; - case NODE_DXSTR: gen_dxstr_var(s, varnode, val); return TRUE; @@ -6730,10 +6673,6 @@ codegen(codegen_scope *s, node *tree, int val) codegen_negate(s, tree, val); break; - case NODE_STR: - codegen_str(s, tree, val); - break; - case NODE_HEREDOC: codegen_heredoc(s, tree, val); break; @@ -6754,10 +6693,6 @@ codegen(codegen_scope *s, node *tree, int val) codegen_dxstr(s, tree, val); break; - case NODE_XSTR: - codegen_xstr(s, tree, val); - break; - case NODE_REGX: codegen_regx(s, tree, val); break; diff --git a/mrbgems/mruby-compiler/core/node.h b/mrbgems/mruby-compiler/core/node.h index 4f1300854..d10708aba 100644 --- a/mrbgems/mruby-compiler/core/node.h +++ b/mrbgems/mruby-compiler/core/node.h @@ -57,9 +57,7 @@ enum node_type { NODE_NEGATE, NODE_LAMBDA, NODE_SYM, - NODE_STR, NODE_DSTR, - NODE_XSTR, NODE_DXSTR, NODE_REGX, NODE_DREGX, @@ -154,7 +152,7 @@ struct mrb_ast_head_node { struct mrb_ast_var_header { uint16_t lineno; /* Line number information */ uint16_t filename_index; /* File index information */ - uint8_t node_type; /* NODE_INT, NODE_STR, NODE_SYM, etc. */ + uint8_t node_type; /* NODE_INT, NODE_SYM, NODE_DSTR, etc. */ uint8_t size_class; /* Size class for allocation/deallocation */ uint16_t flags; /* Type-specific flags and metadata */ /* Total: 8 bytes header for all variable nodes */ diff --git a/mrbgems/mruby-compiler/core/parse.y b/mrbgems/mruby-compiler/core/parse.y index 84ba868ce..c97ee29e5 100644 --- a/mrbgems/mruby-compiler/core/parse.y +++ b/mrbgems/mruby-compiler/core/parse.y @@ -2542,9 +2542,7 @@ prohibit_literals(parser_state *p, node *n) else { switch (node_to_type(n->car)) { case NODE_INT: - case NODE_STR: case NODE_DSTR: - case NODE_XSTR: case NODE_DXSTR: case NODE_DREGX: case NODE_MATCH: @@ -8190,6 +8188,7 @@ dump_args(mrb_state *mrb, node *n, int offset) * performed at the caller, the string pointer returned as the return * value may become invalid. */ +#if 0 static const char* str_dump(mrb_state *mrb, const char *str, int len) { @@ -8208,6 +8207,8 @@ str_dump(mrb_state *mrb, const char *str, int len) } #endif +#endif + void mrb_parser_dump(mrb_state *mrb, node *tree, int offset) { @@ -8723,19 +8724,11 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset) mrb_parser_dump(mrb, tree, offset+1); break; - case NODE_STR: - printf("NODE_STR %s len %d\n", str_dump(mrb, (char*)tree->car, node_to_int(tree->cdr)), node_to_int(tree->cdr)); - break; - case NODE_DSTR: printf("NODE_DSTR:\n"); dump_recur(mrb, tree, offset+1); break; - case NODE_XSTR: - printf("NODE_XSTR %s len %d\n", str_dump(mrb, (char*)tree->car, node_to_int(tree->cdr)), node_to_int(tree->cdr)); - break; - case NODE_DXSTR: printf("NODE_DXSTR:\n"); dump_recur(mrb, tree, offset+1); diff --git a/mrbgems/mruby-compiler/core/y.tab.c b/mrbgems/mruby-compiler/core/y.tab.c index 287d20c94..48e214595 100644 --- a/mrbgems/mruby-compiler/core/y.tab.c +++ b/mrbgems/mruby-compiler/core/y.tab.c @@ -2604,9 +2604,7 @@ prohibit_literals(parser_state *p, node *n) else { switch (node_to_type(n->car)) { case NODE_INT: - case NODE_STR: case NODE_DSTR: - case NODE_XSTR: case NODE_DXSTR: case NODE_DREGX: case NODE_MATCH: @@ -2623,7 +2621,7 @@ prohibit_literals(parser_state *p, node *n) /* xxx ----------------------------- */ -#line 2627 "mrbgems/mruby-compiler/core/y.tab.c" +#line 2625 "mrbgems/mruby-compiler/core/y.tab.c" # ifndef YY_CAST # ifdef __cplusplus @@ -2794,7 +2792,7 @@ extern int yydebug; #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { -#line 2570 "mrbgems/mruby-compiler/core/parse.y" +#line 2568 "mrbgems/mruby-compiler/core/parse.y" node *nd; mrb_sym id; @@ -2802,7 +2800,7 @@ union YYSTYPE stack_type stack; const struct vtable *vars; -#line 2806 "mrbgems/mruby-compiler/core/y.tab.c" +#line 2804 "mrbgems/mruby-compiler/core/y.tab.c" }; typedef union YYSTYPE YYSTYPE; @@ -3561,69 +3559,69 @@ static const yytype_uint8 yytranslate[] = /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { - 0, 2741, 2741, 2741, 2751, 2757, 2761, 2765, 2769, 2775, - 2777, 2776, 2790, 2816, 2822, 2826, 2830, 2834, 2840, 2840, - 2844, 2848, 2852, 2856, 2865, 2874, 2878, 2883, 2884, 2888, - 2892, 2896, 2900, 2906, 2909, 2913, 2917, 2921, 2925, 2929, - 2934, 2938, 2947, 2956, 2965, 2974, 2981, 2982, 2986, 2990, - 2991, 2995, 2999, 3003, 3007, 3011, 3021, 3020, 3035, 3044, - 3045, 3048, 3049, 3056, 3055, 3070, 3074, 3079, 3083, 3088, - 3092, 3097, 3101, 3105, 3109, 3113, 3119, 3123, 3129, 3130, - 3136, 3140, 3144, 3148, 3152, 3156, 3160, 3164, 3168, 3172, - 3178, 3179, 3185, 3189, 3195, 3199, 3205, 3209, 3213, 3217, - 3221, 3225, 3231, 3237, 3244, 3248, 3252, 3256, 3260, 3264, - 3270, 3276, 3281, 3287, 3291, 3294, 3298, 3302, 3309, 3310, - 3311, 3312, 3317, 3324, 3325, 3328, 3332, 3332, 3338, 3339, - 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, - 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, - 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3370, 3370, - 3370, 3371, 3371, 3372, 3372, 3372, 3373, 3373, 3373, 3373, - 3374, 3374, 3374, 3375, 3375, 3375, 3376, 3376, 3376, 3376, - 3377, 3377, 3377, 3377, 3378, 3378, 3378, 3378, 3379, 3379, - 3379, 3379, 3380, 3380, 3380, 3380, 3381, 3381, 3384, 3388, - 3392, 3396, 3400, 3404, 3408, 3413, 3418, 3423, 3427, 3431, - 3435, 3439, 3443, 3447, 3451, 3455, 3459, 3463, 3467, 3471, - 3475, 3479, 3483, 3487, 3491, 3495, 3499, 3503, 3507, 3511, - 3515, 3519, 3523, 3527, 3531, 3535, 3539, 3543, 3547, 3551, - 3555, 3559, 3563, 3567, 3571, 3580, 3589, 3598, 3607, 3613, - 3614, 3618, 3622, 3628, 3632, 3639, 3643, 3652, 3669, 3670, - 3673, 3674, 3675, 3679, 3683, 3689, 3694, 3698, 3702, 3706, - 3712, 3712, 3723, 3727, 3733, 3737, 3743, 3746, 3751, 3755, - 3759, 3764, 3768, 3774, 3779, 3783, 3789, 3790, 3794, 3798, - 3799, 3800, 3801, 3802, 3807, 3806, 3818, 3822, 3817, 3827, - 3827, 3831, 3835, 3839, 3843, 3847, 3851, 3855, 3859, 3863, - 3867, 3871, 3872, 3878, 3885, 3877, 3898, 3906, 3914, 3914, - 3914, 3921, 3921, 3921, 3928, 3934, 3939, 3941, 3938, 3950, - 3948, 3966, 3971, 3964, 3988, 3986, 4002, 4012, 4023, 4027, - 4031, 4035, 4041, 4048, 4049, 4050, 4053, 4054, 4057, 4058, - 4066, 4067, 4073, 4077, 4080, 4084, 4088, 4092, 4097, 4101, - 4105, 4109, 4115, 4114, 4124, 4128, 4132, 4136, 4142, 4147, - 4152, 4156, 4160, 4164, 4168, 4172, 4176, 4180, 4184, 4188, - 4192, 4196, 4200, 4204, 4208, 4214, 4219, 4226, 4226, 4230, - 4235, 4242, 4246, 4252, 4253, 4256, 4261, 4264, 4268, 4274, - 4278, 4285, 4284, 4301, 4311, 4315, 4320, 4327, 4331, 4335, - 4339, 4343, 4347, 4351, 4355, 4359, 4366, 4365, 4380, 4379, - 4395, 4403, 4412, 4415, 4422, 4425, 4429, 4430, 4433, 4437, - 4440, 4444, 4447, 4448, 4449, 4450, 4453, 4454, 4460, 4465, - 4470, 4475, 4481, 4482, 4488, 4494, 4493, 4505, 4509, 4515, - 4519, 4525, 4534, 4545, 4548, 4549, 4552, 4558, 4564, 4565, - 4568, 4575, 4574, 4589, 4593, 4602, 4606, 4618, 4625, 4632, - 4633, 4634, 4635, 4636, 4640, 4646, 4650, 4658, 4659, 4660, - 4664, 4670, 4674, 4678, 4682, 4686, 4692, 4696, 4702, 4706, - 4710, 4714, 4718, 4722, 4726, 4734, 4741, 4747, 4748, 4752, - 4756, 4755, 4772, 4773, 4776, 4782, 4786, 4792, 4793, 4797, - 4801, 4807, 4811, 4817, 4823, 4830, 4836, 4843, 4847, 4853, - 4857, 4863, 4864, 4867, 4871, 4877, 4881, 4885, 4889, 4895, - 4900, 4905, 4909, 4913, 4917, 4921, 4925, 4929, 4933, 4937, - 4941, 4945, 4949, 4953, 4957, 4962, 4968, 4973, 4978, 4983, - 4988, 4995, 4999, 5006, 5011, 5010, 5022, 5026, 5032, 5040, - 5048, 5056, 5060, 5066, 5070, 5076, 5077, 5080, 5085, 5092, - 5093, 5096, 5100, 5106, 5110, 5116, 5122, 5122, 5129, 5130, - 5136, 5140, 5146, 5152, 5157, 5161, 5166, 5171, 5187, 5192, - 5198, 5199, 5200, 5203, 5204, 5205, 5206, 5209, 5210, 5211, - 5214, 5215, 5218, 5222, 5228, 5229, 5235, 5236, 5239, 5240, - 5243, 5246, 5247, 5248, 5251, 5252, 5255, 5260, 5263, 5264, - 5268 + 0, 2739, 2739, 2739, 2749, 2755, 2759, 2763, 2767, 2773, + 2775, 2774, 2788, 2814, 2820, 2824, 2828, 2832, 2838, 2838, + 2842, 2846, 2850, 2854, 2863, 2872, 2876, 2881, 2882, 2886, + 2890, 2894, 2898, 2904, 2907, 2911, 2915, 2919, 2923, 2927, + 2932, 2936, 2945, 2954, 2963, 2972, 2979, 2980, 2984, 2988, + 2989, 2993, 2997, 3001, 3005, 3009, 3019, 3018, 3033, 3042, + 3043, 3046, 3047, 3054, 3053, 3068, 3072, 3077, 3081, 3086, + 3090, 3095, 3099, 3103, 3107, 3111, 3117, 3121, 3127, 3128, + 3134, 3138, 3142, 3146, 3150, 3154, 3158, 3162, 3166, 3170, + 3176, 3177, 3183, 3187, 3193, 3197, 3203, 3207, 3211, 3215, + 3219, 3223, 3229, 3235, 3242, 3246, 3250, 3254, 3258, 3262, + 3268, 3274, 3279, 3285, 3289, 3292, 3296, 3300, 3307, 3308, + 3309, 3310, 3315, 3322, 3323, 3326, 3330, 3330, 3336, 3337, + 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, + 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, + 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3368, 3368, + 3368, 3369, 3369, 3370, 3370, 3370, 3371, 3371, 3371, 3371, + 3372, 3372, 3372, 3373, 3373, 3373, 3374, 3374, 3374, 3374, + 3375, 3375, 3375, 3375, 3376, 3376, 3376, 3376, 3377, 3377, + 3377, 3377, 3378, 3378, 3378, 3378, 3379, 3379, 3382, 3386, + 3390, 3394, 3398, 3402, 3406, 3411, 3416, 3421, 3425, 3429, + 3433, 3437, 3441, 3445, 3449, 3453, 3457, 3461, 3465, 3469, + 3473, 3477, 3481, 3485, 3489, 3493, 3497, 3501, 3505, 3509, + 3513, 3517, 3521, 3525, 3529, 3533, 3537, 3541, 3545, 3549, + 3553, 3557, 3561, 3565, 3569, 3578, 3587, 3596, 3605, 3611, + 3612, 3616, 3620, 3626, 3630, 3637, 3641, 3650, 3667, 3668, + 3671, 3672, 3673, 3677, 3681, 3687, 3692, 3696, 3700, 3704, + 3710, 3710, 3721, 3725, 3731, 3735, 3741, 3744, 3749, 3753, + 3757, 3762, 3766, 3772, 3777, 3781, 3787, 3788, 3792, 3796, + 3797, 3798, 3799, 3800, 3805, 3804, 3816, 3820, 3815, 3825, + 3825, 3829, 3833, 3837, 3841, 3845, 3849, 3853, 3857, 3861, + 3865, 3869, 3870, 3876, 3883, 3875, 3896, 3904, 3912, 3912, + 3912, 3919, 3919, 3919, 3926, 3932, 3937, 3939, 3936, 3948, + 3946, 3964, 3969, 3962, 3986, 3984, 4000, 4010, 4021, 4025, + 4029, 4033, 4039, 4046, 4047, 4048, 4051, 4052, 4055, 4056, + 4064, 4065, 4071, 4075, 4078, 4082, 4086, 4090, 4095, 4099, + 4103, 4107, 4113, 4112, 4122, 4126, 4130, 4134, 4140, 4145, + 4150, 4154, 4158, 4162, 4166, 4170, 4174, 4178, 4182, 4186, + 4190, 4194, 4198, 4202, 4206, 4212, 4217, 4224, 4224, 4228, + 4233, 4240, 4244, 4250, 4251, 4254, 4259, 4262, 4266, 4272, + 4276, 4283, 4282, 4299, 4309, 4313, 4318, 4325, 4329, 4333, + 4337, 4341, 4345, 4349, 4353, 4357, 4364, 4363, 4378, 4377, + 4393, 4401, 4410, 4413, 4420, 4423, 4427, 4428, 4431, 4435, + 4438, 4442, 4445, 4446, 4447, 4448, 4451, 4452, 4458, 4463, + 4468, 4473, 4479, 4480, 4486, 4492, 4491, 4503, 4507, 4513, + 4517, 4523, 4532, 4543, 4546, 4547, 4550, 4556, 4562, 4563, + 4566, 4573, 4572, 4587, 4591, 4600, 4604, 4616, 4623, 4630, + 4631, 4632, 4633, 4634, 4638, 4644, 4648, 4656, 4657, 4658, + 4662, 4668, 4672, 4676, 4680, 4684, 4690, 4694, 4700, 4704, + 4708, 4712, 4716, 4720, 4724, 4732, 4739, 4745, 4746, 4750, + 4754, 4753, 4770, 4771, 4774, 4780, 4784, 4790, 4791, 4795, + 4799, 4805, 4809, 4815, 4821, 4828, 4834, 4841, 4845, 4851, + 4855, 4861, 4862, 4865, 4869, 4875, 4879, 4883, 4887, 4893, + 4898, 4903, 4907, 4911, 4915, 4919, 4923, 4927, 4931, 4935, + 4939, 4943, 4947, 4951, 4955, 4960, 4966, 4971, 4976, 4981, + 4986, 4993, 4997, 5004, 5009, 5008, 5020, 5024, 5030, 5038, + 5046, 5054, 5058, 5064, 5068, 5074, 5075, 5078, 5083, 5090, + 5091, 5094, 5098, 5104, 5108, 5114, 5120, 5120, 5127, 5128, + 5134, 5138, 5144, 5150, 5155, 5159, 5164, 5169, 5185, 5190, + 5196, 5197, 5198, 5201, 5202, 5203, 5204, 5207, 5208, 5209, + 5212, 5213, 5216, 5220, 5226, 5227, 5233, 5234, 5237, 5238, + 5241, 5244, 5245, 5246, 5249, 5250, 5253, 5258, 5261, 5262, + 5266 }; #endif @@ -7600,7 +7598,7 @@ YYLTYPE yylloc = yyloc_default; -#line 7604 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7602 "mrbgems/mruby-compiler/core/y.tab.c" yylsp[0] = yylloc; goto yysetstate; @@ -7813,84 +7811,84 @@ yyreduce: switch (yyn) { case 2: /* $@1: %empty */ -#line 2741 "mrbgems/mruby-compiler/core/parse.y" +#line 2739 "mrbgems/mruby-compiler/core/parse.y" { p->lstate = EXPR_BEG; if (!p->locals) p->locals = cons(0,0); } -#line 7822 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7820 "mrbgems/mruby-compiler/core/y.tab.c" break; case 3: /* program: $@1 top_compstmt */ -#line 2746 "mrbgems/mruby-compiler/core/parse.y" +#line 2744 "mrbgems/mruby-compiler/core/parse.y" { p->tree = new_scope(p, (yyvsp[0].nd)); } -#line 7830 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7828 "mrbgems/mruby-compiler/core/y.tab.c" break; case 4: /* top_compstmt: top_stmts opt_terms */ -#line 2752 "mrbgems/mruby-compiler/core/parse.y" +#line 2750 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 7838 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7836 "mrbgems/mruby-compiler/core/y.tab.c" break; case 5: /* top_stmts: none */ -#line 2758 "mrbgems/mruby-compiler/core/parse.y" +#line 2756 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_stmts(p, 0); } -#line 7846 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7844 "mrbgems/mruby-compiler/core/y.tab.c" break; case 6: /* top_stmts: top_stmt */ -#line 2762 "mrbgems/mruby-compiler/core/parse.y" +#line 2760 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_stmts(p, (yyvsp[0].nd)); } -#line 7854 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7852 "mrbgems/mruby-compiler/core/y.tab.c" break; case 7: /* top_stmts: top_stmts terms top_stmt */ -#line 2766 "mrbgems/mruby-compiler/core/parse.y" +#line 2764 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), newline_node((yyvsp[0].nd))); } -#line 7862 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7860 "mrbgems/mruby-compiler/core/y.tab.c" break; case 8: /* top_stmts: error top_stmt */ -#line 2770 "mrbgems/mruby-compiler/core/parse.y" +#line 2768 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_stmts(p, 0); } -#line 7870 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7868 "mrbgems/mruby-compiler/core/y.tab.c" break; case 10: /* @2: %empty */ -#line 2777 "mrbgems/mruby-compiler/core/parse.y" +#line 2775 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = local_switch(p); nvars_block(p); } -#line 7879 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7877 "mrbgems/mruby-compiler/core/y.tab.c" break; case 11: /* top_stmt: "'BEGIN'" @2 '{' top_compstmt '}' */ -#line 2782 "mrbgems/mruby-compiler/core/parse.y" +#line 2780 "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 7890 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7888 "mrbgems/mruby-compiler/core/y.tab.c" break; case 12: /* bodystmt: compstmt opt_rescue opt_else opt_ensure */ -#line 2794 "mrbgems/mruby-compiler/core/parse.y" +#line 2792 "mrbgems/mruby-compiler/core/parse.y" { if ((yyvsp[-2].nd)) { (yyval.nd) = new_rescue(p, (yyvsp[-3].nd), (yyvsp[-2].nd), (yyvsp[-1].nd)); @@ -7911,89 +7909,89 @@ yyreduce: } } } -#line 7915 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7913 "mrbgems/mruby-compiler/core/y.tab.c" break; case 13: /* compstmt: stmts opt_terms */ -#line 2817 "mrbgems/mruby-compiler/core/parse.y" +#line 2815 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 7923 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7921 "mrbgems/mruby-compiler/core/y.tab.c" break; case 14: /* stmts: none */ -#line 2823 "mrbgems/mruby-compiler/core/parse.y" +#line 2821 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_stmts(p, 0); } -#line 7931 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7929 "mrbgems/mruby-compiler/core/y.tab.c" break; case 15: /* stmts: stmt */ -#line 2827 "mrbgems/mruby-compiler/core/parse.y" +#line 2825 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_stmts(p, (yyvsp[0].nd)); } -#line 7939 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7937 "mrbgems/mruby-compiler/core/y.tab.c" break; case 16: /* stmts: stmts terms stmt */ -#line 2831 "mrbgems/mruby-compiler/core/parse.y" +#line 2829 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), newline_node((yyvsp[0].nd))); } -#line 7947 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7945 "mrbgems/mruby-compiler/core/y.tab.c" break; case 17: /* stmts: error stmt */ -#line 2835 "mrbgems/mruby-compiler/core/parse.y" +#line 2833 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_stmts(p, (yyvsp[0].nd)); } -#line 7955 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7953 "mrbgems/mruby-compiler/core/y.tab.c" break; case 18: /* $@3: %empty */ -#line 2840 "mrbgems/mruby-compiler/core/parse.y" +#line 2838 "mrbgems/mruby-compiler/core/parse.y" {p->lstate = EXPR_FNAME;} -#line 7961 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7959 "mrbgems/mruby-compiler/core/y.tab.c" break; case 19: /* stmt: "'alias'" fsym $@3 fsym */ -#line 2841 "mrbgems/mruby-compiler/core/parse.y" +#line 2839 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_alias(p, (yyvsp[-2].id), (yyvsp[0].id)); } -#line 7969 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7967 "mrbgems/mruby-compiler/core/y.tab.c" break; case 20: /* stmt: "'undef'" undef_list */ -#line 2845 "mrbgems/mruby-compiler/core/parse.y" +#line 2843 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_undef(p, (yyvsp[0].nd)); } -#line 7977 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7975 "mrbgems/mruby-compiler/core/y.tab.c" break; case 21: /* stmt: stmt "'if' modifier" expr_value */ -#line 2849 "mrbgems/mruby-compiler/core/parse.y" +#line 2847 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_if(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd), 0); } -#line 7985 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7983 "mrbgems/mruby-compiler/core/y.tab.c" break; case 22: /* stmt: stmt "'unless' modifier" expr_value */ -#line 2853 "mrbgems/mruby-compiler/core/parse.y" +#line 2851 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_unless(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd), 0); } -#line 7993 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7991 "mrbgems/mruby-compiler/core/y.tab.c" break; case 23: /* stmt: stmt "'while' modifier" expr_value */ -#line 2857 "mrbgems/mruby-compiler/core/parse.y" +#line 2855 "mrbgems/mruby-compiler/core/parse.y" { if ((yyvsp[-2].nd) && node_to_type((yyvsp[-2].nd)->car) == NODE_BEGIN) { (yyval.nd) = new_while_mod(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd)); @@ -8002,11 +8000,11 @@ yyreduce: (yyval.nd) = new_while(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd)); } } -#line 8006 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8004 "mrbgems/mruby-compiler/core/y.tab.c" break; case 24: /* stmt: stmt "'until' modifier" expr_value */ -#line 2866 "mrbgems/mruby-compiler/core/parse.y" +#line 2864 "mrbgems/mruby-compiler/core/parse.y" { if ((yyvsp[-2].nd) && node_to_type((yyvsp[-2].nd)->car) == NODE_BEGIN) { (yyval.nd) = new_until_mod(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd)); @@ -8015,127 +8013,127 @@ yyreduce: (yyval.nd) = new_until(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd)); } } -#line 8019 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8017 "mrbgems/mruby-compiler/core/y.tab.c" break; case 25: /* stmt: stmt "'rescue' modifier" stmt */ -#line 2875 "mrbgems/mruby-compiler/core/parse.y" +#line 2873 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8027 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8025 "mrbgems/mruby-compiler/core/y.tab.c" break; case 26: /* stmt: "'END'" '{' compstmt '}' */ -#line 2879 "mrbgems/mruby-compiler/core/parse.y" +#line 2877 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[-3]), p, "END not supported"); (yyval.nd) = new_postexe(p, (yyvsp[-1].nd)); } -#line 8036 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8034 "mrbgems/mruby-compiler/core/y.tab.c" break; case 28: /* stmt: mlhs '=' command_call */ -#line 2885 "mrbgems/mruby-compiler/core/parse.y" +#line 2883 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_masgn(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8044 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8042 "mrbgems/mruby-compiler/core/y.tab.c" break; case 29: /* stmt: lhs '=' mrhs */ -#line 2889 "mrbgems/mruby-compiler/core/parse.y" +#line 2887 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_asgn(p, (yyvsp[-2].nd), new_array(p, (yyvsp[0].nd))); } -#line 8052 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8050 "mrbgems/mruby-compiler/core/y.tab.c" break; case 30: /* stmt: mlhs '=' arg */ -#line 2893 "mrbgems/mruby-compiler/core/parse.y" +#line 2891 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_masgn(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8060 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8058 "mrbgems/mruby-compiler/core/y.tab.c" break; case 31: /* stmt: mlhs '=' mrhs */ -#line 2897 "mrbgems/mruby-compiler/core/parse.y" +#line 2895 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_masgn(p, (yyvsp[-2].nd), new_array(p, (yyvsp[0].nd))); } -#line 8068 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8066 "mrbgems/mruby-compiler/core/y.tab.c" break; case 32: /* stmt: arg "=>" "local variable or method" */ -#line 2901 "mrbgems/mruby-compiler/core/parse.y" +#line 2899 "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 8078 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8076 "mrbgems/mruby-compiler/core/y.tab.c" break; case 34: /* command_asgn: lhs '=' command_rhs */ -#line 2910 "mrbgems/mruby-compiler/core/parse.y" +#line 2908 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_asgn(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8086 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8084 "mrbgems/mruby-compiler/core/y.tab.c" break; case 35: /* command_asgn: var_lhs tOP_ASGN command_rhs */ -#line 2914 "mrbgems/mruby-compiler/core/parse.y" +#line 2912 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, (yyvsp[-2].nd), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 8094 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8092 "mrbgems/mruby-compiler/core/y.tab.c" break; case 36: /* command_asgn: primary_value '[' opt_call_args ']' tOP_ASGN command_rhs */ -#line 2918 "mrbgems/mruby-compiler/core/parse.y" +#line 2916 "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 8102 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8100 "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 2922 "mrbgems/mruby-compiler/core/parse.y" +#line 2920 "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 8110 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8108 "mrbgems/mruby-compiler/core/y.tab.c" break; case 38: /* command_asgn: primary_value call_op "constant" tOP_ASGN command_rhs */ -#line 2926 "mrbgems/mruby-compiler/core/parse.y" +#line 2924 "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 8118 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8116 "mrbgems/mruby-compiler/core/y.tab.c" break; case 39: /* command_asgn: primary_value "::" "constant" tOP_ASGN command_call */ -#line 2930 "mrbgems/mruby-compiler/core/parse.y" +#line 2928 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[-4]), p, "constant re-assignment"); (yyval.nd) = 0; } -#line 8127 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8125 "mrbgems/mruby-compiler/core/y.tab.c" break; case 40: /* command_asgn: primary_value "::" "local variable or method" tOP_ASGN command_rhs */ -#line 2935 "mrbgems/mruby-compiler/core/parse.y" +#line 2933 "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 8135 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8133 "mrbgems/mruby-compiler/core/y.tab.c" break; case 41: /* command_asgn: defn_head f_opt_arglist_paren '=' command */ -#line 2939 "mrbgems/mruby-compiler/core/parse.y" +#line 2937 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-3].nd); endless_method_name(p, (yyvsp[-3].nd)); @@ -8144,11 +8142,11 @@ yyreduce: nvars_unnest(p); p->in_def--; } -#line 8148 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8146 "mrbgems/mruby-compiler/core/y.tab.c" break; case 42: /* command_asgn: defn_head f_opt_arglist_paren '=' command "'rescue' modifier" arg */ -#line 2948 "mrbgems/mruby-compiler/core/parse.y" +#line 2946 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-5].nd); endless_method_name(p, (yyvsp[-5].nd)); @@ -8157,11 +8155,11 @@ yyreduce: nvars_unnest(p); p->in_def--; } -#line 8161 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8159 "mrbgems/mruby-compiler/core/y.tab.c" break; case 43: /* command_asgn: defs_head f_opt_arglist_paren '=' command */ -#line 2957 "mrbgems/mruby-compiler/core/parse.y" +#line 2955 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-3].nd); void_expr_error(p, (yyvsp[0].nd)); @@ -8170,11 +8168,11 @@ yyreduce: p->in_def--; p->in_single--; } -#line 8174 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8172 "mrbgems/mruby-compiler/core/y.tab.c" break; case 44: /* command_asgn: defs_head f_opt_arglist_paren '=' command "'rescue' modifier" arg */ -#line 2966 "mrbgems/mruby-compiler/core/parse.y" +#line 2964 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-5].nd); void_expr_error(p, (yyvsp[-2].nd)); @@ -8183,79 +8181,79 @@ yyreduce: p->in_def--; p->in_single--; } -#line 8187 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8185 "mrbgems/mruby-compiler/core/y.tab.c" break; case 45: /* command_asgn: backref tOP_ASGN command_rhs */ -#line 2975 "mrbgems/mruby-compiler/core/parse.y" +#line 2973 "mrbgems/mruby-compiler/core/parse.y" { backref_error(p, (yyvsp[-2].nd)); (yyval.nd) = new_stmts(p, 0); } -#line 8196 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8194 "mrbgems/mruby-compiler/core/y.tab.c" break; case 47: /* command_rhs: command_call "'rescue' modifier" stmt */ -#line 2983 "mrbgems/mruby-compiler/core/parse.y" +#line 2981 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8204 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8202 "mrbgems/mruby-compiler/core/y.tab.c" break; case 50: /* expr: expr "'and'" expr */ -#line 2992 "mrbgems/mruby-compiler/core/parse.y" +#line 2990 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_and(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8212 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8210 "mrbgems/mruby-compiler/core/y.tab.c" break; case 51: /* expr: expr "'or'" expr */ -#line 2996 "mrbgems/mruby-compiler/core/parse.y" +#line 2994 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_or(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8220 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8218 "mrbgems/mruby-compiler/core/y.tab.c" break; case 52: /* expr: "'not'" opt_nl expr */ -#line 3000 "mrbgems/mruby-compiler/core/parse.y" +#line 2998 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "!"); } -#line 8228 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8226 "mrbgems/mruby-compiler/core/y.tab.c" break; case 53: /* expr: '!' command_call */ -#line 3004 "mrbgems/mruby-compiler/core/parse.y" +#line 3002 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "!"); } -#line 8236 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8234 "mrbgems/mruby-compiler/core/y.tab.c" break; case 55: /* defn_head: "'def'" fname */ -#line 3012 "mrbgems/mruby-compiler/core/parse.y" +#line 3010 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_def(p, (yyvsp[0].id), int_to_node(p->cmdarg_stack), local_switch(p)); p->cmdarg_stack = 0; p->in_def++; nvars_block(p); } -#line 8247 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8245 "mrbgems/mruby-compiler/core/y.tab.c" break; case 56: /* $@4: %empty */ -#line 3021 "mrbgems/mruby-compiler/core/parse.y" +#line 3019 "mrbgems/mruby-compiler/core/parse.y" { p->lstate = EXPR_FNAME; } -#line 8255 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8253 "mrbgems/mruby-compiler/core/y.tab.c" break; case 57: /* defs_head: "'def'" singleton dot_or_colon $@4 fname */ -#line 3025 "mrbgems/mruby-compiler/core/parse.y" +#line 3023 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_sdef(p, (yyvsp[-3].nd), (yyvsp[0].id), int_to_node(p->cmdarg_stack), local_switch(p)); p->cmdarg_stack = 0; @@ -8264,1054 +8262,1054 @@ yyreduce: nvars_block(p); p->lstate = EXPR_ENDFN; /* force for args */ } -#line 8268 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8266 "mrbgems/mruby-compiler/core/y.tab.c" break; case 58: /* expr_value: expr */ -#line 3036 "mrbgems/mruby-compiler/core/parse.y" +#line 3034 "mrbgems/mruby-compiler/core/parse.y" { if (!(yyvsp[0].nd)) (yyval.nd) = new_nil(p); else { (yyval.nd) = (yyvsp[0].nd); } } -#line 8279 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8277 "mrbgems/mruby-compiler/core/y.tab.c" break; case 62: /* block_command: block_call call_op2 operation2 command_args */ -#line 3050 "mrbgems/mruby-compiler/core/parse.y" +#line 3048 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num)); } -#line 8287 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8285 "mrbgems/mruby-compiler/core/y.tab.c" break; case 63: /* $@5: %empty */ -#line 3056 "mrbgems/mruby-compiler/core/parse.y" +#line 3054 "mrbgems/mruby-compiler/core/parse.y" { local_nest(p); nvars_nest(p); } -#line 8296 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8294 "mrbgems/mruby-compiler/core/y.tab.c" break; case 64: /* cmd_brace_block: "{" $@5 opt_block_param compstmt '}' */ -#line 3063 "mrbgems/mruby-compiler/core/parse.y" +#line 3061 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_block(p, (yyvsp[-2].nd), (yyvsp[-1].nd)); local_unnest(p); nvars_unnest(p); } -#line 8306 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8304 "mrbgems/mruby-compiler/core/y.tab.c" break; case 65: /* command: operation command_args */ -#line 3071 "mrbgems/mruby-compiler/core/parse.y" +#line 3069 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_fcall(p, (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 8314 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8312 "mrbgems/mruby-compiler/core/y.tab.c" break; case 66: /* command: operation command_args cmd_brace_block */ -#line 3075 "mrbgems/mruby-compiler/core/parse.y" +#line 3073 "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 8323 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8321 "mrbgems/mruby-compiler/core/y.tab.c" break; case 67: /* command: primary_value call_op operation2 command_args */ -#line 3080 "mrbgems/mruby-compiler/core/parse.y" +#line 3078 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num)); } -#line 8331 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8329 "mrbgems/mruby-compiler/core/y.tab.c" break; case 68: /* command: primary_value call_op operation2 command_args cmd_brace_block */ -#line 3084 "mrbgems/mruby-compiler/core/parse.y" +#line 3082 "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 8340 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8338 "mrbgems/mruby-compiler/core/y.tab.c" break; case 69: /* command: primary_value "::" operation2 command_args */ -#line 3089 "mrbgems/mruby-compiler/core/parse.y" +#line 3087 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), tCOLON2); } -#line 8348 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8346 "mrbgems/mruby-compiler/core/y.tab.c" break; case 70: /* command: primary_value "::" operation2 command_args cmd_brace_block */ -#line 3093 "mrbgems/mruby-compiler/core/parse.y" +#line 3091 "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 8357 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8355 "mrbgems/mruby-compiler/core/y.tab.c" break; case 71: /* command: "'super'" command_args */ -#line 3098 "mrbgems/mruby-compiler/core/parse.y" +#line 3096 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_super(p, (yyvsp[0].nd)); } -#line 8365 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8363 "mrbgems/mruby-compiler/core/y.tab.c" break; case 72: /* command: "'yield'" command_args */ -#line 3102 "mrbgems/mruby-compiler/core/parse.y" +#line 3100 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_yield(p, (yyvsp[0].nd)); } -#line 8373 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8371 "mrbgems/mruby-compiler/core/y.tab.c" break; case 73: /* command: "'return'" call_args */ -#line 3106 "mrbgems/mruby-compiler/core/parse.y" +#line 3104 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_return(p, ret_args(p, (yyvsp[0].nd))); } -#line 8381 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8379 "mrbgems/mruby-compiler/core/y.tab.c" break; case 74: /* command: "'break'" call_args */ -#line 3110 "mrbgems/mruby-compiler/core/parse.y" +#line 3108 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_break(p, ret_args(p, (yyvsp[0].nd))); } -#line 8389 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8387 "mrbgems/mruby-compiler/core/y.tab.c" break; case 75: /* command: "'next'" call_args */ -#line 3114 "mrbgems/mruby-compiler/core/parse.y" +#line 3112 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_next(p, ret_args(p, (yyvsp[0].nd))); } -#line 8397 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8395 "mrbgems/mruby-compiler/core/y.tab.c" break; case 76: /* mlhs: mlhs_basic */ -#line 3120 "mrbgems/mruby-compiler/core/parse.y" +#line 3118 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 8405 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8403 "mrbgems/mruby-compiler/core/y.tab.c" break; case 77: /* mlhs: tLPAREN mlhs_inner rparen */ -#line 3124 "mrbgems/mruby-compiler/core/parse.y" +#line 3122 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 8413 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8411 "mrbgems/mruby-compiler/core/y.tab.c" break; case 79: /* mlhs_inner: tLPAREN mlhs_inner rparen */ -#line 3131 "mrbgems/mruby-compiler/core/parse.y" +#line 3129 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 8421 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8419 "mrbgems/mruby-compiler/core/y.tab.c" break; case 80: /* mlhs_basic: mlhs_list */ -#line 3137 "mrbgems/mruby-compiler/core/parse.y" +#line 3135 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 8429 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8427 "mrbgems/mruby-compiler/core/y.tab.c" break; case 81: /* mlhs_basic: mlhs_list mlhs_item */ -#line 3141 "mrbgems/mruby-compiler/core/parse.y" +#line 3139 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1(push((yyvsp[-1].nd),(yyvsp[0].nd))); } -#line 8437 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8435 "mrbgems/mruby-compiler/core/y.tab.c" break; case 82: /* mlhs_basic: mlhs_list "*" mlhs_node */ -#line 3145 "mrbgems/mruby-compiler/core/parse.y" +#line 3143 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list2((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8445 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8443 "mrbgems/mruby-compiler/core/y.tab.c" break; case 83: /* mlhs_basic: mlhs_list "*" mlhs_node ',' mlhs_post */ -#line 3149 "mrbgems/mruby-compiler/core/parse.y" +#line 3147 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3((yyvsp[-4].nd), (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8453 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8451 "mrbgems/mruby-compiler/core/y.tab.c" break; case 84: /* mlhs_basic: mlhs_list "*" */ -#line 3153 "mrbgems/mruby-compiler/core/parse.y" +#line 3151 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list2((yyvsp[-1].nd), new_nil(p)); } -#line 8461 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8459 "mrbgems/mruby-compiler/core/y.tab.c" break; case 85: /* mlhs_basic: mlhs_list "*" ',' mlhs_post */ -#line 3157 "mrbgems/mruby-compiler/core/parse.y" +#line 3155 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3((yyvsp[-3].nd), new_nil(p), (yyvsp[0].nd)); } -#line 8469 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8467 "mrbgems/mruby-compiler/core/y.tab.c" break; case 86: /* mlhs_basic: "*" mlhs_node */ -#line 3161 "mrbgems/mruby-compiler/core/parse.y" +#line 3159 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list2(0, (yyvsp[0].nd)); } -#line 8477 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8475 "mrbgems/mruby-compiler/core/y.tab.c" break; case 87: /* mlhs_basic: "*" mlhs_node ',' mlhs_post */ -#line 3165 "mrbgems/mruby-compiler/core/parse.y" +#line 3163 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3(0, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8485 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8483 "mrbgems/mruby-compiler/core/y.tab.c" break; case 88: /* mlhs_basic: "*" */ -#line 3169 "mrbgems/mruby-compiler/core/parse.y" +#line 3167 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list2(0, new_nil(p)); } -#line 8493 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8491 "mrbgems/mruby-compiler/core/y.tab.c" break; case 89: /* mlhs_basic: "*" ',' mlhs_post */ -#line 3173 "mrbgems/mruby-compiler/core/parse.y" +#line 3171 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3(0, new_nil(p), (yyvsp[0].nd)); } -#line 8501 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8499 "mrbgems/mruby-compiler/core/y.tab.c" break; case 91: /* mlhs_item: tLPAREN mlhs_inner rparen */ -#line 3180 "mrbgems/mruby-compiler/core/parse.y" +#line 3178 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_masgn(p, (yyvsp[-1].nd), NULL); } -#line 8509 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8507 "mrbgems/mruby-compiler/core/y.tab.c" break; case 92: /* mlhs_list: mlhs_item ',' */ -#line 3186 "mrbgems/mruby-compiler/core/parse.y" +#line 3184 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[-1].nd)); } -#line 8517 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8515 "mrbgems/mruby-compiler/core/y.tab.c" break; case 93: /* mlhs_list: mlhs_list mlhs_item ',' */ -#line 3190 "mrbgems/mruby-compiler/core/parse.y" +#line 3188 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[-1].nd)); } -#line 8525 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8523 "mrbgems/mruby-compiler/core/y.tab.c" break; case 94: /* mlhs_post: mlhs_item */ -#line 3196 "mrbgems/mruby-compiler/core/parse.y" +#line 3194 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 8533 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8531 "mrbgems/mruby-compiler/core/y.tab.c" break; case 95: /* mlhs_post: mlhs_list mlhs_item */ -#line 3200 "mrbgems/mruby-compiler/core/parse.y" +#line 3198 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 8541 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8539 "mrbgems/mruby-compiler/core/y.tab.c" break; case 96: /* mlhs_node: variable */ -#line 3206 "mrbgems/mruby-compiler/core/parse.y" +#line 3204 "mrbgems/mruby-compiler/core/parse.y" { assignable(p, (yyvsp[0].nd)); } -#line 8549 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8547 "mrbgems/mruby-compiler/core/y.tab.c" break; case 97: /* mlhs_node: primary_value '[' opt_call_args ']' */ -#line 3210 "mrbgems/mruby-compiler/core/parse.y" +#line 3208 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.'); } -#line 8557 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8555 "mrbgems/mruby-compiler/core/y.tab.c" break; case 98: /* mlhs_node: primary_value call_op "local variable or method" */ -#line 3214 "mrbgems/mruby-compiler/core/parse.y" +#line 3212 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); } -#line 8565 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8563 "mrbgems/mruby-compiler/core/y.tab.c" break; case 99: /* mlhs_node: primary_value "::" "local variable or method" */ -#line 3218 "mrbgems/mruby-compiler/core/parse.y" +#line 3216 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2); } -#line 8573 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8571 "mrbgems/mruby-compiler/core/y.tab.c" break; case 100: /* mlhs_node: primary_value call_op "constant" */ -#line 3222 "mrbgems/mruby-compiler/core/parse.y" +#line 3220 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); } -#line 8581 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8579 "mrbgems/mruby-compiler/core/y.tab.c" break; case 101: /* mlhs_node: primary_value "::" "constant" */ -#line 3226 "mrbgems/mruby-compiler/core/parse.y" +#line 3224 "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 8591 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8589 "mrbgems/mruby-compiler/core/y.tab.c" break; case 102: /* mlhs_node: tCOLON3 "constant" */ -#line 3232 "mrbgems/mruby-compiler/core/parse.y" +#line 3230 "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 8601 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8599 "mrbgems/mruby-compiler/core/y.tab.c" break; case 103: /* mlhs_node: backref */ -#line 3238 "mrbgems/mruby-compiler/core/parse.y" +#line 3236 "mrbgems/mruby-compiler/core/parse.y" { backref_error(p, (yyvsp[0].nd)); (yyval.nd) = 0; } -#line 8610 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8608 "mrbgems/mruby-compiler/core/y.tab.c" break; case 104: /* lhs: variable */ -#line 3245 "mrbgems/mruby-compiler/core/parse.y" +#line 3243 "mrbgems/mruby-compiler/core/parse.y" { assignable(p, (yyvsp[0].nd)); } -#line 8618 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8616 "mrbgems/mruby-compiler/core/y.tab.c" break; case 105: /* lhs: primary_value '[' opt_call_args ']' */ -#line 3249 "mrbgems/mruby-compiler/core/parse.y" +#line 3247 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.'); } -#line 8626 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8624 "mrbgems/mruby-compiler/core/y.tab.c" break; case 106: /* lhs: primary_value call_op "local variable or method" */ -#line 3253 "mrbgems/mruby-compiler/core/parse.y" +#line 3251 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); } -#line 8634 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8632 "mrbgems/mruby-compiler/core/y.tab.c" break; case 107: /* lhs: primary_value "::" "local variable or method" */ -#line 3257 "mrbgems/mruby-compiler/core/parse.y" +#line 3255 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2); } -#line 8642 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8640 "mrbgems/mruby-compiler/core/y.tab.c" break; case 108: /* lhs: primary_value call_op "constant" */ -#line 3261 "mrbgems/mruby-compiler/core/parse.y" +#line 3259 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); } -#line 8650 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8648 "mrbgems/mruby-compiler/core/y.tab.c" break; case 109: /* lhs: primary_value "::" "constant" */ -#line 3265 "mrbgems/mruby-compiler/core/parse.y" +#line 3263 "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 8660 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8658 "mrbgems/mruby-compiler/core/y.tab.c" break; case 110: /* lhs: tCOLON3 "constant" */ -#line 3271 "mrbgems/mruby-compiler/core/parse.y" +#line 3269 "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 8670 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8668 "mrbgems/mruby-compiler/core/y.tab.c" break; case 111: /* lhs: backref */ -#line 3277 "mrbgems/mruby-compiler/core/parse.y" +#line 3275 "mrbgems/mruby-compiler/core/parse.y" { backref_error(p, (yyvsp[0].nd)); (yyval.nd) = 0; } -#line 8679 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8677 "mrbgems/mruby-compiler/core/y.tab.c" break; case 112: /* lhs: "numbered parameter" */ -#line 3282 "mrbgems/mruby-compiler/core/parse.y" +#line 3280 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[0]), p, "can't assign to numbered parameter"); } -#line 8687 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8685 "mrbgems/mruby-compiler/core/y.tab.c" break; case 113: /* cname: "local variable or method" */ -#line 3288 "mrbgems/mruby-compiler/core/parse.y" +#line 3286 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[0]), p, "class/module name must be CONSTANT"); } -#line 8695 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8693 "mrbgems/mruby-compiler/core/y.tab.c" break; case 115: /* cpath: tCOLON3 cname */ -#line 3295 "mrbgems/mruby-compiler/core/parse.y" +#line 3293 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(int_to_node(1), sym_to_node((yyvsp[0].id))); } -#line 8703 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8701 "mrbgems/mruby-compiler/core/y.tab.c" break; case 116: /* cpath: cname */ -#line 3299 "mrbgems/mruby-compiler/core/parse.y" +#line 3297 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(int_to_node(0), sym_to_node((yyvsp[0].id))); } -#line 8711 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8709 "mrbgems/mruby-compiler/core/y.tab.c" break; case 117: /* cpath: primary_value "::" cname */ -#line 3303 "mrbgems/mruby-compiler/core/parse.y" +#line 3301 "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 8720 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8718 "mrbgems/mruby-compiler/core/y.tab.c" break; case 121: /* fname: op */ -#line 3313 "mrbgems/mruby-compiler/core/parse.y" +#line 3311 "mrbgems/mruby-compiler/core/parse.y" { p->lstate = EXPR_ENDFN; (yyval.id) = (yyvsp[0].id); } -#line 8729 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8727 "mrbgems/mruby-compiler/core/y.tab.c" break; case 122: /* fname: reswords */ -#line 3318 "mrbgems/mruby-compiler/core/parse.y" +#line 3316 "mrbgems/mruby-compiler/core/parse.y" { p->lstate = EXPR_ENDFN; (yyval.id) = (yyvsp[0].id); } -#line 8738 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8736 "mrbgems/mruby-compiler/core/y.tab.c" break; case 125: /* undef_list: fsym */ -#line 3329 "mrbgems/mruby-compiler/core/parse.y" +#line 3327 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(sym_to_node((yyvsp[0].id)), 0); } -#line 8746 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8744 "mrbgems/mruby-compiler/core/y.tab.c" break; case 126: /* $@6: %empty */ -#line 3332 "mrbgems/mruby-compiler/core/parse.y" +#line 3330 "mrbgems/mruby-compiler/core/parse.y" {p->lstate = EXPR_FNAME;} -#line 8752 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8750 "mrbgems/mruby-compiler/core/y.tab.c" break; case 127: /* undef_list: undef_list ',' $@6 fsym */ -#line 3333 "mrbgems/mruby-compiler/core/parse.y" +#line 3331 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-3].nd), sym_to_node((yyvsp[0].id))); } -#line 8760 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8758 "mrbgems/mruby-compiler/core/y.tab.c" break; case 128: /* op: '|' */ -#line 3338 "mrbgems/mruby-compiler/core/parse.y" +#line 3336 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(or); } -#line 8766 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8764 "mrbgems/mruby-compiler/core/y.tab.c" break; case 129: /* op: '^' */ -#line 3339 "mrbgems/mruby-compiler/core/parse.y" +#line 3337 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(xor); } -#line 8772 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8770 "mrbgems/mruby-compiler/core/y.tab.c" break; case 130: /* op: '&' */ -#line 3340 "mrbgems/mruby-compiler/core/parse.y" +#line 3338 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(and); } -#line 8778 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8776 "mrbgems/mruby-compiler/core/y.tab.c" break; case 131: /* op: "<=>" */ -#line 3341 "mrbgems/mruby-compiler/core/parse.y" +#line 3339 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(cmp); } -#line 8784 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8782 "mrbgems/mruby-compiler/core/y.tab.c" break; case 132: /* op: "==" */ -#line 3342 "mrbgems/mruby-compiler/core/parse.y" +#line 3340 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(eq); } -#line 8790 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8788 "mrbgems/mruby-compiler/core/y.tab.c" break; case 133: /* op: "===" */ -#line 3343 "mrbgems/mruby-compiler/core/parse.y" +#line 3341 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(eqq); } -#line 8796 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8794 "mrbgems/mruby-compiler/core/y.tab.c" break; case 134: /* op: "=~" */ -#line 3344 "mrbgems/mruby-compiler/core/parse.y" +#line 3342 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(match); } -#line 8802 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8800 "mrbgems/mruby-compiler/core/y.tab.c" break; case 135: /* op: "!~" */ -#line 3345 "mrbgems/mruby-compiler/core/parse.y" +#line 3343 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(nmatch); } -#line 8808 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8806 "mrbgems/mruby-compiler/core/y.tab.c" break; case 136: /* op: '>' */ -#line 3346 "mrbgems/mruby-compiler/core/parse.y" +#line 3344 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(gt); } -#line 8814 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8812 "mrbgems/mruby-compiler/core/y.tab.c" break; case 137: /* op: ">=" */ -#line 3347 "mrbgems/mruby-compiler/core/parse.y" +#line 3345 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(ge); } -#line 8820 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8818 "mrbgems/mruby-compiler/core/y.tab.c" break; case 138: /* op: '<' */ -#line 3348 "mrbgems/mruby-compiler/core/parse.y" +#line 3346 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(lt); } -#line 8826 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8824 "mrbgems/mruby-compiler/core/y.tab.c" break; case 139: /* op: "<=" */ -#line 3349 "mrbgems/mruby-compiler/core/parse.y" +#line 3347 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(le); } -#line 8832 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8830 "mrbgems/mruby-compiler/core/y.tab.c" break; case 140: /* op: "!=" */ -#line 3350 "mrbgems/mruby-compiler/core/parse.y" +#line 3348 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(neq); } -#line 8838 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8836 "mrbgems/mruby-compiler/core/y.tab.c" break; case 141: /* op: "<<" */ -#line 3351 "mrbgems/mruby-compiler/core/parse.y" +#line 3349 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(lshift); } -#line 8844 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8842 "mrbgems/mruby-compiler/core/y.tab.c" break; case 142: /* op: ">>" */ -#line 3352 "mrbgems/mruby-compiler/core/parse.y" +#line 3350 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(rshift); } -#line 8850 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8848 "mrbgems/mruby-compiler/core/y.tab.c" break; case 143: /* op: '+' */ -#line 3353 "mrbgems/mruby-compiler/core/parse.y" +#line 3351 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(add); } -#line 8856 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8854 "mrbgems/mruby-compiler/core/y.tab.c" break; case 144: /* op: '-' */ -#line 3354 "mrbgems/mruby-compiler/core/parse.y" +#line 3352 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(sub); } -#line 8862 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8860 "mrbgems/mruby-compiler/core/y.tab.c" break; case 145: /* op: '*' */ -#line 3355 "mrbgems/mruby-compiler/core/parse.y" +#line 3353 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(mul); } -#line 8868 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8866 "mrbgems/mruby-compiler/core/y.tab.c" break; case 146: /* op: "*" */ -#line 3356 "mrbgems/mruby-compiler/core/parse.y" +#line 3354 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(mul); } -#line 8874 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8872 "mrbgems/mruby-compiler/core/y.tab.c" break; case 147: /* op: '/' */ -#line 3357 "mrbgems/mruby-compiler/core/parse.y" +#line 3355 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(div); } -#line 8880 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8878 "mrbgems/mruby-compiler/core/y.tab.c" break; case 148: /* op: '%' */ -#line 3358 "mrbgems/mruby-compiler/core/parse.y" +#line 3356 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(mod); } -#line 8886 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8884 "mrbgems/mruby-compiler/core/y.tab.c" break; case 149: /* op: tPOW */ -#line 3359 "mrbgems/mruby-compiler/core/parse.y" +#line 3357 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(pow); } -#line 8892 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8890 "mrbgems/mruby-compiler/core/y.tab.c" break; case 150: /* op: "**" */ -#line 3360 "mrbgems/mruby-compiler/core/parse.y" +#line 3358 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(pow); } -#line 8898 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8896 "mrbgems/mruby-compiler/core/y.tab.c" break; case 151: /* op: '!' */ -#line 3361 "mrbgems/mruby-compiler/core/parse.y" +#line 3359 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(not); } -#line 8904 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8902 "mrbgems/mruby-compiler/core/y.tab.c" break; case 152: /* op: '~' */ -#line 3362 "mrbgems/mruby-compiler/core/parse.y" +#line 3360 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(neg); } -#line 8910 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8908 "mrbgems/mruby-compiler/core/y.tab.c" break; case 153: /* op: "unary plus" */ -#line 3363 "mrbgems/mruby-compiler/core/parse.y" +#line 3361 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(plus); } -#line 8916 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8914 "mrbgems/mruby-compiler/core/y.tab.c" break; case 154: /* op: "unary minus" */ -#line 3364 "mrbgems/mruby-compiler/core/parse.y" +#line 3362 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(minus); } -#line 8922 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8920 "mrbgems/mruby-compiler/core/y.tab.c" break; case 155: /* op: tAREF */ -#line 3365 "mrbgems/mruby-compiler/core/parse.y" +#line 3363 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(aref); } -#line 8928 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8926 "mrbgems/mruby-compiler/core/y.tab.c" break; case 156: /* op: tASET */ -#line 3366 "mrbgems/mruby-compiler/core/parse.y" +#line 3364 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(aset); } -#line 8934 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8932 "mrbgems/mruby-compiler/core/y.tab.c" break; case 157: /* op: '`' */ -#line 3367 "mrbgems/mruby-compiler/core/parse.y" +#line 3365 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(tick); } -#line 8940 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8938 "mrbgems/mruby-compiler/core/y.tab.c" break; case 198: /* arg: lhs '=' arg_rhs */ -#line 3385 "mrbgems/mruby-compiler/core/parse.y" +#line 3383 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_asgn(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8948 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8946 "mrbgems/mruby-compiler/core/y.tab.c" break; case 199: /* arg: var_lhs tOP_ASGN arg_rhs */ -#line 3389 "mrbgems/mruby-compiler/core/parse.y" +#line 3387 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, (yyvsp[-2].nd), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 8956 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8954 "mrbgems/mruby-compiler/core/y.tab.c" break; case 200: /* arg: primary_value '[' opt_call_args ']' tOP_ASGN arg_rhs */ -#line 3393 "mrbgems/mruby-compiler/core/parse.y" +#line 3391 "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 8964 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8962 "mrbgems/mruby-compiler/core/y.tab.c" break; case 201: /* arg: primary_value call_op "local variable or method" tOP_ASGN arg_rhs */ -#line 3397 "mrbgems/mruby-compiler/core/parse.y" +#line 3395 "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 8972 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8970 "mrbgems/mruby-compiler/core/y.tab.c" break; case 202: /* arg: primary_value call_op "constant" tOP_ASGN arg_rhs */ -#line 3401 "mrbgems/mruby-compiler/core/parse.y" +#line 3399 "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 8980 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8978 "mrbgems/mruby-compiler/core/y.tab.c" break; case 203: /* arg: primary_value "::" "local variable or method" tOP_ASGN arg_rhs */ -#line 3405 "mrbgems/mruby-compiler/core/parse.y" +#line 3403 "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 8988 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8986 "mrbgems/mruby-compiler/core/y.tab.c" break; case 204: /* arg: primary_value "::" "constant" tOP_ASGN arg_rhs */ -#line 3409 "mrbgems/mruby-compiler/core/parse.y" +#line 3407 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[-4]), p, "constant re-assignment"); (yyval.nd) = new_stmts(p, 0); } -#line 8997 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8995 "mrbgems/mruby-compiler/core/y.tab.c" break; case 205: /* arg: tCOLON3 "constant" tOP_ASGN arg_rhs */ -#line 3414 "mrbgems/mruby-compiler/core/parse.y" +#line 3412 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[-3]), p, "constant re-assignment"); (yyval.nd) = new_stmts(p, 0); } -#line 9006 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9004 "mrbgems/mruby-compiler/core/y.tab.c" break; case 206: /* arg: backref tOP_ASGN arg_rhs */ -#line 3419 "mrbgems/mruby-compiler/core/parse.y" +#line 3417 "mrbgems/mruby-compiler/core/parse.y" { backref_error(p, (yyvsp[-2].nd)); (yyval.nd) = new_stmts(p, 0); } -#line 9015 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9013 "mrbgems/mruby-compiler/core/y.tab.c" break; case 207: /* arg: arg ".." arg */ -#line 3424 "mrbgems/mruby-compiler/core/parse.y" +#line 3422 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_dot2(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 9023 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9021 "mrbgems/mruby-compiler/core/y.tab.c" break; case 208: /* arg: arg ".." */ -#line 3428 "mrbgems/mruby-compiler/core/parse.y" +#line 3426 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_dot2(p, (yyvsp[-1].nd), new_nil(p)); } -#line 9031 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9029 "mrbgems/mruby-compiler/core/y.tab.c" break; case 209: /* arg: tBDOT2 arg */ -#line 3432 "mrbgems/mruby-compiler/core/parse.y" +#line 3430 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_dot2(p, new_nil(p), (yyvsp[0].nd)); } -#line 9039 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9037 "mrbgems/mruby-compiler/core/y.tab.c" break; case 210: /* arg: arg "..." arg */ -#line 3436 "mrbgems/mruby-compiler/core/parse.y" +#line 3434 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_dot3(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 9047 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9045 "mrbgems/mruby-compiler/core/y.tab.c" break; case 211: /* arg: arg "..." */ -#line 3440 "mrbgems/mruby-compiler/core/parse.y" +#line 3438 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_dot3(p, (yyvsp[-1].nd), new_nil(p)); } -#line 9055 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9053 "mrbgems/mruby-compiler/core/y.tab.c" break; case 212: /* arg: tBDOT3 arg */ -#line 3444 "mrbgems/mruby-compiler/core/parse.y" +#line 3442 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_dot3(p, new_nil(p), (yyvsp[0].nd)); } -#line 9063 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9061 "mrbgems/mruby-compiler/core/y.tab.c" break; case 213: /* arg: arg '+' arg */ -#line 3448 "mrbgems/mruby-compiler/core/parse.y" +#line 3446 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "+", (yyvsp[0].nd)); } -#line 9071 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9069 "mrbgems/mruby-compiler/core/y.tab.c" break; case 214: /* arg: arg '-' arg */ -#line 3452 "mrbgems/mruby-compiler/core/parse.y" +#line 3450 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "-", (yyvsp[0].nd)); } -#line 9079 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9077 "mrbgems/mruby-compiler/core/y.tab.c" break; case 215: /* arg: arg '*' arg */ -#line 3456 "mrbgems/mruby-compiler/core/parse.y" +#line 3454 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "*", (yyvsp[0].nd)); } -#line 9087 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9085 "mrbgems/mruby-compiler/core/y.tab.c" break; case 216: /* arg: arg '/' arg */ -#line 3460 "mrbgems/mruby-compiler/core/parse.y" +#line 3458 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "/", (yyvsp[0].nd)); } -#line 9095 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9093 "mrbgems/mruby-compiler/core/y.tab.c" break; case 217: /* arg: arg '%' arg */ -#line 3464 "mrbgems/mruby-compiler/core/parse.y" +#line 3462 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "%", (yyvsp[0].nd)); } -#line 9103 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9101 "mrbgems/mruby-compiler/core/y.tab.c" break; case 218: /* arg: arg tPOW arg */ -#line 3468 "mrbgems/mruby-compiler/core/parse.y" +#line 3466 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd)); } -#line 9111 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9109 "mrbgems/mruby-compiler/core/y.tab.c" break; case 219: /* arg: tUMINUS_NUM "integer literal" tPOW arg */ -#line 3472 "mrbgems/mruby-compiler/core/parse.y" +#line 3470 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_negate(p, call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd))); } -#line 9119 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9117 "mrbgems/mruby-compiler/core/y.tab.c" break; case 220: /* arg: tUMINUS_NUM "float literal" tPOW arg */ -#line 3476 "mrbgems/mruby-compiler/core/parse.y" +#line 3474 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_negate(p, call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd))); } -#line 9127 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9125 "mrbgems/mruby-compiler/core/y.tab.c" break; case 221: /* arg: "unary plus" arg */ -#line 3480 "mrbgems/mruby-compiler/core/parse.y" +#line 3478 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, (yyvsp[0].nd), "+@"); } -#line 9135 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9133 "mrbgems/mruby-compiler/core/y.tab.c" break; case 222: /* arg: "unary minus" arg */ -#line 3484 "mrbgems/mruby-compiler/core/parse.y" +#line 3482 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_negate(p, (yyvsp[0].nd)); } -#line 9143 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9141 "mrbgems/mruby-compiler/core/y.tab.c" break; case 223: /* arg: arg '|' arg */ -#line 3488 "mrbgems/mruby-compiler/core/parse.y" +#line 3486 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "|", (yyvsp[0].nd)); } -#line 9151 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9149 "mrbgems/mruby-compiler/core/y.tab.c" break; case 224: /* arg: arg '^' arg */ -#line 3492 "mrbgems/mruby-compiler/core/parse.y" +#line 3490 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "^", (yyvsp[0].nd)); } -#line 9159 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9157 "mrbgems/mruby-compiler/core/y.tab.c" break; case 225: /* arg: arg '&' arg */ -#line 3496 "mrbgems/mruby-compiler/core/parse.y" +#line 3494 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "&", (yyvsp[0].nd)); } -#line 9167 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9165 "mrbgems/mruby-compiler/core/y.tab.c" break; case 226: /* arg: arg "<=>" arg */ -#line 3500 "mrbgems/mruby-compiler/core/parse.y" +#line 3498 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<=>", (yyvsp[0].nd)); } -#line 9175 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9173 "mrbgems/mruby-compiler/core/y.tab.c" break; case 227: /* arg: arg '>' arg */ -#line 3504 "mrbgems/mruby-compiler/core/parse.y" +#line 3502 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">", (yyvsp[0].nd)); } -#line 9183 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9181 "mrbgems/mruby-compiler/core/y.tab.c" break; case 228: /* arg: arg ">=" arg */ -#line 3508 "mrbgems/mruby-compiler/core/parse.y" +#line 3506 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">=", (yyvsp[0].nd)); } -#line 9191 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9189 "mrbgems/mruby-compiler/core/y.tab.c" break; case 229: /* arg: arg '<' arg */ -#line 3512 "mrbgems/mruby-compiler/core/parse.y" +#line 3510 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<", (yyvsp[0].nd)); } -#line 9199 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9197 "mrbgems/mruby-compiler/core/y.tab.c" break; case 230: /* arg: arg "<=" arg */ -#line 3516 "mrbgems/mruby-compiler/core/parse.y" +#line 3514 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<=", (yyvsp[0].nd)); } -#line 9207 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9205 "mrbgems/mruby-compiler/core/y.tab.c" break; case 231: /* arg: arg "==" arg */ -#line 3520 "mrbgems/mruby-compiler/core/parse.y" +#line 3518 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "==", (yyvsp[0].nd)); } -#line 9215 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9213 "mrbgems/mruby-compiler/core/y.tab.c" break; case 232: /* arg: arg "===" arg */ -#line 3524 "mrbgems/mruby-compiler/core/parse.y" +#line 3522 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "===", (yyvsp[0].nd)); } -#line 9223 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9221 "mrbgems/mruby-compiler/core/y.tab.c" break; case 233: /* arg: arg "!=" arg */ -#line 3528 "mrbgems/mruby-compiler/core/parse.y" +#line 3526 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "!=", (yyvsp[0].nd)); } -#line 9231 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9229 "mrbgems/mruby-compiler/core/y.tab.c" break; case 234: /* arg: arg "=~" arg */ -#line 3532 "mrbgems/mruby-compiler/core/parse.y" +#line 3530 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "=~", (yyvsp[0].nd)); } -#line 9239 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9237 "mrbgems/mruby-compiler/core/y.tab.c" break; case 235: /* arg: arg "!~" arg */ -#line 3536 "mrbgems/mruby-compiler/core/parse.y" +#line 3534 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "!~", (yyvsp[0].nd)); } -#line 9247 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9245 "mrbgems/mruby-compiler/core/y.tab.c" break; case 236: /* arg: '!' arg */ -#line 3540 "mrbgems/mruby-compiler/core/parse.y" +#line 3538 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "!"); } -#line 9255 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9253 "mrbgems/mruby-compiler/core/y.tab.c" break; case 237: /* arg: '~' arg */ -#line 3544 "mrbgems/mruby-compiler/core/parse.y" +#line 3542 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "~"); } -#line 9263 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9261 "mrbgems/mruby-compiler/core/y.tab.c" break; case 238: /* arg: arg "<<" arg */ -#line 3548 "mrbgems/mruby-compiler/core/parse.y" +#line 3546 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<<", (yyvsp[0].nd)); } -#line 9271 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9269 "mrbgems/mruby-compiler/core/y.tab.c" break; case 239: /* arg: arg ">>" arg */ -#line 3552 "mrbgems/mruby-compiler/core/parse.y" +#line 3550 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">>", (yyvsp[0].nd)); } -#line 9279 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9277 "mrbgems/mruby-compiler/core/y.tab.c" break; case 240: /* arg: arg "&&" arg */ -#line 3556 "mrbgems/mruby-compiler/core/parse.y" +#line 3554 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_and(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 9287 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9285 "mrbgems/mruby-compiler/core/y.tab.c" break; case 241: /* arg: arg "||" arg */ -#line 3560 "mrbgems/mruby-compiler/core/parse.y" +#line 3558 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_or(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 9295 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9293 "mrbgems/mruby-compiler/core/y.tab.c" break; case 242: /* arg: arg '?' arg opt_nl ':' arg */ -#line 3564 "mrbgems/mruby-compiler/core/parse.y" +#line 3562 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_if(p, cond((yyvsp[-5].nd)), (yyvsp[-3].nd), (yyvsp[0].nd)); } -#line 9303 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9301 "mrbgems/mruby-compiler/core/y.tab.c" break; case 243: /* arg: arg '?' arg opt_nl "label" arg */ -#line 3568 "mrbgems/mruby-compiler/core/parse.y" +#line 3566 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_if(p, cond((yyvsp[-5].nd)), (yyvsp[-3].nd), (yyvsp[0].nd)); } -#line 9311 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9309 "mrbgems/mruby-compiler/core/y.tab.c" break; case 244: /* arg: defn_head f_opt_arglist_paren '=' arg */ -#line 3572 "mrbgems/mruby-compiler/core/parse.y" +#line 3570 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-3].nd); endless_method_name(p, (yyvsp[-3].nd)); @@ -9320,11 +9318,11 @@ yyreduce: nvars_unnest(p); p->in_def--; } -#line 9324 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9322 "mrbgems/mruby-compiler/core/y.tab.c" break; case 245: /* arg: defn_head f_opt_arglist_paren '=' arg "'rescue' modifier" arg */ -#line 3581 "mrbgems/mruby-compiler/core/parse.y" +#line 3579 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-5].nd); endless_method_name(p, (yyvsp[-5].nd)); @@ -9333,11 +9331,11 @@ yyreduce: nvars_unnest(p); p->in_def--; } -#line 9337 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9335 "mrbgems/mruby-compiler/core/y.tab.c" break; case 246: /* arg: defs_head f_opt_arglist_paren '=' arg */ -#line 3590 "mrbgems/mruby-compiler/core/parse.y" +#line 3588 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-3].nd); void_expr_error(p, (yyvsp[0].nd)); @@ -9346,11 +9344,11 @@ yyreduce: p->in_def--; p->in_single--; } -#line 9350 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9348 "mrbgems/mruby-compiler/core/y.tab.c" break; case 247: /* arg: defs_head f_opt_arglist_paren '=' arg "'rescue' modifier" arg */ -#line 3599 "mrbgems/mruby-compiler/core/parse.y" +#line 3597 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-5].nd); void_expr_error(p, (yyvsp[-2].nd)); @@ -9359,68 +9357,68 @@ yyreduce: p->in_def--; p->in_single--; } -#line 9363 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9361 "mrbgems/mruby-compiler/core/y.tab.c" break; case 248: /* arg: primary */ -#line 3608 "mrbgems/mruby-compiler/core/parse.y" +#line 3606 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 9371 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9369 "mrbgems/mruby-compiler/core/y.tab.c" break; case 250: /* aref_args: args trailer */ -#line 3615 "mrbgems/mruby-compiler/core/parse.y" +#line 3613 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 9379 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9377 "mrbgems/mruby-compiler/core/y.tab.c" break; case 251: /* aref_args: args comma assocs trailer */ -#line 3619 "mrbgems/mruby-compiler/core/parse.y" +#line 3617 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-3].nd), new_hash(p, (yyvsp[-1].nd))); } -#line 9387 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9385 "mrbgems/mruby-compiler/core/y.tab.c" break; case 252: /* aref_args: assocs trailer */ -#line 3623 "mrbgems/mruby-compiler/core/parse.y" +#line 3621 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(new_kw_hash(p, (yyvsp[-1].nd)), 0); } -#line 9395 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9393 "mrbgems/mruby-compiler/core/y.tab.c" break; case 253: /* arg_rhs: arg */ -#line 3629 "mrbgems/mruby-compiler/core/parse.y" +#line 3627 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 9403 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9401 "mrbgems/mruby-compiler/core/y.tab.c" break; case 254: /* arg_rhs: arg "'rescue' modifier" arg */ -#line 3633 "mrbgems/mruby-compiler/core/parse.y" +#line 3631 "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 9412 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9410 "mrbgems/mruby-compiler/core/y.tab.c" break; case 255: /* paren_args: '(' opt_call_args ')' */ -#line 3640 "mrbgems/mruby-compiler/core/parse.y" +#line 3638 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 9420 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9418 "mrbgems/mruby-compiler/core/y.tab.c" break; case 256: /* paren_args: '(' args comma tBDOT3 rparen */ -#line 3644 "mrbgems/mruby-compiler/core/parse.y" +#line 3642 "mrbgems/mruby-compiler/core/parse.y" { mrb_sym r = intern_op(mul); mrb_sym k = intern_op(pow); @@ -9429,11 +9427,11 @@ yyreduce: new_kw_hash(p, list1(cons(new_kw_rest_args(p, 0), new_lvar(p, k)))), new_block_arg(p, new_lvar(p, b))); } -#line 9433 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9431 "mrbgems/mruby-compiler/core/y.tab.c" break; case 257: /* paren_args: '(' tBDOT3 rparen */ -#line 3653 "mrbgems/mruby-compiler/core/parse.y" +#line 3651 "mrbgems/mruby-compiler/core/parse.y" { mrb_sym r = intern_op(mul); mrb_sym k = intern_op(pow); @@ -9448,390 +9446,390 @@ yyreduce: (yyval.nd) = 0; } } -#line 9452 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9450 "mrbgems/mruby-compiler/core/y.tab.c" break; case 262: /* opt_call_args: args comma */ -#line 3676 "mrbgems/mruby-compiler/core/parse.y" +#line 3674 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_callargs(p,(yyvsp[-1].nd),0,0); } -#line 9460 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9458 "mrbgems/mruby-compiler/core/y.tab.c" break; case 263: /* opt_call_args: args comma assocs comma */ -#line 3680 "mrbgems/mruby-compiler/core/parse.y" +#line 3678 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_callargs(p,(yyvsp[-3].nd),new_kw_hash(p,(yyvsp[-1].nd)),0); } -#line 9468 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9466 "mrbgems/mruby-compiler/core/y.tab.c" break; case 264: /* opt_call_args: assocs comma */ -#line 3684 "mrbgems/mruby-compiler/core/parse.y" +#line 3682 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_callargs(p,0,new_kw_hash(p,(yyvsp[-1].nd)),0); } -#line 9476 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9474 "mrbgems/mruby-compiler/core/y.tab.c" break; case 265: /* call_args: command */ -#line 3690 "mrbgems/mruby-compiler/core/parse.y" +#line 3688 "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 9485 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9483 "mrbgems/mruby-compiler/core/y.tab.c" break; case 266: /* call_args: args opt_block_arg */ -#line 3695 "mrbgems/mruby-compiler/core/parse.y" +#line 3693 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_callargs(p, (yyvsp[-1].nd), 0, (yyvsp[0].nd)); } -#line 9493 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9491 "mrbgems/mruby-compiler/core/y.tab.c" break; case 267: /* call_args: assocs opt_block_arg */ -#line 3699 "mrbgems/mruby-compiler/core/parse.y" +#line 3697 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_callargs(p, 0, new_kw_hash(p, (yyvsp[-1].nd)), (yyvsp[0].nd)); } -#line 9501 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9499 "mrbgems/mruby-compiler/core/y.tab.c" break; case 268: /* call_args: args comma assocs opt_block_arg */ -#line 3703 "mrbgems/mruby-compiler/core/parse.y" +#line 3701 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_callargs(p, (yyvsp[-3].nd), new_kw_hash(p, (yyvsp[-1].nd)), (yyvsp[0].nd)); } -#line 9509 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9507 "mrbgems/mruby-compiler/core/y.tab.c" break; case 269: /* call_args: block_arg */ -#line 3707 "mrbgems/mruby-compiler/core/parse.y" +#line 3705 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_callargs(p, 0, 0, (yyvsp[0].nd)); } -#line 9517 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9515 "mrbgems/mruby-compiler/core/y.tab.c" break; case 270: /* @7: %empty */ -#line 3712 "mrbgems/mruby-compiler/core/parse.y" +#line 3710 "mrbgems/mruby-compiler/core/parse.y" { (yyval.stack) = p->cmdarg_stack; CMDARG_PUSH(1); } -#line 9526 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9524 "mrbgems/mruby-compiler/core/y.tab.c" break; case 271: /* command_args: @7 call_args */ -#line 3717 "mrbgems/mruby-compiler/core/parse.y" +#line 3715 "mrbgems/mruby-compiler/core/parse.y" { p->cmdarg_stack = (yyvsp[-1].stack); (yyval.nd) = (yyvsp[0].nd); } -#line 9535 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9533 "mrbgems/mruby-compiler/core/y.tab.c" break; case 272: /* block_arg: "&" arg */ -#line 3724 "mrbgems/mruby-compiler/core/parse.y" +#line 3722 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_block_arg(p, (yyvsp[0].nd)); } -#line 9543 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9541 "mrbgems/mruby-compiler/core/y.tab.c" break; case 273: /* block_arg: "&" */ -#line 3728 "mrbgems/mruby-compiler/core/parse.y" +#line 3726 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_block_arg(p, 0); } -#line 9551 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9549 "mrbgems/mruby-compiler/core/y.tab.c" break; case 274: /* opt_block_arg: comma block_arg */ -#line 3734 "mrbgems/mruby-compiler/core/parse.y" +#line 3732 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 9559 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9557 "mrbgems/mruby-compiler/core/y.tab.c" break; case 275: /* opt_block_arg: none */ -#line 3738 "mrbgems/mruby-compiler/core/parse.y" +#line 3736 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = 0; } -#line 9567 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9565 "mrbgems/mruby-compiler/core/y.tab.c" break; case 277: /* args: arg */ -#line 3747 "mrbgems/mruby-compiler/core/parse.y" +#line 3745 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = list1((yyvsp[0].nd)); } -#line 9576 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9574 "mrbgems/mruby-compiler/core/y.tab.c" break; case 278: /* args: "*" */ -#line 3752 "mrbgems/mruby-compiler/core/parse.y" +#line 3750 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1(new_splat(p, new_lvar(p, intern_op(mul)))); } -#line 9584 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9582 "mrbgems/mruby-compiler/core/y.tab.c" break; case 279: /* args: "*" arg */ -#line 3756 "mrbgems/mruby-compiler/core/parse.y" +#line 3754 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1(new_splat(p, (yyvsp[0].nd))); } -#line 9592 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9590 "mrbgems/mruby-compiler/core/y.tab.c" break; case 280: /* args: args comma arg */ -#line 3760 "mrbgems/mruby-compiler/core/parse.y" +#line 3758 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 9601 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9599 "mrbgems/mruby-compiler/core/y.tab.c" break; case 281: /* args: args comma "*" */ -#line 3765 "mrbgems/mruby-compiler/core/parse.y" +#line 3763 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), new_splat(p, new_lvar(p, intern_op(mul)))); } -#line 9609 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9607 "mrbgems/mruby-compiler/core/y.tab.c" break; case 282: /* args: args comma "*" arg */ -#line 3769 "mrbgems/mruby-compiler/core/parse.y" +#line 3767 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-3].nd), new_splat(p, (yyvsp[0].nd))); } -#line 9617 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9615 "mrbgems/mruby-compiler/core/y.tab.c" break; case 283: /* mrhs: args comma arg */ -#line 3775 "mrbgems/mruby-compiler/core/parse.y" +#line 3773 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 9626 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9624 "mrbgems/mruby-compiler/core/y.tab.c" break; case 284: /* mrhs: args comma "*" arg */ -#line 3780 "mrbgems/mruby-compiler/core/parse.y" +#line 3778 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-3].nd), new_splat(p, (yyvsp[0].nd))); } -#line 9634 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9632 "mrbgems/mruby-compiler/core/y.tab.c" break; case 285: /* mrhs: "*" arg */ -#line 3784 "mrbgems/mruby-compiler/core/parse.y" +#line 3782 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1(new_splat(p, (yyvsp[0].nd))); } -#line 9642 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9640 "mrbgems/mruby-compiler/core/y.tab.c" break; case 287: /* primary: string */ -#line 3791 "mrbgems/mruby-compiler/core/parse.y" +#line 3789 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_str(p, (yyvsp[0].nd)); } -#line 9650 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9648 "mrbgems/mruby-compiler/core/y.tab.c" break; case 288: /* primary: xstring */ -#line 3795 "mrbgems/mruby-compiler/core/parse.y" +#line 3793 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_xstr(p, (yyvsp[0].nd)); } -#line 9658 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9656 "mrbgems/mruby-compiler/core/y.tab.c" break; case 293: /* primary: "method" */ -#line 3803 "mrbgems/mruby-compiler/core/parse.y" +#line 3801 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_fcall(p, (yyvsp[0].id), 0); } -#line 9666 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9664 "mrbgems/mruby-compiler/core/y.tab.c" break; case 294: /* @8: %empty */ -#line 3807 "mrbgems/mruby-compiler/core/parse.y" +#line 3805 "mrbgems/mruby-compiler/core/parse.y" { (yyval.stack) = p->cmdarg_stack; p->cmdarg_stack = 0; } -#line 9675 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9673 "mrbgems/mruby-compiler/core/y.tab.c" break; case 295: /* primary: "'begin'" @8 bodystmt "'end'" */ -#line 3813 "mrbgems/mruby-compiler/core/parse.y" +#line 3811 "mrbgems/mruby-compiler/core/parse.y" { p->cmdarg_stack = (yyvsp[-2].stack); (yyval.nd) = new_begin(p, (yyvsp[-1].nd)); } -#line 9684 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9682 "mrbgems/mruby-compiler/core/y.tab.c" break; case 296: /* @9: %empty */ -#line 3818 "mrbgems/mruby-compiler/core/parse.y" +#line 3816 "mrbgems/mruby-compiler/core/parse.y" { (yyval.stack) = p->cmdarg_stack; p->cmdarg_stack = 0; } -#line 9693 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9691 "mrbgems/mruby-compiler/core/y.tab.c" break; case 297: /* $@10: %empty */ -#line 3822 "mrbgems/mruby-compiler/core/parse.y" +#line 3820 "mrbgems/mruby-compiler/core/parse.y" {p->lstate = EXPR_ENDARG;} -#line 9699 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9697 "mrbgems/mruby-compiler/core/y.tab.c" break; case 298: /* primary: "(" @9 stmt $@10 rparen */ -#line 3823 "mrbgems/mruby-compiler/core/parse.y" +#line 3821 "mrbgems/mruby-compiler/core/parse.y" { p->cmdarg_stack = (yyvsp[-3].stack); (yyval.nd) = (yyvsp[-2].nd); } -#line 9708 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9706 "mrbgems/mruby-compiler/core/y.tab.c" break; case 299: /* $@11: %empty */ -#line 3827 "mrbgems/mruby-compiler/core/parse.y" +#line 3825 "mrbgems/mruby-compiler/core/parse.y" {p->lstate = EXPR_ENDARG;} -#line 9714 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9712 "mrbgems/mruby-compiler/core/y.tab.c" break; case 300: /* primary: "(" $@11 rparen */ -#line 3828 "mrbgems/mruby-compiler/core/parse.y" +#line 3826 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_nil(p); } -#line 9722 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9720 "mrbgems/mruby-compiler/core/y.tab.c" break; case 301: /* primary: tLPAREN compstmt ')' */ -#line 3832 "mrbgems/mruby-compiler/core/parse.y" +#line 3830 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 9730 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9728 "mrbgems/mruby-compiler/core/y.tab.c" break; case 302: /* primary: primary_value "::" "constant" */ -#line 3836 "mrbgems/mruby-compiler/core/parse.y" +#line 3834 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id)); } -#line 9738 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9736 "mrbgems/mruby-compiler/core/y.tab.c" break; case 303: /* primary: tCOLON3 "constant" */ -#line 3840 "mrbgems/mruby-compiler/core/parse.y" +#line 3838 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_colon3(p, (yyvsp[0].id)); } -#line 9746 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9744 "mrbgems/mruby-compiler/core/y.tab.c" break; case 304: /* primary: "[" aref_args ']' */ -#line 3844 "mrbgems/mruby-compiler/core/parse.y" +#line 3842 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_array(p, (yyvsp[-1].nd)); } -#line 9754 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9752 "mrbgems/mruby-compiler/core/y.tab.c" break; case 305: /* primary: tLBRACE assoc_list '}' */ -#line 3848 "mrbgems/mruby-compiler/core/parse.y" +#line 3846 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_hash(p, (yyvsp[-1].nd)); } -#line 9762 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9760 "mrbgems/mruby-compiler/core/y.tab.c" break; case 306: /* primary: "'return'" */ -#line 3852 "mrbgems/mruby-compiler/core/parse.y" +#line 3850 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_return(p, 0); } -#line 9770 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9768 "mrbgems/mruby-compiler/core/y.tab.c" break; case 307: /* primary: "'yield'" opt_paren_args */ -#line 3856 "mrbgems/mruby-compiler/core/parse.y" +#line 3854 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_yield(p, (yyvsp[0].nd)); } -#line 9778 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9776 "mrbgems/mruby-compiler/core/y.tab.c" break; case 308: /* primary: "'not'" '(' expr rparen */ -#line 3860 "mrbgems/mruby-compiler/core/parse.y" +#line 3858 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, cond((yyvsp[-1].nd)), "!"); } -#line 9786 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9784 "mrbgems/mruby-compiler/core/y.tab.c" break; case 309: /* primary: "'not'" '(' rparen */ -#line 3864 "mrbgems/mruby-compiler/core/parse.y" +#line 3862 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, new_nil(p), "!"); } -#line 9794 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9792 "mrbgems/mruby-compiler/core/y.tab.c" break; case 310: /* primary: operation brace_block */ -#line 3868 "mrbgems/mruby-compiler/core/parse.y" +#line 3866 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_fcall(p, (yyvsp[-1].id), new_callargs(p, 0, 0, (yyvsp[0].nd))); } -#line 9802 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9800 "mrbgems/mruby-compiler/core/y.tab.c" break; case 312: /* primary: method_call brace_block */ -#line 3873 "mrbgems/mruby-compiler/core/parse.y" +#line 3871 "mrbgems/mruby-compiler/core/parse.y" { call_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd)); (yyval.nd) = (yyvsp[-1].nd); } -#line 9811 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9809 "mrbgems/mruby-compiler/core/y.tab.c" break; case 313: /* @12: %empty */ -#line 3878 "mrbgems/mruby-compiler/core/parse.y" +#line 3876 "mrbgems/mruby-compiler/core/parse.y" { local_nest(p); nvars_nest(p); (yyval.num) = p->lpar_beg; p->lpar_beg = ++p->paren_nest; } -#line 9822 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9820 "mrbgems/mruby-compiler/core/y.tab.c" break; case 314: /* @13: %empty */ -#line 3885 "mrbgems/mruby-compiler/core/parse.y" +#line 3883 "mrbgems/mruby-compiler/core/parse.y" { (yyval.stack) = p->cmdarg_stack; p->cmdarg_stack = 0; } -#line 9831 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9829 "mrbgems/mruby-compiler/core/y.tab.c" break; case 315: /* primary: "->" @12 f_larglist @13 lambda_body */ -#line 3890 "mrbgems/mruby-compiler/core/parse.y" +#line 3888 "mrbgems/mruby-compiler/core/parse.y" { p->lpar_beg = (yyvsp[-3].num); (yyval.nd) = new_lambda(p, (yyvsp[-2].nd), (yyvsp[0].nd)); @@ -9840,149 +9838,149 @@ yyreduce: p->cmdarg_stack = (yyvsp[-1].stack); CMDARG_LEXPOP(); } -#line 9844 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9842 "mrbgems/mruby-compiler/core/y.tab.c" break; case 316: /* primary: "'if'" expr_value then compstmt if_tail "'end'" */ -#line 3902 "mrbgems/mruby-compiler/core/parse.y" +#line 3900 "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 9853 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9851 "mrbgems/mruby-compiler/core/y.tab.c" break; case 317: /* primary: "'unless'" expr_value then compstmt opt_else "'end'" */ -#line 3910 "mrbgems/mruby-compiler/core/parse.y" +#line 3908 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_unless(p, cond((yyvsp[-4].nd)), (yyvsp[-2].nd), (yyvsp[-1].nd)); SET_LINENO((yyval.nd), (yyvsp[-5].num)); } -#line 9862 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9860 "mrbgems/mruby-compiler/core/y.tab.c" break; case 318: /* $@14: %empty */ -#line 3914 "mrbgems/mruby-compiler/core/parse.y" +#line 3912 "mrbgems/mruby-compiler/core/parse.y" {COND_PUSH(1);} -#line 9868 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9866 "mrbgems/mruby-compiler/core/y.tab.c" break; case 319: /* $@15: %empty */ -#line 3914 "mrbgems/mruby-compiler/core/parse.y" +#line 3912 "mrbgems/mruby-compiler/core/parse.y" {COND_POP();} -#line 9874 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9872 "mrbgems/mruby-compiler/core/y.tab.c" break; case 320: /* primary: "'while'" $@14 expr_value do $@15 compstmt "'end'" */ -#line 3917 "mrbgems/mruby-compiler/core/parse.y" +#line 3915 "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 9883 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9881 "mrbgems/mruby-compiler/core/y.tab.c" break; case 321: /* $@16: %empty */ -#line 3921 "mrbgems/mruby-compiler/core/parse.y" +#line 3919 "mrbgems/mruby-compiler/core/parse.y" {COND_PUSH(1);} -#line 9889 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9887 "mrbgems/mruby-compiler/core/y.tab.c" break; case 322: /* $@17: %empty */ -#line 3921 "mrbgems/mruby-compiler/core/parse.y" +#line 3919 "mrbgems/mruby-compiler/core/parse.y" {COND_POP();} -#line 9895 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9893 "mrbgems/mruby-compiler/core/y.tab.c" break; case 323: /* primary: "'until'" $@16 expr_value do $@17 compstmt "'end'" */ -#line 3924 "mrbgems/mruby-compiler/core/parse.y" +#line 3922 "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 9904 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9902 "mrbgems/mruby-compiler/core/y.tab.c" break; case 324: /* primary: "'case'" expr_value opt_terms case_body "'end'" */ -#line 3931 "mrbgems/mruby-compiler/core/parse.y" +#line 3929 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_case(p, (yyvsp[-3].nd), (yyvsp[-1].nd)); } -#line 9912 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9910 "mrbgems/mruby-compiler/core/y.tab.c" break; case 325: /* primary: "'case'" opt_terms case_body "'end'" */ -#line 3935 "mrbgems/mruby-compiler/core/parse.y" +#line 3933 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_case(p, 0, (yyvsp[-1].nd)); } -#line 9920 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9918 "mrbgems/mruby-compiler/core/y.tab.c" break; case 326: /* $@18: %empty */ -#line 3939 "mrbgems/mruby-compiler/core/parse.y" +#line 3937 "mrbgems/mruby-compiler/core/parse.y" {COND_PUSH(1);} -#line 9926 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9924 "mrbgems/mruby-compiler/core/y.tab.c" break; case 327: /* $@19: %empty */ -#line 3941 "mrbgems/mruby-compiler/core/parse.y" +#line 3939 "mrbgems/mruby-compiler/core/parse.y" {COND_POP();} -#line 9932 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9930 "mrbgems/mruby-compiler/core/y.tab.c" break; case 328: /* primary: "'for'" for_var "'in'" $@18 expr_value do $@19 compstmt "'end'" */ -#line 3944 "mrbgems/mruby-compiler/core/parse.y" +#line 3942 "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 9941 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9939 "mrbgems/mruby-compiler/core/y.tab.c" break; case 329: /* @20: %empty */ -#line 3950 "mrbgems/mruby-compiler/core/parse.y" +#line 3948 "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 9952 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9950 "mrbgems/mruby-compiler/core/y.tab.c" break; case 330: /* primary: "'class'" cpath superclass @20 bodystmt "'end'" */ -#line 3958 "mrbgems/mruby-compiler/core/parse.y" +#line 3956 "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 9963 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9961 "mrbgems/mruby-compiler/core/y.tab.c" break; case 331: /* @21: %empty */ -#line 3966 "mrbgems/mruby-compiler/core/parse.y" +#line 3964 "mrbgems/mruby-compiler/core/parse.y" { (yyval.num) = p->in_def; p->in_def = 0; } -#line 9972 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9970 "mrbgems/mruby-compiler/core/y.tab.c" break; case 332: /* @22: %empty */ -#line 3971 "mrbgems/mruby-compiler/core/parse.y" +#line 3969 "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 9982 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9980 "mrbgems/mruby-compiler/core/y.tab.c" break; case 333: /* primary: "'class'" "<<" expr @21 term @22 bodystmt "'end'" */ -#line 3978 "mrbgems/mruby-compiler/core/parse.y" +#line 3976 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_sclass(p, (yyvsp[-5].nd), (yyvsp[-1].nd)); SET_LINENO((yyval.nd), (yyvsp[-7].num)); @@ -9991,44 +9989,44 @@ yyreduce: p->in_def = (yyvsp[-4].num); p->in_single = node_to_int((yyvsp[-2].nd)->cdr); } -#line 9995 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9993 "mrbgems/mruby-compiler/core/y.tab.c" break; case 334: /* @23: %empty */ -#line 3988 "mrbgems/mruby-compiler/core/parse.y" +#line 3986 "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 10006 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10004 "mrbgems/mruby-compiler/core/y.tab.c" break; case 335: /* primary: "'module'" cpath @23 bodystmt "'end'" */ -#line 3996 "mrbgems/mruby-compiler/core/parse.y" +#line 3994 "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 10017 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10015 "mrbgems/mruby-compiler/core/y.tab.c" break; case 336: /* primary: defn_head f_arglist bodystmt "'end'" */ -#line 4006 "mrbgems/mruby-compiler/core/parse.y" +#line 4004 "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 10028 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10026 "mrbgems/mruby-compiler/core/y.tab.c" break; case 337: /* primary: defs_head f_arglist bodystmt "'end'" */ -#line 4016 "mrbgems/mruby-compiler/core/parse.y" +#line 4014 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-3].nd); defs_setup(p, (yyval.nd), (yyvsp[-2].nd), (yyvsp[-1].nd)); @@ -10036,453 +10034,453 @@ yyreduce: p->in_def--; p->in_single--; } -#line 10040 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10038 "mrbgems/mruby-compiler/core/y.tab.c" break; case 338: /* primary: "'break'" */ -#line 4024 "mrbgems/mruby-compiler/core/parse.y" +#line 4022 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_break(p, 0); } -#line 10048 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10046 "mrbgems/mruby-compiler/core/y.tab.c" break; case 339: /* primary: "'next'" */ -#line 4028 "mrbgems/mruby-compiler/core/parse.y" +#line 4026 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_next(p, 0); } -#line 10056 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10054 "mrbgems/mruby-compiler/core/y.tab.c" break; case 340: /* primary: "'redo'" */ -#line 4032 "mrbgems/mruby-compiler/core/parse.y" +#line 4030 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_redo(p); } -#line 10064 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10062 "mrbgems/mruby-compiler/core/y.tab.c" break; case 341: /* primary: "'retry'" */ -#line 4036 "mrbgems/mruby-compiler/core/parse.y" +#line 4034 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_retry(p); } -#line 10072 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10070 "mrbgems/mruby-compiler/core/y.tab.c" break; case 342: /* primary_value: primary */ -#line 4042 "mrbgems/mruby-compiler/core/parse.y" +#line 4040 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); if (!(yyval.nd)) (yyval.nd) = new_nil(p); } -#line 10081 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10079 "mrbgems/mruby-compiler/core/y.tab.c" break; case 349: /* if_tail: "'elsif'" expr_value then compstmt if_tail */ -#line 4061 "mrbgems/mruby-compiler/core/parse.y" +#line 4059 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_if(p, cond((yyvsp[-3].nd)), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 10089 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10087 "mrbgems/mruby-compiler/core/y.tab.c" break; case 351: /* opt_else: "'else'" compstmt */ -#line 4068 "mrbgems/mruby-compiler/core/parse.y" +#line 4066 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 10097 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10095 "mrbgems/mruby-compiler/core/y.tab.c" break; case 352: /* for_var: lhs */ -#line 4074 "mrbgems/mruby-compiler/core/parse.y" +#line 4072 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1(list1((yyvsp[0].nd))); } -#line 10105 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10103 "mrbgems/mruby-compiler/core/y.tab.c" break; case 354: /* f_margs: f_arg */ -#line 4081 "mrbgems/mruby-compiler/core/parse.y" +#line 4079 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3((yyvsp[0].nd),0,0); } -#line 10113 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10111 "mrbgems/mruby-compiler/core/y.tab.c" break; case 355: /* f_margs: f_arg ',' "*" f_norm_arg */ -#line 4085 "mrbgems/mruby-compiler/core/parse.y" +#line 4083 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3((yyvsp[-3].nd), new_arg(p, (yyvsp[0].id)), 0); } -#line 10121 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10119 "mrbgems/mruby-compiler/core/y.tab.c" break; case 356: /* f_margs: f_arg ',' "*" f_norm_arg ',' f_arg */ -#line 4089 "mrbgems/mruby-compiler/core/parse.y" +#line 4087 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3((yyvsp[-5].nd), new_arg(p, (yyvsp[-2].id)), (yyvsp[0].nd)); } -#line 10129 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10127 "mrbgems/mruby-compiler/core/y.tab.c" break; case 357: /* f_margs: f_arg ',' "*" */ -#line 4093 "mrbgems/mruby-compiler/core/parse.y" +#line 4091 "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 10138 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10136 "mrbgems/mruby-compiler/core/y.tab.c" break; case 358: /* f_margs: f_arg ',' "*" ',' f_arg */ -#line 4098 "mrbgems/mruby-compiler/core/parse.y" +#line 4096 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3((yyvsp[-4].nd), int_to_node(-1), (yyvsp[0].nd)); } -#line 10146 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10144 "mrbgems/mruby-compiler/core/y.tab.c" break; case 359: /* f_margs: "*" f_norm_arg */ -#line 4102 "mrbgems/mruby-compiler/core/parse.y" +#line 4100 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3(0, new_arg(p, (yyvsp[0].id)), 0); } -#line 10154 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10152 "mrbgems/mruby-compiler/core/y.tab.c" break; case 360: /* f_margs: "*" f_norm_arg ',' f_arg */ -#line 4106 "mrbgems/mruby-compiler/core/parse.y" +#line 4104 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3(0, new_arg(p, (yyvsp[-2].id)), (yyvsp[0].nd)); } -#line 10162 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10160 "mrbgems/mruby-compiler/core/y.tab.c" break; case 361: /* f_margs: "*" */ -#line 4110 "mrbgems/mruby-compiler/core/parse.y" +#line 4108 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, intern_op(mul)); (yyval.nd) = list3(0, int_to_node(-1), 0); } -#line 10171 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10169 "mrbgems/mruby-compiler/core/y.tab.c" break; case 362: /* $@24: %empty */ -#line 4115 "mrbgems/mruby-compiler/core/parse.y" +#line 4113 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, intern_op(mul)); } -#line 10179 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10177 "mrbgems/mruby-compiler/core/y.tab.c" break; case 363: /* f_margs: "*" ',' $@24 f_arg */ -#line 4119 "mrbgems/mruby-compiler/core/parse.y" +#line 4117 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3(0, int_to_node(-1), (yyvsp[0].nd)); } -#line 10187 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10185 "mrbgems/mruby-compiler/core/y.tab.c" break; case 364: /* block_args_tail: f_block_kwarg ',' f_kwrest opt_f_block_arg */ -#line 4125 "mrbgems/mruby-compiler/core/parse.y" +#line 4123 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, (yyvsp[-3].nd), (yyvsp[-1].nd), (yyvsp[0].id)); } -#line 10195 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10193 "mrbgems/mruby-compiler/core/y.tab.c" break; case 365: /* block_args_tail: f_block_kwarg opt_f_block_arg */ -#line 4129 "mrbgems/mruby-compiler/core/parse.y" +#line 4127 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, (yyvsp[-1].nd), 0, (yyvsp[0].id)); } -#line 10203 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10201 "mrbgems/mruby-compiler/core/y.tab.c" break; case 366: /* block_args_tail: f_kwrest opt_f_block_arg */ -#line 4133 "mrbgems/mruby-compiler/core/parse.y" +#line 4131 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, 0, (yyvsp[-1].nd), (yyvsp[0].id)); } -#line 10211 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10209 "mrbgems/mruby-compiler/core/y.tab.c" break; case 367: /* block_args_tail: f_block_arg */ -#line 4137 "mrbgems/mruby-compiler/core/parse.y" +#line 4135 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, 0, 0, (yyvsp[0].id)); } -#line 10219 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10217 "mrbgems/mruby-compiler/core/y.tab.c" break; case 368: /* opt_block_args_tail: ',' block_args_tail */ -#line 4143 "mrbgems/mruby-compiler/core/parse.y" +#line 4141 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 10227 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10225 "mrbgems/mruby-compiler/core/y.tab.c" break; case 369: /* opt_block_args_tail: %empty */ -#line 4147 "mrbgems/mruby-compiler/core/parse.y" +#line 4145 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, 0, 0, 0); } -#line 10235 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10233 "mrbgems/mruby-compiler/core/y.tab.c" break; case 370: /* block_param: f_arg ',' f_block_optarg ',' f_rest_arg opt_block_args_tail */ -#line 4153 "mrbgems/mruby-compiler/core/parse.y" +#line 4151 "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 10243 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10241 "mrbgems/mruby-compiler/core/y.tab.c" break; case 371: /* block_param: f_arg ',' f_block_optarg ',' f_rest_arg ',' f_arg opt_block_args_tail */ -#line 4157 "mrbgems/mruby-compiler/core/parse.y" +#line 4155 "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 10251 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10249 "mrbgems/mruby-compiler/core/y.tab.c" break; case 372: /* block_param: f_arg ',' f_block_optarg opt_block_args_tail */ -#line 4161 "mrbgems/mruby-compiler/core/parse.y" +#line 4159 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-3].nd), (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd)); } -#line 10259 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10257 "mrbgems/mruby-compiler/core/y.tab.c" break; case 373: /* block_param: f_arg ',' f_block_optarg ',' f_arg opt_block_args_tail */ -#line 4165 "mrbgems/mruby-compiler/core/parse.y" +#line 4163 "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 10267 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10265 "mrbgems/mruby-compiler/core/y.tab.c" break; case 374: /* block_param: f_arg ',' f_rest_arg opt_block_args_tail */ -#line 4169 "mrbgems/mruby-compiler/core/parse.y" +#line 4167 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-3].nd), 0, (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 10275 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10273 "mrbgems/mruby-compiler/core/y.tab.c" break; case 375: /* block_param: f_arg ',' opt_block_args_tail */ -#line 4173 "mrbgems/mruby-compiler/core/parse.y" +#line 4171 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-2].nd), 0, 0, 0, (yyvsp[0].nd)); } -#line 10283 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10281 "mrbgems/mruby-compiler/core/y.tab.c" break; case 376: /* block_param: f_arg ',' f_rest_arg ',' f_arg opt_block_args_tail */ -#line 4177 "mrbgems/mruby-compiler/core/parse.y" +#line 4175 "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 10291 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10289 "mrbgems/mruby-compiler/core/y.tab.c" break; case 377: /* block_param: f_arg opt_block_args_tail */ -#line 4181 "mrbgems/mruby-compiler/core/parse.y" +#line 4179 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-1].nd), 0, 0, 0, (yyvsp[0].nd)); } -#line 10299 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10297 "mrbgems/mruby-compiler/core/y.tab.c" break; case 378: /* block_param: f_block_optarg ',' f_rest_arg opt_block_args_tail */ -#line 4185 "mrbgems/mruby-compiler/core/parse.y" +#line 4183 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 10307 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10305 "mrbgems/mruby-compiler/core/y.tab.c" break; case 379: /* block_param: f_block_optarg ',' f_rest_arg ',' f_arg opt_block_args_tail */ -#line 4189 "mrbgems/mruby-compiler/core/parse.y" +#line 4187 "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 10315 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10313 "mrbgems/mruby-compiler/core/y.tab.c" break; case 380: /* block_param: f_block_optarg opt_block_args_tail */ -#line 4193 "mrbgems/mruby-compiler/core/parse.y" +#line 4191 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd)); } -#line 10323 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10321 "mrbgems/mruby-compiler/core/y.tab.c" break; case 381: /* block_param: f_block_optarg ',' f_arg opt_block_args_tail */ -#line 4197 "mrbgems/mruby-compiler/core/parse.y" +#line 4195 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 10331 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10329 "mrbgems/mruby-compiler/core/y.tab.c" break; case 382: /* block_param: f_rest_arg opt_block_args_tail */ -#line 4201 "mrbgems/mruby-compiler/core/parse.y" +#line 4199 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, 0, (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 10339 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10337 "mrbgems/mruby-compiler/core/y.tab.c" break; case 383: /* block_param: f_rest_arg ',' f_arg opt_block_args_tail */ -#line 4205 "mrbgems/mruby-compiler/core/parse.y" +#line 4203 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 10347 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10345 "mrbgems/mruby-compiler/core/y.tab.c" break; case 384: /* block_param: block_args_tail */ -#line 4209 "mrbgems/mruby-compiler/core/parse.y" +#line 4207 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, 0, 0, 0, (yyvsp[0].nd)); } -#line 10355 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10353 "mrbgems/mruby-compiler/core/y.tab.c" break; case 385: /* opt_block_param: none */ -#line 4215 "mrbgems/mruby-compiler/core/parse.y" +#line 4213 "mrbgems/mruby-compiler/core/parse.y" { local_add_blk(p); (yyval.nd) = 0; } -#line 10364 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10362 "mrbgems/mruby-compiler/core/y.tab.c" break; case 386: /* opt_block_param: block_param_def */ -#line 4220 "mrbgems/mruby-compiler/core/parse.y" +#line 4218 "mrbgems/mruby-compiler/core/parse.y" { p->cmd_start = TRUE; (yyval.nd) = (yyvsp[0].nd); } -#line 10373 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10371 "mrbgems/mruby-compiler/core/y.tab.c" break; case 387: /* $@25: %empty */ -#line 4226 "mrbgems/mruby-compiler/core/parse.y" +#line 4224 "mrbgems/mruby-compiler/core/parse.y" {local_add_blk(p);} -#line 10379 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10377 "mrbgems/mruby-compiler/core/y.tab.c" break; case 388: /* block_param_def: '|' $@25 opt_bv_decl '|' */ -#line 4227 "mrbgems/mruby-compiler/core/parse.y" +#line 4225 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = 0; } -#line 10387 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10385 "mrbgems/mruby-compiler/core/y.tab.c" break; case 389: /* block_param_def: "||" */ -#line 4231 "mrbgems/mruby-compiler/core/parse.y" +#line 4229 "mrbgems/mruby-compiler/core/parse.y" { local_add_blk(p); (yyval.nd) = 0; } -#line 10396 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10394 "mrbgems/mruby-compiler/core/y.tab.c" break; case 390: /* block_param_def: '|' block_param opt_bv_decl '|' */ -#line 4236 "mrbgems/mruby-compiler/core/parse.y" +#line 4234 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-2].nd); } -#line 10404 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10402 "mrbgems/mruby-compiler/core/y.tab.c" break; case 391: /* opt_bv_decl: opt_nl */ -#line 4243 "mrbgems/mruby-compiler/core/parse.y" +#line 4241 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = 0; } -#line 10412 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10410 "mrbgems/mruby-compiler/core/y.tab.c" break; case 392: /* opt_bv_decl: opt_nl ';' bv_decls opt_nl */ -#line 4247 "mrbgems/mruby-compiler/core/parse.y" +#line 4245 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = 0; } -#line 10420 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10418 "mrbgems/mruby-compiler/core/y.tab.c" break; case 395: /* bvar: "local variable or method" */ -#line 4257 "mrbgems/mruby-compiler/core/parse.y" +#line 4255 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, (yyvsp[0].id)); new_bv(p, (yyvsp[0].id)); } -#line 10429 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10427 "mrbgems/mruby-compiler/core/y.tab.c" break; case 397: /* f_larglist: '(' f_args opt_bv_decl ')' */ -#line 4265 "mrbgems/mruby-compiler/core/parse.y" +#line 4263 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-2].nd); } -#line 10437 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10435 "mrbgems/mruby-compiler/core/y.tab.c" break; case 398: /* f_larglist: f_args */ -#line 4269 "mrbgems/mruby-compiler/core/parse.y" +#line 4267 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 10445 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10443 "mrbgems/mruby-compiler/core/y.tab.c" break; case 399: /* lambda_body: tLAMBEG compstmt '}' */ -#line 4275 "mrbgems/mruby-compiler/core/parse.y" +#line 4273 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 10453 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10451 "mrbgems/mruby-compiler/core/y.tab.c" break; case 400: /* lambda_body: "'do' for lambda" bodystmt "'end'" */ -#line 4279 "mrbgems/mruby-compiler/core/parse.y" +#line 4277 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 10461 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10459 "mrbgems/mruby-compiler/core/y.tab.c" break; case 401: /* @26: %empty */ -#line 4285 "mrbgems/mruby-compiler/core/parse.y" +#line 4283 "mrbgems/mruby-compiler/core/parse.y" { local_nest(p); nvars_nest(p); (yyval.num) = p->lineno; } -#line 10471 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10469 "mrbgems/mruby-compiler/core/y.tab.c" break; case 402: /* do_block: "'do' for block" @26 opt_block_param bodystmt "'end'" */ -#line 4293 "mrbgems/mruby-compiler/core/parse.y" +#line 4291 "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 10482 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10480 "mrbgems/mruby-compiler/core/y.tab.c" break; case 403: /* block_call: command do_block */ -#line 4302 "mrbgems/mruby-compiler/core/parse.y" +#line 4300 "mrbgems/mruby-compiler/core/parse.y" { if (node_to_type((yyvsp[-1].nd)->car) == NODE_YIELD) { yyerror(&(yylsp[-1]), p, "block given to yield"); @@ -10492,159 +10490,159 @@ yyreduce: } (yyval.nd) = (yyvsp[-1].nd); } -#line 10496 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10494 "mrbgems/mruby-compiler/core/y.tab.c" break; case 404: /* block_call: block_call call_op2 operation2 opt_paren_args */ -#line 4312 "mrbgems/mruby-compiler/core/parse.y" +#line 4310 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num)); } -#line 10504 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10502 "mrbgems/mruby-compiler/core/y.tab.c" break; case 405: /* block_call: block_call call_op2 operation2 opt_paren_args brace_block */ -#line 4316 "mrbgems/mruby-compiler/core/parse.y" +#line 4314 "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 10513 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10511 "mrbgems/mruby-compiler/core/y.tab.c" break; case 406: /* block_call: block_call call_op2 operation2 command_args do_block */ -#line 4321 "mrbgems/mruby-compiler/core/parse.y" +#line 4319 "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 10522 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10520 "mrbgems/mruby-compiler/core/y.tab.c" break; case 407: /* method_call: operation paren_args */ -#line 4328 "mrbgems/mruby-compiler/core/parse.y" +#line 4326 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_fcall(p, (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 10530 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10528 "mrbgems/mruby-compiler/core/y.tab.c" break; case 408: /* method_call: primary_value call_op operation2 opt_paren_args */ -#line 4332 "mrbgems/mruby-compiler/core/parse.y" +#line 4330 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num)); } -#line 10538 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10536 "mrbgems/mruby-compiler/core/y.tab.c" break; case 409: /* method_call: primary_value "::" operation2 paren_args */ -#line 4336 "mrbgems/mruby-compiler/core/parse.y" +#line 4334 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), tCOLON2); } -#line 10546 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10544 "mrbgems/mruby-compiler/core/y.tab.c" break; case 410: /* method_call: primary_value "::" operation3 */ -#line 4340 "mrbgems/mruby-compiler/core/parse.y" +#line 4338 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2); } -#line 10554 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10552 "mrbgems/mruby-compiler/core/y.tab.c" break; case 411: /* method_call: primary_value call_op paren_args */ -#line 4344 "mrbgems/mruby-compiler/core/parse.y" +#line 4342 "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 10562 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10560 "mrbgems/mruby-compiler/core/y.tab.c" break; case 412: /* method_call: primary_value "::" paren_args */ -#line 4348 "mrbgems/mruby-compiler/core/parse.y" +#line 4346 "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 10570 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10568 "mrbgems/mruby-compiler/core/y.tab.c" break; case 413: /* method_call: "'super'" paren_args */ -#line 4352 "mrbgems/mruby-compiler/core/parse.y" +#line 4350 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_super(p, (yyvsp[0].nd)); } -#line 10578 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10576 "mrbgems/mruby-compiler/core/y.tab.c" break; case 414: /* method_call: "'super'" */ -#line 4356 "mrbgems/mruby-compiler/core/parse.y" +#line 4354 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_zsuper(p); } -#line 10586 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10584 "mrbgems/mruby-compiler/core/y.tab.c" break; case 415: /* method_call: primary_value '[' opt_call_args ']' */ -#line 4360 "mrbgems/mruby-compiler/core/parse.y" +#line 4358 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.'); } -#line 10594 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10592 "mrbgems/mruby-compiler/core/y.tab.c" break; case 416: /* @27: %empty */ -#line 4366 "mrbgems/mruby-compiler/core/parse.y" +#line 4364 "mrbgems/mruby-compiler/core/parse.y" { local_nest(p); nvars_nest(p); (yyval.num) = p->lineno; } -#line 10604 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10602 "mrbgems/mruby-compiler/core/y.tab.c" break; case 417: /* brace_block: '{' @27 opt_block_param compstmt '}' */ -#line 4373 "mrbgems/mruby-compiler/core/parse.y" +#line 4371 "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 10615 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10613 "mrbgems/mruby-compiler/core/y.tab.c" break; case 418: /* @28: %empty */ -#line 4380 "mrbgems/mruby-compiler/core/parse.y" +#line 4378 "mrbgems/mruby-compiler/core/parse.y" { local_nest(p); nvars_nest(p); (yyval.num) = p->lineno; } -#line 10625 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10623 "mrbgems/mruby-compiler/core/y.tab.c" break; case 419: /* brace_block: "'do'" @28 opt_block_param bodystmt "'end'" */ -#line 4387 "mrbgems/mruby-compiler/core/parse.y" +#line 4385 "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 10636 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10634 "mrbgems/mruby-compiler/core/y.tab.c" break; case 420: /* case_body: "'when'" args then compstmt cases */ -#line 4398 "mrbgems/mruby-compiler/core/parse.y" +#line 4396 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(cons((yyvsp[-3].nd), (yyvsp[-1].nd)), (yyvsp[0].nd)); } -#line 10644 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10642 "mrbgems/mruby-compiler/core/y.tab.c" break; case 421: /* cases: opt_else */ -#line 4404 "mrbgems/mruby-compiler/core/parse.y" +#line 4402 "mrbgems/mruby-compiler/core/parse.y" { if ((yyvsp[0].nd)) { (yyval.nd) = cons(cons(0, (yyvsp[0].nd)), 0); @@ -10653,155 +10651,155 @@ yyreduce: (yyval.nd) = 0; } } -#line 10657 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10655 "mrbgems/mruby-compiler/core/y.tab.c" break; case 423: /* opt_rescue: "'rescue'" exc_list exc_var then compstmt opt_rescue */ -#line 4418 "mrbgems/mruby-compiler/core/parse.y" +#line 4416 "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 10666 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10664 "mrbgems/mruby-compiler/core/y.tab.c" break; case 425: /* exc_list: arg */ -#line 4426 "mrbgems/mruby-compiler/core/parse.y" +#line 4424 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10674 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10672 "mrbgems/mruby-compiler/core/y.tab.c" break; case 428: /* exc_var: "=>" lhs */ -#line 4434 "mrbgems/mruby-compiler/core/parse.y" +#line 4432 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 10682 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10680 "mrbgems/mruby-compiler/core/y.tab.c" break; case 430: /* opt_ensure: "'ensure'" compstmt */ -#line 4441 "mrbgems/mruby-compiler/core/parse.y" +#line 4439 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 10690 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10688 "mrbgems/mruby-compiler/core/y.tab.c" break; case 437: /* string: string string_fragment */ -#line 4455 "mrbgems/mruby-compiler/core/parse.y" +#line 4453 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = append((yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 10698 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10696 "mrbgems/mruby-compiler/core/y.tab.c" break; case 438: /* string_fragment: "character literal" */ -#line 4461 "mrbgems/mruby-compiler/core/parse.y" +#line 4459 "mrbgems/mruby-compiler/core/parse.y" { /* tCHAR is (len . str), wrap as cons list */ (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10707 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10705 "mrbgems/mruby-compiler/core/y.tab.c" break; case 439: /* string_fragment: tSTRING */ -#line 4466 "mrbgems/mruby-compiler/core/parse.y" +#line 4464 "mrbgems/mruby-compiler/core/parse.y" { /* tSTRING is (len . str), wrap as cons list */ (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10716 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10714 "mrbgems/mruby-compiler/core/y.tab.c" break; case 440: /* string_fragment: "string literal" tSTRING */ -#line 4471 "mrbgems/mruby-compiler/core/parse.y" +#line 4469 "mrbgems/mruby-compiler/core/parse.y" { /* $2 is (len . str), wrap as cons list */ (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10725 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10723 "mrbgems/mruby-compiler/core/y.tab.c" break; case 441: /* string_fragment: "string literal" string_rep tSTRING */ -#line 4476 "mrbgems/mruby-compiler/core/parse.y" +#line 4474 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 10733 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10731 "mrbgems/mruby-compiler/core/y.tab.c" break; case 443: /* string_rep: string_rep string_interp */ -#line 4483 "mrbgems/mruby-compiler/core/parse.y" +#line 4481 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = append((yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 10741 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10739 "mrbgems/mruby-compiler/core/y.tab.c" break; case 444: /* string_interp: tSTRING_MID */ -#line 4489 "mrbgems/mruby-compiler/core/parse.y" +#line 4487 "mrbgems/mruby-compiler/core/parse.y" { /* $1 is already in (len . str) format */ (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10750 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10748 "mrbgems/mruby-compiler/core/y.tab.c" break; case 445: /* @29: %empty */ -#line 4494 "mrbgems/mruby-compiler/core/parse.y" +#line 4492 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push_strterm(p); } -#line 10758 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10756 "mrbgems/mruby-compiler/core/y.tab.c" break; case 446: /* string_interp: tSTRING_PART @29 compstmt '}' */ -#line 4499 "mrbgems/mruby-compiler/core/parse.y" +#line 4497 "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 10769 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10767 "mrbgems/mruby-compiler/core/y.tab.c" break; case 447: /* string_interp: tLITERAL_DELIM */ -#line 4506 "mrbgems/mruby-compiler/core/parse.y" +#line 4504 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1(new_literal_delim(p)); } -#line 10777 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10775 "mrbgems/mruby-compiler/core/y.tab.c" break; case 448: /* string_interp: tHD_LITERAL_DELIM heredoc_bodies */ -#line 4510 "mrbgems/mruby-compiler/core/parse.y" +#line 4508 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1(new_literal_delim(p)); } -#line 10785 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10783 "mrbgems/mruby-compiler/core/y.tab.c" break; case 449: /* xstring: tXSTRING_BEG tXSTRING */ -#line 4516 "mrbgems/mruby-compiler/core/parse.y" +#line 4514 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons((yyvsp[0].nd), (node*)NULL); } -#line 10793 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10791 "mrbgems/mruby-compiler/core/y.tab.c" break; case 450: /* xstring: tXSTRING_BEG string_rep tXSTRING */ -#line 4520 "mrbgems/mruby-compiler/core/parse.y" +#line 4518 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 10801 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10799 "mrbgems/mruby-compiler/core/y.tab.c" break; case 451: /* regexp: tREGEXP_BEG tREGEXP */ -#line 4526 "mrbgems/mruby-compiler/core/parse.y" +#line 4524 "mrbgems/mruby-compiler/core/parse.y" { node *data = (yyvsp[0].nd); /* ((len . pattern) . (flags . encoding)) */ const char *flags = (const char*)data->cdr->car; @@ -10810,11 +10808,11 @@ yyreduce: node *pattern_list = cons(data->car, (node*)NULL); (yyval.nd) = new_dregx(p, pattern_list, flags, encoding); } -#line 10814 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10812 "mrbgems/mruby-compiler/core/y.tab.c" break; case 452: /* regexp: tREGEXP_BEG string_rep tREGEXP */ -#line 4535 "mrbgems/mruby-compiler/core/parse.y" +#line 4533 "mrbgems/mruby-compiler/core/parse.y" { node *data = (yyvsp[0].nd); /* ((len . pattern) . (flags . encoding)) */ const char *flags = (const char*)data->cdr->car; @@ -10823,47 +10821,47 @@ yyreduce: node *complete_list = push((yyvsp[-1].nd), data->car); (yyval.nd) = new_dregx(p, complete_list, flags, encoding); } -#line 10827 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10825 "mrbgems/mruby-compiler/core/y.tab.c" break; case 456: /* heredoc_body: tHEREDOC_END */ -#line 4553 "mrbgems/mruby-compiler/core/parse.y" +#line 4551 "mrbgems/mruby-compiler/core/parse.y" { parser_heredoc_info *info = parsing_heredoc_info(p); info->doc = push(info->doc, cons(int_to_node(0), (node*)strndup("", 0))); heredoc_end(p); } -#line 10837 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10835 "mrbgems/mruby-compiler/core/y.tab.c" break; case 457: /* heredoc_body: heredoc_string_rep tHEREDOC_END */ -#line 4559 "mrbgems/mruby-compiler/core/parse.y" +#line 4557 "mrbgems/mruby-compiler/core/parse.y" { heredoc_end(p); } -#line 10845 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10843 "mrbgems/mruby-compiler/core/y.tab.c" break; case 460: /* heredoc_string_interp: tHD_STRING_MID */ -#line 4569 "mrbgems/mruby-compiler/core/parse.y" +#line 4567 "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 10855 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10853 "mrbgems/mruby-compiler/core/y.tab.c" break; case 461: /* @30: %empty */ -#line 4575 "mrbgems/mruby-compiler/core/parse.y" +#line 4573 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push_strterm(p); } -#line 10863 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10861 "mrbgems/mruby-compiler/core/y.tab.c" break; case 462: /* heredoc_string_interp: tHD_STRING_PART @30 compstmt '}' */ -#line 4580 "mrbgems/mruby-compiler/core/parse.y" +#line 4578 "mrbgems/mruby-compiler/core/parse.y" { pop_strterm(p, (yyvsp[-2].nd)); parser_heredoc_info *info = parsing_heredoc_info(p); @@ -10871,37 +10869,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 10875 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10873 "mrbgems/mruby-compiler/core/y.tab.c" break; case 463: /* words: tWORDS_BEG tSTRING */ -#line 4590 "mrbgems/mruby-compiler/core/parse.y" +#line 4588 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_words(p, list1((yyvsp[0].nd))); } -#line 10883 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10881 "mrbgems/mruby-compiler/core/y.tab.c" break; case 464: /* words: tWORDS_BEG string_rep tSTRING */ -#line 4594 "mrbgems/mruby-compiler/core/parse.y" +#line 4592 "mrbgems/mruby-compiler/core/parse.y" { node *n = (yyvsp[-1].nd); n = push(n, (yyvsp[0].nd)); (yyval.nd) = new_words(p, n); } -#line 10893 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10891 "mrbgems/mruby-compiler/core/y.tab.c" break; case 465: /* symbol: basic_symbol */ -#line 4603 "mrbgems/mruby-compiler/core/parse.y" +#line 4601 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_sym(p, (yyvsp[0].id)); } -#line 10901 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10899 "mrbgems/mruby-compiler/core/y.tab.c" break; case 466: /* symbol: "symbol" "string literal" string_rep tSTRING */ -#line 4607 "mrbgems/mruby-compiler/core/parse.y" +#line 4605 "mrbgems/mruby-compiler/core/parse.y" { node *n = (yyvsp[-1].nd); p->lstate = EXPR_ENDARG; @@ -10913,183 +10911,183 @@ yyreduce: } (yyval.nd) = new_dsym(p, new_str(p, n)); } -#line 10917 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10915 "mrbgems/mruby-compiler/core/y.tab.c" break; case 467: /* symbol: "symbol" "numbered parameter" */ -#line 4619 "mrbgems/mruby-compiler/core/parse.y" +#line 4617 "mrbgems/mruby-compiler/core/parse.y" { mrb_sym sym = intern_numparam((yyvsp[0].num)); (yyval.nd) = new_sym(p, sym); } -#line 10926 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10924 "mrbgems/mruby-compiler/core/y.tab.c" break; case 468: /* basic_symbol: "symbol" sym */ -#line 4626 "mrbgems/mruby-compiler/core/parse.y" +#line 4624 "mrbgems/mruby-compiler/core/parse.y" { p->lstate = EXPR_END; (yyval.id) = (yyvsp[0].id); } -#line 10935 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10933 "mrbgems/mruby-compiler/core/y.tab.c" break; case 473: /* sym: tSTRING */ -#line 4637 "mrbgems/mruby-compiler/core/parse.y" +#line 4635 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = new_strsym(p, (yyvsp[0].nd)); } -#line 10943 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10941 "mrbgems/mruby-compiler/core/y.tab.c" break; case 474: /* sym: "string literal" tSTRING */ -#line 4641 "mrbgems/mruby-compiler/core/parse.y" +#line 4639 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = new_strsym(p, (yyvsp[0].nd)); } -#line 10951 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10949 "mrbgems/mruby-compiler/core/y.tab.c" break; case 475: /* symbols: tSYMBOLS_BEG tSTRING */ -#line 4647 "mrbgems/mruby-compiler/core/parse.y" +#line 4645 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_symbols(p, list1((yyvsp[0].nd))); } -#line 10959 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10957 "mrbgems/mruby-compiler/core/y.tab.c" break; case 476: /* symbols: tSYMBOLS_BEG string_rep tSTRING */ -#line 4651 "mrbgems/mruby-compiler/core/parse.y" +#line 4649 "mrbgems/mruby-compiler/core/parse.y" { node *n = (yyvsp[-1].nd); n = push(n, (yyvsp[0].nd)); (yyval.nd) = new_symbols(p, n); } -#line 10969 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10967 "mrbgems/mruby-compiler/core/y.tab.c" break; case 479: /* numeric: tUMINUS_NUM "integer literal" */ -#line 4661 "mrbgems/mruby-compiler/core/parse.y" +#line 4659 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_negate(p, (yyvsp[0].nd)); } -#line 10977 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10975 "mrbgems/mruby-compiler/core/y.tab.c" break; case 480: /* numeric: tUMINUS_NUM "float literal" */ -#line 4665 "mrbgems/mruby-compiler/core/parse.y" +#line 4663 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_negate(p, (yyvsp[0].nd)); } -#line 10985 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10983 "mrbgems/mruby-compiler/core/y.tab.c" break; case 481: /* variable: "local variable or method" */ -#line 4671 "mrbgems/mruby-compiler/core/parse.y" +#line 4669 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_lvar(p, (yyvsp[0].id)); } -#line 10993 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10991 "mrbgems/mruby-compiler/core/y.tab.c" break; case 482: /* variable: "instance variable" */ -#line 4675 "mrbgems/mruby-compiler/core/parse.y" +#line 4673 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_ivar(p, (yyvsp[0].id)); } -#line 11001 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10999 "mrbgems/mruby-compiler/core/y.tab.c" break; case 483: /* variable: "global variable" */ -#line 4679 "mrbgems/mruby-compiler/core/parse.y" +#line 4677 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_gvar(p, (yyvsp[0].id)); } -#line 11009 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11007 "mrbgems/mruby-compiler/core/y.tab.c" break; case 484: /* variable: "class variable" */ -#line 4683 "mrbgems/mruby-compiler/core/parse.y" +#line 4681 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_cvar(p, (yyvsp[0].id)); } -#line 11017 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11015 "mrbgems/mruby-compiler/core/y.tab.c" break; case 485: /* variable: "constant" */ -#line 4687 "mrbgems/mruby-compiler/core/parse.y" +#line 4685 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_const(p, (yyvsp[0].id)); } -#line 11025 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11023 "mrbgems/mruby-compiler/core/y.tab.c" break; case 486: /* var_lhs: variable */ -#line 4693 "mrbgems/mruby-compiler/core/parse.y" +#line 4691 "mrbgems/mruby-compiler/core/parse.y" { assignable(p, (yyvsp[0].nd)); } -#line 11033 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11031 "mrbgems/mruby-compiler/core/y.tab.c" break; case 487: /* var_lhs: "numbered parameter" */ -#line 4697 "mrbgems/mruby-compiler/core/parse.y" +#line 4695 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[0]), p, "can't assign to numbered parameter"); } -#line 11041 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11039 "mrbgems/mruby-compiler/core/y.tab.c" break; case 488: /* var_ref: variable */ -#line 4703 "mrbgems/mruby-compiler/core/parse.y" +#line 4701 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = var_reference(p, (yyvsp[0].nd)); } -#line 11049 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11047 "mrbgems/mruby-compiler/core/y.tab.c" break; case 489: /* var_ref: "numbered parameter" */ -#line 4707 "mrbgems/mruby-compiler/core/parse.y" +#line 4705 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_nvar(p, (yyvsp[0].num)); } -#line 11057 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11055 "mrbgems/mruby-compiler/core/y.tab.c" break; case 490: /* var_ref: "'nil'" */ -#line 4711 "mrbgems/mruby-compiler/core/parse.y" +#line 4709 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_nil(p); } -#line 11065 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11063 "mrbgems/mruby-compiler/core/y.tab.c" break; case 491: /* var_ref: "'self'" */ -#line 4715 "mrbgems/mruby-compiler/core/parse.y" +#line 4713 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_self(p); } -#line 11073 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11071 "mrbgems/mruby-compiler/core/y.tab.c" break; case 492: /* var_ref: "'true'" */ -#line 4719 "mrbgems/mruby-compiler/core/parse.y" +#line 4717 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_true(p); } -#line 11081 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11079 "mrbgems/mruby-compiler/core/y.tab.c" break; case 493: /* var_ref: "'false'" */ -#line 4723 "mrbgems/mruby-compiler/core/parse.y" +#line 4721 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_false(p); } -#line 11089 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11087 "mrbgems/mruby-compiler/core/y.tab.c" break; case 494: /* var_ref: "'__FILE__'" */ -#line 4727 "mrbgems/mruby-compiler/core/parse.y" +#line 4725 "mrbgems/mruby-compiler/core/parse.y" { const char *fn = mrb_sym_name_len(p->mrb, p->filename_sym, NULL); if (!fn) { @@ -11097,686 +11095,686 @@ yyreduce: } (yyval.nd) = new_str(p, cons(cons(int_to_node(strlen(fn)), (node*)fn), (node*)NULL)); } -#line 11101 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11099 "mrbgems/mruby-compiler/core/y.tab.c" break; case 495: /* var_ref: "'__LINE__'" */ -#line 4735 "mrbgems/mruby-compiler/core/parse.y" +#line 4733 "mrbgems/mruby-compiler/core/parse.y" { char buf[16]; dump_int(p->lineno, buf); (yyval.nd) = new_int(p, buf, 10, 0); } -#line 11112 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11110 "mrbgems/mruby-compiler/core/y.tab.c" break; case 496: /* var_ref: "'__ENCODING__'" */ -#line 4742 "mrbgems/mruby-compiler/core/parse.y" +#line 4740 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_fcall(p, MRB_SYM_2(p->mrb, __ENCODING__), 0); } -#line 11120 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11118 "mrbgems/mruby-compiler/core/y.tab.c" break; case 499: /* superclass: %empty */ -#line 4752 "mrbgems/mruby-compiler/core/parse.y" +#line 4750 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = 0; } -#line 11128 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11126 "mrbgems/mruby-compiler/core/y.tab.c" break; case 500: /* $@31: %empty */ -#line 4756 "mrbgems/mruby-compiler/core/parse.y" +#line 4754 "mrbgems/mruby-compiler/core/parse.y" { p->lstate = EXPR_BEG; p->cmd_start = TRUE; } -#line 11137 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11135 "mrbgems/mruby-compiler/core/y.tab.c" break; case 501: /* superclass: '<' $@31 expr_value term */ -#line 4761 "mrbgems/mruby-compiler/core/parse.y" +#line 4759 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 11145 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11143 "mrbgems/mruby-compiler/core/y.tab.c" break; case 504: /* f_arglist_paren: '(' f_args rparen */ -#line 4777 "mrbgems/mruby-compiler/core/parse.y" +#line 4775 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); p->lstate = EXPR_BEG; p->cmd_start = TRUE; } -#line 11155 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11153 "mrbgems/mruby-compiler/core/y.tab.c" break; case 505: /* f_arglist_paren: '(' f_arg ',' tBDOT3 rparen */ -#line 4783 "mrbgems/mruby-compiler/core/parse.y" +#line 4781 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_dots(p, (yyvsp[-3].nd)); } -#line 11163 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11161 "mrbgems/mruby-compiler/core/y.tab.c" break; case 506: /* f_arglist_paren: '(' tBDOT3 rparen */ -#line 4787 "mrbgems/mruby-compiler/core/parse.y" +#line 4785 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_dots(p, 0); } -#line 11171 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11169 "mrbgems/mruby-compiler/core/y.tab.c" break; case 508: /* f_arglist: f_args term */ -#line 4794 "mrbgems/mruby-compiler/core/parse.y" +#line 4792 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 11179 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11177 "mrbgems/mruby-compiler/core/y.tab.c" break; case 509: /* f_arglist: f_arg ',' tBDOT3 term */ -#line 4798 "mrbgems/mruby-compiler/core/parse.y" +#line 4796 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_dots(p, (yyvsp[-3].nd)); } -#line 11187 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11185 "mrbgems/mruby-compiler/core/y.tab.c" break; case 510: /* f_arglist: "..." term */ -#line 4802 "mrbgems/mruby-compiler/core/parse.y" +#line 4800 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_dots(p, 0); } -#line 11195 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11193 "mrbgems/mruby-compiler/core/y.tab.c" break; case 511: /* f_label: "local variable or method" "label" */ -#line 4808 "mrbgems/mruby-compiler/core/parse.y" +#line 4806 "mrbgems/mruby-compiler/core/parse.y" { local_nest(p); } -#line 11203 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11201 "mrbgems/mruby-compiler/core/y.tab.c" break; case 512: /* f_label: "numbered parameter" "label" */ -#line 4812 "mrbgems/mruby-compiler/core/parse.y" +#line 4810 "mrbgems/mruby-compiler/core/parse.y" { local_nest(p); } -#line 11211 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11209 "mrbgems/mruby-compiler/core/y.tab.c" break; case 513: /* f_kw: f_label arg */ -#line 4818 "mrbgems/mruby-compiler/core/parse.y" +#line 4816 "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 11221 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11219 "mrbgems/mruby-compiler/core/y.tab.c" break; case 514: /* f_kw: f_label */ -#line 4824 "mrbgems/mruby-compiler/core/parse.y" +#line 4822 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_kw_arg(p, (yyvsp[0].id), 0); local_unnest(p); } -#line 11230 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11228 "mrbgems/mruby-compiler/core/y.tab.c" break; case 515: /* f_block_kw: f_label primary_value */ -#line 4831 "mrbgems/mruby-compiler/core/parse.y" +#line 4829 "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 11240 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11238 "mrbgems/mruby-compiler/core/y.tab.c" break; case 516: /* f_block_kw: f_label */ -#line 4837 "mrbgems/mruby-compiler/core/parse.y" +#line 4835 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_kw_arg(p, (yyvsp[0].id), 0); local_unnest(p); } -#line 11249 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11247 "mrbgems/mruby-compiler/core/y.tab.c" break; case 517: /* f_block_kwarg: f_block_kw */ -#line 4844 "mrbgems/mruby-compiler/core/parse.y" +#line 4842 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 11257 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11255 "mrbgems/mruby-compiler/core/y.tab.c" break; case 518: /* f_block_kwarg: f_block_kwarg ',' f_block_kw */ -#line 4848 "mrbgems/mruby-compiler/core/parse.y" +#line 4846 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 11265 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11263 "mrbgems/mruby-compiler/core/y.tab.c" break; case 519: /* f_kwarg: f_kw */ -#line 4854 "mrbgems/mruby-compiler/core/parse.y" +#line 4852 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 11273 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11271 "mrbgems/mruby-compiler/core/y.tab.c" break; case 520: /* f_kwarg: f_kwarg ',' f_kw */ -#line 4858 "mrbgems/mruby-compiler/core/parse.y" +#line 4856 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 11281 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11279 "mrbgems/mruby-compiler/core/y.tab.c" break; case 523: /* f_kwrest: kwrest_mark "local variable or method" */ -#line 4868 "mrbgems/mruby-compiler/core/parse.y" +#line 4866 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_kw_rest_args(p, (yyvsp[0].id)); } -#line 11289 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11287 "mrbgems/mruby-compiler/core/y.tab.c" break; case 524: /* f_kwrest: kwrest_mark */ -#line 4872 "mrbgems/mruby-compiler/core/parse.y" +#line 4870 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_kw_rest_args(p, 0); } -#line 11297 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11295 "mrbgems/mruby-compiler/core/y.tab.c" break; case 525: /* args_tail: f_kwarg ',' f_kwrest opt_f_block_arg */ -#line 4878 "mrbgems/mruby-compiler/core/parse.y" +#line 4876 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, (yyvsp[-3].nd), (yyvsp[-1].nd), (yyvsp[0].id)); } -#line 11305 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11303 "mrbgems/mruby-compiler/core/y.tab.c" break; case 526: /* args_tail: f_kwarg opt_f_block_arg */ -#line 4882 "mrbgems/mruby-compiler/core/parse.y" +#line 4880 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, (yyvsp[-1].nd), 0, (yyvsp[0].id)); } -#line 11313 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11311 "mrbgems/mruby-compiler/core/y.tab.c" break; case 527: /* args_tail: f_kwrest opt_f_block_arg */ -#line 4886 "mrbgems/mruby-compiler/core/parse.y" +#line 4884 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, 0, (yyvsp[-1].nd), (yyvsp[0].id)); } -#line 11321 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11319 "mrbgems/mruby-compiler/core/y.tab.c" break; case 528: /* args_tail: f_block_arg */ -#line 4890 "mrbgems/mruby-compiler/core/parse.y" +#line 4888 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, 0, 0, (yyvsp[0].id)); } -#line 11329 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11327 "mrbgems/mruby-compiler/core/y.tab.c" break; case 529: /* opt_args_tail: ',' args_tail */ -#line 4896 "mrbgems/mruby-compiler/core/parse.y" +#line 4894 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 11337 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11335 "mrbgems/mruby-compiler/core/y.tab.c" break; case 530: /* opt_args_tail: %empty */ -#line 4900 "mrbgems/mruby-compiler/core/parse.y" +#line 4898 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, 0, 0, 0); } -#line 11345 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11343 "mrbgems/mruby-compiler/core/y.tab.c" break; case 531: /* f_args: f_arg ',' f_optarg ',' f_rest_arg opt_args_tail */ -#line 4906 "mrbgems/mruby-compiler/core/parse.y" +#line 4904 "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 11353 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11351 "mrbgems/mruby-compiler/core/y.tab.c" break; case 532: /* f_args: f_arg ',' f_optarg ',' f_rest_arg ',' f_arg opt_args_tail */ -#line 4910 "mrbgems/mruby-compiler/core/parse.y" +#line 4908 "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 11361 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11359 "mrbgems/mruby-compiler/core/y.tab.c" break; case 533: /* f_args: f_arg ',' f_optarg opt_args_tail */ -#line 4914 "mrbgems/mruby-compiler/core/parse.y" +#line 4912 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-3].nd), (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd)); } -#line 11369 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11367 "mrbgems/mruby-compiler/core/y.tab.c" break; case 534: /* f_args: f_arg ',' f_optarg ',' f_arg opt_args_tail */ -#line 4918 "mrbgems/mruby-compiler/core/parse.y" +#line 4916 "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 11377 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11375 "mrbgems/mruby-compiler/core/y.tab.c" break; case 535: /* f_args: f_arg ',' f_rest_arg opt_args_tail */ -#line 4922 "mrbgems/mruby-compiler/core/parse.y" +#line 4920 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-3].nd), 0, (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 11385 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11383 "mrbgems/mruby-compiler/core/y.tab.c" break; case 536: /* f_args: f_arg ',' f_rest_arg ',' f_arg opt_args_tail */ -#line 4926 "mrbgems/mruby-compiler/core/parse.y" +#line 4924 "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 11393 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11391 "mrbgems/mruby-compiler/core/y.tab.c" break; case 537: /* f_args: f_arg opt_args_tail */ -#line 4930 "mrbgems/mruby-compiler/core/parse.y" +#line 4928 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-1].nd), 0, 0, 0, (yyvsp[0].nd)); } -#line 11401 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11399 "mrbgems/mruby-compiler/core/y.tab.c" break; case 538: /* f_args: f_optarg ',' f_rest_arg opt_args_tail */ -#line 4934 "mrbgems/mruby-compiler/core/parse.y" +#line 4932 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 11409 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11407 "mrbgems/mruby-compiler/core/y.tab.c" break; case 539: /* f_args: f_optarg ',' f_rest_arg ',' f_arg opt_args_tail */ -#line 4938 "mrbgems/mruby-compiler/core/parse.y" +#line 4936 "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 11417 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11415 "mrbgems/mruby-compiler/core/y.tab.c" break; case 540: /* f_args: f_optarg opt_args_tail */ -#line 4942 "mrbgems/mruby-compiler/core/parse.y" +#line 4940 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd)); } -#line 11425 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11423 "mrbgems/mruby-compiler/core/y.tab.c" break; case 541: /* f_args: f_optarg ',' f_arg opt_args_tail */ -#line 4946 "mrbgems/mruby-compiler/core/parse.y" +#line 4944 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 11433 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11431 "mrbgems/mruby-compiler/core/y.tab.c" break; case 542: /* f_args: f_rest_arg opt_args_tail */ -#line 4950 "mrbgems/mruby-compiler/core/parse.y" +#line 4948 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, 0, (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 11441 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11439 "mrbgems/mruby-compiler/core/y.tab.c" break; case 543: /* f_args: f_rest_arg ',' f_arg opt_args_tail */ -#line 4954 "mrbgems/mruby-compiler/core/parse.y" +#line 4952 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 11449 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11447 "mrbgems/mruby-compiler/core/y.tab.c" break; case 544: /* f_args: args_tail */ -#line 4958 "mrbgems/mruby-compiler/core/parse.y" +#line 4956 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, 0, 0, 0, (yyvsp[0].nd)); } -#line 11457 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11455 "mrbgems/mruby-compiler/core/y.tab.c" break; case 545: /* f_args: %empty */ -#line 4962 "mrbgems/mruby-compiler/core/parse.y" +#line 4960 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, 0); (yyval.nd) = new_args(p, 0, 0, 0, 0, 0); } -#line 11466 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11464 "mrbgems/mruby-compiler/core/y.tab.c" break; case 546: /* f_bad_arg: "constant" */ -#line 4969 "mrbgems/mruby-compiler/core/parse.y" +#line 4967 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[0]), p, "formal argument cannot be a constant"); (yyval.nd) = 0; } -#line 11475 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11473 "mrbgems/mruby-compiler/core/y.tab.c" break; case 547: /* f_bad_arg: "instance variable" */ -#line 4974 "mrbgems/mruby-compiler/core/parse.y" +#line 4972 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[0]), p, "formal argument cannot be an instance variable"); (yyval.nd) = 0; } -#line 11484 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11482 "mrbgems/mruby-compiler/core/y.tab.c" break; case 548: /* f_bad_arg: "global variable" */ -#line 4979 "mrbgems/mruby-compiler/core/parse.y" +#line 4977 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[0]), p, "formal argument cannot be a global variable"); (yyval.nd) = 0; } -#line 11493 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11491 "mrbgems/mruby-compiler/core/y.tab.c" break; case 549: /* f_bad_arg: "class variable" */ -#line 4984 "mrbgems/mruby-compiler/core/parse.y" +#line 4982 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[0]), p, "formal argument cannot be a class variable"); (yyval.nd) = 0; } -#line 11502 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11500 "mrbgems/mruby-compiler/core/y.tab.c" break; case 550: /* f_bad_arg: "numbered parameter" */ -#line 4989 "mrbgems/mruby-compiler/core/parse.y" +#line 4987 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[0]), p, "formal argument cannot be a numbered parameter"); (yyval.nd) = 0; } -#line 11511 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11509 "mrbgems/mruby-compiler/core/y.tab.c" break; case 551: /* f_norm_arg: f_bad_arg */ -#line 4996 "mrbgems/mruby-compiler/core/parse.y" +#line 4994 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = 0; } -#line 11519 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11517 "mrbgems/mruby-compiler/core/y.tab.c" break; case 552: /* f_norm_arg: "local variable or method" */ -#line 5000 "mrbgems/mruby-compiler/core/parse.y" +#line 4998 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, (yyvsp[0].id)); (yyval.id) = (yyvsp[0].id); } -#line 11528 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11526 "mrbgems/mruby-compiler/core/y.tab.c" break; case 553: /* f_arg_item: f_norm_arg */ -#line 5007 "mrbgems/mruby-compiler/core/parse.y" +#line 5005 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_arg(p, (yyvsp[0].id)); } -#line 11536 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11534 "mrbgems/mruby-compiler/core/y.tab.c" break; case 554: /* @32: %empty */ -#line 5011 "mrbgems/mruby-compiler/core/parse.y" +#line 5009 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = local_switch(p); } -#line 11544 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11542 "mrbgems/mruby-compiler/core/y.tab.c" break; case 555: /* f_arg_item: tLPAREN @32 f_margs rparen */ -#line 5015 "mrbgems/mruby-compiler/core/parse.y" +#line 5013 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_masgn_param(p, (yyvsp[-1].nd), p->locals->car); local_resume(p, (yyvsp[-2].nd)); local_add_f(p, 0); } -#line 11554 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11552 "mrbgems/mruby-compiler/core/y.tab.c" break; case 556: /* f_arg: f_arg_item */ -#line 5023 "mrbgems/mruby-compiler/core/parse.y" +#line 5021 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 11562 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11560 "mrbgems/mruby-compiler/core/y.tab.c" break; case 557: /* f_arg: f_arg ',' f_arg_item */ -#line 5027 "mrbgems/mruby-compiler/core/parse.y" +#line 5025 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 11570 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11568 "mrbgems/mruby-compiler/core/y.tab.c" break; case 558: /* f_opt_asgn: "local variable or method" '=' */ -#line 5033 "mrbgems/mruby-compiler/core/parse.y" +#line 5031 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, (yyvsp[-1].id)); local_nest(p); (yyval.id) = (yyvsp[-1].id); } -#line 11580 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11578 "mrbgems/mruby-compiler/core/y.tab.c" break; case 559: /* f_opt: f_opt_asgn arg */ -#line 5041 "mrbgems/mruby-compiler/core/parse.y" +#line 5039 "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 11590 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11588 "mrbgems/mruby-compiler/core/y.tab.c" break; case 560: /* f_block_opt: f_opt_asgn primary_value */ -#line 5049 "mrbgems/mruby-compiler/core/parse.y" +#line 5047 "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 11600 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11598 "mrbgems/mruby-compiler/core/y.tab.c" break; case 561: /* f_block_optarg: f_block_opt */ -#line 5057 "mrbgems/mruby-compiler/core/parse.y" +#line 5055 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 11608 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11606 "mrbgems/mruby-compiler/core/y.tab.c" break; case 562: /* f_block_optarg: f_block_optarg ',' f_block_opt */ -#line 5061 "mrbgems/mruby-compiler/core/parse.y" +#line 5059 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 11616 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11614 "mrbgems/mruby-compiler/core/y.tab.c" break; case 563: /* f_optarg: f_opt */ -#line 5067 "mrbgems/mruby-compiler/core/parse.y" +#line 5065 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 11624 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11622 "mrbgems/mruby-compiler/core/y.tab.c" break; case 564: /* f_optarg: f_optarg ',' f_opt */ -#line 5071 "mrbgems/mruby-compiler/core/parse.y" +#line 5069 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 11632 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11630 "mrbgems/mruby-compiler/core/y.tab.c" break; case 567: /* f_rest_arg: restarg_mark "local variable or method" */ -#line 5081 "mrbgems/mruby-compiler/core/parse.y" +#line 5079 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, (yyvsp[0].id)); (yyval.id) = (yyvsp[0].id); } -#line 11641 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11639 "mrbgems/mruby-compiler/core/y.tab.c" break; case 568: /* f_rest_arg: restarg_mark */ -#line 5086 "mrbgems/mruby-compiler/core/parse.y" +#line 5084 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(mul); local_add_f(p, (yyval.id)); } -#line 11650 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11648 "mrbgems/mruby-compiler/core/y.tab.c" break; case 571: /* f_block_arg: blkarg_mark "local variable or method" */ -#line 5097 "mrbgems/mruby-compiler/core/parse.y" +#line 5095 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = (yyvsp[0].id); } -#line 11658 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11656 "mrbgems/mruby-compiler/core/y.tab.c" break; case 572: /* f_block_arg: blkarg_mark */ -#line 5101 "mrbgems/mruby-compiler/core/parse.y" +#line 5099 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(and); } -#line 11666 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11664 "mrbgems/mruby-compiler/core/y.tab.c" break; case 573: /* opt_f_block_arg: ',' f_block_arg */ -#line 5107 "mrbgems/mruby-compiler/core/parse.y" +#line 5105 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = (yyvsp[0].id); } -#line 11674 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11672 "mrbgems/mruby-compiler/core/y.tab.c" break; case 574: /* opt_f_block_arg: none */ -#line 5111 "mrbgems/mruby-compiler/core/parse.y" +#line 5109 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = 0; } -#line 11682 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11680 "mrbgems/mruby-compiler/core/y.tab.c" break; case 575: /* singleton: var_ref */ -#line 5117 "mrbgems/mruby-compiler/core/parse.y" +#line 5115 "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 11692 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11690 "mrbgems/mruby-compiler/core/y.tab.c" break; case 576: /* $@33: %empty */ -#line 5122 "mrbgems/mruby-compiler/core/parse.y" +#line 5120 "mrbgems/mruby-compiler/core/parse.y" {p->lstate = EXPR_BEG;} -#line 11698 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11696 "mrbgems/mruby-compiler/core/y.tab.c" break; case 577: /* singleton: '(' $@33 expr rparen */ -#line 5123 "mrbgems/mruby-compiler/core/parse.y" +#line 5121 "mrbgems/mruby-compiler/core/parse.y" { prohibit_literals(p, (yyvsp[-1].nd)); (yyval.nd) = (yyvsp[-1].nd); } -#line 11707 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11705 "mrbgems/mruby-compiler/core/y.tab.c" break; case 579: /* assoc_list: assocs trailer */ -#line 5131 "mrbgems/mruby-compiler/core/parse.y" +#line 5129 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 11715 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11713 "mrbgems/mruby-compiler/core/y.tab.c" break; case 580: /* assocs: assoc */ -#line 5137 "mrbgems/mruby-compiler/core/parse.y" +#line 5135 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 11723 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11721 "mrbgems/mruby-compiler/core/y.tab.c" break; case 581: /* assocs: assocs comma assoc */ -#line 5141 "mrbgems/mruby-compiler/core/parse.y" +#line 5139 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 11731 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11729 "mrbgems/mruby-compiler/core/y.tab.c" break; case 582: /* assoc: arg "=>" arg */ -#line 5147 "mrbgems/mruby-compiler/core/parse.y" +#line 5145 "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 11741 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11739 "mrbgems/mruby-compiler/core/y.tab.c" break; case 583: /* assoc: "local variable or method" "label" arg */ -#line 5153 "mrbgems/mruby-compiler/core/parse.y" +#line 5151 "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 11750 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11748 "mrbgems/mruby-compiler/core/y.tab.c" break; case 584: /* assoc: "local variable or method" "label" */ -#line 5158 "mrbgems/mruby-compiler/core/parse.y" +#line 5156 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(new_sym(p, (yyvsp[-1].id)), label_reference(p, (yyvsp[-1].id))); } -#line 11758 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11756 "mrbgems/mruby-compiler/core/y.tab.c" break; case 585: /* assoc: "numbered parameter" "label" */ -#line 5162 "mrbgems/mruby-compiler/core/parse.y" +#line 5160 "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 11767 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11765 "mrbgems/mruby-compiler/core/y.tab.c" break; case 586: /* assoc: "numbered parameter" "label" arg */ -#line 5167 "mrbgems/mruby-compiler/core/parse.y" +#line 5165 "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 11776 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11774 "mrbgems/mruby-compiler/core/y.tab.c" break; case 587: /* assoc: string_fragment "label" arg */ -#line 5172 "mrbgems/mruby-compiler/core/parse.y" +#line 5170 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); if ((yyvsp[-2].nd)->cdr) { @@ -11792,75 +11790,75 @@ yyreduce: (yyval.nd) = cons(new_sym(p, new_strsym(p, (yyvsp[-2].nd)->car)), (yyvsp[0].nd)); } } -#line 11796 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11794 "mrbgems/mruby-compiler/core/y.tab.c" break; case 588: /* assoc: "**" arg */ -#line 5188 "mrbgems/mruby-compiler/core/parse.y" +#line 5186 "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 11805 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11803 "mrbgems/mruby-compiler/core/y.tab.c" break; case 589: /* assoc: "**" */ -#line 5193 "mrbgems/mruby-compiler/core/parse.y" +#line 5191 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(new_kw_rest_args(p, 0), new_lvar(p, intern_op(pow))); } -#line 11813 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11811 "mrbgems/mruby-compiler/core/y.tab.c" break; case 602: /* call_op: '.' */ -#line 5219 "mrbgems/mruby-compiler/core/parse.y" +#line 5217 "mrbgems/mruby-compiler/core/parse.y" { (yyval.num) = '.'; } -#line 11821 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11819 "mrbgems/mruby-compiler/core/y.tab.c" break; case 603: /* call_op: "&." */ -#line 5223 "mrbgems/mruby-compiler/core/parse.y" +#line 5221 "mrbgems/mruby-compiler/core/parse.y" { (yyval.num) = 0; } -#line 11829 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11827 "mrbgems/mruby-compiler/core/y.tab.c" break; case 605: /* call_op2: "::" */ -#line 5230 "mrbgems/mruby-compiler/core/parse.y" +#line 5228 "mrbgems/mruby-compiler/core/parse.y" { (yyval.num) = tCOLON2; } -#line 11837 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11835 "mrbgems/mruby-compiler/core/y.tab.c" break; case 614: /* term: ';' */ -#line 5251 "mrbgems/mruby-compiler/core/parse.y" +#line 5249 "mrbgems/mruby-compiler/core/parse.y" {yyerrok;} -#line 11843 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11841 "mrbgems/mruby-compiler/core/y.tab.c" break; case 616: /* nl: '\n' */ -#line 5256 "mrbgems/mruby-compiler/core/parse.y" +#line 5254 "mrbgems/mruby-compiler/core/parse.y" { p->lineno += (yyvsp[0].num); p->column = 0; } -#line 11852 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11850 "mrbgems/mruby-compiler/core/y.tab.c" break; case 620: /* none: %empty */ -#line 5268 "mrbgems/mruby-compiler/core/parse.y" +#line 5266 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = 0; } -#line 11860 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11858 "mrbgems/mruby-compiler/core/y.tab.c" break; -#line 11864 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11862 "mrbgems/mruby-compiler/core/y.tab.c" default: break; } @@ -12093,7 +12091,7 @@ yyreturnlab: return yyresult; } -#line 5272 "mrbgems/mruby-compiler/core/parse.y" +#line 5270 "mrbgems/mruby-compiler/core/parse.y" #define pylval (*((YYSTYPE*)(p->ylval))) @@ -15015,6 +15013,7 @@ dump_args(mrb_state *mrb, node *n, int offset) * performed at the caller, the string pointer returned as the return * value may become invalid. */ +#if 0 static const char* str_dump(mrb_state *mrb, const char *str, int len) { @@ -15033,6 +15032,8 @@ str_dump(mrb_state *mrb, const char *str, int len) } #endif +#endif + void mrb_parser_dump(mrb_state *mrb, node *tree, int offset) { @@ -15548,19 +15549,11 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset) mrb_parser_dump(mrb, tree, offset+1); break; - case NODE_STR: - printf("NODE_STR %s len %d\n", str_dump(mrb, (char*)tree->car, node_to_int(tree->cdr)), node_to_int(tree->cdr)); - break; - case NODE_DSTR: printf("NODE_DSTR:\n"); dump_recur(mrb, tree, offset+1); break; - case NODE_XSTR: - printf("NODE_XSTR %s len %d\n", str_dump(mrb, (char*)tree->car, node_to_int(tree->cdr)), node_to_int(tree->cdr)); - break; - case NODE_DXSTR: printf("NODE_DXSTR:\n"); dump_recur(mrb, tree, offset+1);