diff options
author | Steve Wills <swills@FreeBSD.org> | 2018-02-16 03:11:46 +0000 |
---|---|---|
committer | Steve Wills <swills@FreeBSD.org> | 2018-02-16 03:11:46 +0000 |
commit | aa5e3913d28b517939c7455cde6c806714551c0f (patch) | |
tree | 3ee5f077c5795c6e2ebef530cdc2583be4948efc /lang | |
parent | c5355726b5c2389ea371952c65565bb66d4fcbf6 (diff) | |
download | ports-aa5e3913d28b517939c7455cde6c806714551c0f.tar.gz ports-aa5e3913d28b517939c7455cde6c806714551c0f.zip |
Notes
Diffstat (limited to 'lang')
-rw-r--r-- | lang/ruby25/files/patch-ext_ripper_ripper.c | 5011 | ||||
-rw-r--r-- | lang/ruby25/files/patch-ext_ripper_ripper.y | 45 | ||||
-rw-r--r-- | lang/ruby25/files/patch-parse.c | 4926 | ||||
-rw-r--r-- | lang/ruby25/files/patch-parse.y | 45 | ||||
-rw-r--r-- | lang/ruby25/files/patch-test_ruby_test__parse.rb | 15 |
5 files changed, 10042 insertions, 0 deletions
diff --git a/lang/ruby25/files/patch-ext_ripper_ripper.c b/lang/ruby25/files/patch-ext_ripper_ripper.c new file mode 100644 index 000000000000..e49be5ef8012 --- /dev/null +++ b/lang/ruby25/files/patch-ext_ripper_ripper.c @@ -0,0 +1,5011 @@ +--- ext/ripper/ripper.c.orig 2017-12-25 07:00:33 UTC ++++ ext/ripper/ripper.c +@@ -1564,61 +1564,61 @@ static const yytype_uint16 yyrline[] = + 1735, 1744, 1753, 1762, 1773, 1774, 1784, 1785, 1795, 1803, + 1811, 1819, 1828, 1836, 1845, 1853, 1862, 1870, 1881, 1882, + 1892, 1900, 1910, 1918, 1928, 1932, 1936, 1944, 1952, 1960, +- 1968, 1972, 1976, 1983, 1991, 1999, 2007, 2015, 2023, 2031, +- 2035, 2039, 2046, 2055, 2058, 2067, 2076, 2087, 2088, 2089, +- 2090, 2095, 2102, 2103, 2106, 2114, 2117, 2125, 2125, 2136, +- 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, +- 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, +- 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2168, +- 2168, 2168, 2169, 2169, 2170, 2170, 2170, 2171, 2171, 2171, +- 2171, 2172, 2172, 2172, 2172, 2173, 2173, 2173, 2174, 2174, +- 2174, 2174, 2175, 2175, 2175, 2175, 2176, 2176, 2176, 2176, +- 2177, 2177, 2177, 2177, 2178, 2178, 2178, 2178, 2179, 2179, +- 2182, 2186, 2190, 2218, 2223, 2228, 2233, 2244, 2249, 2254, +- 2265, 2276, 2280, 2284, 2288, 2292, 2296, 2300, 2304, 2308, +- 2312, 2316, 2320, 2324, 2328, 2329, 2333, 2337, 2341, 2345, +- 2349, 2353, 2357, 2361, 2365, 2369, 2373, 2373, 2378, 2388, +- 2394, 2395, 2396, 2397, 2400, 2404, 2411, 2423, 2424, 2428, +- 2436, 2446, 2454, 2468, 2478, 2479, 2482, 2483, 2484, 2488, +- 2496, 2506, 2515, 2523, 2533, 2542, 2551, 2551, 2563, 2574, +- 2578, 2584, 2592, 2601, 2615, 2631, 2632, 2635, 2649, 2664, +- 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, +- 2685, 2694, 2693, 2720, 2720, 2729, 2733, 2728, 2742, 2750, +- 2759, 2768, 2776, 2785, 2794, 2802, 2811, 2820, 2820, 2825, +- 2829, 2833, 2844, 2845, 2856, 2860, 2872, 2884, 2884, 2884, +- 2896, 2896, 2896, 2908, 2920, 2931, 2933, 2930, 2984, 2983, +- 3011, 3010, 3035, 3034, 3062, 3067, 3061, 3090, 3091, 3090, +- 3118, 3127, 3136, 3145, 3156, 3168, 3174, 3180, 3186, 3192, +- 3198, 3208, 3214, 3220, 3226, 3236, 3242, 3249, 3254, 3255, +- 3262, 3267, 3270, 3271, 3284, 3285, 3295, 3296, 3299, 3306, +- 3316, 3324, 3334, 3342, 3351, 3361, 3369, 3378, 3387, 3397, +- 3405, 3417, 3421, 3425, 3429, 3435, 3440, 3445, 3449, 3453, +- 3457, 3461, 3465, 3473, 3477, 3481, 3485, 3489, 3493, 3497, +- 3501, 3505, 3511, 3512, 3518, 3528, 3537, 3549, 3553, 3563, +- 3570, 3579, 3587, 3593, 3596, 3601, 3604, 3593, 3625, 3633, +- 3639, 3644, 3651, 3650, 3667, 3684, 3688, 3701, 3716, 3727, +- 3726, 3738, 3737, 3748, 3753, 3752, 3764, 3763, 3774, 3783, +- 3792, 3807, 3806, 3822, 3821, 3838, 3839, 3838, 3848, 3849, +- 3848, 3858, 3871, 3872, 3875, 3897, 3900, 3908, 3916, 3919, +- 3923, 3926, 3934, 3937, 3938, 3946, 3949, 3966, 3973, 3974, +- 3984, 3994, 4000, 4006, 4017, 4024, 4034, 4042, 4052, 4063, +- 4070, 4088, 4098, 4109, 4116, 4128, 4135, 4151, 4158, 4169, +- 4176, 4187, 4194, 4235, 4243, 4242, 4260, 4266, 4271, 4275, +- 4279, 4259, 4301, 4309, 4317, 4326, 4329, 4340, 4341, 4342, +- 4343, 4346, 4357, 4358, 4369, 4376, 4383, 4390, 4399, 4400, +- 4401, 4402, 4403, 4406, 4407, 4408, 4409, 4410, 4411, 4412, +- 4415, 4428, 4438, 4442, 4448, 4455, 4465, 4464, 4474, 4483, +- 4493, 4493, 4507, 4511, 4515, 4519, 4525, 4530, 4535, 4539, +- 4543, 4547, 4551, 4555, 4559, 4563, 4567, 4571, 4575, 4579, +- 4583, 4587, 4592, 4598, 4608, 4618, 4628, 4640, 4641, 4648, +- 4657, 4666, 4691, 4698, 4712, 4721, 4731, 4743, 4752, 4763, +- 4771, 4782, 4790, 4800, 4801, 4804, 4813, 4824, 4837, 4850, +- 4858, 4868, 4876, 4886, 4887, 4890, 4903, 4914, 4915, 4918, +- 4935, 4939, 4949, 4959, 4959, 4989, 4990, 5000, 5007, 5031, +- 5043, 5051, 5062, 5076, 5077, 5078, 5081, 5082, 5083, 5084, +- 5087, 5088, 5089, 5092, 5093, 5096, 5100, 5106, 5107, 5113, +- 5114, 5117, 5118, 5121, 5124, 5127, 5128, 5129, 5132, 5133, +- 5136, 5137, 5141 ++ 1968, 1972, 1976, 1983, 1987, 1991, 1999, 2007, 2015, 2023, ++ 2027, 2031, 2038, 2047, 2050, 2059, 2068, 2079, 2080, 2081, ++ 2082, 2087, 2094, 2095, 2098, 2106, 2109, 2117, 2117, 2128, ++ 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, ++ 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, ++ 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2160, ++ 2160, 2160, 2161, 2161, 2162, 2162, 2162, 2163, 2163, 2163, ++ 2163, 2164, 2164, 2164, 2164, 2165, 2165, 2165, 2166, 2166, ++ 2166, 2166, 2167, 2167, 2167, 2167, 2168, 2168, 2168, 2168, ++ 2169, 2169, 2169, 2169, 2170, 2170, 2170, 2170, 2171, 2171, ++ 2174, 2178, 2182, 2210, 2215, 2220, 2225, 2236, 2241, 2246, ++ 2257, 2268, 2272, 2276, 2280, 2284, 2288, 2292, 2296, 2300, ++ 2304, 2308, 2312, 2316, 2320, 2321, 2325, 2329, 2333, 2337, ++ 2341, 2345, 2349, 2353, 2357, 2361, 2365, 2365, 2370, 2380, ++ 2386, 2387, 2388, 2389, 2392, 2396, 2403, 2415, 2416, 2420, ++ 2428, 2438, 2446, 2460, 2470, 2471, 2474, 2475, 2476, 2480, ++ 2488, 2498, 2507, 2515, 2525, 2534, 2543, 2543, 2555, 2566, ++ 2570, 2576, 2584, 2593, 2607, 2623, 2624, 2627, 2641, 2656, ++ 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, ++ 2677, 2686, 2685, 2712, 2712, 2721, 2725, 2720, 2734, 2742, ++ 2751, 2760, 2768, 2777, 2786, 2794, 2803, 2812, 2812, 2817, ++ 2821, 2825, 2836, 2837, 2848, 2852, 2864, 2876, 2876, 2876, ++ 2888, 2888, 2888, 2900, 2912, 2923, 2925, 2922, 2976, 2975, ++ 3003, 3002, 3027, 3026, 3054, 3059, 3053, 3082, 3083, 3082, ++ 3110, 3119, 3128, 3137, 3148, 3160, 3166, 3172, 3178, 3184, ++ 3190, 3200, 3206, 3212, 3218, 3228, 3234, 3241, 3246, 3247, ++ 3254, 3259, 3262, 3263, 3276, 3277, 3287, 3288, 3291, 3298, ++ 3308, 3316, 3326, 3334, 3343, 3353, 3361, 3370, 3379, 3389, ++ 3397, 3409, 3413, 3417, 3421, 3427, 3432, 3437, 3441, 3445, ++ 3449, 3453, 3457, 3465, 3469, 3473, 3477, 3481, 3485, 3489, ++ 3493, 3497, 3503, 3504, 3510, 3520, 3529, 3541, 3545, 3555, ++ 3562, 3571, 3579, 3585, 3588, 3593, 3596, 3585, 3617, 3625, ++ 3631, 3636, 3643, 3642, 3659, 3676, 3680, 3693, 3708, 3719, ++ 3718, 3730, 3729, 3740, 3745, 3744, 3756, 3755, 3766, 3775, ++ 3784, 3799, 3798, 3814, 3813, 3830, 3831, 3830, 3840, 3841, ++ 3840, 3850, 3863, 3864, 3867, 3889, 3892, 3900, 3908, 3911, ++ 3915, 3918, 3926, 3929, 3930, 3938, 3941, 3958, 3965, 3966, ++ 3976, 3986, 3992, 3998, 4009, 4016, 4026, 4034, 4044, 4055, ++ 4062, 4080, 4090, 4101, 4108, 4120, 4127, 4143, 4150, 4161, ++ 4168, 4179, 4186, 4227, 4235, 4234, 4252, 4258, 4263, 4267, ++ 4271, 4251, 4293, 4301, 4309, 4318, 4321, 4332, 4333, 4334, ++ 4335, 4338, 4349, 4350, 4361, 4368, 4375, 4382, 4391, 4392, ++ 4393, 4394, 4395, 4398, 4399, 4400, 4401, 4402, 4403, 4404, ++ 4407, 4420, 4430, 4434, 4440, 4447, 4457, 4456, 4466, 4475, ++ 4485, 4485, 4499, 4503, 4507, 4511, 4517, 4522, 4527, 4531, ++ 4535, 4539, 4543, 4547, 4551, 4555, 4559, 4563, 4567, 4571, ++ 4575, 4579, 4584, 4590, 4600, 4610, 4620, 4632, 4633, 4640, ++ 4649, 4658, 4683, 4690, 4704, 4713, 4723, 4735, 4744, 4755, ++ 4763, 4774, 4782, 4792, 4793, 4796, 4805, 4816, 4829, 4842, ++ 4850, 4860, 4868, 4878, 4879, 4882, 4895, 4906, 4907, 4910, ++ 4927, 4931, 4941, 4951, 4951, 4981, 4982, 4992, 4999, 5023, ++ 5035, 5043, 5054, 5068, 5069, 5070, 5073, 5074, 5075, 5076, ++ 5079, 5080, 5081, 5084, 5085, 5088, 5092, 5098, 5099, 5105, ++ 5106, 5109, 5110, 5113, 5116, 5119, 5120, 5121, 5124, 5125, ++ 5128, 5129, 5133 + }; + #endif + +@@ -6590,28 +6590,20 @@ yyreduce: + #line 1984 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = assignable(var_field((yyvsp[0].val)), 0, &(yyloc)); +-#if 0 +- if (!(yyval.val)) (yyval.val) = new_begin(0, &(yyloc)); +-#endif +- + } +-#line 6595 "ripper.c" /* yacc.c:1646 */ ++#line 6591 "ripper.c" /* yacc.c:1646 */ + break; + + case 104: +-#line 1992 "ripper.y" /* yacc.c:1646 */ ++#line 1988 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = assignable(var_field((yyvsp[0].val)), 0, &(yyloc)); +-#if 0 +- if (!(yyval.val)) (yyval.val) = new_begin(0, &(yyloc)); +-#endif +- + } +-#line 6607 "ripper.c" /* yacc.c:1646 */ ++#line 6599 "ripper.c" /* yacc.c:1646 */ + break; + + case 105: +-#line 2000 "ripper.y" /* yacc.c:1646 */ ++#line 1992 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = aryset((yyvsp[-3].val), (yyvsp[-1].val), &(yyloc)); +@@ -6619,11 +6611,11 @@ yyreduce: + (yyval.val) = dispatch2(aref_field, (yyvsp[-3].val), escape_Qundef((yyvsp[-1].val))); + + } +-#line 6619 "ripper.c" /* yacc.c:1646 */ ++#line 6611 "ripper.c" /* yacc.c:1646 */ + break; + + case 106: +-#line 2008 "ripper.y" /* yacc.c:1646 */ ++#line 2000 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = attrset((yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); +@@ -6631,11 +6623,11 @@ yyreduce: + (yyval.val) = dispatch3(field, (yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val)); + + } +-#line 6631 "ripper.c" /* yacc.c:1646 */ ++#line 6623 "ripper.c" /* yacc.c:1646 */ + break; + + case 107: +-#line 2016 "ripper.y" /* yacc.c:1646 */ ++#line 2008 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = attrset((yyvsp[-2].val), idCOLON2, (yyvsp[0].val), &(yyloc)); +@@ -6643,11 +6635,11 @@ yyreduce: + (yyval.val) = dispatch3(field, (yyvsp[-2].val), ID2VAL(idCOLON2), (yyvsp[0].val)); + + } +-#line 6643 "ripper.c" /* yacc.c:1646 */ ++#line 6635 "ripper.c" /* yacc.c:1646 */ + break; + + case 108: +-#line 2024 "ripper.y" /* yacc.c:1646 */ ++#line 2016 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = attrset((yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); +@@ -6655,36 +6647,36 @@ yyreduce: + (yyval.val) = dispatch3(field, (yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val)); + + } +-#line 6655 "ripper.c" /* yacc.c:1646 */ ++#line 6647 "ripper.c" /* yacc.c:1646 */ + break; + + case 109: +-#line 2032 "ripper.y" /* yacc.c:1646 */ ++#line 2024 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = const_decl(const_path_field((yyvsp[-2].val), (yyvsp[0].val), &(yyloc)), &(yyloc)); + } +-#line 6663 "ripper.c" /* yacc.c:1646 */ ++#line 6655 "ripper.c" /* yacc.c:1646 */ + break; + + case 110: +-#line 2036 "ripper.y" /* yacc.c:1646 */ ++#line 2028 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = const_decl(top_const_field((yyvsp[0].val)), &(yyloc)); + } +-#line 6671 "ripper.c" /* yacc.c:1646 */ ++#line 6663 "ripper.c" /* yacc.c:1646 */ + break; + + case 111: +-#line 2040 "ripper.y" /* yacc.c:1646 */ ++#line 2032 "ripper.y" /* yacc.c:1646 */ + { + (yyvsp[0].val) = var_field((yyvsp[0].val)); + (yyval.val) = backref_assign_error((yyvsp[0].val), (yyvsp[0].val), &(yyloc)); + } +-#line 6680 "ripper.c" /* yacc.c:1646 */ ++#line 6672 "ripper.c" /* yacc.c:1646 */ + break; + + case 112: +-#line 2047 "ripper.y" /* yacc.c:1646 */ ++#line 2039 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + yyerror0("class/module name must be CONSTANT"); +@@ -6693,11 +6685,11 @@ yyreduce: + ripper_error(); + + } +-#line 6693 "ripper.c" /* yacc.c:1646 */ ++#line 6685 "ripper.c" /* yacc.c:1646 */ + break; + + case 114: +-#line 2059 "ripper.y" /* yacc.c:1646 */ ++#line 2051 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = NEW_COLON3((yyvsp[0].val)); +@@ -6706,11 +6698,11 @@ yyreduce: + (yyval.val) = dispatch1(top_const_ref, (yyvsp[0].val)); + + } +-#line 6706 "ripper.c" /* yacc.c:1646 */ ++#line 6698 "ripper.c" /* yacc.c:1646 */ + break; + + case 115: +-#line 2068 "ripper.y" /* yacc.c:1646 */ ++#line 2060 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = NEW_COLON2(0, (yyval.val)); +@@ -6719,11 +6711,11 @@ yyreduce: + (yyval.val) = dispatch1(const_ref, (yyvsp[0].val)); + + } +-#line 6719 "ripper.c" /* yacc.c:1646 */ ++#line 6711 "ripper.c" /* yacc.c:1646 */ + break; + + case 116: +-#line 2077 "ripper.y" /* yacc.c:1646 */ ++#line 2069 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = NEW_COLON2((yyvsp[-2].val), (yyvsp[0].val)); +@@ -6732,29 +6724,29 @@ yyreduce: + (yyval.val) = dispatch2(const_path_ref, (yyvsp[-2].val), (yyvsp[0].val)); + + } +-#line 6732 "ripper.c" /* yacc.c:1646 */ ++#line 6724 "ripper.c" /* yacc.c:1646 */ + break; + + case 120: +-#line 2091 "ripper.y" /* yacc.c:1646 */ ++#line 2083 "ripper.y" /* yacc.c:1646 */ + { + SET_LEX_STATE(EXPR_ENDFN); + (yyval.val) = (yyvsp[0].val); + } +-#line 6741 "ripper.c" /* yacc.c:1646 */ ++#line 6733 "ripper.c" /* yacc.c:1646 */ + break; + + case 121: +-#line 2096 "ripper.y" /* yacc.c:1646 */ ++#line 2088 "ripper.y" /* yacc.c:1646 */ + { + SET_LEX_STATE(EXPR_ENDFN); + (yyval.val) = (yyvsp[0].val); + } +-#line 6750 "ripper.c" /* yacc.c:1646 */ ++#line 6742 "ripper.c" /* yacc.c:1646 */ + break; + + case 124: +-#line 2107 "ripper.y" /* yacc.c:1646 */ ++#line 2099 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = new_lit(ID2SYM((yyvsp[0].val)), &(yyloc)); +@@ -6762,11 +6754,11 @@ yyreduce: + (yyval.val) = dispatch1(symbol_literal, (yyvsp[0].val)); + + } +-#line 6762 "ripper.c" /* yacc.c:1646 */ ++#line 6754 "ripper.c" /* yacc.c:1646 */ + break; + + case 126: +-#line 2118 "ripper.y" /* yacc.c:1646 */ ++#line 2110 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = new_undef((yyvsp[0].val), &(yyloc)); +@@ -6774,17 +6766,17 @@ yyreduce: + (yyval.val) = rb_ary_new3(1, get_value((yyvsp[0].val))); + + } +-#line 6774 "ripper.c" /* yacc.c:1646 */ ++#line 6766 "ripper.c" /* yacc.c:1646 */ + break; + + case 127: +-#line 2125 "ripper.y" /* yacc.c:1646 */ ++#line 2117 "ripper.y" /* yacc.c:1646 */ + {SET_LEX_STATE(EXPR_FNAME|EXPR_FITEM);} +-#line 6780 "ripper.c" /* yacc.c:1646 */ ++#line 6772 "ripper.c" /* yacc.c:1646 */ + break; + + case 128: +-#line 2126 "ripper.y" /* yacc.c:1646 */ ++#line 2118 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + NODE *undef = new_undef((yyvsp[0].val), &(yyloc)); +@@ -6793,207 +6785,207 @@ yyreduce: + rb_ary_push((yyvsp[-3].val), get_value((yyvsp[0].val))); + + } +-#line 6793 "ripper.c" /* yacc.c:1646 */ ++#line 6785 "ripper.c" /* yacc.c:1646 */ + break; + + case 129: +-#line 2136 "ripper.y" /* yacc.c:1646 */ ++#line 2128 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = '|'); } +-#line 6799 "ripper.c" /* yacc.c:1646 */ ++#line 6791 "ripper.c" /* yacc.c:1646 */ + break; + + case 130: +-#line 2137 "ripper.y" /* yacc.c:1646 */ ++#line 2129 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = '^'); } +-#line 6805 "ripper.c" /* yacc.c:1646 */ ++#line 6797 "ripper.c" /* yacc.c:1646 */ + break; + + case 131: +-#line 2138 "ripper.y" /* yacc.c:1646 */ ++#line 2130 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = '&'); } +-#line 6811 "ripper.c" /* yacc.c:1646 */ ++#line 6803 "ripper.c" /* yacc.c:1646 */ + break; + + case 132: +-#line 2139 "ripper.y" /* yacc.c:1646 */ ++#line 2131 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = tCMP); } +-#line 6817 "ripper.c" /* yacc.c:1646 */ ++#line 6809 "ripper.c" /* yacc.c:1646 */ + break; + + case 133: +-#line 2140 "ripper.y" /* yacc.c:1646 */ ++#line 2132 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = tEQ); } +-#line 6823 "ripper.c" /* yacc.c:1646 */ ++#line 6815 "ripper.c" /* yacc.c:1646 */ + break; + + case 134: +-#line 2141 "ripper.y" /* yacc.c:1646 */ ++#line 2133 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = tEQQ); } +-#line 6829 "ripper.c" /* yacc.c:1646 */ ++#line 6821 "ripper.c" /* yacc.c:1646 */ + break; + + case 135: +-#line 2142 "ripper.y" /* yacc.c:1646 */ ++#line 2134 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = tMATCH); } +-#line 6835 "ripper.c" /* yacc.c:1646 */ ++#line 6827 "ripper.c" /* yacc.c:1646 */ + break; + + case 136: +-#line 2143 "ripper.y" /* yacc.c:1646 */ ++#line 2135 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = tNMATCH); } +-#line 6841 "ripper.c" /* yacc.c:1646 */ ++#line 6833 "ripper.c" /* yacc.c:1646 */ + break; + + case 137: +-#line 2144 "ripper.y" /* yacc.c:1646 */ ++#line 2136 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = '>'); } +-#line 6847 "ripper.c" /* yacc.c:1646 */ ++#line 6839 "ripper.c" /* yacc.c:1646 */ + break; + + case 138: +-#line 2145 "ripper.y" /* yacc.c:1646 */ ++#line 2137 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = tGEQ); } +-#line 6853 "ripper.c" /* yacc.c:1646 */ ++#line 6845 "ripper.c" /* yacc.c:1646 */ + break; + + case 139: +-#line 2146 "ripper.y" /* yacc.c:1646 */ ++#line 2138 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = '<'); } +-#line 6859 "ripper.c" /* yacc.c:1646 */ ++#line 6851 "ripper.c" /* yacc.c:1646 */ + break; + + case 140: +-#line 2147 "ripper.y" /* yacc.c:1646 */ ++#line 2139 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = tLEQ); } +-#line 6865 "ripper.c" /* yacc.c:1646 */ ++#line 6857 "ripper.c" /* yacc.c:1646 */ + break; + + case 141: +-#line 2148 "ripper.y" /* yacc.c:1646 */ ++#line 2140 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = tNEQ); } +-#line 6871 "ripper.c" /* yacc.c:1646 */ ++#line 6863 "ripper.c" /* yacc.c:1646 */ + break; + + case 142: +-#line 2149 "ripper.y" /* yacc.c:1646 */ ++#line 2141 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = tLSHFT); } +-#line 6877 "ripper.c" /* yacc.c:1646 */ ++#line 6869 "ripper.c" /* yacc.c:1646 */ + break; + + case 143: +-#line 2150 "ripper.y" /* yacc.c:1646 */ ++#line 2142 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = tRSHFT); } +-#line 6883 "ripper.c" /* yacc.c:1646 */ ++#line 6875 "ripper.c" /* yacc.c:1646 */ + break; + + case 144: +-#line 2151 "ripper.y" /* yacc.c:1646 */ ++#line 2143 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = '+'); } +-#line 6889 "ripper.c" /* yacc.c:1646 */ ++#line 6881 "ripper.c" /* yacc.c:1646 */ + break; + + case 145: +-#line 2152 "ripper.y" /* yacc.c:1646 */ ++#line 2144 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = '-'); } +-#line 6895 "ripper.c" /* yacc.c:1646 */ ++#line 6887 "ripper.c" /* yacc.c:1646 */ + break; + + case 146: +-#line 2153 "ripper.y" /* yacc.c:1646 */ ++#line 2145 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = '*'); } +-#line 6901 "ripper.c" /* yacc.c:1646 */ ++#line 6893 "ripper.c" /* yacc.c:1646 */ + break; + + case 147: +-#line 2154 "ripper.y" /* yacc.c:1646 */ ++#line 2146 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = '*'); } +-#line 6907 "ripper.c" /* yacc.c:1646 */ ++#line 6899 "ripper.c" /* yacc.c:1646 */ + break; + + case 148: +-#line 2155 "ripper.y" /* yacc.c:1646 */ ++#line 2147 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = '/'); } +-#line 6913 "ripper.c" /* yacc.c:1646 */ ++#line 6905 "ripper.c" /* yacc.c:1646 */ + break; + + case 149: +-#line 2156 "ripper.y" /* yacc.c:1646 */ ++#line 2148 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = '%'); } +-#line 6919 "ripper.c" /* yacc.c:1646 */ ++#line 6911 "ripper.c" /* yacc.c:1646 */ + break; + + case 150: +-#line 2157 "ripper.y" /* yacc.c:1646 */ ++#line 2149 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = tPOW); } +-#line 6925 "ripper.c" /* yacc.c:1646 */ ++#line 6917 "ripper.c" /* yacc.c:1646 */ + break; + + case 151: +-#line 2158 "ripper.y" /* yacc.c:1646 */ ++#line 2150 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = tDSTAR); } +-#line 6931 "ripper.c" /* yacc.c:1646 */ ++#line 6923 "ripper.c" /* yacc.c:1646 */ + break; + + case 152: +-#line 2159 "ripper.y" /* yacc.c:1646 */ ++#line 2151 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = '!'); } +-#line 6937 "ripper.c" /* yacc.c:1646 */ ++#line 6929 "ripper.c" /* yacc.c:1646 */ + break; + + case 153: +-#line 2160 "ripper.y" /* yacc.c:1646 */ ++#line 2152 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = '~'); } +-#line 6943 "ripper.c" /* yacc.c:1646 */ ++#line 6935 "ripper.c" /* yacc.c:1646 */ + break; + + case 154: +-#line 2161 "ripper.y" /* yacc.c:1646 */ ++#line 2153 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = tUPLUS); } +-#line 6949 "ripper.c" /* yacc.c:1646 */ ++#line 6941 "ripper.c" /* yacc.c:1646 */ + break; + + case 155: +-#line 2162 "ripper.y" /* yacc.c:1646 */ ++#line 2154 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = tUMINUS); } +-#line 6955 "ripper.c" /* yacc.c:1646 */ ++#line 6947 "ripper.c" /* yacc.c:1646 */ + break; + + case 156: +-#line 2163 "ripper.y" /* yacc.c:1646 */ ++#line 2155 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = tAREF); } +-#line 6961 "ripper.c" /* yacc.c:1646 */ ++#line 6953 "ripper.c" /* yacc.c:1646 */ + break; + + case 157: +-#line 2164 "ripper.y" /* yacc.c:1646 */ ++#line 2156 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = tASET); } +-#line 6967 "ripper.c" /* yacc.c:1646 */ ++#line 6959 "ripper.c" /* yacc.c:1646 */ + break; + + case 158: +-#line 2165 "ripper.y" /* yacc.c:1646 */ ++#line 2157 "ripper.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.val) = '`'); } +-#line 6973 "ripper.c" /* yacc.c:1646 */ ++#line 6965 "ripper.c" /* yacc.c:1646 */ + break; + + case 200: +-#line 2183 "ripper.y" /* yacc.c:1646 */ ++#line 2175 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = node_assign((yyvsp[-2].val), (yyvsp[0].val), &(yyloc)); + } +-#line 6981 "ripper.c" /* yacc.c:1646 */ ++#line 6973 "ripper.c" /* yacc.c:1646 */ + break; + + case 201: +-#line 2187 "ripper.y" /* yacc.c:1646 */ ++#line 2179 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_op_assign((yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); + } +-#line 6989 "ripper.c" /* yacc.c:1646 */ ++#line 6981 "ripper.c" /* yacc.c:1646 */ + break; + + case 202: +-#line 2191 "ripper.y" /* yacc.c:1646 */ ++#line 2183 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + NODE *args; +@@ -7021,38 +7013,38 @@ yyreduce: + (yyval.val) = dispatch3(opassign, (yyvsp[-5].val), (yyvsp[-1].val), (yyvsp[0].val)); + + } +-#line 7021 "ripper.c" /* yacc.c:1646 */ ++#line 7013 "ripper.c" /* yacc.c:1646 */ + break; + + case 203: +-#line 2219 "ripper.y" /* yacc.c:1646 */ ++#line 2211 "ripper.y" /* yacc.c:1646 */ + { + value_expr((yyvsp[0].val)); + (yyval.val) = new_attr_op_assign((yyvsp[-4].val), (yyvsp[-3].val), (yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); + } +-#line 7030 "ripper.c" /* yacc.c:1646 */ ++#line 7022 "ripper.c" /* yacc.c:1646 */ + break; + + case 204: +-#line 2224 "ripper.y" /* yacc.c:1646 */ ++#line 2216 "ripper.y" /* yacc.c:1646 */ + { + value_expr((yyvsp[0].val)); + (yyval.val) = new_attr_op_assign((yyvsp[-4].val), (yyvsp[-3].val), (yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); + } +-#line 7039 "ripper.c" /* yacc.c:1646 */ ++#line 7031 "ripper.c" /* yacc.c:1646 */ + break; + + case 205: +-#line 2229 "ripper.y" /* yacc.c:1646 */ ++#line 2221 "ripper.y" /* yacc.c:1646 */ + { + value_expr((yyvsp[0].val)); + (yyval.val) = new_attr_op_assign((yyvsp[-4].val), ID2VAL(idCOLON2), (yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); + } +-#line 7048 "ripper.c" /* yacc.c:1646 */ ++#line 7040 "ripper.c" /* yacc.c:1646 */ + break; + + case 206: +-#line 2234 "ripper.y" /* yacc.c:1646 */ ++#line 2226 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + YYLTYPE location; +@@ -7063,29 +7055,29 @@ yyreduce: + (yyval.val) = const_path_field((yyvsp[-4].val), (yyvsp[-2].val), &location); + (yyval.val) = new_const_op_assign((yyval.val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); + } +-#line 7063 "ripper.c" /* yacc.c:1646 */ ++#line 7055 "ripper.c" /* yacc.c:1646 */ + break; + + case 207: +-#line 2245 "ripper.y" /* yacc.c:1646 */ ++#line 2237 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = top_const_field((yyvsp[-2].val)); + (yyval.val) = new_const_op_assign((yyval.val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); + } +-#line 7072 "ripper.c" /* yacc.c:1646 */ ++#line 7064 "ripper.c" /* yacc.c:1646 */ + break; + + case 208: +-#line 2250 "ripper.y" /* yacc.c:1646 */ ++#line 2242 "ripper.y" /* yacc.c:1646 */ + { + (yyvsp[-2].val) = var_field((yyvsp[-2].val)); + (yyval.val) = backref_assign_error((yyvsp[-2].val), new_op_assign((yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc)), &(yyloc)); + } +-#line 7081 "ripper.c" /* yacc.c:1646 */ ++#line 7073 "ripper.c" /* yacc.c:1646 */ + break; + + case 209: +-#line 2255 "ripper.y" /* yacc.c:1646 */ ++#line 2247 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + value_expr((yyvsp[-2].val)); +@@ -7096,11 +7088,11 @@ yyreduce: + (yyval.val) = dispatch2(dot2, (yyvsp[-2].val), (yyvsp[0].val)); + + } +-#line 7096 "ripper.c" /* yacc.c:1646 */ ++#line 7088 "ripper.c" /* yacc.c:1646 */ + break; + + case 210: +-#line 2266 "ripper.y" /* yacc.c:1646 */ ++#line 2258 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + value_expr((yyvsp[-2].val)); +@@ -7111,218 +7103,218 @@ yyreduce: + (yyval.val) = dispatch2(dot3, (yyvsp[-2].val), (yyvsp[0].val)); + + } +-#line 7111 "ripper.c" /* yacc.c:1646 */ ++#line 7103 "ripper.c" /* yacc.c:1646 */ + break; + + case 211: +-#line 2277 "ripper.y" /* yacc.c:1646 */ ++#line 2269 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = call_bin_op((yyvsp[-2].val), '+', (yyvsp[0].val), &(yylsp[-1]), &(yyloc)); + } +-#line 7119 "ripper.c" /* yacc.c:1646 */ ++#line 7111 "ripper.c" /* yacc.c:1646 */ + break; + + case 212: +-#line 2281 "ripper.y" /* yacc.c:1646 */ ++#line 2273 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = call_bin_op((yyvsp[-2].val), '-', (yyvsp[0].val), &(yylsp[-1]), &(yyloc)); + } +-#line 7127 "ripper.c" /* yacc.c:1646 */ ++#line 7119 "ripper.c" /* yacc.c:1646 */ + break; + + case 213: +-#line 2285 "ripper.y" /* yacc.c:1646 */ ++#line 2277 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = call_bin_op((yyvsp[-2].val), '*', (yyvsp[0].val), &(yylsp[-1]), &(yyloc)); + } +-#line 7135 "ripper.c" /* yacc.c:1646 */ ++#line 7127 "ripper.c" /* yacc.c:1646 */ + break; + + case 214: +-#line 2289 "ripper.y" /* yacc.c:1646 */ ++#line 2281 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = call_bin_op((yyvsp[-2].val), '/', (yyvsp[0].val), &(yylsp[-1]), &(yyloc)); + } +-#line 7143 "ripper.c" /* yacc.c:1646 */ ++#line 7135 "ripper.c" /* yacc.c:1646 */ + break; + + case 215: +-#line 2293 "ripper.y" /* yacc.c:1646 */ ++#line 2285 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = call_bin_op((yyvsp[-2].val), '%', (yyvsp[0].val), &(yylsp[-1]), &(yyloc)); + } +-#line 7151 "ripper.c" /* yacc.c:1646 */ ++#line 7143 "ripper.c" /* yacc.c:1646 */ + break; + + case 216: +-#line 2297 "ripper.y" /* yacc.c:1646 */ ++#line 2289 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = call_bin_op((yyvsp[-2].val), idPow, (yyvsp[0].val), &(yylsp[-1]), &(yyloc)); + } +-#line 7159 "ripper.c" /* yacc.c:1646 */ ++#line 7151 "ripper.c" /* yacc.c:1646 */ + break; + + case 217: +-#line 2301 "ripper.y" /* yacc.c:1646 */ ++#line 2293 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = call_uni_op(call_bin_op((yyvsp[-2].val), idPow, (yyvsp[0].val), &(yylsp[-2]), &(yyloc)), idUMinus, &(yylsp[-3]), &(yyloc)); + } +-#line 7167 "ripper.c" /* yacc.c:1646 */ ++#line 7159 "ripper.c" /* yacc.c:1646 */ + break; + + case 218: +-#line 2305 "ripper.y" /* yacc.c:1646 */ ++#line 2297 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = call_uni_op((yyvsp[0].val), idUPlus, &(yylsp[-1]), &(yyloc)); + } +-#line 7175 "ripper.c" /* yacc.c:1646 */ ++#line 7167 "ripper.c" /* yacc.c:1646 */ + break; + + case 219: +-#line 2309 "ripper.y" /* yacc.c:1646 */ ++#line 2301 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = call_uni_op((yyvsp[0].val), idUMinus, &(yylsp[-1]), &(yyloc)); + } +-#line 7183 "ripper.c" /* yacc.c:1646 */ ++#line 7175 "ripper.c" /* yacc.c:1646 */ + break; + + case 220: +-#line 2313 "ripper.y" /* yacc.c:1646 */ ++#line 2305 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = call_bin_op((yyvsp[-2].val), '|', (yyvsp[0].val), &(yylsp[-1]), &(yyloc)); + } +-#line 7191 "ripper.c" /* yacc.c:1646 */ ++#line 7183 "ripper.c" /* yacc.c:1646 */ + break; + + case 221: +-#line 2317 "ripper.y" /* yacc.c:1646 */ ++#line 2309 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = call_bin_op((yyvsp[-2].val), '^', (yyvsp[0].val), &(yylsp[-1]), &(yyloc)); + } +-#line 7199 "ripper.c" /* yacc.c:1646 */ ++#line 7191 "ripper.c" /* yacc.c:1646 */ + break; + + case 222: +-#line 2321 "ripper.y" /* yacc.c:1646 */ ++#line 2313 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = call_bin_op((yyvsp[-2].val), '&', (yyvsp[0].val), &(yylsp[-1]), &(yyloc)); + } +-#line 7207 "ripper.c" /* yacc.c:1646 */ ++#line 7199 "ripper.c" /* yacc.c:1646 */ + break; + + case 223: +-#line 2325 "ripper.y" /* yacc.c:1646 */ ++#line 2317 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = call_bin_op((yyvsp[-2].val), idCmp, (yyvsp[0].val), &(yylsp[-1]), &(yyloc)); + } +-#line 7215 "ripper.c" /* yacc.c:1646 */ ++#line 7207 "ripper.c" /* yacc.c:1646 */ + break; + + case 225: +-#line 2330 "ripper.y" /* yacc.c:1646 */ ++#line 2322 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = call_bin_op((yyvsp[-2].val), idEq, (yyvsp[0].val), &(yylsp[-1]), &(yyloc)); + } +-#line 7223 "ripper.c" /* yacc.c:1646 */ ++#line 7215 "ripper.c" /* yacc.c:1646 */ + break; + + case 226: +-#line 2334 "ripper.y" /* yacc.c:1646 */ ++#line 2326 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = call_bin_op((yyvsp[-2].val), idEqq, (yyvsp[0].val), &(yylsp[-1]), &(yyloc)); + } +-#line 7231 "ripper.c" /* yacc.c:1646 */ ++#line 7223 "ripper.c" /* yacc.c:1646 */ + break; + + case 227: +-#line 2338 "ripper.y" /* yacc.c:1646 */ ++#line 2330 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = call_bin_op((yyvsp[-2].val), idNeq, (yyvsp[0].val), &(yylsp[-1]), &(yyloc)); + } +-#line 7239 "ripper.c" /* yacc.c:1646 */ ++#line 7231 "ripper.c" /* yacc.c:1646 */ + break; + + case 228: +-#line 2342 "ripper.y" /* yacc.c:1646 */ ++#line 2334 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = match_op((yyvsp[-2].val), (yyvsp[0].val), &(yylsp[-1]), &(yyloc)); + } +-#line 7247 "ripper.c" /* yacc.c:1646 */ ++#line 7239 "ripper.c" /* yacc.c:1646 */ + break; + + case 229: +-#line 2346 "ripper.y" /* yacc.c:1646 */ ++#line 2338 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = call_bin_op((yyvsp[-2].val), idNeqTilde, (yyvsp[0].val), &(yylsp[-1]), &(yyloc)); + } +-#line 7255 "ripper.c" /* yacc.c:1646 */ ++#line 7247 "ripper.c" /* yacc.c:1646 */ + break; + + case 230: +-#line 2350 "ripper.y" /* yacc.c:1646 */ ++#line 2342 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = call_uni_op(method_cond((yyvsp[0].val), &(yylsp[0])), '!', &(yylsp[-1]), &(yyloc)); + } +-#line 7263 "ripper.c" /* yacc.c:1646 */ ++#line 7255 "ripper.c" /* yacc.c:1646 */ + break; + + case 231: +-#line 2354 "ripper.y" /* yacc.c:1646 */ ++#line 2346 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = call_uni_op((yyvsp[0].val), '~', &(yylsp[-1]), &(yyloc)); + } +-#line 7271 "ripper.c" /* yacc.c:1646 */ ++#line 7263 "ripper.c" /* yacc.c:1646 */ + break; + + case 232: +-#line 2358 "ripper.y" /* yacc.c:1646 */ ++#line 2350 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = call_bin_op((yyvsp[-2].val), idLTLT, (yyvsp[0].val), &(yylsp[-1]), &(yyloc)); + } +-#line 7279 "ripper.c" /* yacc.c:1646 */ ++#line 7271 "ripper.c" /* yacc.c:1646 */ + break; + + case 233: +-#line 2362 "ripper.y" /* yacc.c:1646 */ ++#line 2354 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = call_bin_op((yyvsp[-2].val), idGTGT, (yyvsp[0].val), &(yylsp[-1]), &(yyloc)); + } +-#line 7287 "ripper.c" /* yacc.c:1646 */ ++#line 7279 "ripper.c" /* yacc.c:1646 */ + break; + + case 234: +-#line 2366 "ripper.y" /* yacc.c:1646 */ ++#line 2358 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = logop(idANDOP, (yyvsp[-2].val), (yyvsp[0].val), &(yylsp[-1]), &(yyloc)); + } +-#line 7295 "ripper.c" /* yacc.c:1646 */ ++#line 7287 "ripper.c" /* yacc.c:1646 */ + break; + + case 235: +-#line 2370 "ripper.y" /* yacc.c:1646 */ ++#line 2362 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = logop(idOROP, (yyvsp[-2].val), (yyvsp[0].val), &(yylsp[-1]), &(yyloc)); + } +-#line 7303 "ripper.c" /* yacc.c:1646 */ ++#line 7295 "ripper.c" /* yacc.c:1646 */ + break; + + case 236: +-#line 2373 "ripper.y" /* yacc.c:1646 */ ++#line 2365 "ripper.y" /* yacc.c:1646 */ + {in_defined = 1;} +-#line 7309 "ripper.c" /* yacc.c:1646 */ ++#line 7301 "ripper.c" /* yacc.c:1646 */ + break; + + case 237: +-#line 2374 "ripper.y" /* yacc.c:1646 */ ++#line 2366 "ripper.y" /* yacc.c:1646 */ + { + in_defined = 0; + (yyval.val) = new_defined((yyvsp[0].val), &(yyloc)); + } +-#line 7318 "ripper.c" /* yacc.c:1646 */ ++#line 7310 "ripper.c" /* yacc.c:1646 */ + break; + + case 238: +-#line 2379 "ripper.y" /* yacc.c:1646 */ ++#line 2371 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + value_expr((yyvsp[-5].val)); +@@ -7332,60 +7324,60 @@ yyreduce: + (yyval.val) = dispatch3(ifop, (yyvsp[-5].val), (yyvsp[-3].val), (yyvsp[0].val)); + + } +-#line 7332 "ripper.c" /* yacc.c:1646 */ ++#line 7324 "ripper.c" /* yacc.c:1646 */ + break; + + case 239: +-#line 2389 "ripper.y" /* yacc.c:1646 */ ++#line 2381 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = (yyvsp[0].val); + } +-#line 7340 "ripper.c" /* yacc.c:1646 */ ++#line 7332 "ripper.c" /* yacc.c:1646 */ + break; + + case 240: +-#line 2394 "ripper.y" /* yacc.c:1646 */ ++#line 2386 "ripper.y" /* yacc.c:1646 */ + {(yyval.val) = '>';} +-#line 7346 "ripper.c" /* yacc.c:1646 */ ++#line 7338 "ripper.c" /* yacc.c:1646 */ + break; + + case 241: +-#line 2395 "ripper.y" /* yacc.c:1646 */ ++#line 2387 "ripper.y" /* yacc.c:1646 */ + {(yyval.val) = '<';} +-#line 7352 "ripper.c" /* yacc.c:1646 */ ++#line 7344 "ripper.c" /* yacc.c:1646 */ + break; + + case 242: +-#line 2396 "ripper.y" /* yacc.c:1646 */ ++#line 2388 "ripper.y" /* yacc.c:1646 */ + {(yyval.val) = idGE;} +-#line 7358 "ripper.c" /* yacc.c:1646 */ ++#line 7350 "ripper.c" /* yacc.c:1646 */ + break; + + case 243: +-#line 2397 "ripper.y" /* yacc.c:1646 */ ++#line 2389 "ripper.y" /* yacc.c:1646 */ + {(yyval.val) = idLE;} +-#line 7364 "ripper.c" /* yacc.c:1646 */ ++#line 7356 "ripper.c" /* yacc.c:1646 */ + break; + + case 244: +-#line 2401 "ripper.y" /* yacc.c:1646 */ ++#line 2393 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = call_bin_op((yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yylsp[-1]), &(yyloc)); + } +-#line 7372 "ripper.c" /* yacc.c:1646 */ ++#line 7364 "ripper.c" /* yacc.c:1646 */ + break; + + case 245: +-#line 2405 "ripper.y" /* yacc.c:1646 */ ++#line 2397 "ripper.y" /* yacc.c:1646 */ + { + rb_warning1("comparison '%s' after comparison", WARN_ID((yyvsp[-1].val))); + (yyval.val) = call_bin_op((yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yylsp[-1]), &(yyloc)); + } +-#line 7381 "ripper.c" /* yacc.c:1646 */ ++#line 7373 "ripper.c" /* yacc.c:1646 */ + break; + + case 246: +-#line 2412 "ripper.y" /* yacc.c:1646 */ ++#line 2404 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + value_expr((yyvsp[0].val)); +@@ -7395,19 +7387,19 @@ yyreduce: + (yyval.val) = (yyvsp[0].val); + + } +-#line 7395 "ripper.c" /* yacc.c:1646 */ ++#line 7387 "ripper.c" /* yacc.c:1646 */ + break; + + case 248: +-#line 2425 "ripper.y" /* yacc.c:1646 */ ++#line 2417 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = (yyvsp[-1].val); + } +-#line 7403 "ripper.c" /* yacc.c:1646 */ ++#line 7395 "ripper.c" /* yacc.c:1646 */ + break; + + case 249: +-#line 2429 "ripper.y" /* yacc.c:1646 */ ++#line 2421 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = (yyvsp[-1].val) ? arg_append((yyvsp[-3].val), new_hash((yyvsp[-1].val), &(yylsp[-1])), &(yyloc)) : (yyvsp[-3].val); +@@ -7415,11 +7407,11 @@ yyreduce: + (yyval.val) = arg_add_assocs((yyvsp[-3].val), (yyvsp[-1].val)); + + } +-#line 7415 "ripper.c" /* yacc.c:1646 */ ++#line 7407 "ripper.c" /* yacc.c:1646 */ + break; + + case 250: +-#line 2437 "ripper.y" /* yacc.c:1646 */ ++#line 2429 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = (yyvsp[-1].val) ? new_list(new_hash((yyvsp[-1].val), &(yylsp[-1])), &(yyloc)) : 0; +@@ -7427,11 +7419,11 @@ yyreduce: + (yyval.val) = arg_add_assocs(arg_new(), (yyvsp[-1].val)); + + } +-#line 7427 "ripper.c" /* yacc.c:1646 */ ++#line 7419 "ripper.c" /* yacc.c:1646 */ + break; + + case 251: +-#line 2447 "ripper.y" /* yacc.c:1646 */ ++#line 2439 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + value_expr((yyvsp[0].val)); +@@ -7439,11 +7431,11 @@ yyreduce: + #endif + + } +-#line 7439 "ripper.c" /* yacc.c:1646 */ ++#line 7431 "ripper.c" /* yacc.c:1646 */ + break; + + case 252: +-#line 2455 "ripper.y" /* yacc.c:1646 */ ++#line 2447 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + YYLTYPE location; +@@ -7455,11 +7447,11 @@ yyreduce: + (yyval.val) = dispatch2(rescue_mod, (yyvsp[-2].val), (yyvsp[0].val)); + + } +-#line 7455 "ripper.c" /* yacc.c:1646 */ ++#line 7447 "ripper.c" /* yacc.c:1646 */ + break; + + case 253: +-#line 2469 "ripper.y" /* yacc.c:1646 */ ++#line 2461 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = (yyvsp[-1].val); +@@ -7467,19 +7459,19 @@ yyreduce: + (yyval.val) = dispatch1(arg_paren, escape_Qundef((yyvsp[-1].val))); + + } +-#line 7467 "ripper.c" /* yacc.c:1646 */ ++#line 7459 "ripper.c" /* yacc.c:1646 */ + break; + + case 258: +-#line 2485 "ripper.y" /* yacc.c:1646 */ ++#line 2477 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = (yyvsp[-1].val); + } +-#line 7475 "ripper.c" /* yacc.c:1646 */ ++#line 7467 "ripper.c" /* yacc.c:1646 */ + break; + + case 259: +-#line 2489 "ripper.y" /* yacc.c:1646 */ ++#line 2481 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = (yyvsp[-1].val) ? arg_append((yyvsp[-3].val), new_hash((yyvsp[-1].val), &(yylsp[-1])), &(yyloc)) : (yyvsp[-3].val); +@@ -7487,11 +7479,11 @@ yyreduce: + (yyval.val) = arg_add_assocs((yyvsp[-3].val), (yyvsp[-1].val)); + + } +-#line 7487 "ripper.c" /* yacc.c:1646 */ ++#line 7479 "ripper.c" /* yacc.c:1646 */ + break; + + case 260: +-#line 2497 "ripper.y" /* yacc.c:1646 */ ++#line 2489 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = (yyvsp[-1].val) ? new_list(new_hash((yyvsp[-1].val), &(yylsp[-1])), &(yylsp[-1])) : 0; +@@ -7499,11 +7491,11 @@ yyreduce: + (yyval.val) = arg_add_assocs(arg_new(), (yyvsp[-1].val)); + + } +-#line 7499 "ripper.c" /* yacc.c:1646 */ ++#line 7491 "ripper.c" /* yacc.c:1646 */ + break; + + case 261: +-#line 2507 "ripper.y" /* yacc.c:1646 */ ++#line 2499 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + value_expr((yyvsp[0].val)); +@@ -7512,11 +7504,11 @@ yyreduce: + (yyval.val) = arg_add(arg_new(), (yyvsp[0].val)); + + } +-#line 7512 "ripper.c" /* yacc.c:1646 */ ++#line 7504 "ripper.c" /* yacc.c:1646 */ + break; + + case 262: +-#line 2516 "ripper.y" /* yacc.c:1646 */ ++#line 2508 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = arg_blk_pass((yyvsp[-1].val), (yyvsp[0].val)); +@@ -7524,11 +7516,11 @@ yyreduce: + (yyval.val) = arg_add_optblock((yyvsp[-1].val), (yyvsp[0].val)); + + } +-#line 7524 "ripper.c" /* yacc.c:1646 */ ++#line 7516 "ripper.c" /* yacc.c:1646 */ + break; + + case 263: +-#line 2524 "ripper.y" /* yacc.c:1646 */ ++#line 2516 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = (yyvsp[-1].val) ? new_list(new_hash((yyvsp[-1].val), &(yylsp[-1])), &(yylsp[-1])) : 0; +@@ -7538,11 +7530,11 @@ yyreduce: + (yyval.val) = arg_add_optblock((yyval.val), (yyvsp[0].val)); + + } +-#line 7538 "ripper.c" /* yacc.c:1646 */ ++#line 7530 "ripper.c" /* yacc.c:1646 */ + break; + + case 264: +-#line 2534 "ripper.y" /* yacc.c:1646 */ ++#line 2526 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = (yyvsp[-1].val) ? arg_append((yyvsp[-3].val), new_hash((yyvsp[-1].val), &(yylsp[-1])), &(yyloc)) : (yyvsp[-3].val); +@@ -7551,38 +7543,38 @@ yyreduce: + (yyval.val) = arg_add_optblock(arg_add_assocs((yyvsp[-3].val), (yyvsp[-1].val)), (yyvsp[0].val)); + + } +-#line 7551 "ripper.c" /* yacc.c:1646 */ ++#line 7543 "ripper.c" /* yacc.c:1646 */ + break; + + case 265: +-#line 2545 "ripper.y" /* yacc.c:1646 */ ++#line 2537 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = arg_add_block(arg_new(), (yyvsp[0].val)); + } +-#line 7559 "ripper.c" /* yacc.c:1646 */ ++#line 7551 "ripper.c" /* yacc.c:1646 */ + break; + + case 266: +-#line 2551 "ripper.y" /* yacc.c:1646 */ ++#line 2543 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = cmdarg_stack; + CMDARG_PUSH(1); + } +-#line 7568 "ripper.c" /* yacc.c:1646 */ ++#line 7560 "ripper.c" /* yacc.c:1646 */ + break; + + case 267: +-#line 2556 "ripper.y" /* yacc.c:1646 */ ++#line 2548 "ripper.y" /* yacc.c:1646 */ + { + /* CMDARG_POP() */ + CMDARG_SET((yyvsp[-1].val)); + (yyval.val) = (yyvsp[0].val); + } +-#line 7578 "ripper.c" /* yacc.c:1646 */ ++#line 7570 "ripper.c" /* yacc.c:1646 */ + break; + + case 268: +-#line 2564 "ripper.y" /* yacc.c:1646 */ ++#line 2556 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = NEW_BLOCK_PASS((yyvsp[0].val)); +@@ -7591,27 +7583,27 @@ yyreduce: + (yyval.val) = (yyvsp[0].val); + + } +-#line 7591 "ripper.c" /* yacc.c:1646 */ ++#line 7583 "ripper.c" /* yacc.c:1646 */ + break; + + case 269: +-#line 2575 "ripper.y" /* yacc.c:1646 */ ++#line 2567 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = (yyvsp[0].val); + } +-#line 7599 "ripper.c" /* yacc.c:1646 */ ++#line 7591 "ripper.c" /* yacc.c:1646 */ + break; + + case 270: +-#line 2579 "ripper.y" /* yacc.c:1646 */ ++#line 2571 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = 0; + } +-#line 7607 "ripper.c" /* yacc.c:1646 */ ++#line 7599 "ripper.c" /* yacc.c:1646 */ + break; + + case 271: +-#line 2585 "ripper.y" /* yacc.c:1646 */ ++#line 2577 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = new_list((yyvsp[0].val), &(yyloc)); +@@ -7619,11 +7611,11 @@ yyreduce: + (yyval.val) = arg_add(arg_new(), (yyvsp[0].val)); + + } +-#line 7619 "ripper.c" /* yacc.c:1646 */ ++#line 7611 "ripper.c" /* yacc.c:1646 */ + break; + + case 272: +-#line 2593 "ripper.y" /* yacc.c:1646 */ ++#line 2585 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = NEW_SPLAT((yyvsp[0].val)); +@@ -7632,11 +7624,11 @@ yyreduce: + (yyval.val) = arg_add_star(arg_new(), (yyvsp[0].val)); + + } +-#line 7632 "ripper.c" /* yacc.c:1646 */ ++#line 7624 "ripper.c" /* yacc.c:1646 */ + break; + + case 273: +-#line 2602 "ripper.y" /* yacc.c:1646 */ ++#line 2594 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + NODE *n1; +@@ -7650,11 +7642,11 @@ yyreduce: + (yyval.val) = arg_add((yyvsp[-2].val), (yyvsp[0].val)); + + } +-#line 7650 "ripper.c" /* yacc.c:1646 */ ++#line 7642 "ripper.c" /* yacc.c:1646 */ + break; + + case 274: +-#line 2616 "ripper.y" /* yacc.c:1646 */ ++#line 2608 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + NODE *n1; +@@ -7668,11 +7660,11 @@ yyreduce: + (yyval.val) = arg_add_star((yyvsp[-3].val), (yyvsp[0].val)); + + } +-#line 7668 "ripper.c" /* yacc.c:1646 */ ++#line 7660 "ripper.c" /* yacc.c:1646 */ + break; + + case 277: +-#line 2636 "ripper.y" /* yacc.c:1646 */ ++#line 2628 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + NODE *n1; +@@ -7686,11 +7678,11 @@ yyreduce: + (yyval.val) = mrhs_add(args2mrhs((yyvsp[-2].val)), (yyvsp[0].val)); + + } +-#line 7686 "ripper.c" /* yacc.c:1646 */ ++#line 7678 "ripper.c" /* yacc.c:1646 */ + break; + + case 278: +-#line 2650 "ripper.y" /* yacc.c:1646 */ ++#line 2642 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + NODE *n1; +@@ -7705,11 +7697,11 @@ yyreduce: + (yyval.val) = mrhs_add_star(args2mrhs((yyvsp[-3].val)), (yyvsp[0].val)); + + } +-#line 7705 "ripper.c" /* yacc.c:1646 */ ++#line 7697 "ripper.c" /* yacc.c:1646 */ + break; + + case 279: +-#line 2665 "ripper.y" /* yacc.c:1646 */ ++#line 2657 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = NEW_SPLAT((yyvsp[0].val)); +@@ -7718,11 +7710,11 @@ yyreduce: + (yyval.val) = mrhs_add_star(mrhs_new(), (yyvsp[0].val)); + + } +-#line 7718 "ripper.c" /* yacc.c:1646 */ ++#line 7710 "ripper.c" /* yacc.c:1646 */ + break; + + case 290: +-#line 2686 "ripper.y" /* yacc.c:1646 */ ++#line 2678 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = new_fcall((yyvsp[0].val), 0, &(yyloc)); +@@ -7730,11 +7722,11 @@ yyreduce: + (yyval.val) = method_arg(dispatch1(fcall, (yyvsp[0].val)), arg_new()); + + } +-#line 7730 "ripper.c" /* yacc.c:1646 */ ++#line 7722 "ripper.c" /* yacc.c:1646 */ + break; + + case 291: +-#line 2694 "ripper.y" /* yacc.c:1646 */ ++#line 2686 "ripper.y" /* yacc.c:1646 */ + { + (yyvsp[0].val) = cmdarg_stack; + CMDARG_SET(0); +@@ -7743,11 +7735,11 @@ yyreduce: + #endif + + } +-#line 7743 "ripper.c" /* yacc.c:1646 */ ++#line 7735 "ripper.c" /* yacc.c:1646 */ + break; + + case 292: +-#line 2704 "ripper.y" /* yacc.c:1646 */ ++#line 2696 "ripper.y" /* yacc.c:1646 */ + { + CMDARG_SET((yyvsp[-3].val)); + #if 0 +@@ -7764,17 +7756,17 @@ yyreduce: + (yyval.val) = dispatch1(begin, (yyvsp[-1].val)); + + } +-#line 7764 "ripper.c" /* yacc.c:1646 */ ++#line 7756 "ripper.c" /* yacc.c:1646 */ + break; + + case 293: +-#line 2720 "ripper.y" /* yacc.c:1646 */ ++#line 2712 "ripper.y" /* yacc.c:1646 */ + {SET_LEX_STATE(EXPR_ENDARG);} +-#line 7770 "ripper.c" /* yacc.c:1646 */ ++#line 7762 "ripper.c" /* yacc.c:1646 */ + break; + + case 294: +-#line 2721 "ripper.y" /* yacc.c:1646 */ ++#line 2713 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = new_begin(0, &(yyloc)); +@@ -7782,26 +7774,26 @@ yyreduce: + (yyval.val) = dispatch1(paren, 0); + + } +-#line 7782 "ripper.c" /* yacc.c:1646 */ ++#line 7774 "ripper.c" /* yacc.c:1646 */ + break; + + case 295: +-#line 2729 "ripper.y" /* yacc.c:1646 */ ++#line 2721 "ripper.y" /* yacc.c:1646 */ + { + (yyvsp[0].val) = cmdarg_stack; + CMDARG_SET(0); + } +-#line 7791 "ripper.c" /* yacc.c:1646 */ ++#line 7783 "ripper.c" /* yacc.c:1646 */ + break; + + case 296: +-#line 2733 "ripper.y" /* yacc.c:1646 */ ++#line 2725 "ripper.y" /* yacc.c:1646 */ + {SET_LEX_STATE(EXPR_ENDARG);} +-#line 7797 "ripper.c" /* yacc.c:1646 */ ++#line 7789 "ripper.c" /* yacc.c:1646 */ + break; + + case 297: +-#line 2734 "ripper.y" /* yacc.c:1646 */ ++#line 2726 "ripper.y" /* yacc.c:1646 */ + { + CMDARG_SET((yyvsp[-4].val)); + #if 0 +@@ -7810,11 +7802,11 @@ yyreduce: + (yyval.val) = dispatch1(paren, (yyvsp[-2].val)); + + } +-#line 7810 "ripper.c" /* yacc.c:1646 */ ++#line 7802 "ripper.c" /* yacc.c:1646 */ + break; + + case 298: +-#line 2743 "ripper.y" /* yacc.c:1646 */ ++#line 2735 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = (yyvsp[-1].val); +@@ -7822,11 +7814,11 @@ yyreduce: + (yyval.val) = dispatch1(paren, (yyvsp[-1].val)); + + } +-#line 7822 "ripper.c" /* yacc.c:1646 */ ++#line 7814 "ripper.c" /* yacc.c:1646 */ + break; + + case 299: +-#line 2751 "ripper.y" /* yacc.c:1646 */ ++#line 2743 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = NEW_COLON2((yyvsp[-2].val), (yyvsp[0].val)); +@@ -7835,11 +7827,11 @@ yyreduce: + (yyval.val) = dispatch2(const_path_ref, (yyvsp[-2].val), (yyvsp[0].val)); + + } +-#line 7835 "ripper.c" /* yacc.c:1646 */ ++#line 7827 "ripper.c" /* yacc.c:1646 */ + break; + + case 300: +-#line 2760 "ripper.y" /* yacc.c:1646 */ ++#line 2752 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = NEW_COLON3((yyvsp[0].val)); +@@ -7848,11 +7840,11 @@ yyreduce: + (yyval.val) = dispatch1(top_const_ref, (yyvsp[0].val)); + + } +-#line 7848 "ripper.c" /* yacc.c:1646 */ ++#line 7840 "ripper.c" /* yacc.c:1646 */ + break; + + case 301: +-#line 2769 "ripper.y" /* yacc.c:1646 */ ++#line 2761 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = make_array((yyvsp[-1].val), &(yyloc)); +@@ -7860,11 +7852,11 @@ yyreduce: + (yyval.val) = dispatch1(array, escape_Qundef((yyvsp[-1].val))); + + } +-#line 7860 "ripper.c" /* yacc.c:1646 */ ++#line 7852 "ripper.c" /* yacc.c:1646 */ + break; + + case 302: +-#line 2777 "ripper.y" /* yacc.c:1646 */ ++#line 2769 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = new_hash((yyvsp[-1].val), &(yyloc)); +@@ -7873,11 +7865,11 @@ yyreduce: + (yyval.val) = dispatch1(hash, escape_Qundef((yyvsp[-1].val))); + + } +-#line 7873 "ripper.c" /* yacc.c:1646 */ ++#line 7865 "ripper.c" /* yacc.c:1646 */ + break; + + case 303: +-#line 2786 "ripper.y" /* yacc.c:1646 */ ++#line 2778 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = NEW_RETURN(0); +@@ -7886,11 +7878,11 @@ yyreduce: + (yyval.val) = dispatch0(return0); + + } +-#line 7886 "ripper.c" /* yacc.c:1646 */ ++#line 7878 "ripper.c" /* yacc.c:1646 */ + break; + + case 304: +-#line 2795 "ripper.y" /* yacc.c:1646 */ ++#line 2787 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = new_yield((yyvsp[-1].val), &(yyloc)); +@@ -7898,11 +7890,11 @@ yyreduce: + (yyval.val) = dispatch1(yield, dispatch1(paren, (yyvsp[-1].val))); + + } +-#line 7898 "ripper.c" /* yacc.c:1646 */ ++#line 7890 "ripper.c" /* yacc.c:1646 */ + break; + + case 305: +-#line 2803 "ripper.y" /* yacc.c:1646 */ ++#line 2795 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = NEW_YIELD(0); +@@ -7911,11 +7903,11 @@ yyreduce: + (yyval.val) = dispatch1(yield, dispatch1(paren, arg_new())); + + } +-#line 7911 "ripper.c" /* yacc.c:1646 */ ++#line 7903 "ripper.c" /* yacc.c:1646 */ + break; + + case 306: +-#line 2812 "ripper.y" /* yacc.c:1646 */ ++#line 2804 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = NEW_YIELD(0); +@@ -7924,42 +7916,42 @@ yyreduce: + (yyval.val) = dispatch0(yield0); + + } +-#line 7924 "ripper.c" /* yacc.c:1646 */ ++#line 7916 "ripper.c" /* yacc.c:1646 */ + break; + + case 307: +-#line 2820 "ripper.y" /* yacc.c:1646 */ ++#line 2812 "ripper.y" /* yacc.c:1646 */ + {in_defined = 1;} +-#line 7930 "ripper.c" /* yacc.c:1646 */ ++#line 7922 "ripper.c" /* yacc.c:1646 */ + break; + + case 308: +-#line 2821 "ripper.y" /* yacc.c:1646 */ ++#line 2813 "ripper.y" /* yacc.c:1646 */ + { + in_defined = 0; + (yyval.val) = new_defined((yyvsp[-1].val), &(yyloc)); + } +-#line 7939 "ripper.c" /* yacc.c:1646 */ ++#line 7931 "ripper.c" /* yacc.c:1646 */ + break; + + case 309: +-#line 2826 "ripper.y" /* yacc.c:1646 */ ++#line 2818 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = call_uni_op(method_cond((yyvsp[-1].val), &(yylsp[-1])), METHOD_NOT, &(yylsp[-3]), &(yyloc)); + } +-#line 7947 "ripper.c" /* yacc.c:1646 */ ++#line 7939 "ripper.c" /* yacc.c:1646 */ + break; + + case 310: +-#line 2830 "ripper.y" /* yacc.c:1646 */ ++#line 2822 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = call_uni_op(method_cond(new_nil(&(yylsp[-1])), &(yylsp[-1])), METHOD_NOT, &(yylsp[-2]), &(yyloc)); + } +-#line 7955 "ripper.c" /* yacc.c:1646 */ ++#line 7947 "ripper.c" /* yacc.c:1646 */ + break; + + case 311: +-#line 2834 "ripper.y" /* yacc.c:1646 */ ++#line 2826 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyvsp[0].val)->nd_iter = (yyvsp[-1].val); +@@ -7970,11 +7962,11 @@ yyreduce: + (yyval.val) = method_add_block((yyval.val), (yyvsp[0].val)); + + } +-#line 7970 "ripper.c" /* yacc.c:1646 */ ++#line 7962 "ripper.c" /* yacc.c:1646 */ + break; + + case 313: +-#line 2846 "ripper.y" /* yacc.c:1646 */ ++#line 2838 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + block_dup_check((yyvsp[-1].val)->nd_args, (yyvsp[0].val)); +@@ -7985,19 +7977,19 @@ yyreduce: + (yyval.val) = method_add_block((yyvsp[-1].val), (yyvsp[0].val)); + + } +-#line 7985 "ripper.c" /* yacc.c:1646 */ ++#line 7977 "ripper.c" /* yacc.c:1646 */ + break; + + case 314: +-#line 2857 "ripper.y" /* yacc.c:1646 */ ++#line 2849 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = (yyvsp[0].val); + } +-#line 7993 "ripper.c" /* yacc.c:1646 */ ++#line 7985 "ripper.c" /* yacc.c:1646 */ + break; + + case 315: +-#line 2864 "ripper.y" /* yacc.c:1646 */ ++#line 2856 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = new_if((yyvsp[-4].val), (yyvsp[-2].val), (yyvsp[-1].val), &(yyloc)); +@@ -8006,11 +7998,11 @@ yyreduce: + (yyval.val) = dispatch3(if, (yyvsp[-4].val), (yyvsp[-2].val), escape_Qundef((yyvsp[-1].val))); + + } +-#line 8006 "ripper.c" /* yacc.c:1646 */ ++#line 7998 "ripper.c" /* yacc.c:1646 */ + break; + + case 316: +-#line 2876 "ripper.y" /* yacc.c:1646 */ ++#line 2868 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = new_unless((yyvsp[-4].val), (yyvsp[-2].val), (yyvsp[-1].val), &(yyloc)); +@@ -8019,23 +8011,23 @@ yyreduce: + (yyval.val) = dispatch3(unless, (yyvsp[-4].val), (yyvsp[-2].val), escape_Qundef((yyvsp[-1].val))); + + } +-#line 8019 "ripper.c" /* yacc.c:1646 */ ++#line 8011 "ripper.c" /* yacc.c:1646 */ + break; + + case 317: +-#line 2884 "ripper.y" /* yacc.c:1646 */ ++#line 2876 "ripper.y" /* yacc.c:1646 */ + {COND_PUSH(1);} +-#line 8025 "ripper.c" /* yacc.c:1646 */ ++#line 8017 "ripper.c" /* yacc.c:1646 */ + break; + + case 318: +-#line 2884 "ripper.y" /* yacc.c:1646 */ ++#line 2876 "ripper.y" /* yacc.c:1646 */ + {COND_POP();} +-#line 8031 "ripper.c" /* yacc.c:1646 */ ++#line 8023 "ripper.c" /* yacc.c:1646 */ + break; + + case 319: +-#line 2887 "ripper.y" /* yacc.c:1646 */ ++#line 2879 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = NEW_WHILE(cond((yyvsp[-4].val), &(yylsp[-4])), (yyvsp[-1].val), 1); +@@ -8045,23 +8037,23 @@ yyreduce: + (yyval.val) = dispatch2(while, (yyvsp[-4].val), (yyvsp[-1].val)); + + } +-#line 8045 "ripper.c" /* yacc.c:1646 */ ++#line 8037 "ripper.c" /* yacc.c:1646 */ + break; + + case 320: +-#line 2896 "ripper.y" /* yacc.c:1646 */ ++#line 2888 "ripper.y" /* yacc.c:1646 */ + {COND_PUSH(1);} +-#line 8051 "ripper.c" /* yacc.c:1646 */ ++#line 8043 "ripper.c" /* yacc.c:1646 */ + break; + + case 321: +-#line 2896 "ripper.y" /* yacc.c:1646 */ ++#line 2888 "ripper.y" /* yacc.c:1646 */ + {COND_POP();} +-#line 8057 "ripper.c" /* yacc.c:1646 */ ++#line 8049 "ripper.c" /* yacc.c:1646 */ + break; + + case 322: +-#line 2899 "ripper.y" /* yacc.c:1646 */ ++#line 2891 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = NEW_UNTIL(cond((yyvsp[-4].val), &(yylsp[-4])), (yyvsp[-1].val), 1); +@@ -8071,11 +8063,11 @@ yyreduce: + (yyval.val) = dispatch2(until, (yyvsp[-4].val), (yyvsp[-1].val)); + + } +-#line 8071 "ripper.c" /* yacc.c:1646 */ ++#line 8063 "ripper.c" /* yacc.c:1646 */ + break; + + case 323: +-#line 2911 "ripper.y" /* yacc.c:1646 */ ++#line 2903 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = NEW_CASE((yyvsp[-3].val), (yyvsp[-1].val)); +@@ -8085,11 +8077,11 @@ yyreduce: + (yyval.val) = dispatch2(case, (yyvsp[-3].val), (yyvsp[-1].val)); + + } +-#line 8085 "ripper.c" /* yacc.c:1646 */ ++#line 8077 "ripper.c" /* yacc.c:1646 */ + break; + + case 324: +-#line 2921 "ripper.y" /* yacc.c:1646 */ ++#line 2913 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = NEW_CASE2((yyvsp[-1].val)); +@@ -8099,23 +8091,23 @@ yyreduce: + (yyval.val) = dispatch2(case, Qnil, (yyvsp[-1].val)); + + } +-#line 8099 "ripper.c" /* yacc.c:1646 */ ++#line 8091 "ripper.c" /* yacc.c:1646 */ + break; + + case 325: +-#line 2931 "ripper.y" /* yacc.c:1646 */ ++#line 2923 "ripper.y" /* yacc.c:1646 */ + {COND_PUSH(1);} +-#line 8105 "ripper.c" /* yacc.c:1646 */ ++#line 8097 "ripper.c" /* yacc.c:1646 */ + break; + + case 326: +-#line 2933 "ripper.y" /* yacc.c:1646 */ ++#line 2925 "ripper.y" /* yacc.c:1646 */ + {COND_POP();} +-#line 8111 "ripper.c" /* yacc.c:1646 */ ++#line 8103 "ripper.c" /* yacc.c:1646 */ + break; + + case 327: +-#line 2936 "ripper.y" /* yacc.c:1646 */ ++#line 2928 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + /* +@@ -8163,11 +8155,11 @@ yyreduce: + (yyval.val) = dispatch3(for, (yyvsp[-7].val), (yyvsp[-4].val), (yyvsp[-1].val)); + + } +-#line 8163 "ripper.c" /* yacc.c:1646 */ ++#line 8155 "ripper.c" /* yacc.c:1646 */ + break; + + case 328: +-#line 2984 "ripper.y" /* yacc.c:1646 */ ++#line 2976 "ripper.y" /* yacc.c:1646 */ + { + if (in_def) + yyerror0("class definition in method body"); +@@ -8179,11 +8171,11 @@ yyreduce: + #endif + + } +-#line 8179 "ripper.c" /* yacc.c:1646 */ ++#line 8171 "ripper.c" /* yacc.c:1646 */ + break; + + case 329: +-#line 2997 "ripper.y" /* yacc.c:1646 */ ++#line 2989 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = NEW_CLASS((yyvsp[-4].val), (yyvsp[-1].val), (yyvsp[-3].val)); +@@ -8197,22 +8189,22 @@ yyreduce: + local_pop(); + in_class = (yyvsp[-5].num) & 1; + } +-#line 8197 "ripper.c" /* yacc.c:1646 */ ++#line 8189 "ripper.c" /* yacc.c:1646 */ + break; + + case 330: +-#line 3011 "ripper.y" /* yacc.c:1646 */ ++#line 3003 "ripper.y" /* yacc.c:1646 */ + { + (yyval.num) = (in_class << 1) | in_def; + in_def = 0; + in_class = 0; + local_push(0); + } +-#line 8208 "ripper.c" /* yacc.c:1646 */ ++#line 8200 "ripper.c" /* yacc.c:1646 */ + break; + + case 331: +-#line 3020 "ripper.y" /* yacc.c:1646 */ ++#line 3012 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = NEW_SCLASS((yyvsp[-4].val), (yyvsp[-1].val)); +@@ -8227,11 +8219,11 @@ yyreduce: + in_def = (yyvsp[-3].num) & 1; + in_class = ((yyvsp[-3].num) >> 1) & 1; + } +-#line 8227 "ripper.c" /* yacc.c:1646 */ ++#line 8219 "ripper.c" /* yacc.c:1646 */ + break; + + case 332: +-#line 3035 "ripper.y" /* yacc.c:1646 */ ++#line 3027 "ripper.y" /* yacc.c:1646 */ + { + if (in_def) + yyerror0("module definition in method body"); +@@ -8243,11 +8235,11 @@ yyreduce: + #endif + + } +-#line 8243 "ripper.c" /* yacc.c:1646 */ ++#line 8235 "ripper.c" /* yacc.c:1646 */ + break; + + case 333: +-#line 3048 "ripper.y" /* yacc.c:1646 */ ++#line 3040 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = NEW_MODULE((yyvsp[-3].val), (yyvsp[-1].val)); +@@ -8261,30 +8253,30 @@ yyreduce: + local_pop(); + in_class = (yyvsp[-4].num) & 1; + } +-#line 8261 "ripper.c" /* yacc.c:1646 */ ++#line 8253 "ripper.c" /* yacc.c:1646 */ + break; + + case 334: +-#line 3062 "ripper.y" /* yacc.c:1646 */ ++#line 3054 "ripper.y" /* yacc.c:1646 */ + { + local_push(0); + (yyval.id) = current_arg; + current_arg = 0; + } +-#line 8271 "ripper.c" /* yacc.c:1646 */ ++#line 8263 "ripper.c" /* yacc.c:1646 */ + break; + + case 335: +-#line 3067 "ripper.y" /* yacc.c:1646 */ ++#line 3059 "ripper.y" /* yacc.c:1646 */ + { + (yyval.num) = in_def; + in_def = 1; + } +-#line 8280 "ripper.c" /* yacc.c:1646 */ ++#line 8272 "ripper.c" /* yacc.c:1646 */ + break; + + case 336: +-#line 3074 "ripper.y" /* yacc.c:1646 */ ++#line 3066 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + NODE *body = remove_begin((yyvsp[-1].val)); +@@ -8301,17 +8293,17 @@ yyreduce: + in_def = (yyvsp[-3].num) & 1; + current_arg = (yyvsp[-4].id); + } +-#line 8301 "ripper.c" /* yacc.c:1646 */ ++#line 8293 "ripper.c" /* yacc.c:1646 */ + break; + + case 337: +-#line 3090 "ripper.y" /* yacc.c:1646 */ ++#line 3082 "ripper.y" /* yacc.c:1646 */ + {SET_LEX_STATE(EXPR_FNAME);} +-#line 8307 "ripper.c" /* yacc.c:1646 */ ++#line 8299 "ripper.c" /* yacc.c:1646 */ + break; + + case 338: +-#line 3091 "ripper.y" /* yacc.c:1646 */ ++#line 3083 "ripper.y" /* yacc.c:1646 */ + { + (yyvsp[-1].num) = in_def; + in_def = 1; +@@ -8320,11 +8312,11 @@ yyreduce: + (yyval.id) = current_arg; + current_arg = 0; + } +-#line 8320 "ripper.c" /* yacc.c:1646 */ ++#line 8312 "ripper.c" /* yacc.c:1646 */ + break; + + case 339: +-#line 3102 "ripper.y" /* yacc.c:1646 */ ++#line 3094 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + NODE *body = remove_begin((yyvsp[-1].val)); +@@ -8341,11 +8333,11 @@ yyreduce: + in_def = (yyvsp[-5].num) & 1; + current_arg = (yyvsp[-3].id); + } +-#line 8341 "ripper.c" /* yacc.c:1646 */ ++#line 8333 "ripper.c" /* yacc.c:1646 */ + break; + + case 340: +-#line 3119 "ripper.y" /* yacc.c:1646 */ ++#line 3111 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = NEW_BREAK(0); +@@ -8354,11 +8346,11 @@ yyreduce: + (yyval.val) = dispatch1(break, arg_new()); + + } +-#line 8354 "ripper.c" /* yacc.c:1646 */ ++#line 8346 "ripper.c" /* yacc.c:1646 */ + break; + + case 341: +-#line 3128 "ripper.y" /* yacc.c:1646 */ ++#line 3120 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = NEW_NEXT(0); +@@ -8367,11 +8359,11 @@ yyreduce: + (yyval.val) = dispatch1(next, arg_new()); + + } +-#line 8367 "ripper.c" /* yacc.c:1646 */ ++#line 8359 "ripper.c" /* yacc.c:1646 */ + break; + + case 342: +-#line 3137 "ripper.y" /* yacc.c:1646 */ ++#line 3129 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = NEW_REDO(); +@@ -8380,11 +8372,11 @@ yyreduce: + (yyval.val) = dispatch0(redo); + + } +-#line 8380 "ripper.c" /* yacc.c:1646 */ ++#line 8372 "ripper.c" /* yacc.c:1646 */ + break; + + case 343: +-#line 3146 "ripper.y" /* yacc.c:1646 */ ++#line 3138 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = NEW_RETRY(); +@@ -8393,11 +8385,11 @@ yyreduce: + (yyval.val) = dispatch0(retry); + + } +-#line 8393 "ripper.c" /* yacc.c:1646 */ ++#line 8385 "ripper.c" /* yacc.c:1646 */ + break; + + case 344: +-#line 3157 "ripper.y" /* yacc.c:1646 */ ++#line 3149 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + value_expr((yyvsp[0].val)); +@@ -8407,51 +8399,51 @@ yyreduce: + (yyval.val) = (yyvsp[0].val); + + } +-#line 8407 "ripper.c" /* yacc.c:1646 */ ++#line 8399 "ripper.c" /* yacc.c:1646 */ + break; + + case 345: +-#line 3169 "ripper.y" /* yacc.c:1646 */ ++#line 3161 "ripper.y" /* yacc.c:1646 */ + { + token_info_push("begin"); + } +-#line 8415 "ripper.c" /* yacc.c:1646 */ ++#line 8407 "ripper.c" /* yacc.c:1646 */ + break; + + case 346: +-#line 3175 "ripper.y" /* yacc.c:1646 */ ++#line 3167 "ripper.y" /* yacc.c:1646 */ + { + token_info_push("if"); + } +-#line 8423 "ripper.c" /* yacc.c:1646 */ ++#line 8415 "ripper.c" /* yacc.c:1646 */ + break; + + case 347: +-#line 3181 "ripper.y" /* yacc.c:1646 */ ++#line 3173 "ripper.y" /* yacc.c:1646 */ + { + token_info_push("unless"); + } +-#line 8431 "ripper.c" /* yacc.c:1646 */ ++#line 8423 "ripper.c" /* yacc.c:1646 */ + break; + + case 348: +-#line 3187 "ripper.y" /* yacc.c:1646 */ ++#line 3179 "ripper.y" /* yacc.c:1646 */ + { + token_info_push("while"); + } +-#line 8439 "ripper.c" /* yacc.c:1646 */ ++#line 8431 "ripper.c" /* yacc.c:1646 */ + break; + + case 349: +-#line 3193 "ripper.y" /* yacc.c:1646 */ ++#line 3185 "ripper.y" /* yacc.c:1646 */ + { + token_info_push("until"); + } +-#line 8447 "ripper.c" /* yacc.c:1646 */ ++#line 8439 "ripper.c" /* yacc.c:1646 */ + break; + + case 350: +-#line 3199 "ripper.y" /* yacc.c:1646 */ ++#line 3191 "ripper.y" /* yacc.c:1646 */ + { + token_info_push("case"); + #if 0 +@@ -8459,35 +8451,35 @@ yyreduce: + #endif + + } +-#line 8459 "ripper.c" /* yacc.c:1646 */ ++#line 8451 "ripper.c" /* yacc.c:1646 */ + break; + + case 351: +-#line 3209 "ripper.y" /* yacc.c:1646 */ ++#line 3201 "ripper.y" /* yacc.c:1646 */ + { + token_info_push("for"); + } +-#line 8467 "ripper.c" /* yacc.c:1646 */ ++#line 8459 "ripper.c" /* yacc.c:1646 */ + break; + + case 352: +-#line 3215 "ripper.y" /* yacc.c:1646 */ ++#line 3207 "ripper.y" /* yacc.c:1646 */ + { + token_info_push("class"); + } +-#line 8475 "ripper.c" /* yacc.c:1646 */ ++#line 8467 "ripper.c" /* yacc.c:1646 */ + break; + + case 353: +-#line 3221 "ripper.y" /* yacc.c:1646 */ ++#line 3213 "ripper.y" /* yacc.c:1646 */ + { + token_info_push("module"); + } +-#line 8483 "ripper.c" /* yacc.c:1646 */ ++#line 8475 "ripper.c" /* yacc.c:1646 */ + break; + + case 354: +-#line 3227 "ripper.y" /* yacc.c:1646 */ ++#line 3219 "ripper.y" /* yacc.c:1646 */ + { + token_info_push("def"); + #if 0 +@@ -8495,46 +8487,46 @@ yyreduce: + #endif + + } +-#line 8495 "ripper.c" /* yacc.c:1646 */ ++#line 8487 "ripper.c" /* yacc.c:1646 */ + break; + + case 355: +-#line 3237 "ripper.y" /* yacc.c:1646 */ ++#line 3229 "ripper.y" /* yacc.c:1646 */ + { + token_info_pop("end"); + } +-#line 8503 "ripper.c" /* yacc.c:1646 */ ++#line 8495 "ripper.c" /* yacc.c:1646 */ + break; + + case 356: +-#line 3243 "ripper.y" /* yacc.c:1646 */ ++#line 3235 "ripper.y" /* yacc.c:1646 */ + { + if (in_class && !in_def && !dyna_in_block()) + yyerror0("Invalid return in class/module body"); + } +-#line 8512 "ripper.c" /* yacc.c:1646 */ ++#line 8504 "ripper.c" /* yacc.c:1646 */ + break; + + case 357: +-#line 3252 "ripper.y" /* yacc.c:1646 */ ++#line 3244 "ripper.y" /* yacc.c:1646 */ + { (yyval.val) = Qnil; } +-#line 8518 "ripper.c" /* yacc.c:1646 */ ++#line 8510 "ripper.c" /* yacc.c:1646 */ + break; + + case 359: +-#line 3258 "ripper.y" /* yacc.c:1646 */ ++#line 3250 "ripper.y" /* yacc.c:1646 */ + { (yyval.val) = (yyvsp[0].val); } +-#line 8524 "ripper.c" /* yacc.c:1646 */ ++#line 8516 "ripper.c" /* yacc.c:1646 */ + break; + + case 360: +-#line 3265 "ripper.y" /* yacc.c:1646 */ ++#line 3257 "ripper.y" /* yacc.c:1646 */ + { (yyval.val) = Qnil; } +-#line 8530 "ripper.c" /* yacc.c:1646 */ ++#line 8522 "ripper.c" /* yacc.c:1646 */ + break; + + case 363: +-#line 3274 "ripper.y" /* yacc.c:1646 */ ++#line 3266 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = new_if((yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); +@@ -8543,11 +8535,11 @@ yyreduce: + (yyval.val) = dispatch3(elsif, (yyvsp[-3].val), (yyvsp[-1].val), escape_Qundef((yyvsp[0].val))); + + } +-#line 8543 "ripper.c" /* yacc.c:1646 */ ++#line 8535 "ripper.c" /* yacc.c:1646 */ + break; + + case 365: +-#line 3286 "ripper.y" /* yacc.c:1646 */ ++#line 3278 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = (yyvsp[0].val); +@@ -8555,22 +8547,22 @@ yyreduce: + (yyval.val) = dispatch1(else, (yyvsp[0].val)); + + } +-#line 8555 "ripper.c" /* yacc.c:1646 */ ++#line 8547 "ripper.c" /* yacc.c:1646 */ + break; + + case 368: +-#line 3300 "ripper.y" /* yacc.c:1646 */ ++#line 3292 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = assignable((yyvsp[0].val), 0, &(yyloc)); + #if 0 + #endif + + } +-#line 8566 "ripper.c" /* yacc.c:1646 */ ++#line 8558 "ripper.c" /* yacc.c:1646 */ + break; + + case 369: +-#line 3307 "ripper.y" /* yacc.c:1646 */ ++#line 3299 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = (yyvsp[-1].val); +@@ -8578,11 +8570,11 @@ yyreduce: + (yyval.val) = dispatch1(mlhs_paren, (yyvsp[-1].val)); + + } +-#line 8578 "ripper.c" /* yacc.c:1646 */ ++#line 8570 "ripper.c" /* yacc.c:1646 */ + break; + + case 370: +-#line 3317 "ripper.y" /* yacc.c:1646 */ ++#line 3309 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = new_list((yyvsp[0].val), &(yyloc)); +@@ -8590,11 +8582,11 @@ yyreduce: + (yyval.val) = mlhs_add(mlhs_new(), (yyvsp[0].val)); + + } +-#line 8590 "ripper.c" /* yacc.c:1646 */ ++#line 8582 "ripper.c" /* yacc.c:1646 */ + break; + + case 371: +-#line 3325 "ripper.y" /* yacc.c:1646 */ ++#line 3317 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = list_append((yyvsp[-2].val), (yyvsp[0].val)); +@@ -8602,11 +8594,11 @@ yyreduce: + (yyval.val) = mlhs_add((yyvsp[-2].val), (yyvsp[0].val)); + + } +-#line 8602 "ripper.c" /* yacc.c:1646 */ ++#line 8594 "ripper.c" /* yacc.c:1646 */ + break; + + case 372: +-#line 3335 "ripper.y" /* yacc.c:1646 */ ++#line 3327 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = new_masgn((yyvsp[0].val), 0, &(yyloc)); +@@ -8614,11 +8606,11 @@ yyreduce: + (yyval.val) = (yyvsp[0].val); + + } +-#line 8614 "ripper.c" /* yacc.c:1646 */ ++#line 8606 "ripper.c" /* yacc.c:1646 */ + break; + + case 373: +-#line 3343 "ripper.y" /* yacc.c:1646 */ ++#line 3335 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = assignable((yyvsp[0].val), 0, &(yyloc)); + #if 0 +@@ -8627,11 +8619,11 @@ yyreduce: + (yyval.val) = mlhs_add_star((yyvsp[-3].val), (yyval.val)); + + } +-#line 8627 "ripper.c" /* yacc.c:1646 */ ++#line 8619 "ripper.c" /* yacc.c:1646 */ + break; + + case 374: +-#line 3352 "ripper.y" /* yacc.c:1646 */ ++#line 3344 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = assignable((yyvsp[-2].val), 0, &(yyloc)); + #if 0 +@@ -8641,11 +8633,11 @@ yyreduce: + (yyval.val) = mlhs_add_post((yyval.val), (yyvsp[0].val)); + + } +-#line 8641 "ripper.c" /* yacc.c:1646 */ ++#line 8633 "ripper.c" /* yacc.c:1646 */ + break; + + case 375: +-#line 3362 "ripper.y" /* yacc.c:1646 */ ++#line 3354 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = new_masgn((yyvsp[-2].val), NODE_SPECIAL_NO_NAME_REST, &(yyloc)); +@@ -8653,11 +8645,11 @@ yyreduce: + (yyval.val) = mlhs_add_star((yyvsp[-2].val), Qnil); + + } +-#line 8653 "ripper.c" /* yacc.c:1646 */ ++#line 8645 "ripper.c" /* yacc.c:1646 */ + break; + + case 376: +-#line 3370 "ripper.y" /* yacc.c:1646 */ ++#line 3362 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = new_masgn((yyvsp[-4].val), new_postarg(NODE_SPECIAL_NO_NAME_REST, (yyvsp[0].val), &(yyloc)), &(yyloc)); +@@ -8666,11 +8658,11 @@ yyreduce: + (yyval.val) = mlhs_add_post((yyval.val), (yyvsp[0].val)); + + } +-#line 8666 "ripper.c" /* yacc.c:1646 */ ++#line 8658 "ripper.c" /* yacc.c:1646 */ + break; + + case 377: +-#line 3379 "ripper.y" /* yacc.c:1646 */ ++#line 3371 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = assignable((yyvsp[0].val), 0, &(yyloc)); + #if 0 +@@ -8679,11 +8671,11 @@ yyreduce: + (yyval.val) = mlhs_add_star(mlhs_new(), (yyval.val)); + + } +-#line 8679 "ripper.c" /* yacc.c:1646 */ ++#line 8671 "ripper.c" /* yacc.c:1646 */ + break; + + case 378: +-#line 3388 "ripper.y" /* yacc.c:1646 */ ++#line 3380 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = assignable((yyvsp[-2].val), 0, &(yyloc)); + #if 0 +@@ -8693,11 +8685,11 @@ yyreduce: + (yyval.val) = mlhs_add_post((yyval.val), (yyvsp[0].val)); + + } +-#line 8693 "ripper.c" /* yacc.c:1646 */ ++#line 8685 "ripper.c" /* yacc.c:1646 */ + break; + + case 379: +-#line 3398 "ripper.y" /* yacc.c:1646 */ ++#line 3390 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = new_masgn(0, NODE_SPECIAL_NO_NAME_REST, &(yyloc)); +@@ -8705,11 +8697,11 @@ yyreduce: + (yyval.val) = mlhs_add_star(mlhs_new(), Qnil); + + } +-#line 8705 "ripper.c" /* yacc.c:1646 */ ++#line 8697 "ripper.c" /* yacc.c:1646 */ + break; + + case 380: +-#line 3406 "ripper.y" /* yacc.c:1646 */ ++#line 3398 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = new_masgn(0, new_postarg(NODE_SPECIAL_NO_NAME_REST, (yyvsp[0].val), &(yyloc)), &(yyloc)); +@@ -8718,99 +8710,99 @@ yyreduce: + (yyval.val) = mlhs_add_post((yyval.val), (yyvsp[0].val)); + + } +-#line 8718 "ripper.c" /* yacc.c:1646 */ ++#line 8710 "ripper.c" /* yacc.c:1646 */ + break; + + case 381: +-#line 3418 "ripper.y" /* yacc.c:1646 */ ++#line 3410 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args_tail((yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yylsp[-1])); + } +-#line 8726 "ripper.c" /* yacc.c:1646 */ ++#line 8718 "ripper.c" /* yacc.c:1646 */ + break; + + case 382: +-#line 3422 "ripper.y" /* yacc.c:1646 */ ++#line 3414 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args_tail((yyvsp[-1].val), Qnone, (yyvsp[0].val), &(yylsp[-1])); + } +-#line 8734 "ripper.c" /* yacc.c:1646 */ ++#line 8726 "ripper.c" /* yacc.c:1646 */ + break; + + case 383: +-#line 3426 "ripper.y" /* yacc.c:1646 */ ++#line 3418 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args_tail(Qnone, (yyvsp[-1].val), (yyvsp[0].val), &(yylsp[-1])); + } +-#line 8742 "ripper.c" /* yacc.c:1646 */ ++#line 8734 "ripper.c" /* yacc.c:1646 */ + break; + + case 384: +-#line 3430 "ripper.y" /* yacc.c:1646 */ ++#line 3422 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args_tail(Qnone, Qnone, (yyvsp[0].val), &(yylsp[0])); + } +-#line 8750 "ripper.c" /* yacc.c:1646 */ ++#line 8742 "ripper.c" /* yacc.c:1646 */ + break; + + case 385: +-#line 3436 "ripper.y" /* yacc.c:1646 */ ++#line 3428 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = (yyvsp[0].val); + } +-#line 8758 "ripper.c" /* yacc.c:1646 */ ++#line 8750 "ripper.c" /* yacc.c:1646 */ + break; + + case 386: +-#line 3440 "ripper.y" /* yacc.c:1646 */ ++#line 3432 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args_tail(Qnone, Qnone, Qnone, &(yylsp[0])); + } +-#line 8766 "ripper.c" /* yacc.c:1646 */ ++#line 8758 "ripper.c" /* yacc.c:1646 */ + break; + + case 387: +-#line 3446 "ripper.y" /* yacc.c:1646 */ ++#line 3438 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args((yyvsp[-5].val), (yyvsp[-3].val), (yyvsp[-1].val), Qnone, (yyvsp[0].val), &(yyloc)); + } +-#line 8774 "ripper.c" /* yacc.c:1646 */ ++#line 8766 "ripper.c" /* yacc.c:1646 */ + break; + + case 388: +-#line 3450 "ripper.y" /* yacc.c:1646 */ ++#line 3442 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args((yyvsp[-7].val), (yyvsp[-5].val), (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); + } +-#line 8782 "ripper.c" /* yacc.c:1646 */ ++#line 8774 "ripper.c" /* yacc.c:1646 */ + break; + + case 389: +-#line 3454 "ripper.y" /* yacc.c:1646 */ ++#line 3446 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args((yyvsp[-3].val), (yyvsp[-1].val), Qnone, Qnone, (yyvsp[0].val), &(yyloc)); + } +-#line 8790 "ripper.c" /* yacc.c:1646 */ ++#line 8782 "ripper.c" /* yacc.c:1646 */ + break; + + case 390: +-#line 3458 "ripper.y" /* yacc.c:1646 */ ++#line 3450 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args((yyvsp[-5].val), (yyvsp[-3].val), Qnone, (yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); + } +-#line 8798 "ripper.c" /* yacc.c:1646 */ ++#line 8790 "ripper.c" /* yacc.c:1646 */ + break; + + case 391: +-#line 3462 "ripper.y" /* yacc.c:1646 */ ++#line 3454 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args((yyvsp[-3].val), Qnone, (yyvsp[-1].val), Qnone, (yyvsp[0].val), &(yyloc)); + } +-#line 8806 "ripper.c" /* yacc.c:1646 */ ++#line 8798 "ripper.c" /* yacc.c:1646 */ + break; + + case 392: +-#line 3466 "ripper.y" /* yacc.c:1646 */ ++#line 3458 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args((yyvsp[-1].val), Qnone, 1, Qnone, new_args_tail(Qnone, Qnone, Qnone, &(yylsp[-1])), &(yyloc)); + #if 0 +@@ -8818,91 +8810,91 @@ yyreduce: + dispatch1(excessed_comma, (yyval.val)); + + } +-#line 8818 "ripper.c" /* yacc.c:1646 */ ++#line 8810 "ripper.c" /* yacc.c:1646 */ + break; + + case 393: +-#line 3474 "ripper.y" /* yacc.c:1646 */ ++#line 3466 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args((yyvsp[-5].val), Qnone, (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); + } +-#line 8826 "ripper.c" /* yacc.c:1646 */ ++#line 8818 "ripper.c" /* yacc.c:1646 */ + break; + + case 394: +-#line 3478 "ripper.y" /* yacc.c:1646 */ ++#line 3470 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args((yyvsp[-1].val), Qnone, Qnone, Qnone, (yyvsp[0].val), &(yyloc)); + } +-#line 8834 "ripper.c" /* yacc.c:1646 */ ++#line 8826 "ripper.c" /* yacc.c:1646 */ + break; + + case 395: +-#line 3482 "ripper.y" /* yacc.c:1646 */ ++#line 3474 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args(Qnone, (yyvsp[-3].val), (yyvsp[-1].val), Qnone, (yyvsp[0].val), &(yyloc)); + } +-#line 8842 "ripper.c" /* yacc.c:1646 */ ++#line 8834 "ripper.c" /* yacc.c:1646 */ + break; + + case 396: +-#line 3486 "ripper.y" /* yacc.c:1646 */ ++#line 3478 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args(Qnone, (yyvsp[-5].val), (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); + } +-#line 8850 "ripper.c" /* yacc.c:1646 */ ++#line 8842 "ripper.c" /* yacc.c:1646 */ + break; + + case 397: +-#line 3490 "ripper.y" /* yacc.c:1646 */ ++#line 3482 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args(Qnone, (yyvsp[-1].val), Qnone, Qnone, (yyvsp[0].val), &(yyloc)); + } +-#line 8858 "ripper.c" /* yacc.c:1646 */ ++#line 8850 "ripper.c" /* yacc.c:1646 */ + break; + + case 398: +-#line 3494 "ripper.y" /* yacc.c:1646 */ ++#line 3486 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args(Qnone, (yyvsp[-3].val), Qnone, (yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); + } +-#line 8866 "ripper.c" /* yacc.c:1646 */ ++#line 8858 "ripper.c" /* yacc.c:1646 */ + break; + + case 399: +-#line 3498 "ripper.y" /* yacc.c:1646 */ ++#line 3490 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args(Qnone, Qnone, (yyvsp[-1].val), Qnone, (yyvsp[0].val), &(yyloc)); + } +-#line 8874 "ripper.c" /* yacc.c:1646 */ ++#line 8866 "ripper.c" /* yacc.c:1646 */ + break; + + case 400: +-#line 3502 "ripper.y" /* yacc.c:1646 */ ++#line 3494 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args(Qnone, Qnone, (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); + } +-#line 8882 "ripper.c" /* yacc.c:1646 */ ++#line 8874 "ripper.c" /* yacc.c:1646 */ + break; + + case 401: +-#line 3506 "ripper.y" /* yacc.c:1646 */ ++#line 3498 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args(Qnone, Qnone, Qnone, Qnone, (yyvsp[0].val), &(yyloc)); + } +-#line 8890 "ripper.c" /* yacc.c:1646 */ ++#line 8882 "ripper.c" /* yacc.c:1646 */ + break; + + case 403: +-#line 3513 "ripper.y" /* yacc.c:1646 */ ++#line 3505 "ripper.y" /* yacc.c:1646 */ + { + command_start = TRUE; + } +-#line 8898 "ripper.c" /* yacc.c:1646 */ ++#line 8890 "ripper.c" /* yacc.c:1646 */ + break; + + case 404: +-#line 3519 "ripper.y" /* yacc.c:1646 */ ++#line 3511 "ripper.y" /* yacc.c:1646 */ + { + current_arg = 0; + #if 0 +@@ -8912,11 +8904,11 @@ yyreduce: + escape_Qundef((yyvsp[-1].val))); + + } +-#line 8912 "ripper.c" /* yacc.c:1646 */ ++#line 8904 "ripper.c" /* yacc.c:1646 */ + break; + + case 405: +-#line 3529 "ripper.y" /* yacc.c:1646 */ ++#line 3521 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = 0; +@@ -8925,11 +8917,11 @@ yyreduce: + Qnil); + + } +-#line 8925 "ripper.c" /* yacc.c:1646 */ ++#line 8917 "ripper.c" /* yacc.c:1646 */ + break; + + case 406: +-#line 3538 "ripper.y" /* yacc.c:1646 */ ++#line 3530 "ripper.y" /* yacc.c:1646 */ + { + current_arg = 0; + #if 0 +@@ -8938,19 +8930,19 @@ yyreduce: + (yyval.val) = blockvar_new(escape_Qundef((yyvsp[-2].val)), escape_Qundef((yyvsp[-1].val))); + + } +-#line 8938 "ripper.c" /* yacc.c:1646 */ ++#line 8930 "ripper.c" /* yacc.c:1646 */ + break; + + case 407: +-#line 3550 "ripper.y" /* yacc.c:1646 */ ++#line 3542 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = 0; + } +-#line 8946 "ripper.c" /* yacc.c:1646 */ ++#line 8938 "ripper.c" /* yacc.c:1646 */ + break; + + case 408: +-#line 3554 "ripper.y" /* yacc.c:1646 */ ++#line 3546 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = 0; +@@ -8958,27 +8950,27 @@ yyreduce: + (yyval.val) = (yyvsp[-1].val); + + } +-#line 8958 "ripper.c" /* yacc.c:1646 */ ++#line 8950 "ripper.c" /* yacc.c:1646 */ + break; + + case 409: +-#line 3566 "ripper.y" /* yacc.c:1646 */ ++#line 3558 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = rb_ary_new3(1, get_value((yyvsp[0].val))); + } +-#line 8966 "ripper.c" /* yacc.c:1646 */ ++#line 8958 "ripper.c" /* yacc.c:1646 */ + break; + + case 410: +-#line 3573 "ripper.y" /* yacc.c:1646 */ ++#line 3565 "ripper.y" /* yacc.c:1646 */ + { + rb_ary_push((yyvsp[-2].val), get_value((yyvsp[0].val))); + } +-#line 8974 "ripper.c" /* yacc.c:1646 */ ++#line 8966 "ripper.c" /* yacc.c:1646 */ + break; + + case 411: +-#line 3580 "ripper.y" /* yacc.c:1646 */ ++#line 3572 "ripper.y" /* yacc.c:1646 */ + { + new_bv(get_id((yyvsp[0].val))); + #if 0 +@@ -8986,53 +8978,53 @@ yyreduce: + (yyval.val) = get_value((yyvsp[0].val)); + + } +-#line 8986 "ripper.c" /* yacc.c:1646 */ ++#line 8978 "ripper.c" /* yacc.c:1646 */ + break; + + case 412: +-#line 3588 "ripper.y" /* yacc.c:1646 */ ++#line 3580 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = 0; + } +-#line 8994 "ripper.c" /* yacc.c:1646 */ ++#line 8986 "ripper.c" /* yacc.c:1646 */ + break; + + case 413: +-#line 3593 "ripper.y" /* yacc.c:1646 */ ++#line 3585 "ripper.y" /* yacc.c:1646 */ + { + (yyval.vars) = dyna_push(); + } +-#line 9002 "ripper.c" /* yacc.c:1646 */ ++#line 8994 "ripper.c" /* yacc.c:1646 */ + break; + + case 414: +-#line 3596 "ripper.y" /* yacc.c:1646 */ ++#line 3588 "ripper.y" /* yacc.c:1646 */ + { + (yyval.num) = lpar_beg; + lpar_beg = ++paren_nest; + } +-#line 9011 "ripper.c" /* yacc.c:1646 */ ++#line 9003 "ripper.c" /* yacc.c:1646 */ + break; + + case 415: +-#line 3601 "ripper.y" /* yacc.c:1646 */ ++#line 3593 "ripper.y" /* yacc.c:1646 */ + { + (yyval.num) = ruby_sourceline; + } +-#line 9019 "ripper.c" /* yacc.c:1646 */ ++#line 9011 "ripper.c" /* yacc.c:1646 */ + break; + + case 416: +-#line 3604 "ripper.y" /* yacc.c:1646 */ ++#line 3596 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = cmdarg_stack; + CMDARG_SET(0); + } +-#line 9028 "ripper.c" /* yacc.c:1646 */ ++#line 9020 "ripper.c" /* yacc.c:1646 */ + break; + + case 417: +-#line 3609 "ripper.y" /* yacc.c:1646 */ ++#line 3601 "ripper.y" /* yacc.c:1646 */ + { + lpar_beg = (yyvsp[-4].num); + CMDARG_SET((yyvsp[-1].val)); +@@ -9047,11 +9039,11 @@ yyreduce: + + dyna_pop((yyvsp[-5].vars)); + } +-#line 9047 "ripper.c" /* yacc.c:1646 */ ++#line 9039 "ripper.c" /* yacc.c:1646 */ + break; + + case 418: +-#line 3626 "ripper.y" /* yacc.c:1646 */ ++#line 3618 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = (yyvsp[-2].val); +@@ -9059,46 +9051,46 @@ yyreduce: + (yyval.val) = dispatch1(paren, (yyvsp[-2].val)); + + } +-#line 9059 "ripper.c" /* yacc.c:1646 */ ++#line 9051 "ripper.c" /* yacc.c:1646 */ + break; + + case 419: +-#line 3634 "ripper.y" /* yacc.c:1646 */ ++#line 3626 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = (yyvsp[0].val); + } +-#line 9067 "ripper.c" /* yacc.c:1646 */ ++#line 9059 "ripper.c" /* yacc.c:1646 */ + break; + + case 420: +-#line 3640 "ripper.y" /* yacc.c:1646 */ ++#line 3632 "ripper.y" /* yacc.c:1646 */ + { + token_info_pop("}"); + (yyval.val) = (yyvsp[-1].val); + } +-#line 9076 "ripper.c" /* yacc.c:1646 */ ++#line 9068 "ripper.c" /* yacc.c:1646 */ + break; + + case 421: +-#line 3645 "ripper.y" /* yacc.c:1646 */ ++#line 3637 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = (yyvsp[-1].val); + } +-#line 9084 "ripper.c" /* yacc.c:1646 */ ++#line 9076 "ripper.c" /* yacc.c:1646 */ + break; + + case 422: +-#line 3651 "ripper.y" /* yacc.c:1646 */ ++#line 3643 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.num) = ruby_sourceline; + #endif + } +-#line 9094 "ripper.c" /* yacc.c:1646 */ ++#line 9086 "ripper.c" /* yacc.c:1646 */ + break; + + case 423: +-#line 3657 "ripper.y" /* yacc.c:1646 */ ++#line 3649 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = (yyvsp[-1].val); + #if 0 +@@ -9107,11 +9099,11 @@ yyreduce: + nd_set_line((yyval.val), (yyvsp[-2].num)); + #endif + } +-#line 9107 "ripper.c" /* yacc.c:1646 */ ++#line 9099 "ripper.c" /* yacc.c:1646 */ + break; + + case 424: +-#line 3668 "ripper.y" /* yacc.c:1646 */ ++#line 3660 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + if (nd_type((yyvsp[-1].val)) == NODE_YIELD) { +@@ -9128,19 +9120,19 @@ yyreduce: + (yyval.val) = method_add_block((yyvsp[-1].val), (yyvsp[0].val)); + + } +-#line 9128 "ripper.c" /* yacc.c:1646 */ ++#line 9120 "ripper.c" /* yacc.c:1646 */ + break; + + case 425: +-#line 3685 "ripper.y" /* yacc.c:1646 */ ++#line 3677 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_qcall((yyvsp[-2].val), (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); + } +-#line 9136 "ripper.c" /* yacc.c:1646 */ ++#line 9128 "ripper.c" /* yacc.c:1646 */ + break; + + case 426: +-#line 3689 "ripper.y" /* yacc.c:1646 */ ++#line 3681 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + block_dup_check((yyvsp[-1].val), (yyvsp[0].val)); +@@ -9153,11 +9145,11 @@ yyreduce: + (yyval.val) = method_add_block((yyval.val), (yyvsp[0].val)); + + } +-#line 9153 "ripper.c" /* yacc.c:1646 */ ++#line 9145 "ripper.c" /* yacc.c:1646 */ + break; + + case 427: +-#line 3702 "ripper.y" /* yacc.c:1646 */ ++#line 3694 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + block_dup_check((yyvsp[-1].val), (yyvsp[0].val)); +@@ -9170,11 +9162,11 @@ yyreduce: + (yyval.val) = method_add_block((yyval.val), (yyvsp[0].val)); + + } +-#line 9170 "ripper.c" /* yacc.c:1646 */ ++#line 9162 "ripper.c" /* yacc.c:1646 */ + break; + + case 428: +-#line 3717 "ripper.y" /* yacc.c:1646 */ ++#line 3709 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = (yyvsp[-1].val); +@@ -9184,95 +9176,95 @@ yyreduce: + (yyval.val) = method_arg(dispatch1(fcall, (yyvsp[-1].val)), (yyvsp[0].val)); + + } +-#line 9184 "ripper.c" /* yacc.c:1646 */ ++#line 9176 "ripper.c" /* yacc.c:1646 */ + break; + + case 429: +-#line 3727 "ripper.y" /* yacc.c:1646 */ ++#line 3719 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.num) = ruby_sourceline; + #endif + } +-#line 9194 "ripper.c" /* yacc.c:1646 */ ++#line 9186 "ripper.c" /* yacc.c:1646 */ + break; + + case 430: +-#line 3733 "ripper.y" /* yacc.c:1646 */ ++#line 3725 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_qcall((yyvsp[-3].val), (yyvsp[-4].val), (yyvsp[-2].val), (yyvsp[0].val), &(yyloc)); + nd_set_line((yyval.val), (yyvsp[-1].num)); + } +-#line 9203 "ripper.c" /* yacc.c:1646 */ ++#line 9195 "ripper.c" /* yacc.c:1646 */ + break; + + case 431: +-#line 3738 "ripper.y" /* yacc.c:1646 */ ++#line 3730 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.num) = ruby_sourceline; + #endif + } +-#line 9213 "ripper.c" /* yacc.c:1646 */ ++#line 9205 "ripper.c" /* yacc.c:1646 */ + break; + + case 432: +-#line 3744 "ripper.y" /* yacc.c:1646 */ ++#line 3736 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_qcall(ID2VAL(idCOLON2), (yyvsp[-4].val), (yyvsp[-2].val), (yyvsp[0].val), &(yyloc)); + nd_set_line((yyval.val), (yyvsp[-1].num)); + } +-#line 9222 "ripper.c" /* yacc.c:1646 */ ++#line 9214 "ripper.c" /* yacc.c:1646 */ + break; + + case 433: +-#line 3749 "ripper.y" /* yacc.c:1646 */ ++#line 3741 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_qcall(ID2VAL(idCOLON2), (yyvsp[-2].val), (yyvsp[0].val), Qnull, &(yyloc)); + } +-#line 9230 "ripper.c" /* yacc.c:1646 */ ++#line 9222 "ripper.c" /* yacc.c:1646 */ + break; + + case 434: +-#line 3753 "ripper.y" /* yacc.c:1646 */ ++#line 3745 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.num) = ruby_sourceline; + #endif + } +-#line 9240 "ripper.c" /* yacc.c:1646 */ ++#line 9232 "ripper.c" /* yacc.c:1646 */ + break; + + case 435: +-#line 3759 "ripper.y" /* yacc.c:1646 */ ++#line 3751 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_qcall((yyvsp[-2].val), (yyvsp[-3].val), ID2VAL(idCall), (yyvsp[0].val), &(yyloc)); + nd_set_line((yyval.val), (yyvsp[-1].num)); + } +-#line 9249 "ripper.c" /* yacc.c:1646 */ ++#line 9241 "ripper.c" /* yacc.c:1646 */ + break; + + case 436: +-#line 3764 "ripper.y" /* yacc.c:1646 */ ++#line 3756 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.num) = ruby_sourceline; + #endif + } +-#line 9259 "ripper.c" /* yacc.c:1646 */ ++#line 9251 "ripper.c" /* yacc.c:1646 */ + break; + + case 437: +-#line 3770 "ripper.y" /* yacc.c:1646 */ ++#line 3762 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_qcall(ID2VAL(idCOLON2), (yyvsp[-3].val), ID2VAL(idCall), (yyvsp[0].val), &(yyloc)); + nd_set_line((yyval.val), (yyvsp[-1].num)); + } +-#line 9268 "ripper.c" /* yacc.c:1646 */ ++#line 9260 "ripper.c" /* yacc.c:1646 */ + break; + + case 438: +-#line 3775 "ripper.y" /* yacc.c:1646 */ ++#line 3767 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = NEW_SUPER((yyvsp[0].val)); +@@ -9281,11 +9273,11 @@ yyreduce: + (yyval.val) = dispatch1(super, (yyvsp[0].val)); + + } +-#line 9281 "ripper.c" /* yacc.c:1646 */ ++#line 9273 "ripper.c" /* yacc.c:1646 */ + break; + + case 439: +-#line 3784 "ripper.y" /* yacc.c:1646 */ ++#line 3776 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = NEW_ZSUPER(); +@@ -9294,11 +9286,11 @@ yyreduce: + (yyval.val) = dispatch0(zsuper); + + } +-#line 9294 "ripper.c" /* yacc.c:1646 */ ++#line 9286 "ripper.c" /* yacc.c:1646 */ + break; + + case 440: +-#line 3793 "ripper.y" /* yacc.c:1646 */ ++#line 3785 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + if ((yyvsp[-3].val) && nd_type((yyvsp[-3].val)) == NODE_SELF) +@@ -9310,21 +9302,21 @@ yyreduce: + (yyval.val) = dispatch2(aref, (yyvsp[-3].val), escape_Qundef((yyvsp[-1].val))); + + } +-#line 9310 "ripper.c" /* yacc.c:1646 */ ++#line 9302 "ripper.c" /* yacc.c:1646 */ + break; + + case 441: +-#line 3807 "ripper.y" /* yacc.c:1646 */ ++#line 3799 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.num) = ruby_sourceline; + #endif + } +-#line 9320 "ripper.c" /* yacc.c:1646 */ ++#line 9312 "ripper.c" /* yacc.c:1646 */ + break; + + case 442: +-#line 3813 "ripper.y" /* yacc.c:1646 */ ++#line 3805 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = (yyvsp[-1].val); + #if 0 +@@ -9333,21 +9325,21 @@ yyreduce: + nd_set_line((yyval.val), (yyvsp[-2].num)); + #endif + } +-#line 9333 "ripper.c" /* yacc.c:1646 */ ++#line 9325 "ripper.c" /* yacc.c:1646 */ + break; + + case 443: +-#line 3822 "ripper.y" /* yacc.c:1646 */ ++#line 3814 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.num) = ruby_sourceline; + #endif + } +-#line 9343 "ripper.c" /* yacc.c:1646 */ ++#line 9335 "ripper.c" /* yacc.c:1646 */ + break; + + case 444: +-#line 3828 "ripper.y" /* yacc.c:1646 */ ++#line 3820 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = (yyvsp[-1].val); + #if 0 +@@ -9356,55 +9348,55 @@ yyreduce: + nd_set_line((yyval.val), (yyvsp[-2].num)); + #endif + } +-#line 9356 "ripper.c" /* yacc.c:1646 */ ++#line 9348 "ripper.c" /* yacc.c:1646 */ + break; + + case 445: +-#line 3838 "ripper.y" /* yacc.c:1646 */ ++#line 3830 "ripper.y" /* yacc.c:1646 */ + {(yyval.vars) = dyna_push();} +-#line 9362 "ripper.c" /* yacc.c:1646 */ ++#line 9354 "ripper.c" /* yacc.c:1646 */ + break; + + case 446: +-#line 3839 "ripper.y" /* yacc.c:1646 */ ++#line 3831 "ripper.y" /* yacc.c:1646 */ + {(yyval.val) = cmdarg_stack >> 1; CMDARG_SET(0);} +-#line 9368 "ripper.c" /* yacc.c:1646 */ ++#line 9360 "ripper.c" /* yacc.c:1646 */ + break; + + case 447: +-#line 3841 "ripper.y" /* yacc.c:1646 */ ++#line 3833 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_brace_body((yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); + dyna_pop((yyvsp[-3].vars)); + CMDARG_SET((yyvsp[-2].val)); + } +-#line 9378 "ripper.c" /* yacc.c:1646 */ ++#line 9370 "ripper.c" /* yacc.c:1646 */ + break; + + case 448: +-#line 3848 "ripper.y" /* yacc.c:1646 */ ++#line 3840 "ripper.y" /* yacc.c:1646 */ + {(yyval.vars) = dyna_push();} +-#line 9384 "ripper.c" /* yacc.c:1646 */ ++#line 9376 "ripper.c" /* yacc.c:1646 */ + break; + + case 449: +-#line 3849 "ripper.y" /* yacc.c:1646 */ ++#line 3841 "ripper.y" /* yacc.c:1646 */ + {(yyval.val) = cmdarg_stack; CMDARG_SET(0);} +-#line 9390 "ripper.c" /* yacc.c:1646 */ ++#line 9382 "ripper.c" /* yacc.c:1646 */ + break; + + case 450: +-#line 3851 "ripper.y" /* yacc.c:1646 */ ++#line 3843 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_do_body((yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); + dyna_pop((yyvsp[-3].vars)); + CMDARG_SET((yyvsp[-2].val)); + } +-#line 9400 "ripper.c" /* yacc.c:1646 */ ++#line 9392 "ripper.c" /* yacc.c:1646 */ + break; + + case 451: +-#line 3861 "ripper.y" /* yacc.c:1646 */ ++#line 3853 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = NEW_WHEN((yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val)); +@@ -9413,11 +9405,11 @@ yyreduce: + (yyval.val) = dispatch3(when, (yyvsp[-3].val), (yyvsp[-1].val), escape_Qundef((yyvsp[0].val))); + + } +-#line 9413 "ripper.c" /* yacc.c:1646 */ ++#line 9405 "ripper.c" /* yacc.c:1646 */ + break; + + case 454: +-#line 3878 "ripper.y" /* yacc.c:1646 */ ++#line 3870 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + if ((yyvsp[-3].val)) { +@@ -9437,11 +9429,11 @@ yyreduce: + escape_Qundef((yyvsp[0].val))); + + } +-#line 9437 "ripper.c" /* yacc.c:1646 */ ++#line 9429 "ripper.c" /* yacc.c:1646 */ + break; + + case 456: +-#line 3901 "ripper.y" /* yacc.c:1646 */ ++#line 3893 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = new_list((yyvsp[0].val), &(yyloc)); +@@ -9449,11 +9441,11 @@ yyreduce: + (yyval.val) = rb_ary_new3(1, get_value((yyvsp[0].val))); + + } +-#line 9449 "ripper.c" /* yacc.c:1646 */ ++#line 9441 "ripper.c" /* yacc.c:1646 */ + break; + + case 457: +-#line 3909 "ripper.y" /* yacc.c:1646 */ ++#line 3901 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + if (!((yyval.val) = splat_array((yyvsp[0].val)))) (yyval.val) = (yyvsp[0].val); +@@ -9461,19 +9453,19 @@ yyreduce: + (yyval.val) = (yyvsp[0].val); + + } +-#line 9461 "ripper.c" /* yacc.c:1646 */ ++#line 9453 "ripper.c" /* yacc.c:1646 */ + break; + + case 459: +-#line 3920 "ripper.y" /* yacc.c:1646 */ ++#line 3912 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = (yyvsp[0].val); + } +-#line 9469 "ripper.c" /* yacc.c:1646 */ ++#line 9461 "ripper.c" /* yacc.c:1646 */ + break; + + case 461: +-#line 3927 "ripper.y" /* yacc.c:1646 */ ++#line 3919 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = (yyvsp[0].val); +@@ -9481,11 +9473,11 @@ yyreduce: + (yyval.val) = dispatch1(ensure, (yyvsp[0].val)); + + } +-#line 9481 "ripper.c" /* yacc.c:1646 */ ++#line 9473 "ripper.c" /* yacc.c:1646 */ + break; + + case 464: +-#line 3939 "ripper.y" /* yacc.c:1646 */ ++#line 3931 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = new_lit(ID2SYM((yyvsp[0].val)), &(yyloc)); +@@ -9493,11 +9485,11 @@ yyreduce: + (yyval.val) = dispatch1(symbol_literal, (yyvsp[0].val)); + + } +-#line 9493 "ripper.c" /* yacc.c:1646 */ ++#line 9485 "ripper.c" /* yacc.c:1646 */ + break; + + case 466: +-#line 3950 "ripper.y" /* yacc.c:1646 */ ++#line 3942 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + NODE *node = (yyvsp[0].val); +@@ -9512,22 +9504,22 @@ yyreduce: + (yyval.val) = (yyvsp[0].val); + + } +-#line 9512 "ripper.c" /* yacc.c:1646 */ ++#line 9504 "ripper.c" /* yacc.c:1646 */ + break; + + case 467: +-#line 3967 "ripper.y" /* yacc.c:1646 */ ++#line 3959 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val)->nd_loc = (yyloc); + #endif + + } +-#line 9523 "ripper.c" /* yacc.c:1646 */ ++#line 9515 "ripper.c" /* yacc.c:1646 */ + break; + + case 469: +-#line 3975 "ripper.y" /* yacc.c:1646 */ ++#line 3967 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = literal_concat((yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); +@@ -9535,11 +9527,11 @@ yyreduce: + (yyval.val) = dispatch2(string_concat, (yyvsp[-1].val), (yyvsp[0].val)); + + } +-#line 9535 "ripper.c" /* yacc.c:1646 */ ++#line 9527 "ripper.c" /* yacc.c:1646 */ + break; + + case 470: +-#line 3985 "ripper.y" /* yacc.c:1646 */ ++#line 3977 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_string1(heredoc_dedent((yyvsp[-1].val))); + #if 0 +@@ -9547,27 +9539,27 @@ yyreduce: + #endif + + } +-#line 9547 "ripper.c" /* yacc.c:1646 */ ++#line 9539 "ripper.c" /* yacc.c:1646 */ + break; + + case 471: +-#line 3995 "ripper.y" /* yacc.c:1646 */ ++#line 3987 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_xstring(heredoc_dedent((yyvsp[-1].val)), &(yyloc)); + } +-#line 9555 "ripper.c" /* yacc.c:1646 */ ++#line 9547 "ripper.c" /* yacc.c:1646 */ + break; + + case 472: +-#line 4001 "ripper.y" /* yacc.c:1646 */ ++#line 3993 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_regexp((yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); + } +-#line 9563 "ripper.c" /* yacc.c:1646 */ ++#line 9555 "ripper.c" /* yacc.c:1646 */ + break; + + case 473: +-#line 4007 "ripper.y" /* yacc.c:1646 */ ++#line 3999 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = make_array((yyvsp[-1].val), &(yyloc)); +@@ -9575,11 +9567,11 @@ yyreduce: + (yyval.val) = dispatch1(array, (yyvsp[-1].val)); + + } +-#line 9575 "ripper.c" /* yacc.c:1646 */ ++#line 9567 "ripper.c" /* yacc.c:1646 */ + break; + + case 474: +-#line 4017 "ripper.y" /* yacc.c:1646 */ ++#line 4009 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = 0; +@@ -9587,11 +9579,11 @@ yyreduce: + (yyval.val) = dispatch0(words_new); + + } +-#line 9587 "ripper.c" /* yacc.c:1646 */ ++#line 9579 "ripper.c" /* yacc.c:1646 */ + break; + + case 475: +-#line 4025 "ripper.y" /* yacc.c:1646 */ ++#line 4017 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = list_append((yyvsp[-2].val), evstr2dstr((yyvsp[-1].val))); +@@ -9599,20 +9591,20 @@ yyreduce: + (yyval.val) = dispatch2(words_add, (yyvsp[-2].val), (yyvsp[-1].val)); + + } +-#line 9599 "ripper.c" /* yacc.c:1646 */ ++#line 9591 "ripper.c" /* yacc.c:1646 */ + break; + + case 476: +-#line 4037 "ripper.y" /* yacc.c:1646 */ ++#line 4029 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = dispatch0(word_new); + (yyval.val) = dispatch2(word_add, (yyval.val), (yyvsp[0].val)); + } +-#line 9608 "ripper.c" /* yacc.c:1646 */ ++#line 9600 "ripper.c" /* yacc.c:1646 */ + break; + + case 477: +-#line 4043 "ripper.y" /* yacc.c:1646 */ ++#line 4035 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = literal_concat((yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); +@@ -9620,11 +9612,11 @@ yyreduce: + (yyval.val) = dispatch2(word_add, (yyvsp[-1].val), (yyvsp[0].val)); + + } +-#line 9620 "ripper.c" /* yacc.c:1646 */ ++#line 9612 "ripper.c" /* yacc.c:1646 */ + break; + + case 478: +-#line 4053 "ripper.y" /* yacc.c:1646 */ ++#line 4045 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = make_array((yyvsp[-1].val), &(yyloc)); +@@ -9632,11 +9624,11 @@ yyreduce: + (yyval.val) = dispatch1(array, (yyvsp[-1].val)); + + } +-#line 9632 "ripper.c" /* yacc.c:1646 */ ++#line 9624 "ripper.c" /* yacc.c:1646 */ + break; + + case 479: +-#line 4063 "ripper.y" /* yacc.c:1646 */ ++#line 4055 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = 0; +@@ -9644,11 +9636,11 @@ yyreduce: + (yyval.val) = dispatch0(symbols_new); + + } +-#line 9644 "ripper.c" /* yacc.c:1646 */ ++#line 9636 "ripper.c" /* yacc.c:1646 */ + break; + + case 480: +-#line 4071 "ripper.y" /* yacc.c:1646 */ ++#line 4063 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyvsp[-1].val) = evstr2dstr((yyvsp[-1].val)); +@@ -9664,11 +9656,11 @@ yyreduce: + (yyval.val) = dispatch2(symbols_add, (yyvsp[-2].val), (yyvsp[-1].val)); + + } +-#line 9664 "ripper.c" /* yacc.c:1646 */ ++#line 9656 "ripper.c" /* yacc.c:1646 */ + break; + + case 481: +-#line 4089 "ripper.y" /* yacc.c:1646 */ ++#line 4081 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = make_array((yyvsp[-1].val), &(yyloc)); +@@ -9676,11 +9668,11 @@ yyreduce: + (yyval.val) = dispatch1(array, (yyvsp[-1].val)); + + } +-#line 9676 "ripper.c" /* yacc.c:1646 */ ++#line 9668 "ripper.c" /* yacc.c:1646 */ + break; + + case 482: +-#line 4099 "ripper.y" /* yacc.c:1646 */ ++#line 4091 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = make_array((yyvsp[-1].val), &(yyloc)); +@@ -9688,11 +9680,11 @@ yyreduce: + (yyval.val) = dispatch1(array, (yyvsp[-1].val)); + + } +-#line 9688 "ripper.c" /* yacc.c:1646 */ ++#line 9680 "ripper.c" /* yacc.c:1646 */ + break; + + case 483: +-#line 4109 "ripper.y" /* yacc.c:1646 */ ++#line 4101 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = 0; +@@ -9700,11 +9692,11 @@ yyreduce: + (yyval.val) = dispatch0(qwords_new); + + } +-#line 9700 "ripper.c" /* yacc.c:1646 */ ++#line 9692 "ripper.c" /* yacc.c:1646 */ + break; + + case 484: +-#line 4117 "ripper.y" /* yacc.c:1646 */ ++#line 4109 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyvsp[-1].val)->nd_loc = (yylsp[-1]); +@@ -9713,11 +9705,11 @@ yyreduce: + (yyval.val) = dispatch2(qwords_add, (yyvsp[-2].val), (yyvsp[-1].val)); + + } +-#line 9713 "ripper.c" /* yacc.c:1646 */ ++#line 9705 "ripper.c" /* yacc.c:1646 */ + break; + + case 485: +-#line 4128 "ripper.y" /* yacc.c:1646 */ ++#line 4120 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = 0; +@@ -9725,11 +9717,11 @@ yyreduce: + (yyval.val) = dispatch0(qsymbols_new); + + } +-#line 9725 "ripper.c" /* yacc.c:1646 */ ++#line 9717 "ripper.c" /* yacc.c:1646 */ + break; + + case 486: +-#line 4136 "ripper.y" /* yacc.c:1646 */ ++#line 4128 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + VALUE lit; +@@ -9742,11 +9734,11 @@ yyreduce: + (yyval.val) = dispatch2(qsymbols_add, (yyvsp[-2].val), (yyvsp[-1].val)); + + } +-#line 9742 "ripper.c" /* yacc.c:1646 */ ++#line 9734 "ripper.c" /* yacc.c:1646 */ + break; + + case 487: +-#line 4151 "ripper.y" /* yacc.c:1646 */ ++#line 4143 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = 0; +@@ -9754,11 +9746,11 @@ yyreduce: + (yyval.val) = dispatch0(string_content); + + } +-#line 9754 "ripper.c" /* yacc.c:1646 */ ++#line 9746 "ripper.c" /* yacc.c:1646 */ + break; + + case 488: +-#line 4159 "ripper.y" /* yacc.c:1646 */ ++#line 4151 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = literal_concat((yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); +@@ -9766,11 +9758,11 @@ yyreduce: + (yyval.val) = dispatch2(string_add, (yyvsp[-1].val), (yyvsp[0].val)); + + } +-#line 9766 "ripper.c" /* yacc.c:1646 */ ++#line 9758 "ripper.c" /* yacc.c:1646 */ + break; + + case 489: +-#line 4169 "ripper.y" /* yacc.c:1646 */ ++#line 4161 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = 0; +@@ -9778,11 +9770,11 @@ yyreduce: + (yyval.val) = dispatch0(xstring_new); + + } +-#line 9778 "ripper.c" /* yacc.c:1646 */ ++#line 9770 "ripper.c" /* yacc.c:1646 */ + break; + + case 490: +-#line 4177 "ripper.y" /* yacc.c:1646 */ ++#line 4169 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = literal_concat((yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); +@@ -9790,11 +9782,11 @@ yyreduce: + (yyval.val) = dispatch2(xstring_add, (yyvsp[-1].val), (yyvsp[0].val)); + + } +-#line 9790 "ripper.c" /* yacc.c:1646 */ ++#line 9782 "ripper.c" /* yacc.c:1646 */ + break; + + case 491: +-#line 4187 "ripper.y" /* yacc.c:1646 */ ++#line 4179 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = 0; +@@ -9802,11 +9794,11 @@ yyreduce: + (yyval.val) = ripper_new_yylval(0, dispatch0(regexp_new), 0); + + } +-#line 9802 "ripper.c" /* yacc.c:1646 */ ++#line 9794 "ripper.c" /* yacc.c:1646 */ + break; + + case 492: +-#line 4195 "ripper.y" /* yacc.c:1646 */ ++#line 4187 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + NODE *head = (yyvsp[-1].val), *tail = (yyvsp[0].val); +@@ -9845,33 +9837,33 @@ yyreduce: + } + + } +-#line 9845 "ripper.c" /* yacc.c:1646 */ ++#line 9837 "ripper.c" /* yacc.c:1646 */ + break; + + case 493: +-#line 4236 "ripper.y" /* yacc.c:1646 */ ++#line 4228 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val)->nd_loc = (yyloc); + #endif + + } +-#line 9856 "ripper.c" /* yacc.c:1646 */ ++#line 9848 "ripper.c" /* yacc.c:1646 */ + break; + + case 494: +-#line 4243 "ripper.y" /* yacc.c:1646 */ ++#line 4235 "ripper.y" /* yacc.c:1646 */ + { + /* need to backup lex_strterm so that a string literal `%&foo,#$&,bar&` can be parsed */ + (yyval.strterm) = lex_strterm; + lex_strterm = 0; + SET_LEX_STATE(EXPR_BEG); + } +-#line 9867 "ripper.c" /* yacc.c:1646 */ ++#line 9859 "ripper.c" /* yacc.c:1646 */ + break; + + case 495: +-#line 4250 "ripper.y" /* yacc.c:1646 */ ++#line 4242 "ripper.y" /* yacc.c:1646 */ + { + lex_strterm = (yyvsp[-1].strterm); + #if 0 +@@ -9881,59 +9873,59 @@ yyreduce: + (yyval.val) = dispatch1(string_dvar, (yyvsp[0].val)); + + } +-#line 9881 "ripper.c" /* yacc.c:1646 */ ++#line 9873 "ripper.c" /* yacc.c:1646 */ + break; + + case 496: +-#line 4260 "ripper.y" /* yacc.c:1646 */ ++#line 4252 "ripper.y" /* yacc.c:1646 */ + { + (yyvsp[0].val) = cond_stack; + (yyval.val) = cmdarg_stack; + COND_SET(0); + CMDARG_SET(0); + } +-#line 9892 "ripper.c" /* yacc.c:1646 */ ++#line 9884 "ripper.c" /* yacc.c:1646 */ + break; + + case 497: +-#line 4266 "ripper.y" /* yacc.c:1646 */ ++#line 4258 "ripper.y" /* yacc.c:1646 */ + { + /* need to backup lex_strterm so that a string literal `%!foo,#{ !0 },bar!` can be parsed */ + (yyval.strterm) = lex_strterm; + lex_strterm = 0; + } +-#line 9902 "ripper.c" /* yacc.c:1646 */ ++#line 9894 "ripper.c" /* yacc.c:1646 */ + break; + + case 498: +-#line 4271 "ripper.y" /* yacc.c:1646 */ ++#line 4263 "ripper.y" /* yacc.c:1646 */ + { + (yyval.num) = lex_state; + SET_LEX_STATE(EXPR_BEG); + } +-#line 9911 "ripper.c" /* yacc.c:1646 */ ++#line 9903 "ripper.c" /* yacc.c:1646 */ + break; + + case 499: +-#line 4275 "ripper.y" /* yacc.c:1646 */ ++#line 4267 "ripper.y" /* yacc.c:1646 */ + { + (yyval.num) = brace_nest; + brace_nest = 0; + } +-#line 9920 "ripper.c" /* yacc.c:1646 */ ++#line 9912 "ripper.c" /* yacc.c:1646 */ + break; + + case 500: +-#line 4279 "ripper.y" /* yacc.c:1646 */ ++#line 4271 "ripper.y" /* yacc.c:1646 */ + { + (yyval.num) = heredoc_indent; + heredoc_indent = 0; + } +-#line 9929 "ripper.c" /* yacc.c:1646 */ ++#line 9921 "ripper.c" /* yacc.c:1646 */ + break; + + case 501: +-#line 4284 "ripper.y" /* yacc.c:1646 */ ++#line 4276 "ripper.y" /* yacc.c:1646 */ + { + COND_SET((yyvsp[-7].val)); + CMDARG_SET((yyvsp[-6].val)); +@@ -9949,11 +9941,11 @@ yyreduce: + (yyval.val) = dispatch1(string_embexpr, (yyvsp[-1].val)); + + } +-#line 9949 "ripper.c" /* yacc.c:1646 */ ++#line 9941 "ripper.c" /* yacc.c:1646 */ + break; + + case 502: +-#line 4302 "ripper.y" /* yacc.c:1646 */ ++#line 4294 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = new_gvar((yyvsp[0].val), &(yyloc)); +@@ -9961,11 +9953,11 @@ yyreduce: + (yyval.val) = dispatch1(var_ref, (yyvsp[0].val)); + + } +-#line 9961 "ripper.c" /* yacc.c:1646 */ ++#line 9953 "ripper.c" /* yacc.c:1646 */ + break; + + case 503: +-#line 4310 "ripper.y" /* yacc.c:1646 */ ++#line 4302 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = new_ivar((yyvsp[0].val), &(yyloc)); +@@ -9973,11 +9965,11 @@ yyreduce: + (yyval.val) = dispatch1(var_ref, (yyvsp[0].val)); + + } +-#line 9973 "ripper.c" /* yacc.c:1646 */ ++#line 9965 "ripper.c" /* yacc.c:1646 */ + break; + + case 504: +-#line 4318 "ripper.y" /* yacc.c:1646 */ ++#line 4310 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = NEW_CVAR((yyvsp[0].val)); +@@ -9986,11 +9978,11 @@ yyreduce: + (yyval.val) = dispatch1(var_ref, (yyvsp[0].val)); + + } +-#line 9986 "ripper.c" /* yacc.c:1646 */ ++#line 9978 "ripper.c" /* yacc.c:1646 */ + break; + + case 506: +-#line 4330 "ripper.y" /* yacc.c:1646 */ ++#line 4322 "ripper.y" /* yacc.c:1646 */ + { + SET_LEX_STATE(EXPR_END|EXPR_ENDARG); + #if 0 +@@ -9999,11 +9991,11 @@ yyreduce: + (yyval.val) = dispatch1(symbol, (yyvsp[0].val)); + + } +-#line 9999 "ripper.c" /* yacc.c:1646 */ ++#line 9991 "ripper.c" /* yacc.c:1646 */ + break; + + case 511: +-#line 4347 "ripper.y" /* yacc.c:1646 */ ++#line 4339 "ripper.y" /* yacc.c:1646 */ + { + SET_LEX_STATE(EXPR_END|EXPR_ENDARG); + #if 0 +@@ -10012,11 +10004,11 @@ yyreduce: + (yyval.val) = dispatch1(dyna_symbol, (yyvsp[-1].val)); + + } +-#line 10012 "ripper.c" /* yacc.c:1646 */ ++#line 10004 "ripper.c" /* yacc.c:1646 */ + break; + + case 513: +-#line 4359 "ripper.y" /* yacc.c:1646 */ ++#line 4351 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = (yyvsp[0].val); +@@ -10025,97 +10017,97 @@ yyreduce: + (yyval.val) = dispatch2(unary, ID2VAL(idUMinus), (yyvsp[0].val)); + + } +-#line 10025 "ripper.c" /* yacc.c:1646 */ ++#line 10017 "ripper.c" /* yacc.c:1646 */ + break; + + case 514: +-#line 4370 "ripper.y" /* yacc.c:1646 */ ++#line 4362 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val)->nd_loc = (yyloc); + #endif + + } +-#line 10036 "ripper.c" /* yacc.c:1646 */ ++#line 10028 "ripper.c" /* yacc.c:1646 */ + break; + + case 515: +-#line 4377 "ripper.y" /* yacc.c:1646 */ ++#line 4369 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val)->nd_loc = (yyloc); + #endif + + } +-#line 10047 "ripper.c" /* yacc.c:1646 */ ++#line 10039 "ripper.c" /* yacc.c:1646 */ + break; + + case 516: +-#line 4384 "ripper.y" /* yacc.c:1646 */ ++#line 4376 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val)->nd_loc = (yyloc); + #endif + + } +-#line 10058 "ripper.c" /* yacc.c:1646 */ ++#line 10050 "ripper.c" /* yacc.c:1646 */ + break; + + case 517: +-#line 4391 "ripper.y" /* yacc.c:1646 */ ++#line 4383 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val)->nd_loc = (yyloc); + #endif + + } +-#line 10069 "ripper.c" /* yacc.c:1646 */ ++#line 10061 "ripper.c" /* yacc.c:1646 */ + break; + + case 523: +-#line 4406 "ripper.y" /* yacc.c:1646 */ ++#line 4398 "ripper.y" /* yacc.c:1646 */ + {(yyval.val) = KWD2EID(nil, (yyvsp[0].val));} +-#line 10075 "ripper.c" /* yacc.c:1646 */ ++#line 10067 "ripper.c" /* yacc.c:1646 */ + break; + + case 524: +-#line 4407 "ripper.y" /* yacc.c:1646 */ ++#line 4399 "ripper.y" /* yacc.c:1646 */ + {(yyval.val) = KWD2EID(self, (yyvsp[0].val));} +-#line 10081 "ripper.c" /* yacc.c:1646 */ ++#line 10073 "ripper.c" /* yacc.c:1646 */ + break; + + case 525: +-#line 4408 "ripper.y" /* yacc.c:1646 */ ++#line 4400 "ripper.y" /* yacc.c:1646 */ + {(yyval.val) = KWD2EID(true, (yyvsp[0].val));} +-#line 10087 "ripper.c" /* yacc.c:1646 */ ++#line 10079 "ripper.c" /* yacc.c:1646 */ + break; + + case 526: +-#line 4409 "ripper.y" /* yacc.c:1646 */ ++#line 4401 "ripper.y" /* yacc.c:1646 */ + {(yyval.val) = KWD2EID(false, (yyvsp[0].val));} +-#line 10093 "ripper.c" /* yacc.c:1646 */ ++#line 10085 "ripper.c" /* yacc.c:1646 */ + break; + + case 527: +-#line 4410 "ripper.y" /* yacc.c:1646 */ ++#line 4402 "ripper.y" /* yacc.c:1646 */ + {(yyval.val) = KWD2EID(_FILE__, (yyvsp[0].val));} +-#line 10099 "ripper.c" /* yacc.c:1646 */ ++#line 10091 "ripper.c" /* yacc.c:1646 */ + break; + + case 528: +-#line 4411 "ripper.y" /* yacc.c:1646 */ ++#line 4403 "ripper.y" /* yacc.c:1646 */ + {(yyval.val) = KWD2EID(_LINE__, (yyvsp[0].val));} +-#line 10105 "ripper.c" /* yacc.c:1646 */ ++#line 10097 "ripper.c" /* yacc.c:1646 */ + break; + + case 529: +-#line 4412 "ripper.y" /* yacc.c:1646 */ ++#line 4404 "ripper.y" /* yacc.c:1646 */ + {(yyval.val) = KWD2EID(_ENCODING__, (yyvsp[0].val));} +-#line 10111 "ripper.c" /* yacc.c:1646 */ ++#line 10103 "ripper.c" /* yacc.c:1646 */ + break; + + case 530: +-#line 4416 "ripper.y" /* yacc.c:1646 */ ++#line 4408 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + if (!((yyval.val) = gettable((yyvsp[0].val), &(yyloc)))) (yyval.val) = new_begin(0, &(yyloc)); +@@ -10128,11 +10120,11 @@ yyreduce: + } + + } +-#line 10128 "ripper.c" /* yacc.c:1646 */ ++#line 10120 "ripper.c" /* yacc.c:1646 */ + break; + + case 531: +-#line 4429 "ripper.y" /* yacc.c:1646 */ ++#line 4421 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + if (!((yyval.val) = gettable((yyvsp[0].val), &(yyloc)))) (yyval.val) = new_begin(0, &(yyloc)); +@@ -10140,66 +10132,66 @@ yyreduce: + (yyval.val) = dispatch1(var_ref, (yyvsp[0].val)); + + } +-#line 10140 "ripper.c" /* yacc.c:1646 */ ++#line 10132 "ripper.c" /* yacc.c:1646 */ + break; + + case 532: +-#line 4439 "ripper.y" /* yacc.c:1646 */ ++#line 4431 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = assignable(var_field((yyvsp[0].val)), 0, &(yyloc)); + } +-#line 10148 "ripper.c" /* yacc.c:1646 */ ++#line 10140 "ripper.c" /* yacc.c:1646 */ + break; + + case 533: +-#line 4443 "ripper.y" /* yacc.c:1646 */ ++#line 4435 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = assignable(var_field((yyvsp[0].val)), 0, &(yyloc)); + } +-#line 10156 "ripper.c" /* yacc.c:1646 */ ++#line 10148 "ripper.c" /* yacc.c:1646 */ + break; + + case 534: +-#line 4449 "ripper.y" /* yacc.c:1646 */ ++#line 4441 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val)->nd_loc = (yyloc); + #endif + + } +-#line 10167 "ripper.c" /* yacc.c:1646 */ ++#line 10159 "ripper.c" /* yacc.c:1646 */ + break; + + case 535: +-#line 4456 "ripper.y" /* yacc.c:1646 */ ++#line 4448 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val)->nd_loc = (yyloc); + #endif + + } +-#line 10178 "ripper.c" /* yacc.c:1646 */ ++#line 10170 "ripper.c" /* yacc.c:1646 */ + break; + + case 536: +-#line 4465 "ripper.y" /* yacc.c:1646 */ ++#line 4457 "ripper.y" /* yacc.c:1646 */ + { + SET_LEX_STATE(EXPR_BEG); + command_start = TRUE; + } +-#line 10187 "ripper.c" /* yacc.c:1646 */ ++#line 10179 "ripper.c" /* yacc.c:1646 */ + break; + + case 537: +-#line 4470 "ripper.y" /* yacc.c:1646 */ ++#line 4462 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = (yyvsp[-1].val); + } +-#line 10195 "ripper.c" /* yacc.c:1646 */ ++#line 10187 "ripper.c" /* yacc.c:1646 */ + break; + + case 538: +-#line 4474 "ripper.y" /* yacc.c:1646 */ ++#line 4466 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = 0; +@@ -10207,11 +10199,11 @@ yyreduce: + (yyval.val) = Qnil; + + } +-#line 10207 "ripper.c" /* yacc.c:1646 */ ++#line 10199 "ripper.c" /* yacc.c:1646 */ + break; + + case 539: +-#line 4484 "ripper.y" /* yacc.c:1646 */ ++#line 4476 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = (yyvsp[-1].val); +@@ -10221,201 +10213,201 @@ yyreduce: + SET_LEX_STATE(EXPR_BEG); + command_start = TRUE; + } +-#line 10221 "ripper.c" /* yacc.c:1646 */ ++#line 10213 "ripper.c" /* yacc.c:1646 */ + break; + + case 540: +-#line 4493 "ripper.y" /* yacc.c:1646 */ ++#line 4485 "ripper.y" /* yacc.c:1646 */ + { + (yyval.num) = parser->in_kwarg; + parser->in_kwarg = 1; + SET_LEX_STATE(lex_state|EXPR_LABEL); /* force for args */ + } +-#line 10231 "ripper.c" /* yacc.c:1646 */ ++#line 10223 "ripper.c" /* yacc.c:1646 */ + break; + + case 541: +-#line 4499 "ripper.y" /* yacc.c:1646 */ ++#line 4491 "ripper.y" /* yacc.c:1646 */ + { + parser->in_kwarg = !!(yyvsp[-2].num); + (yyval.val) = (yyvsp[-1].val); + SET_LEX_STATE(EXPR_BEG); + command_start = TRUE; + } +-#line 10242 "ripper.c" /* yacc.c:1646 */ ++#line 10234 "ripper.c" /* yacc.c:1646 */ + break; + + case 542: +-#line 4508 "ripper.y" /* yacc.c:1646 */ ++#line 4500 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args_tail((yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yylsp[-1])); + } +-#line 10250 "ripper.c" /* yacc.c:1646 */ ++#line 10242 "ripper.c" /* yacc.c:1646 */ + break; + + case 543: +-#line 4512 "ripper.y" /* yacc.c:1646 */ ++#line 4504 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args_tail((yyvsp[-1].val), Qnone, (yyvsp[0].val), &(yylsp[-1])); + } +-#line 10258 "ripper.c" /* yacc.c:1646 */ ++#line 10250 "ripper.c" /* yacc.c:1646 */ + break; + + case 544: +-#line 4516 "ripper.y" /* yacc.c:1646 */ ++#line 4508 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args_tail(Qnone, (yyvsp[-1].val), (yyvsp[0].val), &(yylsp[-1])); + } +-#line 10266 "ripper.c" /* yacc.c:1646 */ ++#line 10258 "ripper.c" /* yacc.c:1646 */ + break; + + case 545: +-#line 4520 "ripper.y" /* yacc.c:1646 */ ++#line 4512 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args_tail(Qnone, Qnone, (yyvsp[0].val), &(yylsp[0])); + } +-#line 10274 "ripper.c" /* yacc.c:1646 */ ++#line 10266 "ripper.c" /* yacc.c:1646 */ + break; + + case 546: +-#line 4526 "ripper.y" /* yacc.c:1646 */ ++#line 4518 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = (yyvsp[0].val); + } +-#line 10282 "ripper.c" /* yacc.c:1646 */ ++#line 10274 "ripper.c" /* yacc.c:1646 */ + break; + + case 547: +-#line 4530 "ripper.y" /* yacc.c:1646 */ ++#line 4522 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args_tail(Qnone, Qnone, Qnone, &(yylsp[0])); + } +-#line 10290 "ripper.c" /* yacc.c:1646 */ ++#line 10282 "ripper.c" /* yacc.c:1646 */ + break; + + case 548: +-#line 4536 "ripper.y" /* yacc.c:1646 */ ++#line 4528 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args((yyvsp[-5].val), (yyvsp[-3].val), (yyvsp[-1].val), Qnone, (yyvsp[0].val), &(yyloc)); + } +-#line 10298 "ripper.c" /* yacc.c:1646 */ ++#line 10290 "ripper.c" /* yacc.c:1646 */ + break; + + case 549: +-#line 4540 "ripper.y" /* yacc.c:1646 */ ++#line 4532 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args((yyvsp[-7].val), (yyvsp[-5].val), (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); + } +-#line 10306 "ripper.c" /* yacc.c:1646 */ ++#line 10298 "ripper.c" /* yacc.c:1646 */ + break; + + case 550: +-#line 4544 "ripper.y" /* yacc.c:1646 */ ++#line 4536 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args((yyvsp[-3].val), (yyvsp[-1].val), Qnone, Qnone, (yyvsp[0].val), &(yyloc)); + } +-#line 10314 "ripper.c" /* yacc.c:1646 */ ++#line 10306 "ripper.c" /* yacc.c:1646 */ + break; + + case 551: +-#line 4548 "ripper.y" /* yacc.c:1646 */ ++#line 4540 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args((yyvsp[-5].val), (yyvsp[-3].val), Qnone, (yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); + } +-#line 10322 "ripper.c" /* yacc.c:1646 */ ++#line 10314 "ripper.c" /* yacc.c:1646 */ + break; + + case 552: +-#line 4552 "ripper.y" /* yacc.c:1646 */ ++#line 4544 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args((yyvsp[-3].val), Qnone, (yyvsp[-1].val), Qnone, (yyvsp[0].val), &(yyloc)); + } +-#line 10330 "ripper.c" /* yacc.c:1646 */ ++#line 10322 "ripper.c" /* yacc.c:1646 */ + break; + + case 553: +-#line 4556 "ripper.y" /* yacc.c:1646 */ ++#line 4548 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args((yyvsp[-5].val), Qnone, (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); + } +-#line 10338 "ripper.c" /* yacc.c:1646 */ ++#line 10330 "ripper.c" /* yacc.c:1646 */ + break; + + case 554: +-#line 4560 "ripper.y" /* yacc.c:1646 */ ++#line 4552 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args((yyvsp[-1].val), Qnone, Qnone, Qnone, (yyvsp[0].val), &(yyloc)); + } +-#line 10346 "ripper.c" /* yacc.c:1646 */ ++#line 10338 "ripper.c" /* yacc.c:1646 */ + break; + + case 555: +-#line 4564 "ripper.y" /* yacc.c:1646 */ ++#line 4556 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args(Qnone, (yyvsp[-3].val), (yyvsp[-1].val), Qnone, (yyvsp[0].val), &(yyloc)); + } +-#line 10354 "ripper.c" /* yacc.c:1646 */ ++#line 10346 "ripper.c" /* yacc.c:1646 */ + break; + + case 556: +-#line 4568 "ripper.y" /* yacc.c:1646 */ ++#line 4560 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args(Qnone, (yyvsp[-5].val), (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); + } +-#line 10362 "ripper.c" /* yacc.c:1646 */ ++#line 10354 "ripper.c" /* yacc.c:1646 */ + break; + + case 557: +-#line 4572 "ripper.y" /* yacc.c:1646 */ ++#line 4564 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args(Qnone, (yyvsp[-1].val), Qnone, Qnone, (yyvsp[0].val), &(yyloc)); + } +-#line 10370 "ripper.c" /* yacc.c:1646 */ ++#line 10362 "ripper.c" /* yacc.c:1646 */ + break; + + case 558: +-#line 4576 "ripper.y" /* yacc.c:1646 */ ++#line 4568 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args(Qnone, (yyvsp[-3].val), Qnone, (yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); + } +-#line 10378 "ripper.c" /* yacc.c:1646 */ ++#line 10370 "ripper.c" /* yacc.c:1646 */ + break; + + case 559: +-#line 4580 "ripper.y" /* yacc.c:1646 */ ++#line 4572 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args(Qnone, Qnone, (yyvsp[-1].val), Qnone, (yyvsp[0].val), &(yyloc)); + } +-#line 10386 "ripper.c" /* yacc.c:1646 */ ++#line 10378 "ripper.c" /* yacc.c:1646 */ + break; + + case 560: +-#line 4584 "ripper.y" /* yacc.c:1646 */ ++#line 4576 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args(Qnone, Qnone, (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); + } +-#line 10394 "ripper.c" /* yacc.c:1646 */ ++#line 10386 "ripper.c" /* yacc.c:1646 */ + break; + + case 561: +-#line 4588 "ripper.y" /* yacc.c:1646 */ ++#line 4580 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args(Qnone, Qnone, Qnone, Qnone, (yyvsp[0].val), &(yyloc)); + } +-#line 10402 "ripper.c" /* yacc.c:1646 */ ++#line 10394 "ripper.c" /* yacc.c:1646 */ + break; + + case 562: +-#line 4592 "ripper.y" /* yacc.c:1646 */ ++#line 4584 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = new_args_tail(Qnone, Qnone, Qnone, &(yylsp[0])); + (yyval.val) = new_args(Qnone, Qnone, Qnone, Qnone, (yyval.val), &(yylsp[0])); + } +-#line 10411 "ripper.c" /* yacc.c:1646 */ ++#line 10403 "ripper.c" /* yacc.c:1646 */ + break; + + case 563: +-#line 4599 "ripper.y" /* yacc.c:1646 */ ++#line 4591 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + yyerror0("formal argument cannot be a constant"); +@@ -10425,11 +10417,11 @@ yyreduce: + ripper_error(); + + } +-#line 10425 "ripper.c" /* yacc.c:1646 */ ++#line 10417 "ripper.c" /* yacc.c:1646 */ + break; + + case 564: +-#line 4609 "ripper.y" /* yacc.c:1646 */ ++#line 4601 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + yyerror0("formal argument cannot be an instance variable"); +@@ -10439,11 +10431,11 @@ yyreduce: + ripper_error(); + + } +-#line 10439 "ripper.c" /* yacc.c:1646 */ ++#line 10431 "ripper.c" /* yacc.c:1646 */ + break; + + case 565: +-#line 4619 "ripper.y" /* yacc.c:1646 */ ++#line 4611 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + yyerror0("formal argument cannot be a global variable"); +@@ -10453,11 +10445,11 @@ yyreduce: + ripper_error(); + + } +-#line 10453 "ripper.c" /* yacc.c:1646 */ ++#line 10445 "ripper.c" /* yacc.c:1646 */ + break; + + case 566: +-#line 4629 "ripper.y" /* yacc.c:1646 */ ++#line 4621 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + yyerror0("formal argument cannot be a class variable"); +@@ -10467,31 +10459,31 @@ yyreduce: + ripper_error(); + + } +-#line 10467 "ripper.c" /* yacc.c:1646 */ ++#line 10459 "ripper.c" /* yacc.c:1646 */ + break; + + case 568: +-#line 4642 "ripper.y" /* yacc.c:1646 */ ++#line 4634 "ripper.y" /* yacc.c:1646 */ + { + formal_argument(get_id((yyvsp[0].val))); + (yyval.val) = (yyvsp[0].val); + } +-#line 10476 "ripper.c" /* yacc.c:1646 */ ++#line 10468 "ripper.c" /* yacc.c:1646 */ + break; + + case 569: +-#line 4649 "ripper.y" /* yacc.c:1646 */ ++#line 4641 "ripper.y" /* yacc.c:1646 */ + { + ID id = get_id((yyvsp[0].val)); + arg_var(id); + current_arg = id; + (yyval.val) = (yyvsp[0].val); + } +-#line 10487 "ripper.c" /* yacc.c:1646 */ ++#line 10479 "ripper.c" /* yacc.c:1646 */ + break; + + case 570: +-#line 4658 "ripper.y" /* yacc.c:1646 */ ++#line 4650 "ripper.y" /* yacc.c:1646 */ + { + current_arg = 0; + #if 0 +@@ -10500,11 +10492,11 @@ yyreduce: + (yyval.val) = get_value((yyvsp[0].val)); + + } +-#line 10500 "ripper.c" /* yacc.c:1646 */ ++#line 10492 "ripper.c" /* yacc.c:1646 */ + break; + + case 571: +-#line 4667 "ripper.y" /* yacc.c:1646 */ ++#line 4659 "ripper.y" /* yacc.c:1646 */ + { + ID tid = internal_id(); + #if 0 +@@ -10527,19 +10519,19 @@ yyreduce: + (yyval.val) = dispatch1(mlhs_paren, (yyvsp[-1].val)); + + } +-#line 10527 "ripper.c" /* yacc.c:1646 */ ++#line 10519 "ripper.c" /* yacc.c:1646 */ + break; + + case 572: +-#line 4694 "ripper.y" /* yacc.c:1646 */ ++#line 4686 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = rb_ary_new3(1, get_value((yyvsp[0].val))); + } +-#line 10535 "ripper.c" /* yacc.c:1646 */ ++#line 10527 "ripper.c" /* yacc.c:1646 */ + break; + + case 573: +-#line 4699 "ripper.y" /* yacc.c:1646 */ ++#line 4691 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = (yyvsp[-2].val); +@@ -10550,22 +10542,22 @@ yyreduce: + (yyval.val) = rb_ary_push((yyvsp[-2].val), get_value((yyvsp[0].val))); + + } +-#line 10550 "ripper.c" /* yacc.c:1646 */ ++#line 10542 "ripper.c" /* yacc.c:1646 */ + break; + + case 574: +-#line 4713 "ripper.y" /* yacc.c:1646 */ ++#line 4705 "ripper.y" /* yacc.c:1646 */ + { + ID id = get_id((yyvsp[0].val)); + arg_var(formal_argument(id)); + current_arg = id; + (yyval.val) = (yyvsp[0].val); + } +-#line 10561 "ripper.c" /* yacc.c:1646 */ ++#line 10553 "ripper.c" /* yacc.c:1646 */ + break; + + case 575: +-#line 4722 "ripper.y" /* yacc.c:1646 */ ++#line 4714 "ripper.y" /* yacc.c:1646 */ + { + current_arg = 0; + (yyval.val) = assignable((yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); +@@ -10575,11 +10567,11 @@ yyreduce: + (yyval.val) = rb_assoc_new(get_value((yyval.val)), get_value((yyvsp[0].val))); + + } +-#line 10575 "ripper.c" /* yacc.c:1646 */ ++#line 10567 "ripper.c" /* yacc.c:1646 */ + break; + + case 576: +-#line 4732 "ripper.y" /* yacc.c:1646 */ ++#line 4724 "ripper.y" /* yacc.c:1646 */ + { + current_arg = 0; + (yyval.val) = assignable((yyvsp[0].val), NODE_SPECIAL_REQUIRED_KEYWORD, &(yyloc)); +@@ -10589,11 +10581,11 @@ yyreduce: + (yyval.val) = rb_assoc_new(get_value((yyval.val)), 0); + + } +-#line 10589 "ripper.c" /* yacc.c:1646 */ ++#line 10581 "ripper.c" /* yacc.c:1646 */ + break; + + case 577: +-#line 4744 "ripper.y" /* yacc.c:1646 */ ++#line 4736 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = assignable((yyvsp[-1].val), (yyvsp[0].val), &(yyloc)); + #if 0 +@@ -10602,11 +10594,11 @@ yyreduce: + (yyval.val) = rb_assoc_new(get_value((yyval.val)), get_value((yyvsp[0].val))); + + } +-#line 10602 "ripper.c" /* yacc.c:1646 */ ++#line 10594 "ripper.c" /* yacc.c:1646 */ + break; + + case 578: +-#line 4753 "ripper.y" /* yacc.c:1646 */ ++#line 4745 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = assignable((yyvsp[0].val), NODE_SPECIAL_REQUIRED_KEYWORD, &(yyloc)); + #if 0 +@@ -10615,11 +10607,11 @@ yyreduce: + (yyval.val) = rb_assoc_new(get_value((yyval.val)), 0); + + } +-#line 10615 "ripper.c" /* yacc.c:1646 */ ++#line 10607 "ripper.c" /* yacc.c:1646 */ + break; + + case 579: +-#line 4764 "ripper.y" /* yacc.c:1646 */ ++#line 4756 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = (yyvsp[0].val); +@@ -10627,11 +10619,11 @@ yyreduce: + (yyval.val) = rb_ary_new3(1, get_value((yyvsp[0].val))); + + } +-#line 10627 "ripper.c" /* yacc.c:1646 */ ++#line 10619 "ripper.c" /* yacc.c:1646 */ + break; + + case 580: +-#line 4772 "ripper.y" /* yacc.c:1646 */ ++#line 4764 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = kwd_append((yyvsp[-2].val), (yyvsp[0].val)); +@@ -10639,11 +10631,11 @@ yyreduce: + (yyval.val) = rb_ary_push((yyvsp[-2].val), get_value((yyvsp[0].val))); + + } +-#line 10639 "ripper.c" /* yacc.c:1646 */ ++#line 10631 "ripper.c" /* yacc.c:1646 */ + break; + + case 581: +-#line 4783 "ripper.y" /* yacc.c:1646 */ ++#line 4775 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = (yyvsp[0].val); +@@ -10651,11 +10643,11 @@ yyreduce: + (yyval.val) = rb_ary_new3(1, get_value((yyvsp[0].val))); + + } +-#line 10651 "ripper.c" /* yacc.c:1646 */ ++#line 10643 "ripper.c" /* yacc.c:1646 */ + break; + + case 582: +-#line 4791 "ripper.y" /* yacc.c:1646 */ ++#line 4783 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = kwd_append((yyvsp[-2].val), (yyvsp[0].val)); +@@ -10663,11 +10655,11 @@ yyreduce: + (yyval.val) = rb_ary_push((yyvsp[-2].val), get_value((yyvsp[0].val))); + + } +-#line 10663 "ripper.c" /* yacc.c:1646 */ ++#line 10655 "ripper.c" /* yacc.c:1646 */ + break; + + case 585: +-#line 4805 "ripper.y" /* yacc.c:1646 */ ++#line 4797 "ripper.y" /* yacc.c:1646 */ + { + shadowing_lvar(get_id((yyvsp[0].val))); + #if 0 +@@ -10676,11 +10668,11 @@ yyreduce: + (yyval.val) = dispatch1(kwrest_param, (yyvsp[0].val)); + + } +-#line 10676 "ripper.c" /* yacc.c:1646 */ ++#line 10668 "ripper.c" /* yacc.c:1646 */ + break; + + case 586: +-#line 4814 "ripper.y" /* yacc.c:1646 */ ++#line 4806 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = internal_id(); +@@ -10689,11 +10681,11 @@ yyreduce: + (yyval.val) = dispatch1(kwrest_param, Qnil); + + } +-#line 10689 "ripper.c" /* yacc.c:1646 */ ++#line 10681 "ripper.c" /* yacc.c:1646 */ + break; + + case 587: +-#line 4825 "ripper.y" /* yacc.c:1646 */ ++#line 4817 "ripper.y" /* yacc.c:1646 */ + { + current_arg = 0; + (yyval.val) = assignable((yyvsp[-2].val), (yyvsp[0].val), &(yyloc)); +@@ -10704,11 +10696,11 @@ yyreduce: + (yyval.val) = rb_assoc_new(get_value((yyval.val)), get_value((yyvsp[0].val))); + + } +-#line 10704 "ripper.c" /* yacc.c:1646 */ ++#line 10696 "ripper.c" /* yacc.c:1646 */ + break; + + case 588: +-#line 4838 "ripper.y" /* yacc.c:1646 */ ++#line 4830 "ripper.y" /* yacc.c:1646 */ + { + current_arg = 0; + (yyval.val) = assignable((yyvsp[-2].val), (yyvsp[0].val), &(yyloc)); +@@ -10719,11 +10711,11 @@ yyreduce: + (yyval.val) = rb_assoc_new(get_value((yyval.val)), get_value((yyvsp[0].val))); + + } +-#line 10719 "ripper.c" /* yacc.c:1646 */ ++#line 10711 "ripper.c" /* yacc.c:1646 */ + break; + + case 589: +-#line 4851 "ripper.y" /* yacc.c:1646 */ ++#line 4843 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = (yyvsp[0].val); +@@ -10731,11 +10723,11 @@ yyreduce: + (yyval.val) = rb_ary_new3(1, get_value((yyvsp[0].val))); + + } +-#line 10731 "ripper.c" /* yacc.c:1646 */ ++#line 10723 "ripper.c" /* yacc.c:1646 */ + break; + + case 590: +-#line 4859 "ripper.y" /* yacc.c:1646 */ ++#line 4851 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = opt_arg_append((yyvsp[-2].val), (yyvsp[0].val)); +@@ -10743,11 +10735,11 @@ yyreduce: + (yyval.val) = rb_ary_push((yyvsp[-2].val), get_value((yyvsp[0].val))); + + } +-#line 10743 "ripper.c" /* yacc.c:1646 */ ++#line 10735 "ripper.c" /* yacc.c:1646 */ + break; + + case 591: +-#line 4869 "ripper.y" /* yacc.c:1646 */ ++#line 4861 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = (yyvsp[0].val); +@@ -10755,11 +10747,11 @@ yyreduce: + (yyval.val) = rb_ary_new3(1, get_value((yyvsp[0].val))); + + } +-#line 10755 "ripper.c" /* yacc.c:1646 */ ++#line 10747 "ripper.c" /* yacc.c:1646 */ + break; + + case 592: +-#line 4877 "ripper.y" /* yacc.c:1646 */ ++#line 4869 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = opt_arg_append((yyvsp[-2].val), (yyvsp[0].val)); +@@ -10767,11 +10759,11 @@ yyreduce: + (yyval.val) = rb_ary_push((yyvsp[-2].val), get_value((yyvsp[0].val))); + + } +-#line 10767 "ripper.c" /* yacc.c:1646 */ ++#line 10759 "ripper.c" /* yacc.c:1646 */ + break; + + case 595: +-#line 4891 "ripper.y" /* yacc.c:1646 */ ++#line 4883 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + if (!is_local_id((yyvsp[0].val))) +@@ -10784,11 +10776,11 @@ yyreduce: + (yyval.val) = dispatch1(rest_param, (yyvsp[0].val)); + + } +-#line 10784 "ripper.c" /* yacc.c:1646 */ ++#line 10776 "ripper.c" /* yacc.c:1646 */ + break; + + case 596: +-#line 4904 "ripper.y" /* yacc.c:1646 */ ++#line 4896 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = internal_id(); +@@ -10797,11 +10789,11 @@ yyreduce: + (yyval.val) = dispatch1(rest_param, Qnil); + + } +-#line 10797 "ripper.c" /* yacc.c:1646 */ ++#line 10789 "ripper.c" /* yacc.c:1646 */ + break; + + case 599: +-#line 4919 "ripper.y" /* yacc.c:1646 */ ++#line 4911 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + if (!is_local_id((yyvsp[0].val))) +@@ -10816,19 +10808,19 @@ yyreduce: + (yyval.val) = dispatch1(blockarg, (yyvsp[0].val)); + + } +-#line 10816 "ripper.c" /* yacc.c:1646 */ ++#line 10808 "ripper.c" /* yacc.c:1646 */ + break; + + case 600: +-#line 4936 "ripper.y" /* yacc.c:1646 */ ++#line 4928 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = (yyvsp[0].val); + } +-#line 10824 "ripper.c" /* yacc.c:1646 */ ++#line 10816 "ripper.c" /* yacc.c:1646 */ + break; + + case 601: +-#line 4940 "ripper.y" /* yacc.c:1646 */ ++#line 4932 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = 0; +@@ -10836,11 +10828,11 @@ yyreduce: + (yyval.val) = Qundef; + + } +-#line 10836 "ripper.c" /* yacc.c:1646 */ ++#line 10828 "ripper.c" /* yacc.c:1646 */ + break; + + case 602: +-#line 4950 "ripper.y" /* yacc.c:1646 */ ++#line 4942 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + value_expr((yyvsp[0].val)); +@@ -10850,17 +10842,17 @@ yyreduce: + (yyval.val) = (yyvsp[0].val); + + } +-#line 10850 "ripper.c" /* yacc.c:1646 */ ++#line 10842 "ripper.c" /* yacc.c:1646 */ + break; + + case 603: +-#line 4959 "ripper.y" /* yacc.c:1646 */ ++#line 4951 "ripper.y" /* yacc.c:1646 */ + {SET_LEX_STATE(EXPR_BEG);} +-#line 10856 "ripper.c" /* yacc.c:1646 */ ++#line 10848 "ripper.c" /* yacc.c:1646 */ + break; + + case 604: +-#line 4960 "ripper.y" /* yacc.c:1646 */ ++#line 4952 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + if ((yyvsp[-1].val) == 0) { +@@ -10888,11 +10880,11 @@ yyreduce: + (yyval.val) = dispatch1(paren, (yyvsp[-1].val)); + + } +-#line 10888 "ripper.c" /* yacc.c:1646 */ ++#line 10880 "ripper.c" /* yacc.c:1646 */ + break; + + case 606: +-#line 4991 "ripper.y" /* yacc.c:1646 */ ++#line 4983 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = (yyvsp[-1].val); +@@ -10900,19 +10892,19 @@ yyreduce: + (yyval.val) = dispatch1(assoclist_from_args, (yyvsp[-1].val)); + + } +-#line 10900 "ripper.c" /* yacc.c:1646 */ ++#line 10892 "ripper.c" /* yacc.c:1646 */ + break; + + case 607: +-#line 5003 "ripper.y" /* yacc.c:1646 */ ++#line 4995 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = rb_ary_new3(1, get_value((yyvsp[0].val))); + } +-#line 10908 "ripper.c" /* yacc.c:1646 */ ++#line 10900 "ripper.c" /* yacc.c:1646 */ + break; + + case 608: +-#line 5008 "ripper.y" /* yacc.c:1646 */ ++#line 5000 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + NODE *assocs = (yyvsp[-2].val); +@@ -10934,11 +10926,11 @@ yyreduce: + (yyval.val) = rb_ary_push((yyvsp[-2].val), get_value((yyvsp[0].val))); + + } +-#line 10934 "ripper.c" /* yacc.c:1646 */ ++#line 10926 "ripper.c" /* yacc.c:1646 */ + break; + + case 609: +-#line 5032 "ripper.y" /* yacc.c:1646 */ ++#line 5024 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + if (nd_type((yyvsp[-2].val)) == NODE_STR) { +@@ -10950,11 +10942,11 @@ yyreduce: + (yyval.val) = dispatch2(assoc_new, (yyvsp[-2].val), (yyvsp[0].val)); + + } +-#line 10950 "ripper.c" /* yacc.c:1646 */ ++#line 10942 "ripper.c" /* yacc.c:1646 */ + break; + + case 610: +-#line 5044 "ripper.y" /* yacc.c:1646 */ ++#line 5036 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + (yyval.val) = list_append(new_list(new_lit(ID2SYM((yyvsp[-1].val)), &(yylsp[-1])), &(yyloc)), (yyvsp[0].val)); +@@ -10962,11 +10954,11 @@ yyreduce: + (yyval.val) = dispatch2(assoc_new, (yyvsp[-1].val), (yyvsp[0].val)); + + } +-#line 10962 "ripper.c" /* yacc.c:1646 */ ++#line 10954 "ripper.c" /* yacc.c:1646 */ + break; + + case 611: +-#line 5052 "ripper.y" /* yacc.c:1646 */ ++#line 5044 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + YYLTYPE location; +@@ -10977,11 +10969,11 @@ yyreduce: + (yyval.val) = dispatch2(assoc_new, dispatch1(dyna_symbol, (yyvsp[-2].val)), (yyvsp[0].val)); + + } +-#line 10977 "ripper.c" /* yacc.c:1646 */ ++#line 10969 "ripper.c" /* yacc.c:1646 */ + break; + + case 612: +-#line 5063 "ripper.y" /* yacc.c:1646 */ ++#line 5055 "ripper.y" /* yacc.c:1646 */ + { + #if 0 + if (nd_type((yyvsp[0].val)) == NODE_HASH && +@@ -10993,61 +10985,61 @@ yyreduce: + (yyval.val) = dispatch1(assoc_splat, (yyvsp[0].val)); + + } +-#line 10993 "ripper.c" /* yacc.c:1646 */ ++#line 10985 "ripper.c" /* yacc.c:1646 */ + break; + + case 625: +-#line 5097 "ripper.y" /* yacc.c:1646 */ ++#line 5089 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = TOKEN2VAL('.'); + } +-#line 11001 "ripper.c" /* yacc.c:1646 */ ++#line 10993 "ripper.c" /* yacc.c:1646 */ + break; + + case 626: +-#line 5101 "ripper.y" /* yacc.c:1646 */ ++#line 5093 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = ID2VAL(idANDDOT); + } +-#line 11009 "ripper.c" /* yacc.c:1646 */ ++#line 11001 "ripper.c" /* yacc.c:1646 */ + break; + + case 628: +-#line 5108 "ripper.y" /* yacc.c:1646 */ ++#line 5100 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = ID2VAL(idCOLON2); + } +-#line 11017 "ripper.c" /* yacc.c:1646 */ ++#line 11009 "ripper.c" /* yacc.c:1646 */ + break; + + case 638: +-#line 5132 "ripper.y" /* yacc.c:1646 */ ++#line 5124 "ripper.y" /* yacc.c:1646 */ + {yyerrok;token_flush(parser);} +-#line 11023 "ripper.c" /* yacc.c:1646 */ ++#line 11015 "ripper.c" /* yacc.c:1646 */ + break; + + case 639: +-#line 5133 "ripper.y" /* yacc.c:1646 */ ++#line 5125 "ripper.y" /* yacc.c:1646 */ + {token_flush(parser);} +-#line 11029 "ripper.c" /* yacc.c:1646 */ ++#line 11021 "ripper.c" /* yacc.c:1646 */ + break; + + case 641: +-#line 5137 "ripper.y" /* yacc.c:1646 */ ++#line 5129 "ripper.y" /* yacc.c:1646 */ + {yyerrok;} +-#line 11035 "ripper.c" /* yacc.c:1646 */ ++#line 11027 "ripper.c" /* yacc.c:1646 */ + break; + + case 642: +-#line 5141 "ripper.y" /* yacc.c:1646 */ ++#line 5133 "ripper.y" /* yacc.c:1646 */ + { + (yyval.val) = Qnull; + } +-#line 11043 "ripper.c" /* yacc.c:1646 */ ++#line 11035 "ripper.c" /* yacc.c:1646 */ + break; + + +-#line 11047 "ripper.c" /* yacc.c:1646 */ ++#line 11039 "ripper.c" /* yacc.c:1646 */ + default: break; + } + /* User semantic actions sometimes alter yychar, and that requires +@@ -11282,7 +11274,7 @@ yyreturn: + #endif + return yyresult; + } +-#line 5145 "ripper.y" /* yacc.c:1906 */ ++#line 5137 "ripper.y" /* yacc.c:1906 */ + + # undef parser + # undef yylex +@@ -16098,11 +16090,13 @@ assignable_gen(struct parser_params *parser, ID id, NO + #ifdef RIPPER + ID id = get_id(lhs); + # define assignable_result(x) (lhs) ++# define assignable_error() (lhs) + # define parser_yyerror(parser, x) (lhs = assign_error_gen(parser, lhs)) + #else + # define assignable_result(x) assignable_result0(x, location) ++# define assignable_error() new_begin(0, location) + #endif +- if (!id) return assignable_result(0); ++ if (!id) return assignable_error(); + switch (id) { + case keyword_self: + yyerror0("Can't change the value of self"); +@@ -16165,7 +16159,7 @@ assignable_gen(struct parser_params *parser, ID id, NO + compile_error(PARSER_ARG "identifier %"PRIsVALUE" is not valid to set", rb_id2str(id)); + } + error: +- return assignable_result(0); ++ return assignable_error(); + #undef assignable_result + #undef parser_yyerror + } diff --git a/lang/ruby25/files/patch-ext_ripper_ripper.y b/lang/ruby25/files/patch-ext_ripper_ripper.y new file mode 100644 index 000000000000..6de1db50b9bb --- /dev/null +++ b/lang/ruby25/files/patch-ext_ripper_ripper.y @@ -0,0 +1,45 @@ +--- ext/ripper/ripper.y.orig 2017-12-25 07:00:33 UTC ++++ ext/ripper/ripper.y +@@ -1983,18 +1983,10 @@ mlhs_node : user_variable + lhs : user_variable + { + $$ = assignable(var_field($1), 0, &@$); +-#if 0 +- if (!$$) $$ = new_begin(0, &@$); +-#endif +- + } + | keyword_variable + { + $$ = assignable(var_field($1), 0, &@$); +-#if 0 +- if (!$$) $$ = new_begin(0, &@$); +-#endif +- + } + | primary_value '[' opt_call_args rbracket + { +@@ -9957,11 +9949,13 @@ assignable_gen(struct parser_params *parser, ID id, NO + #ifdef RIPPER + ID id = get_id(lhs); + # define assignable_result(x) (lhs) ++# define assignable_error() (lhs) + # define parser_yyerror(parser, x) (lhs = assign_error_gen(parser, lhs)) + #else + # define assignable_result(x) assignable_result0(x, location) ++# define assignable_error() new_begin(0, location) + #endif +- if (!id) return assignable_result(0); ++ if (!id) return assignable_error(); + switch (id) { + case keyword_self: + yyerror0("Can't change the value of self"); +@@ -10024,7 +10018,7 @@ assignable_gen(struct parser_params *parser, ID id, NO + compile_error(PARSER_ARG "identifier %"PRIsVALUE" is not valid to set", rb_id2str(id)); + } + error: +- return assignable_result(0); ++ return assignable_error(); + #undef assignable_result + #undef parser_yyerror + } diff --git a/lang/ruby25/files/patch-parse.c b/lang/ruby25/files/patch-parse.c new file mode 100644 index 000000000000..e2395d7a3ec7 --- /dev/null +++ b/lang/ruby25/files/patch-parse.c @@ -0,0 +1,4926 @@ +--- parse.c.orig 2017-12-25 07:00:33 UTC ++++ parse.c +@@ -1567,61 +1567,61 @@ static const yytype_uint16 yyrline[] = + 1735, 1744, 1753, 1762, 1773, 1774, 1784, 1785, 1795, 1803, + 1811, 1819, 1828, 1836, 1845, 1853, 1862, 1870, 1881, 1882, + 1892, 1900, 1910, 1918, 1928, 1932, 1936, 1944, 1952, 1960, +- 1968, 1972, 1976, 1983, 1991, 1999, 2007, 2015, 2023, 2031, +- 2035, 2039, 2046, 2055, 2058, 2067, 2076, 2087, 2088, 2089, +- 2090, 2095, 2102, 2103, 2106, 2114, 2117, 2125, 2125, 2136, +- 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, +- 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, +- 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2168, +- 2168, 2168, 2169, 2169, 2170, 2170, 2170, 2171, 2171, 2171, +- 2171, 2172, 2172, 2172, 2172, 2173, 2173, 2173, 2174, 2174, +- 2174, 2174, 2175, 2175, 2175, 2175, 2176, 2176, 2176, 2176, +- 2177, 2177, 2177, 2177, 2178, 2178, 2178, 2178, 2179, 2179, +- 2182, 2186, 2190, 2218, 2223, 2228, 2233, 2244, 2249, 2254, +- 2265, 2276, 2280, 2284, 2288, 2292, 2296, 2300, 2304, 2308, +- 2312, 2316, 2320, 2324, 2328, 2329, 2333, 2337, 2341, 2345, +- 2349, 2353, 2357, 2361, 2365, 2369, 2373, 2373, 2378, 2388, +- 2394, 2395, 2396, 2397, 2400, 2404, 2411, 2423, 2424, 2428, +- 2436, 2446, 2454, 2468, 2478, 2479, 2482, 2483, 2484, 2488, +- 2496, 2506, 2515, 2523, 2533, 2542, 2551, 2551, 2563, 2574, +- 2578, 2584, 2592, 2601, 2615, 2631, 2632, 2635, 2649, 2664, +- 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, +- 2685, 2694, 2693, 2720, 2720, 2729, 2733, 2728, 2742, 2750, +- 2759, 2768, 2776, 2785, 2794, 2802, 2811, 2820, 2820, 2825, +- 2829, 2833, 2844, 2845, 2856, 2860, 2872, 2884, 2884, 2884, +- 2896, 2896, 2896, 2908, 2920, 2931, 2933, 2930, 2984, 2983, +- 3011, 3010, 3035, 3034, 3062, 3067, 3061, 3090, 3091, 3090, +- 3118, 3127, 3136, 3145, 3156, 3168, 3174, 3180, 3186, 3192, +- 3198, 3208, 3214, 3220, 3226, 3236, 3242, 3249, 3254, 3255, +- 3262, 3267, 3270, 3271, 3284, 3285, 3295, 3296, 3299, 3306, +- 3316, 3324, 3334, 3342, 3351, 3361, 3369, 3378, 3387, 3397, +- 3405, 3417, 3421, 3425, 3429, 3435, 3440, 3445, 3449, 3453, +- 3457, 3461, 3465, 3473, 3477, 3481, 3485, 3489, 3493, 3497, +- 3501, 3505, 3511, 3512, 3518, 3528, 3537, 3549, 3553, 3563, +- 3570, 3579, 3587, 3593, 3596, 3601, 3604, 3593, 3625, 3633, +- 3639, 3644, 3651, 3650, 3667, 3684, 3688, 3701, 3716, 3727, +- 3726, 3738, 3737, 3748, 3753, 3752, 3764, 3763, 3774, 3783, +- 3792, 3807, 3806, 3822, 3821, 3838, 3839, 3838, 3848, 3849, +- 3848, 3858, 3871, 3872, 3875, 3897, 3900, 3908, 3916, 3919, +- 3923, 3926, 3934, 3937, 3938, 3946, 3949, 3966, 3973, 3974, +- 3984, 3994, 4000, 4006, 4017, 4024, 4034, 4042, 4052, 4063, +- 4070, 4088, 4098, 4109, 4116, 4128, 4135, 4151, 4158, 4169, +- 4176, 4187, 4194, 4235, 4243, 4242, 4260, 4266, 4271, 4275, +- 4279, 4259, 4301, 4309, 4317, 4326, 4329, 4340, 4341, 4342, +- 4343, 4346, 4357, 4358, 4369, 4376, 4383, 4390, 4399, 4400, +- 4401, 4402, 4403, 4406, 4407, 4408, 4409, 4410, 4411, 4412, +- 4415, 4428, 4438, 4442, 4448, 4455, 4465, 4464, 4474, 4483, +- 4493, 4493, 4507, 4511, 4515, 4519, 4525, 4530, 4535, 4539, +- 4543, 4547, 4551, 4555, 4559, 4563, 4567, 4571, 4575, 4579, +- 4583, 4587, 4592, 4598, 4608, 4618, 4628, 4640, 4641, 4648, +- 4657, 4666, 4691, 4698, 4712, 4721, 4731, 4743, 4752, 4763, +- 4771, 4782, 4790, 4800, 4801, 4804, 4813, 4824, 4837, 4850, +- 4858, 4868, 4876, 4886, 4887, 4890, 4903, 4914, 4915, 4918, +- 4935, 4939, 4949, 4959, 4959, 4989, 4990, 5000, 5007, 5031, +- 5043, 5051, 5062, 5076, 5077, 5078, 5081, 5082, 5083, 5084, +- 5087, 5088, 5089, 5092, 5093, 5096, 5100, 5106, 5107, 5113, +- 5114, 5117, 5118, 5121, 5124, 5127, 5128, 5129, 5132, 5133, +- 5136, 5137, 5141 ++ 1968, 1972, 1976, 1983, 1987, 1991, 1999, 2007, 2015, 2023, ++ 2027, 2031, 2038, 2047, 2050, 2059, 2068, 2079, 2080, 2081, ++ 2082, 2087, 2094, 2095, 2098, 2106, 2109, 2117, 2117, 2128, ++ 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, ++ 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, ++ 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2160, ++ 2160, 2160, 2161, 2161, 2162, 2162, 2162, 2163, 2163, 2163, ++ 2163, 2164, 2164, 2164, 2164, 2165, 2165, 2165, 2166, 2166, ++ 2166, 2166, 2167, 2167, 2167, 2167, 2168, 2168, 2168, 2168, ++ 2169, 2169, 2169, 2169, 2170, 2170, 2170, 2170, 2171, 2171, ++ 2174, 2178, 2182, 2210, 2215, 2220, 2225, 2236, 2241, 2246, ++ 2257, 2268, 2272, 2276, 2280, 2284, 2288, 2292, 2296, 2300, ++ 2304, 2308, 2312, 2316, 2320, 2321, 2325, 2329, 2333, 2337, ++ 2341, 2345, 2349, 2353, 2357, 2361, 2365, 2365, 2370, 2380, ++ 2386, 2387, 2388, 2389, 2392, 2396, 2403, 2415, 2416, 2420, ++ 2428, 2438, 2446, 2460, 2470, 2471, 2474, 2475, 2476, 2480, ++ 2488, 2498, 2507, 2515, 2525, 2534, 2543, 2543, 2555, 2566, ++ 2570, 2576, 2584, 2593, 2607, 2623, 2624, 2627, 2641, 2656, ++ 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, ++ 2677, 2686, 2685, 2712, 2712, 2721, 2725, 2720, 2734, 2742, ++ 2751, 2760, 2768, 2777, 2786, 2794, 2803, 2812, 2812, 2817, ++ 2821, 2825, 2836, 2837, 2848, 2852, 2864, 2876, 2876, 2876, ++ 2888, 2888, 2888, 2900, 2912, 2923, 2925, 2922, 2976, 2975, ++ 3003, 3002, 3027, 3026, 3054, 3059, 3053, 3082, 3083, 3082, ++ 3110, 3119, 3128, 3137, 3148, 3160, 3166, 3172, 3178, 3184, ++ 3190, 3200, 3206, 3212, 3218, 3228, 3234, 3241, 3246, 3247, ++ 3254, 3259, 3262, 3263, 3276, 3277, 3287, 3288, 3291, 3298, ++ 3308, 3316, 3326, 3334, 3343, 3353, 3361, 3370, 3379, 3389, ++ 3397, 3409, 3413, 3417, 3421, 3427, 3432, 3437, 3441, 3445, ++ 3449, 3453, 3457, 3465, 3469, 3473, 3477, 3481, 3485, 3489, ++ 3493, 3497, 3503, 3504, 3510, 3520, 3529, 3541, 3545, 3555, ++ 3562, 3571, 3579, 3585, 3588, 3593, 3596, 3585, 3617, 3625, ++ 3631, 3636, 3643, 3642, 3659, 3676, 3680, 3693, 3708, 3719, ++ 3718, 3730, 3729, 3740, 3745, 3744, 3756, 3755, 3766, 3775, ++ 3784, 3799, 3798, 3814, 3813, 3830, 3831, 3830, 3840, 3841, ++ 3840, 3850, 3863, 3864, 3867, 3889, 3892, 3900, 3908, 3911, ++ 3915, 3918, 3926, 3929, 3930, 3938, 3941, 3958, 3965, 3966, ++ 3976, 3986, 3992, 3998, 4009, 4016, 4026, 4034, 4044, 4055, ++ 4062, 4080, 4090, 4101, 4108, 4120, 4127, 4143, 4150, 4161, ++ 4168, 4179, 4186, 4227, 4235, 4234, 4252, 4258, 4263, 4267, ++ 4271, 4251, 4293, 4301, 4309, 4318, 4321, 4332, 4333, 4334, ++ 4335, 4338, 4349, 4350, 4361, 4368, 4375, 4382, 4391, 4392, ++ 4393, 4394, 4395, 4398, 4399, 4400, 4401, 4402, 4403, 4404, ++ 4407, 4420, 4430, 4434, 4440, 4447, 4457, 4456, 4466, 4475, ++ 4485, 4485, 4499, 4503, 4507, 4511, 4517, 4522, 4527, 4531, ++ 4535, 4539, 4543, 4547, 4551, 4555, 4559, 4563, 4567, 4571, ++ 4575, 4579, 4584, 4590, 4600, 4610, 4620, 4632, 4633, 4640, ++ 4649, 4658, 4683, 4690, 4704, 4713, 4723, 4735, 4744, 4755, ++ 4763, 4774, 4782, 4792, 4793, 4796, 4805, 4816, 4829, 4842, ++ 4850, 4860, 4868, 4878, 4879, 4882, 4895, 4906, 4907, 4910, ++ 4927, 4931, 4941, 4951, 4951, 4981, 4982, 4992, 4999, 5023, ++ 5035, 5043, 5054, 5068, 5069, 5070, 5073, 5074, 5075, 5076, ++ 5079, 5080, 5081, 5084, 5085, 5088, 5092, 5098, 5099, 5105, ++ 5106, 5109, 5110, 5113, 5116, 5119, 5120, 5121, 5124, 5125, ++ 5128, 5129, 5133 + }; + #endif + +@@ -6593,28 +6593,20 @@ yyreduce: + #line 1984 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = assignable(var_field((yyvsp[0].id)), 0, &(yyloc)); +- /*%%%*/ +- if (!(yyval.node)) (yyval.node) = new_begin(0, &(yyloc)); +- /*% +- %*/ + } +-#line 6598 "parse.c" /* yacc.c:1646 */ ++#line 6594 "parse.c" /* yacc.c:1646 */ + break; + + case 104: +-#line 1992 "parse.y" /* yacc.c:1646 */ ++#line 1988 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = assignable(var_field((yyvsp[0].id)), 0, &(yyloc)); +- /*%%%*/ +- if (!(yyval.node)) (yyval.node) = new_begin(0, &(yyloc)); +- /*% +- %*/ + } +-#line 6610 "parse.c" /* yacc.c:1646 */ ++#line 6602 "parse.c" /* yacc.c:1646 */ + break; + + case 105: +-#line 2000 "parse.y" /* yacc.c:1646 */ ++#line 1992 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = aryset((yyvsp[-3].node), (yyvsp[-1].node), &(yyloc)); +@@ -6622,11 +6614,11 @@ yyreduce: + $$ = dispatch2(aref_field, $1, escape_Qundef($3)); + %*/ + } +-#line 6622 "parse.c" /* yacc.c:1646 */ ++#line 6614 "parse.c" /* yacc.c:1646 */ + break; + + case 106: +-#line 2008 "parse.y" /* yacc.c:1646 */ ++#line 2000 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = attrset((yyvsp[-2].node), (yyvsp[-1].id), (yyvsp[0].id), &(yyloc)); +@@ -6634,11 +6626,11 @@ yyreduce: + $$ = dispatch3(field, $1, $2, $3); + %*/ + } +-#line 6634 "parse.c" /* yacc.c:1646 */ ++#line 6626 "parse.c" /* yacc.c:1646 */ + break; + + case 107: +-#line 2016 "parse.y" /* yacc.c:1646 */ ++#line 2008 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = attrset((yyvsp[-2].node), idCOLON2, (yyvsp[0].id), &(yyloc)); +@@ -6646,11 +6638,11 @@ yyreduce: + $$ = dispatch3(field, $1, ID2VAL(idCOLON2), $3); + %*/ + } +-#line 6646 "parse.c" /* yacc.c:1646 */ ++#line 6638 "parse.c" /* yacc.c:1646 */ + break; + + case 108: +-#line 2024 "parse.y" /* yacc.c:1646 */ ++#line 2016 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = attrset((yyvsp[-2].node), (yyvsp[-1].id), (yyvsp[0].id), &(yyloc)); +@@ -6658,36 +6650,36 @@ yyreduce: + $$ = dispatch3(field, $1, $2, $3); + %*/ + } +-#line 6658 "parse.c" /* yacc.c:1646 */ ++#line 6650 "parse.c" /* yacc.c:1646 */ + break; + + case 109: +-#line 2032 "parse.y" /* yacc.c:1646 */ ++#line 2024 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = const_decl(const_path_field((yyvsp[-2].node), (yyvsp[0].id), &(yyloc)), &(yyloc)); + } +-#line 6666 "parse.c" /* yacc.c:1646 */ ++#line 6658 "parse.c" /* yacc.c:1646 */ + break; + + case 110: +-#line 2036 "parse.y" /* yacc.c:1646 */ ++#line 2028 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = const_decl(top_const_field((yyvsp[0].id)), &(yyloc)); + } +-#line 6674 "parse.c" /* yacc.c:1646 */ ++#line 6666 "parse.c" /* yacc.c:1646 */ + break; + + case 111: +-#line 2040 "parse.y" /* yacc.c:1646 */ ++#line 2032 "parse.y" /* yacc.c:1646 */ + { + (yyvsp[0].node) = var_field((yyvsp[0].node)); + (yyval.node) = backref_assign_error((yyvsp[0].node), (yyvsp[0].node), &(yyloc)); + } +-#line 6683 "parse.c" /* yacc.c:1646 */ ++#line 6675 "parse.c" /* yacc.c:1646 */ + break; + + case 112: +-#line 2047 "parse.y" /* yacc.c:1646 */ ++#line 2039 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + yyerror0("class/module name must be CONSTANT"); +@@ -6696,11 +6688,11 @@ yyreduce: + ripper_error(); + %*/ + } +-#line 6696 "parse.c" /* yacc.c:1646 */ ++#line 6688 "parse.c" /* yacc.c:1646 */ + break; + + case 114: +-#line 2059 "parse.y" /* yacc.c:1646 */ ++#line 2051 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = NEW_COLON3((yyvsp[0].id)); +@@ -6709,11 +6701,11 @@ yyreduce: + $$ = dispatch1(top_const_ref, $2); + %*/ + } +-#line 6709 "parse.c" /* yacc.c:1646 */ ++#line 6701 "parse.c" /* yacc.c:1646 */ + break; + + case 115: +-#line 2068 "parse.y" /* yacc.c:1646 */ ++#line 2060 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = NEW_COLON2(0, (yyval.node)); +@@ -6722,11 +6714,11 @@ yyreduce: + $$ = dispatch1(const_ref, $1); + %*/ + } +-#line 6722 "parse.c" /* yacc.c:1646 */ ++#line 6714 "parse.c" /* yacc.c:1646 */ + break; + + case 116: +-#line 2077 "parse.y" /* yacc.c:1646 */ ++#line 2069 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = NEW_COLON2((yyvsp[-2].node), (yyvsp[0].id)); +@@ -6735,29 +6727,29 @@ yyreduce: + $$ = dispatch2(const_path_ref, $1, $3); + %*/ + } +-#line 6735 "parse.c" /* yacc.c:1646 */ ++#line 6727 "parse.c" /* yacc.c:1646 */ + break; + + case 120: +-#line 2091 "parse.y" /* yacc.c:1646 */ ++#line 2083 "parse.y" /* yacc.c:1646 */ + { + SET_LEX_STATE(EXPR_ENDFN); + (yyval.id) = (yyvsp[0].id); + } +-#line 6744 "parse.c" /* yacc.c:1646 */ ++#line 6736 "parse.c" /* yacc.c:1646 */ + break; + + case 121: +-#line 2096 "parse.y" /* yacc.c:1646 */ ++#line 2088 "parse.y" /* yacc.c:1646 */ + { + SET_LEX_STATE(EXPR_ENDFN); + (yyval.id) = (yyvsp[0].id); + } +-#line 6753 "parse.c" /* yacc.c:1646 */ ++#line 6745 "parse.c" /* yacc.c:1646 */ + break; + + case 124: +-#line 2107 "parse.y" /* yacc.c:1646 */ ++#line 2099 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = new_lit(ID2SYM((yyvsp[0].id)), &(yyloc)); +@@ -6765,11 +6757,11 @@ yyreduce: + $$ = dispatch1(symbol_literal, $1); + %*/ + } +-#line 6765 "parse.c" /* yacc.c:1646 */ ++#line 6757 "parse.c" /* yacc.c:1646 */ + break; + + case 126: +-#line 2118 "parse.y" /* yacc.c:1646 */ ++#line 2110 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = new_undef((yyvsp[0].node), &(yyloc)); +@@ -6777,17 +6769,17 @@ yyreduce: + $$ = rb_ary_new3(1, get_value($1)); + %*/ + } +-#line 6777 "parse.c" /* yacc.c:1646 */ ++#line 6769 "parse.c" /* yacc.c:1646 */ + break; + + case 127: +-#line 2125 "parse.y" /* yacc.c:1646 */ ++#line 2117 "parse.y" /* yacc.c:1646 */ + {SET_LEX_STATE(EXPR_FNAME|EXPR_FITEM);} +-#line 6783 "parse.c" /* yacc.c:1646 */ ++#line 6775 "parse.c" /* yacc.c:1646 */ + break; + + case 128: +-#line 2126 "parse.y" /* yacc.c:1646 */ ++#line 2118 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + NODE *undef = new_undef((yyvsp[0].node), &(yyloc)); +@@ -6796,207 +6788,207 @@ yyreduce: + rb_ary_push($1, get_value($4)); + %*/ + } +-#line 6796 "parse.c" /* yacc.c:1646 */ ++#line 6788 "parse.c" /* yacc.c:1646 */ + break; + + case 129: +-#line 2136 "parse.y" /* yacc.c:1646 */ ++#line 2128 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = '|'); } +-#line 6802 "parse.c" /* yacc.c:1646 */ ++#line 6794 "parse.c" /* yacc.c:1646 */ + break; + + case 130: +-#line 2137 "parse.y" /* yacc.c:1646 */ ++#line 2129 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = '^'); } +-#line 6808 "parse.c" /* yacc.c:1646 */ ++#line 6800 "parse.c" /* yacc.c:1646 */ + break; + + case 131: +-#line 2138 "parse.y" /* yacc.c:1646 */ ++#line 2130 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = '&'); } +-#line 6814 "parse.c" /* yacc.c:1646 */ ++#line 6806 "parse.c" /* yacc.c:1646 */ + break; + + case 132: +-#line 2139 "parse.y" /* yacc.c:1646 */ ++#line 2131 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = tCMP); } +-#line 6820 "parse.c" /* yacc.c:1646 */ ++#line 6812 "parse.c" /* yacc.c:1646 */ + break; + + case 133: +-#line 2140 "parse.y" /* yacc.c:1646 */ ++#line 2132 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = tEQ); } +-#line 6826 "parse.c" /* yacc.c:1646 */ ++#line 6818 "parse.c" /* yacc.c:1646 */ + break; + + case 134: +-#line 2141 "parse.y" /* yacc.c:1646 */ ++#line 2133 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = tEQQ); } +-#line 6832 "parse.c" /* yacc.c:1646 */ ++#line 6824 "parse.c" /* yacc.c:1646 */ + break; + + case 135: +-#line 2142 "parse.y" /* yacc.c:1646 */ ++#line 2134 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = tMATCH); } +-#line 6838 "parse.c" /* yacc.c:1646 */ ++#line 6830 "parse.c" /* yacc.c:1646 */ + break; + + case 136: +-#line 2143 "parse.y" /* yacc.c:1646 */ ++#line 2135 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = tNMATCH); } +-#line 6844 "parse.c" /* yacc.c:1646 */ ++#line 6836 "parse.c" /* yacc.c:1646 */ + break; + + case 137: +-#line 2144 "parse.y" /* yacc.c:1646 */ ++#line 2136 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = '>'); } +-#line 6850 "parse.c" /* yacc.c:1646 */ ++#line 6842 "parse.c" /* yacc.c:1646 */ + break; + + case 138: +-#line 2145 "parse.y" /* yacc.c:1646 */ ++#line 2137 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = tGEQ); } +-#line 6856 "parse.c" /* yacc.c:1646 */ ++#line 6848 "parse.c" /* yacc.c:1646 */ + break; + + case 139: +-#line 2146 "parse.y" /* yacc.c:1646 */ ++#line 2138 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = '<'); } +-#line 6862 "parse.c" /* yacc.c:1646 */ ++#line 6854 "parse.c" /* yacc.c:1646 */ + break; + + case 140: +-#line 2147 "parse.y" /* yacc.c:1646 */ ++#line 2139 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = tLEQ); } +-#line 6868 "parse.c" /* yacc.c:1646 */ ++#line 6860 "parse.c" /* yacc.c:1646 */ + break; + + case 141: +-#line 2148 "parse.y" /* yacc.c:1646 */ ++#line 2140 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = tNEQ); } +-#line 6874 "parse.c" /* yacc.c:1646 */ ++#line 6866 "parse.c" /* yacc.c:1646 */ + break; + + case 142: +-#line 2149 "parse.y" /* yacc.c:1646 */ ++#line 2141 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = tLSHFT); } +-#line 6880 "parse.c" /* yacc.c:1646 */ ++#line 6872 "parse.c" /* yacc.c:1646 */ + break; + + case 143: +-#line 2150 "parse.y" /* yacc.c:1646 */ ++#line 2142 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = tRSHFT); } +-#line 6886 "parse.c" /* yacc.c:1646 */ ++#line 6878 "parse.c" /* yacc.c:1646 */ + break; + + case 144: +-#line 2151 "parse.y" /* yacc.c:1646 */ ++#line 2143 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = '+'); } +-#line 6892 "parse.c" /* yacc.c:1646 */ ++#line 6884 "parse.c" /* yacc.c:1646 */ + break; + + case 145: +-#line 2152 "parse.y" /* yacc.c:1646 */ ++#line 2144 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = '-'); } +-#line 6898 "parse.c" /* yacc.c:1646 */ ++#line 6890 "parse.c" /* yacc.c:1646 */ + break; + + case 146: +-#line 2153 "parse.y" /* yacc.c:1646 */ ++#line 2145 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = '*'); } +-#line 6904 "parse.c" /* yacc.c:1646 */ ++#line 6896 "parse.c" /* yacc.c:1646 */ + break; + + case 147: +-#line 2154 "parse.y" /* yacc.c:1646 */ ++#line 2146 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = '*'); } +-#line 6910 "parse.c" /* yacc.c:1646 */ ++#line 6902 "parse.c" /* yacc.c:1646 */ + break; + + case 148: +-#line 2155 "parse.y" /* yacc.c:1646 */ ++#line 2147 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = '/'); } +-#line 6916 "parse.c" /* yacc.c:1646 */ ++#line 6908 "parse.c" /* yacc.c:1646 */ + break; + + case 149: +-#line 2156 "parse.y" /* yacc.c:1646 */ ++#line 2148 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = '%'); } +-#line 6922 "parse.c" /* yacc.c:1646 */ ++#line 6914 "parse.c" /* yacc.c:1646 */ + break; + + case 150: +-#line 2157 "parse.y" /* yacc.c:1646 */ ++#line 2149 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = tPOW); } +-#line 6928 "parse.c" /* yacc.c:1646 */ ++#line 6920 "parse.c" /* yacc.c:1646 */ + break; + + case 151: +-#line 2158 "parse.y" /* yacc.c:1646 */ ++#line 2150 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = tDSTAR); } +-#line 6934 "parse.c" /* yacc.c:1646 */ ++#line 6926 "parse.c" /* yacc.c:1646 */ + break; + + case 152: +-#line 2159 "parse.y" /* yacc.c:1646 */ ++#line 2151 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = '!'); } +-#line 6940 "parse.c" /* yacc.c:1646 */ ++#line 6932 "parse.c" /* yacc.c:1646 */ + break; + + case 153: +-#line 2160 "parse.y" /* yacc.c:1646 */ ++#line 2152 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = '~'); } +-#line 6946 "parse.c" /* yacc.c:1646 */ ++#line 6938 "parse.c" /* yacc.c:1646 */ + break; + + case 154: +-#line 2161 "parse.y" /* yacc.c:1646 */ ++#line 2153 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = tUPLUS); } +-#line 6952 "parse.c" /* yacc.c:1646 */ ++#line 6944 "parse.c" /* yacc.c:1646 */ + break; + + case 155: +-#line 2162 "parse.y" /* yacc.c:1646 */ ++#line 2154 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = tUMINUS); } +-#line 6958 "parse.c" /* yacc.c:1646 */ ++#line 6950 "parse.c" /* yacc.c:1646 */ + break; + + case 156: +-#line 2163 "parse.y" /* yacc.c:1646 */ ++#line 2155 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = tAREF); } +-#line 6964 "parse.c" /* yacc.c:1646 */ ++#line 6956 "parse.c" /* yacc.c:1646 */ + break; + + case 157: +-#line 2164 "parse.y" /* yacc.c:1646 */ ++#line 2156 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = tASET); } +-#line 6970 "parse.c" /* yacc.c:1646 */ ++#line 6962 "parse.c" /* yacc.c:1646 */ + break; + + case 158: +-#line 2165 "parse.y" /* yacc.c:1646 */ ++#line 2157 "parse.y" /* yacc.c:1646 */ + { ifndef_ripper((yyval.id) = '`'); } +-#line 6976 "parse.c" /* yacc.c:1646 */ ++#line 6968 "parse.c" /* yacc.c:1646 */ + break; + + case 200: +-#line 2183 "parse.y" /* yacc.c:1646 */ ++#line 2175 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = node_assign((yyvsp[-2].node), (yyvsp[0].node), &(yyloc)); + } +-#line 6984 "parse.c" /* yacc.c:1646 */ ++#line 6976 "parse.c" /* yacc.c:1646 */ + break; + + case 201: +-#line 2187 "parse.y" /* yacc.c:1646 */ ++#line 2179 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_op_assign((yyvsp[-2].node), (yyvsp[-1].id), (yyvsp[0].node), &(yyloc)); + } +-#line 6992 "parse.c" /* yacc.c:1646 */ ++#line 6984 "parse.c" /* yacc.c:1646 */ + break; + + case 202: +-#line 2191 "parse.y" /* yacc.c:1646 */ ++#line 2183 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + NODE *args; +@@ -7024,38 +7016,38 @@ yyreduce: + $$ = dispatch3(opassign, $1, $5, $6); + %*/ + } +-#line 7024 "parse.c" /* yacc.c:1646 */ ++#line 7016 "parse.c" /* yacc.c:1646 */ + break; + + case 203: +-#line 2219 "parse.y" /* yacc.c:1646 */ ++#line 2211 "parse.y" /* yacc.c:1646 */ + { + value_expr((yyvsp[0].node)); + (yyval.node) = new_attr_op_assign((yyvsp[-4].node), (yyvsp[-3].id), (yyvsp[-2].id), (yyvsp[-1].id), (yyvsp[0].node), &(yyloc)); + } +-#line 7033 "parse.c" /* yacc.c:1646 */ ++#line 7025 "parse.c" /* yacc.c:1646 */ + break; + + case 204: +-#line 2224 "parse.y" /* yacc.c:1646 */ ++#line 2216 "parse.y" /* yacc.c:1646 */ + { + value_expr((yyvsp[0].node)); + (yyval.node) = new_attr_op_assign((yyvsp[-4].node), (yyvsp[-3].id), (yyvsp[-2].id), (yyvsp[-1].id), (yyvsp[0].node), &(yyloc)); + } +-#line 7042 "parse.c" /* yacc.c:1646 */ ++#line 7034 "parse.c" /* yacc.c:1646 */ + break; + + case 205: +-#line 2229 "parse.y" /* yacc.c:1646 */ ++#line 2221 "parse.y" /* yacc.c:1646 */ + { + value_expr((yyvsp[0].node)); + (yyval.node) = new_attr_op_assign((yyvsp[-4].node), ID2VAL(idCOLON2), (yyvsp[-2].id), (yyvsp[-1].id), (yyvsp[0].node), &(yyloc)); + } +-#line 7051 "parse.c" /* yacc.c:1646 */ ++#line 7043 "parse.c" /* yacc.c:1646 */ + break; + + case 206: +-#line 2234 "parse.y" /* yacc.c:1646 */ ++#line 2226 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + YYLTYPE location; +@@ -7066,29 +7058,29 @@ yyreduce: + (yyval.node) = const_path_field((yyvsp[-4].node), (yyvsp[-2].id), &location); + (yyval.node) = new_const_op_assign((yyval.node), (yyvsp[-1].id), (yyvsp[0].node), &(yyloc)); + } +-#line 7066 "parse.c" /* yacc.c:1646 */ ++#line 7058 "parse.c" /* yacc.c:1646 */ + break; + + case 207: +-#line 2245 "parse.y" /* yacc.c:1646 */ ++#line 2237 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = top_const_field((yyvsp[-2].id)); + (yyval.node) = new_const_op_assign((yyval.node), (yyvsp[-1].id), (yyvsp[0].node), &(yyloc)); + } +-#line 7075 "parse.c" /* yacc.c:1646 */ ++#line 7067 "parse.c" /* yacc.c:1646 */ + break; + + case 208: +-#line 2250 "parse.y" /* yacc.c:1646 */ ++#line 2242 "parse.y" /* yacc.c:1646 */ + { + (yyvsp[-2].node) = var_field((yyvsp[-2].node)); + (yyval.node) = backref_assign_error((yyvsp[-2].node), new_op_assign((yyvsp[-2].node), (yyvsp[-1].id), (yyvsp[0].node), &(yyloc)), &(yyloc)); + } +-#line 7084 "parse.c" /* yacc.c:1646 */ ++#line 7076 "parse.c" /* yacc.c:1646 */ + break; + + case 209: +-#line 2255 "parse.y" /* yacc.c:1646 */ ++#line 2247 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + value_expr((yyvsp[-2].node)); +@@ -7099,11 +7091,11 @@ yyreduce: + $$ = dispatch2(dot2, $1, $3); + %*/ + } +-#line 7099 "parse.c" /* yacc.c:1646 */ ++#line 7091 "parse.c" /* yacc.c:1646 */ + break; + + case 210: +-#line 2266 "parse.y" /* yacc.c:1646 */ ++#line 2258 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + value_expr((yyvsp[-2].node)); +@@ -7114,218 +7106,218 @@ yyreduce: + $$ = dispatch2(dot3, $1, $3); + %*/ + } +-#line 7114 "parse.c" /* yacc.c:1646 */ ++#line 7106 "parse.c" /* yacc.c:1646 */ + break; + + case 211: +-#line 2277 "parse.y" /* yacc.c:1646 */ ++#line 2269 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = call_bin_op((yyvsp[-2].node), '+', (yyvsp[0].node), &(yylsp[-1]), &(yyloc)); + } +-#line 7122 "parse.c" /* yacc.c:1646 */ ++#line 7114 "parse.c" /* yacc.c:1646 */ + break; + + case 212: +-#line 2281 "parse.y" /* yacc.c:1646 */ ++#line 2273 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = call_bin_op((yyvsp[-2].node), '-', (yyvsp[0].node), &(yylsp[-1]), &(yyloc)); + } +-#line 7130 "parse.c" /* yacc.c:1646 */ ++#line 7122 "parse.c" /* yacc.c:1646 */ + break; + + case 213: +-#line 2285 "parse.y" /* yacc.c:1646 */ ++#line 2277 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = call_bin_op((yyvsp[-2].node), '*', (yyvsp[0].node), &(yylsp[-1]), &(yyloc)); + } +-#line 7138 "parse.c" /* yacc.c:1646 */ ++#line 7130 "parse.c" /* yacc.c:1646 */ + break; + + case 214: +-#line 2289 "parse.y" /* yacc.c:1646 */ ++#line 2281 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = call_bin_op((yyvsp[-2].node), '/', (yyvsp[0].node), &(yylsp[-1]), &(yyloc)); + } +-#line 7146 "parse.c" /* yacc.c:1646 */ ++#line 7138 "parse.c" /* yacc.c:1646 */ + break; + + case 215: +-#line 2293 "parse.y" /* yacc.c:1646 */ ++#line 2285 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = call_bin_op((yyvsp[-2].node), '%', (yyvsp[0].node), &(yylsp[-1]), &(yyloc)); + } +-#line 7154 "parse.c" /* yacc.c:1646 */ ++#line 7146 "parse.c" /* yacc.c:1646 */ + break; + + case 216: +-#line 2297 "parse.y" /* yacc.c:1646 */ ++#line 2289 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = call_bin_op((yyvsp[-2].node), idPow, (yyvsp[0].node), &(yylsp[-1]), &(yyloc)); + } +-#line 7162 "parse.c" /* yacc.c:1646 */ ++#line 7154 "parse.c" /* yacc.c:1646 */ + break; + + case 217: +-#line 2301 "parse.y" /* yacc.c:1646 */ ++#line 2293 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = call_uni_op(call_bin_op((yyvsp[-2].node), idPow, (yyvsp[0].node), &(yylsp[-2]), &(yyloc)), idUMinus, &(yylsp[-3]), &(yyloc)); + } +-#line 7170 "parse.c" /* yacc.c:1646 */ ++#line 7162 "parse.c" /* yacc.c:1646 */ + break; + + case 218: +-#line 2305 "parse.y" /* yacc.c:1646 */ ++#line 2297 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = call_uni_op((yyvsp[0].node), idUPlus, &(yylsp[-1]), &(yyloc)); + } +-#line 7178 "parse.c" /* yacc.c:1646 */ ++#line 7170 "parse.c" /* yacc.c:1646 */ + break; + + case 219: +-#line 2309 "parse.y" /* yacc.c:1646 */ ++#line 2301 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = call_uni_op((yyvsp[0].node), idUMinus, &(yylsp[-1]), &(yyloc)); + } +-#line 7186 "parse.c" /* yacc.c:1646 */ ++#line 7178 "parse.c" /* yacc.c:1646 */ + break; + + case 220: +-#line 2313 "parse.y" /* yacc.c:1646 */ ++#line 2305 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = call_bin_op((yyvsp[-2].node), '|', (yyvsp[0].node), &(yylsp[-1]), &(yyloc)); + } +-#line 7194 "parse.c" /* yacc.c:1646 */ ++#line 7186 "parse.c" /* yacc.c:1646 */ + break; + + case 221: +-#line 2317 "parse.y" /* yacc.c:1646 */ ++#line 2309 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = call_bin_op((yyvsp[-2].node), '^', (yyvsp[0].node), &(yylsp[-1]), &(yyloc)); + } +-#line 7202 "parse.c" /* yacc.c:1646 */ ++#line 7194 "parse.c" /* yacc.c:1646 */ + break; + + case 222: +-#line 2321 "parse.y" /* yacc.c:1646 */ ++#line 2313 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = call_bin_op((yyvsp[-2].node), '&', (yyvsp[0].node), &(yylsp[-1]), &(yyloc)); + } +-#line 7210 "parse.c" /* yacc.c:1646 */ ++#line 7202 "parse.c" /* yacc.c:1646 */ + break; + + case 223: +-#line 2325 "parse.y" /* yacc.c:1646 */ ++#line 2317 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = call_bin_op((yyvsp[-2].node), idCmp, (yyvsp[0].node), &(yylsp[-1]), &(yyloc)); + } +-#line 7218 "parse.c" /* yacc.c:1646 */ ++#line 7210 "parse.c" /* yacc.c:1646 */ + break; + + case 225: +-#line 2330 "parse.y" /* yacc.c:1646 */ ++#line 2322 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = call_bin_op((yyvsp[-2].node), idEq, (yyvsp[0].node), &(yylsp[-1]), &(yyloc)); + } +-#line 7226 "parse.c" /* yacc.c:1646 */ ++#line 7218 "parse.c" /* yacc.c:1646 */ + break; + + case 226: +-#line 2334 "parse.y" /* yacc.c:1646 */ ++#line 2326 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = call_bin_op((yyvsp[-2].node), idEqq, (yyvsp[0].node), &(yylsp[-1]), &(yyloc)); + } +-#line 7234 "parse.c" /* yacc.c:1646 */ ++#line 7226 "parse.c" /* yacc.c:1646 */ + break; + + case 227: +-#line 2338 "parse.y" /* yacc.c:1646 */ ++#line 2330 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = call_bin_op((yyvsp[-2].node), idNeq, (yyvsp[0].node), &(yylsp[-1]), &(yyloc)); + } +-#line 7242 "parse.c" /* yacc.c:1646 */ ++#line 7234 "parse.c" /* yacc.c:1646 */ + break; + + case 228: +-#line 2342 "parse.y" /* yacc.c:1646 */ ++#line 2334 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = match_op((yyvsp[-2].node), (yyvsp[0].node), &(yylsp[-1]), &(yyloc)); + } +-#line 7250 "parse.c" /* yacc.c:1646 */ ++#line 7242 "parse.c" /* yacc.c:1646 */ + break; + + case 229: +-#line 2346 "parse.y" /* yacc.c:1646 */ ++#line 2338 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = call_bin_op((yyvsp[-2].node), idNeqTilde, (yyvsp[0].node), &(yylsp[-1]), &(yyloc)); + } +-#line 7258 "parse.c" /* yacc.c:1646 */ ++#line 7250 "parse.c" /* yacc.c:1646 */ + break; + + case 230: +-#line 2350 "parse.y" /* yacc.c:1646 */ ++#line 2342 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = call_uni_op(method_cond((yyvsp[0].node), &(yylsp[0])), '!', &(yylsp[-1]), &(yyloc)); + } +-#line 7266 "parse.c" /* yacc.c:1646 */ ++#line 7258 "parse.c" /* yacc.c:1646 */ + break; + + case 231: +-#line 2354 "parse.y" /* yacc.c:1646 */ ++#line 2346 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = call_uni_op((yyvsp[0].node), '~', &(yylsp[-1]), &(yyloc)); + } +-#line 7274 "parse.c" /* yacc.c:1646 */ ++#line 7266 "parse.c" /* yacc.c:1646 */ + break; + + case 232: +-#line 2358 "parse.y" /* yacc.c:1646 */ ++#line 2350 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = call_bin_op((yyvsp[-2].node), idLTLT, (yyvsp[0].node), &(yylsp[-1]), &(yyloc)); + } +-#line 7282 "parse.c" /* yacc.c:1646 */ ++#line 7274 "parse.c" /* yacc.c:1646 */ + break; + + case 233: +-#line 2362 "parse.y" /* yacc.c:1646 */ ++#line 2354 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = call_bin_op((yyvsp[-2].node), idGTGT, (yyvsp[0].node), &(yylsp[-1]), &(yyloc)); + } +-#line 7290 "parse.c" /* yacc.c:1646 */ ++#line 7282 "parse.c" /* yacc.c:1646 */ + break; + + case 234: +-#line 2366 "parse.y" /* yacc.c:1646 */ ++#line 2358 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = logop(idANDOP, (yyvsp[-2].node), (yyvsp[0].node), &(yylsp[-1]), &(yyloc)); + } +-#line 7298 "parse.c" /* yacc.c:1646 */ ++#line 7290 "parse.c" /* yacc.c:1646 */ + break; + + case 235: +-#line 2370 "parse.y" /* yacc.c:1646 */ ++#line 2362 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = logop(idOROP, (yyvsp[-2].node), (yyvsp[0].node), &(yylsp[-1]), &(yyloc)); + } +-#line 7306 "parse.c" /* yacc.c:1646 */ ++#line 7298 "parse.c" /* yacc.c:1646 */ + break; + + case 236: +-#line 2373 "parse.y" /* yacc.c:1646 */ ++#line 2365 "parse.y" /* yacc.c:1646 */ + {in_defined = 1;} +-#line 7312 "parse.c" /* yacc.c:1646 */ ++#line 7304 "parse.c" /* yacc.c:1646 */ + break; + + case 237: +-#line 2374 "parse.y" /* yacc.c:1646 */ ++#line 2366 "parse.y" /* yacc.c:1646 */ + { + in_defined = 0; + (yyval.node) = new_defined((yyvsp[0].node), &(yyloc)); + } +-#line 7321 "parse.c" /* yacc.c:1646 */ ++#line 7313 "parse.c" /* yacc.c:1646 */ + break; + + case 238: +-#line 2379 "parse.y" /* yacc.c:1646 */ ++#line 2371 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + value_expr((yyvsp[-5].node)); +@@ -7335,60 +7327,60 @@ yyreduce: + $$ = dispatch3(ifop, $1, $3, $6); + %*/ + } +-#line 7335 "parse.c" /* yacc.c:1646 */ ++#line 7327 "parse.c" /* yacc.c:1646 */ + break; + + case 239: +-#line 2389 "parse.y" /* yacc.c:1646 */ ++#line 2381 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = (yyvsp[0].node); + } +-#line 7343 "parse.c" /* yacc.c:1646 */ ++#line 7335 "parse.c" /* yacc.c:1646 */ + break; + + case 240: +-#line 2394 "parse.y" /* yacc.c:1646 */ ++#line 2386 "parse.y" /* yacc.c:1646 */ + {(yyval.id) = '>';} +-#line 7349 "parse.c" /* yacc.c:1646 */ ++#line 7341 "parse.c" /* yacc.c:1646 */ + break; + + case 241: +-#line 2395 "parse.y" /* yacc.c:1646 */ ++#line 2387 "parse.y" /* yacc.c:1646 */ + {(yyval.id) = '<';} +-#line 7355 "parse.c" /* yacc.c:1646 */ ++#line 7347 "parse.c" /* yacc.c:1646 */ + break; + + case 242: +-#line 2396 "parse.y" /* yacc.c:1646 */ ++#line 2388 "parse.y" /* yacc.c:1646 */ + {(yyval.id) = idGE;} +-#line 7361 "parse.c" /* yacc.c:1646 */ ++#line 7353 "parse.c" /* yacc.c:1646 */ + break; + + case 243: +-#line 2397 "parse.y" /* yacc.c:1646 */ ++#line 2389 "parse.y" /* yacc.c:1646 */ + {(yyval.id) = idLE;} +-#line 7367 "parse.c" /* yacc.c:1646 */ ++#line 7359 "parse.c" /* yacc.c:1646 */ + break; + + case 244: +-#line 2401 "parse.y" /* yacc.c:1646 */ ++#line 2393 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = call_bin_op((yyvsp[-2].node), (yyvsp[-1].id), (yyvsp[0].node), &(yylsp[-1]), &(yyloc)); + } +-#line 7375 "parse.c" /* yacc.c:1646 */ ++#line 7367 "parse.c" /* yacc.c:1646 */ + break; + + case 245: +-#line 2405 "parse.y" /* yacc.c:1646 */ ++#line 2397 "parse.y" /* yacc.c:1646 */ + { + rb_warning1("comparison '%s' after comparison", WARN_ID((yyvsp[-1].id))); + (yyval.node) = call_bin_op((yyvsp[-2].node), (yyvsp[-1].id), (yyvsp[0].node), &(yylsp[-1]), &(yyloc)); + } +-#line 7384 "parse.c" /* yacc.c:1646 */ ++#line 7376 "parse.c" /* yacc.c:1646 */ + break; + + case 246: +-#line 2412 "parse.y" /* yacc.c:1646 */ ++#line 2404 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + value_expr((yyvsp[0].node)); +@@ -7398,19 +7390,19 @@ yyreduce: + $$ = $1; + %*/ + } +-#line 7398 "parse.c" /* yacc.c:1646 */ ++#line 7390 "parse.c" /* yacc.c:1646 */ + break; + + case 248: +-#line 2425 "parse.y" /* yacc.c:1646 */ ++#line 2417 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = (yyvsp[-1].node); + } +-#line 7406 "parse.c" /* yacc.c:1646 */ ++#line 7398 "parse.c" /* yacc.c:1646 */ + break; + + case 249: +-#line 2429 "parse.y" /* yacc.c:1646 */ ++#line 2421 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = (yyvsp[-1].node) ? arg_append((yyvsp[-3].node), new_hash((yyvsp[-1].node), &(yylsp[-1])), &(yyloc)) : (yyvsp[-3].node); +@@ -7418,11 +7410,11 @@ yyreduce: + $$ = arg_add_assocs($1, $3); + %*/ + } +-#line 7418 "parse.c" /* yacc.c:1646 */ ++#line 7410 "parse.c" /* yacc.c:1646 */ + break; + + case 250: +-#line 2437 "parse.y" /* yacc.c:1646 */ ++#line 2429 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = (yyvsp[-1].node) ? new_list(new_hash((yyvsp[-1].node), &(yylsp[-1])), &(yyloc)) : 0; +@@ -7430,11 +7422,11 @@ yyreduce: + $$ = arg_add_assocs(arg_new(), $1); + %*/ + } +-#line 7430 "parse.c" /* yacc.c:1646 */ ++#line 7422 "parse.c" /* yacc.c:1646 */ + break; + + case 251: +-#line 2447 "parse.y" /* yacc.c:1646 */ ++#line 2439 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + value_expr((yyvsp[0].node)); +@@ -7442,11 +7434,11 @@ yyreduce: + /*% + %*/ + } +-#line 7442 "parse.c" /* yacc.c:1646 */ ++#line 7434 "parse.c" /* yacc.c:1646 */ + break; + + case 252: +-#line 2455 "parse.y" /* yacc.c:1646 */ ++#line 2447 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + YYLTYPE location; +@@ -7458,11 +7450,11 @@ yyreduce: + $$ = dispatch2(rescue_mod, $1, $3); + %*/ + } +-#line 7458 "parse.c" /* yacc.c:1646 */ ++#line 7450 "parse.c" /* yacc.c:1646 */ + break; + + case 253: +-#line 2469 "parse.y" /* yacc.c:1646 */ ++#line 2461 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = (yyvsp[-1].node); +@@ -7470,19 +7462,19 @@ yyreduce: + $$ = dispatch1(arg_paren, escape_Qundef($2)); + %*/ + } +-#line 7470 "parse.c" /* yacc.c:1646 */ ++#line 7462 "parse.c" /* yacc.c:1646 */ + break; + + case 258: +-#line 2485 "parse.y" /* yacc.c:1646 */ ++#line 2477 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = (yyvsp[-1].node); + } +-#line 7478 "parse.c" /* yacc.c:1646 */ ++#line 7470 "parse.c" /* yacc.c:1646 */ + break; + + case 259: +-#line 2489 "parse.y" /* yacc.c:1646 */ ++#line 2481 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = (yyvsp[-1].node) ? arg_append((yyvsp[-3].node), new_hash((yyvsp[-1].node), &(yylsp[-1])), &(yyloc)) : (yyvsp[-3].node); +@@ -7490,11 +7482,11 @@ yyreduce: + $$ = arg_add_assocs($1, $3); + %*/ + } +-#line 7490 "parse.c" /* yacc.c:1646 */ ++#line 7482 "parse.c" /* yacc.c:1646 */ + break; + + case 260: +-#line 2497 "parse.y" /* yacc.c:1646 */ ++#line 2489 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = (yyvsp[-1].node) ? new_list(new_hash((yyvsp[-1].node), &(yylsp[-1])), &(yylsp[-1])) : 0; +@@ -7502,11 +7494,11 @@ yyreduce: + $$ = arg_add_assocs(arg_new(), $1); + %*/ + } +-#line 7502 "parse.c" /* yacc.c:1646 */ ++#line 7494 "parse.c" /* yacc.c:1646 */ + break; + + case 261: +-#line 2507 "parse.y" /* yacc.c:1646 */ ++#line 2499 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + value_expr((yyvsp[0].node)); +@@ -7515,11 +7507,11 @@ yyreduce: + $$ = arg_add(arg_new(), $1); + %*/ + } +-#line 7515 "parse.c" /* yacc.c:1646 */ ++#line 7507 "parse.c" /* yacc.c:1646 */ + break; + + case 262: +-#line 2516 "parse.y" /* yacc.c:1646 */ ++#line 2508 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = arg_blk_pass((yyvsp[-1].node), (yyvsp[0].node)); +@@ -7527,11 +7519,11 @@ yyreduce: + $$ = arg_add_optblock($1, $2); + %*/ + } +-#line 7527 "parse.c" /* yacc.c:1646 */ ++#line 7519 "parse.c" /* yacc.c:1646 */ + break; + + case 263: +-#line 2524 "parse.y" /* yacc.c:1646 */ ++#line 2516 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = (yyvsp[-1].node) ? new_list(new_hash((yyvsp[-1].node), &(yylsp[-1])), &(yylsp[-1])) : 0; +@@ -7541,11 +7533,11 @@ yyreduce: + $$ = arg_add_optblock($$, $2); + %*/ + } +-#line 7541 "parse.c" /* yacc.c:1646 */ ++#line 7533 "parse.c" /* yacc.c:1646 */ + break; + + case 264: +-#line 2534 "parse.y" /* yacc.c:1646 */ ++#line 2526 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = (yyvsp[-1].node) ? arg_append((yyvsp[-3].node), new_hash((yyvsp[-1].node), &(yylsp[-1])), &(yyloc)) : (yyvsp[-3].node); +@@ -7554,30 +7546,30 @@ yyreduce: + $$ = arg_add_optblock(arg_add_assocs($1, $3), $4); + %*/ + } +-#line 7554 "parse.c" /* yacc.c:1646 */ ++#line 7546 "parse.c" /* yacc.c:1646 */ + break; + + case 266: +-#line 2551 "parse.y" /* yacc.c:1646 */ ++#line 2543 "parse.y" /* yacc.c:1646 */ + { + (yyval.val) = cmdarg_stack; + CMDARG_PUSH(1); + } +-#line 7563 "parse.c" /* yacc.c:1646 */ ++#line 7555 "parse.c" /* yacc.c:1646 */ + break; + + case 267: +-#line 2556 "parse.y" /* yacc.c:1646 */ ++#line 2548 "parse.y" /* yacc.c:1646 */ + { + /* CMDARG_POP() */ + CMDARG_SET((yyvsp[-1].val)); + (yyval.node) = (yyvsp[0].node); + } +-#line 7573 "parse.c" /* yacc.c:1646 */ ++#line 7565 "parse.c" /* yacc.c:1646 */ + break; + + case 268: +-#line 2564 "parse.y" /* yacc.c:1646 */ ++#line 2556 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = NEW_BLOCK_PASS((yyvsp[0].node)); +@@ -7586,27 +7578,27 @@ yyreduce: + $$ = $2; + %*/ + } +-#line 7586 "parse.c" /* yacc.c:1646 */ ++#line 7578 "parse.c" /* yacc.c:1646 */ + break; + + case 269: +-#line 2575 "parse.y" /* yacc.c:1646 */ ++#line 2567 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = (yyvsp[0].node); + } +-#line 7594 "parse.c" /* yacc.c:1646 */ ++#line 7586 "parse.c" /* yacc.c:1646 */ + break; + + case 270: +-#line 2579 "parse.y" /* yacc.c:1646 */ ++#line 2571 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = 0; + } +-#line 7602 "parse.c" /* yacc.c:1646 */ ++#line 7594 "parse.c" /* yacc.c:1646 */ + break; + + case 271: +-#line 2585 "parse.y" /* yacc.c:1646 */ ++#line 2577 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = new_list((yyvsp[0].node), &(yyloc)); +@@ -7614,11 +7606,11 @@ yyreduce: + $$ = arg_add(arg_new(), $1); + %*/ + } +-#line 7614 "parse.c" /* yacc.c:1646 */ ++#line 7606 "parse.c" /* yacc.c:1646 */ + break; + + case 272: +-#line 2593 "parse.y" /* yacc.c:1646 */ ++#line 2585 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = NEW_SPLAT((yyvsp[0].node)); +@@ -7627,11 +7619,11 @@ yyreduce: + $$ = arg_add_star(arg_new(), $2); + %*/ + } +-#line 7627 "parse.c" /* yacc.c:1646 */ ++#line 7619 "parse.c" /* yacc.c:1646 */ + break; + + case 273: +-#line 2602 "parse.y" /* yacc.c:1646 */ ++#line 2594 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + NODE *n1; +@@ -7645,11 +7637,11 @@ yyreduce: + $$ = arg_add($1, $3); + %*/ + } +-#line 7645 "parse.c" /* yacc.c:1646 */ ++#line 7637 "parse.c" /* yacc.c:1646 */ + break; + + case 274: +-#line 2616 "parse.y" /* yacc.c:1646 */ ++#line 2608 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + NODE *n1; +@@ -7663,11 +7655,11 @@ yyreduce: + $$ = arg_add_star($1, $4); + %*/ + } +-#line 7663 "parse.c" /* yacc.c:1646 */ ++#line 7655 "parse.c" /* yacc.c:1646 */ + break; + + case 277: +-#line 2636 "parse.y" /* yacc.c:1646 */ ++#line 2628 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + NODE *n1; +@@ -7681,11 +7673,11 @@ yyreduce: + $$ = mrhs_add(args2mrhs($1), $3); + %*/ + } +-#line 7681 "parse.c" /* yacc.c:1646 */ ++#line 7673 "parse.c" /* yacc.c:1646 */ + break; + + case 278: +-#line 2650 "parse.y" /* yacc.c:1646 */ ++#line 2642 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + NODE *n1; +@@ -7700,11 +7692,11 @@ yyreduce: + $$ = mrhs_add_star(args2mrhs($1), $4); + %*/ + } +-#line 7700 "parse.c" /* yacc.c:1646 */ ++#line 7692 "parse.c" /* yacc.c:1646 */ + break; + + case 279: +-#line 2665 "parse.y" /* yacc.c:1646 */ ++#line 2657 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = NEW_SPLAT((yyvsp[0].node)); +@@ -7713,11 +7705,11 @@ yyreduce: + $$ = mrhs_add_star(mrhs_new(), $2); + %*/ + } +-#line 7713 "parse.c" /* yacc.c:1646 */ ++#line 7705 "parse.c" /* yacc.c:1646 */ + break; + + case 290: +-#line 2686 "parse.y" /* yacc.c:1646 */ ++#line 2678 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = new_fcall((yyvsp[0].id), 0, &(yyloc)); +@@ -7725,11 +7717,11 @@ yyreduce: + $$ = method_arg(dispatch1(fcall, $1), arg_new()); + %*/ + } +-#line 7725 "parse.c" /* yacc.c:1646 */ ++#line 7717 "parse.c" /* yacc.c:1646 */ + break; + + case 291: +-#line 2694 "parse.y" /* yacc.c:1646 */ ++#line 2686 "parse.y" /* yacc.c:1646 */ + { + (yyvsp[0].val) = cmdarg_stack; + CMDARG_SET(0); +@@ -7738,11 +7730,11 @@ yyreduce: + /*% + %*/ + } +-#line 7738 "parse.c" /* yacc.c:1646 */ ++#line 7730 "parse.c" /* yacc.c:1646 */ + break; + + case 292: +-#line 2704 "parse.y" /* yacc.c:1646 */ ++#line 2696 "parse.y" /* yacc.c:1646 */ + { + CMDARG_SET((yyvsp[-3].val)); + /*%%%*/ +@@ -7759,17 +7751,17 @@ yyreduce: + $$ = dispatch1(begin, $3); + %*/ + } +-#line 7759 "parse.c" /* yacc.c:1646 */ ++#line 7751 "parse.c" /* yacc.c:1646 */ + break; + + case 293: +-#line 2720 "parse.y" /* yacc.c:1646 */ ++#line 2712 "parse.y" /* yacc.c:1646 */ + {SET_LEX_STATE(EXPR_ENDARG);} +-#line 7765 "parse.c" /* yacc.c:1646 */ ++#line 7757 "parse.c" /* yacc.c:1646 */ + break; + + case 294: +-#line 2721 "parse.y" /* yacc.c:1646 */ ++#line 2713 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = new_begin(0, &(yyloc)); +@@ -7777,26 +7769,26 @@ yyreduce: + $$ = dispatch1(paren, 0); + %*/ + } +-#line 7777 "parse.c" /* yacc.c:1646 */ ++#line 7769 "parse.c" /* yacc.c:1646 */ + break; + + case 295: +-#line 2729 "parse.y" /* yacc.c:1646 */ ++#line 2721 "parse.y" /* yacc.c:1646 */ + { + (yyvsp[0].val) = cmdarg_stack; + CMDARG_SET(0); + } +-#line 7786 "parse.c" /* yacc.c:1646 */ ++#line 7778 "parse.c" /* yacc.c:1646 */ + break; + + case 296: +-#line 2733 "parse.y" /* yacc.c:1646 */ ++#line 2725 "parse.y" /* yacc.c:1646 */ + {SET_LEX_STATE(EXPR_ENDARG);} +-#line 7792 "parse.c" /* yacc.c:1646 */ ++#line 7784 "parse.c" /* yacc.c:1646 */ + break; + + case 297: +-#line 2734 "parse.y" /* yacc.c:1646 */ ++#line 2726 "parse.y" /* yacc.c:1646 */ + { + CMDARG_SET((yyvsp[-4].val)); + /*%%%*/ +@@ -7805,11 +7797,11 @@ yyreduce: + $$ = dispatch1(paren, $3); + %*/ + } +-#line 7805 "parse.c" /* yacc.c:1646 */ ++#line 7797 "parse.c" /* yacc.c:1646 */ + break; + + case 298: +-#line 2743 "parse.y" /* yacc.c:1646 */ ++#line 2735 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = (yyvsp[-1].node); +@@ -7817,11 +7809,11 @@ yyreduce: + $$ = dispatch1(paren, $2); + %*/ + } +-#line 7817 "parse.c" /* yacc.c:1646 */ ++#line 7809 "parse.c" /* yacc.c:1646 */ + break; + + case 299: +-#line 2751 "parse.y" /* yacc.c:1646 */ ++#line 2743 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = NEW_COLON2((yyvsp[-2].node), (yyvsp[0].id)); +@@ -7830,11 +7822,11 @@ yyreduce: + $$ = dispatch2(const_path_ref, $1, $3); + %*/ + } +-#line 7830 "parse.c" /* yacc.c:1646 */ ++#line 7822 "parse.c" /* yacc.c:1646 */ + break; + + case 300: +-#line 2760 "parse.y" /* yacc.c:1646 */ ++#line 2752 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = NEW_COLON3((yyvsp[0].id)); +@@ -7843,11 +7835,11 @@ yyreduce: + $$ = dispatch1(top_const_ref, $2); + %*/ + } +-#line 7843 "parse.c" /* yacc.c:1646 */ ++#line 7835 "parse.c" /* yacc.c:1646 */ + break; + + case 301: +-#line 2769 "parse.y" /* yacc.c:1646 */ ++#line 2761 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = make_array((yyvsp[-1].node), &(yyloc)); +@@ -7855,11 +7847,11 @@ yyreduce: + $$ = dispatch1(array, escape_Qundef($2)); + %*/ + } +-#line 7855 "parse.c" /* yacc.c:1646 */ ++#line 7847 "parse.c" /* yacc.c:1646 */ + break; + + case 302: +-#line 2777 "parse.y" /* yacc.c:1646 */ ++#line 2769 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = new_hash((yyvsp[-1].node), &(yyloc)); +@@ -7868,11 +7860,11 @@ yyreduce: + $$ = dispatch1(hash, escape_Qundef($2)); + %*/ + } +-#line 7868 "parse.c" /* yacc.c:1646 */ ++#line 7860 "parse.c" /* yacc.c:1646 */ + break; + + case 303: +-#line 2786 "parse.y" /* yacc.c:1646 */ ++#line 2778 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = NEW_RETURN(0); +@@ -7881,11 +7873,11 @@ yyreduce: + $$ = dispatch0(return0); + %*/ + } +-#line 7881 "parse.c" /* yacc.c:1646 */ ++#line 7873 "parse.c" /* yacc.c:1646 */ + break; + + case 304: +-#line 2795 "parse.y" /* yacc.c:1646 */ ++#line 2787 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = new_yield((yyvsp[-1].node), &(yyloc)); +@@ -7893,11 +7885,11 @@ yyreduce: + $$ = dispatch1(yield, dispatch1(paren, $3)); + %*/ + } +-#line 7893 "parse.c" /* yacc.c:1646 */ ++#line 7885 "parse.c" /* yacc.c:1646 */ + break; + + case 305: +-#line 2803 "parse.y" /* yacc.c:1646 */ ++#line 2795 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = NEW_YIELD(0); +@@ -7906,11 +7898,11 @@ yyreduce: + $$ = dispatch1(yield, dispatch1(paren, arg_new())); + %*/ + } +-#line 7906 "parse.c" /* yacc.c:1646 */ ++#line 7898 "parse.c" /* yacc.c:1646 */ + break; + + case 306: +-#line 2812 "parse.y" /* yacc.c:1646 */ ++#line 2804 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = NEW_YIELD(0); +@@ -7919,42 +7911,42 @@ yyreduce: + $$ = dispatch0(yield0); + %*/ + } +-#line 7919 "parse.c" /* yacc.c:1646 */ ++#line 7911 "parse.c" /* yacc.c:1646 */ + break; + + case 307: +-#line 2820 "parse.y" /* yacc.c:1646 */ ++#line 2812 "parse.y" /* yacc.c:1646 */ + {in_defined = 1;} +-#line 7925 "parse.c" /* yacc.c:1646 */ ++#line 7917 "parse.c" /* yacc.c:1646 */ + break; + + case 308: +-#line 2821 "parse.y" /* yacc.c:1646 */ ++#line 2813 "parse.y" /* yacc.c:1646 */ + { + in_defined = 0; + (yyval.node) = new_defined((yyvsp[-1].node), &(yyloc)); + } +-#line 7934 "parse.c" /* yacc.c:1646 */ ++#line 7926 "parse.c" /* yacc.c:1646 */ + break; + + case 309: +-#line 2826 "parse.y" /* yacc.c:1646 */ ++#line 2818 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = call_uni_op(method_cond((yyvsp[-1].node), &(yylsp[-1])), METHOD_NOT, &(yylsp[-3]), &(yyloc)); + } +-#line 7942 "parse.c" /* yacc.c:1646 */ ++#line 7934 "parse.c" /* yacc.c:1646 */ + break; + + case 310: +-#line 2830 "parse.y" /* yacc.c:1646 */ ++#line 2822 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = call_uni_op(method_cond(new_nil(&(yylsp[-1])), &(yylsp[-1])), METHOD_NOT, &(yylsp[-2]), &(yyloc)); + } +-#line 7950 "parse.c" /* yacc.c:1646 */ ++#line 7942 "parse.c" /* yacc.c:1646 */ + break; + + case 311: +-#line 2834 "parse.y" /* yacc.c:1646 */ ++#line 2826 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyvsp[0].node)->nd_iter = (yyvsp[-1].node); +@@ -7965,11 +7957,11 @@ yyreduce: + $$ = method_add_block($$, $2); + %*/ + } +-#line 7965 "parse.c" /* yacc.c:1646 */ ++#line 7957 "parse.c" /* yacc.c:1646 */ + break; + + case 313: +-#line 2846 "parse.y" /* yacc.c:1646 */ ++#line 2838 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + block_dup_check((yyvsp[-1].node)->nd_args, (yyvsp[0].node)); +@@ -7980,19 +7972,19 @@ yyreduce: + $$ = method_add_block($1, $2); + %*/ + } +-#line 7980 "parse.c" /* yacc.c:1646 */ ++#line 7972 "parse.c" /* yacc.c:1646 */ + break; + + case 314: +-#line 2857 "parse.y" /* yacc.c:1646 */ ++#line 2849 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = (yyvsp[0].node); + } +-#line 7988 "parse.c" /* yacc.c:1646 */ ++#line 7980 "parse.c" /* yacc.c:1646 */ + break; + + case 315: +-#line 2864 "parse.y" /* yacc.c:1646 */ ++#line 2856 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = new_if((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[-1].node), &(yyloc)); +@@ -8001,11 +7993,11 @@ yyreduce: + $$ = dispatch3(if, $2, $4, escape_Qundef($5)); + %*/ + } +-#line 8001 "parse.c" /* yacc.c:1646 */ ++#line 7993 "parse.c" /* yacc.c:1646 */ + break; + + case 316: +-#line 2876 "parse.y" /* yacc.c:1646 */ ++#line 2868 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = new_unless((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[-1].node), &(yyloc)); +@@ -8014,23 +8006,23 @@ yyreduce: + $$ = dispatch3(unless, $2, $4, escape_Qundef($5)); + %*/ + } +-#line 8014 "parse.c" /* yacc.c:1646 */ ++#line 8006 "parse.c" /* yacc.c:1646 */ + break; + + case 317: +-#line 2884 "parse.y" /* yacc.c:1646 */ ++#line 2876 "parse.y" /* yacc.c:1646 */ + {COND_PUSH(1);} +-#line 8020 "parse.c" /* yacc.c:1646 */ ++#line 8012 "parse.c" /* yacc.c:1646 */ + break; + + case 318: +-#line 2884 "parse.y" /* yacc.c:1646 */ ++#line 2876 "parse.y" /* yacc.c:1646 */ + {COND_POP();} +-#line 8026 "parse.c" /* yacc.c:1646 */ ++#line 8018 "parse.c" /* yacc.c:1646 */ + break; + + case 319: +-#line 2887 "parse.y" /* yacc.c:1646 */ ++#line 2879 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = NEW_WHILE(cond((yyvsp[-4].node), &(yylsp[-4])), (yyvsp[-1].node), 1); +@@ -8040,23 +8032,23 @@ yyreduce: + $$ = dispatch2(while, $3, $6); + %*/ + } +-#line 8040 "parse.c" /* yacc.c:1646 */ ++#line 8032 "parse.c" /* yacc.c:1646 */ + break; + + case 320: +-#line 2896 "parse.y" /* yacc.c:1646 */ ++#line 2888 "parse.y" /* yacc.c:1646 */ + {COND_PUSH(1);} +-#line 8046 "parse.c" /* yacc.c:1646 */ ++#line 8038 "parse.c" /* yacc.c:1646 */ + break; + + case 321: +-#line 2896 "parse.y" /* yacc.c:1646 */ ++#line 2888 "parse.y" /* yacc.c:1646 */ + {COND_POP();} +-#line 8052 "parse.c" /* yacc.c:1646 */ ++#line 8044 "parse.c" /* yacc.c:1646 */ + break; + + case 322: +-#line 2899 "parse.y" /* yacc.c:1646 */ ++#line 2891 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = NEW_UNTIL(cond((yyvsp[-4].node), &(yylsp[-4])), (yyvsp[-1].node), 1); +@@ -8066,11 +8058,11 @@ yyreduce: + $$ = dispatch2(until, $3, $6); + %*/ + } +-#line 8066 "parse.c" /* yacc.c:1646 */ ++#line 8058 "parse.c" /* yacc.c:1646 */ + break; + + case 323: +-#line 2911 "parse.y" /* yacc.c:1646 */ ++#line 2903 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = NEW_CASE((yyvsp[-3].node), (yyvsp[-1].node)); +@@ -8080,11 +8072,11 @@ yyreduce: + $$ = dispatch2(case, $2, $4); + %*/ + } +-#line 8080 "parse.c" /* yacc.c:1646 */ ++#line 8072 "parse.c" /* yacc.c:1646 */ + break; + + case 324: +-#line 2921 "parse.y" /* yacc.c:1646 */ ++#line 2913 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = NEW_CASE2((yyvsp[-1].node)); +@@ -8094,23 +8086,23 @@ yyreduce: + $$ = dispatch2(case, Qnil, $3); + %*/ + } +-#line 8094 "parse.c" /* yacc.c:1646 */ ++#line 8086 "parse.c" /* yacc.c:1646 */ + break; + + case 325: +-#line 2931 "parse.y" /* yacc.c:1646 */ ++#line 2923 "parse.y" /* yacc.c:1646 */ + {COND_PUSH(1);} +-#line 8100 "parse.c" /* yacc.c:1646 */ ++#line 8092 "parse.c" /* yacc.c:1646 */ + break; + + case 326: +-#line 2933 "parse.y" /* yacc.c:1646 */ ++#line 2925 "parse.y" /* yacc.c:1646 */ + {COND_POP();} +-#line 8106 "parse.c" /* yacc.c:1646 */ ++#line 8098 "parse.c" /* yacc.c:1646 */ + break; + + case 327: +-#line 2936 "parse.y" /* yacc.c:1646 */ ++#line 2928 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + /* +@@ -8158,11 +8150,11 @@ yyreduce: + $$ = dispatch3(for, $2, $5, $8); + %*/ + } +-#line 8158 "parse.c" /* yacc.c:1646 */ ++#line 8150 "parse.c" /* yacc.c:1646 */ + break; + + case 328: +-#line 2984 "parse.y" /* yacc.c:1646 */ ++#line 2976 "parse.y" /* yacc.c:1646 */ + { + if (in_def) + yyerror0("class definition in method body"); +@@ -8174,11 +8166,11 @@ yyreduce: + /*% + %*/ + } +-#line 8174 "parse.c" /* yacc.c:1646 */ ++#line 8166 "parse.c" /* yacc.c:1646 */ + break; + + case 329: +-#line 2997 "parse.y" /* yacc.c:1646 */ ++#line 2989 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = NEW_CLASS((yyvsp[-4].node), (yyvsp[-1].node), (yyvsp[-3].node)); +@@ -8192,22 +8184,22 @@ yyreduce: + local_pop(); + in_class = (yyvsp[-5].num) & 1; + } +-#line 8192 "parse.c" /* yacc.c:1646 */ ++#line 8184 "parse.c" /* yacc.c:1646 */ + break; + + case 330: +-#line 3011 "parse.y" /* yacc.c:1646 */ ++#line 3003 "parse.y" /* yacc.c:1646 */ + { + (yyval.num) = (in_class << 1) | in_def; + in_def = 0; + in_class = 0; + local_push(0); + } +-#line 8203 "parse.c" /* yacc.c:1646 */ ++#line 8195 "parse.c" /* yacc.c:1646 */ + break; + + case 331: +-#line 3020 "parse.y" /* yacc.c:1646 */ ++#line 3012 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = NEW_SCLASS((yyvsp[-4].node), (yyvsp[-1].node)); +@@ -8222,11 +8214,11 @@ yyreduce: + in_def = (yyvsp[-3].num) & 1; + in_class = ((yyvsp[-3].num) >> 1) & 1; + } +-#line 8222 "parse.c" /* yacc.c:1646 */ ++#line 8214 "parse.c" /* yacc.c:1646 */ + break; + + case 332: +-#line 3035 "parse.y" /* yacc.c:1646 */ ++#line 3027 "parse.y" /* yacc.c:1646 */ + { + if (in_def) + yyerror0("module definition in method body"); +@@ -8238,11 +8230,11 @@ yyreduce: + /*% + %*/ + } +-#line 8238 "parse.c" /* yacc.c:1646 */ ++#line 8230 "parse.c" /* yacc.c:1646 */ + break; + + case 333: +-#line 3048 "parse.y" /* yacc.c:1646 */ ++#line 3040 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = NEW_MODULE((yyvsp[-3].node), (yyvsp[-1].node)); +@@ -8256,30 +8248,30 @@ yyreduce: + local_pop(); + in_class = (yyvsp[-4].num) & 1; + } +-#line 8256 "parse.c" /* yacc.c:1646 */ ++#line 8248 "parse.c" /* yacc.c:1646 */ + break; + + case 334: +-#line 3062 "parse.y" /* yacc.c:1646 */ ++#line 3054 "parse.y" /* yacc.c:1646 */ + { + local_push(0); + (yyval.id) = current_arg; + current_arg = 0; + } +-#line 8266 "parse.c" /* yacc.c:1646 */ ++#line 8258 "parse.c" /* yacc.c:1646 */ + break; + + case 335: +-#line 3067 "parse.y" /* yacc.c:1646 */ ++#line 3059 "parse.y" /* yacc.c:1646 */ + { + (yyval.num) = in_def; + in_def = 1; + } +-#line 8275 "parse.c" /* yacc.c:1646 */ ++#line 8267 "parse.c" /* yacc.c:1646 */ + break; + + case 336: +-#line 3074 "parse.y" /* yacc.c:1646 */ ++#line 3066 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + NODE *body = remove_begin((yyvsp[-1].node)); +@@ -8296,17 +8288,17 @@ yyreduce: + in_def = (yyvsp[-3].num) & 1; + current_arg = (yyvsp[-4].id); + } +-#line 8296 "parse.c" /* yacc.c:1646 */ ++#line 8288 "parse.c" /* yacc.c:1646 */ + break; + + case 337: +-#line 3090 "parse.y" /* yacc.c:1646 */ ++#line 3082 "parse.y" /* yacc.c:1646 */ + {SET_LEX_STATE(EXPR_FNAME);} +-#line 8302 "parse.c" /* yacc.c:1646 */ ++#line 8294 "parse.c" /* yacc.c:1646 */ + break; + + case 338: +-#line 3091 "parse.y" /* yacc.c:1646 */ ++#line 3083 "parse.y" /* yacc.c:1646 */ + { + (yyvsp[-1].num) = in_def; + in_def = 1; +@@ -8315,11 +8307,11 @@ yyreduce: + (yyval.id) = current_arg; + current_arg = 0; + } +-#line 8315 "parse.c" /* yacc.c:1646 */ ++#line 8307 "parse.c" /* yacc.c:1646 */ + break; + + case 339: +-#line 3102 "parse.y" /* yacc.c:1646 */ ++#line 3094 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + NODE *body = remove_begin((yyvsp[-1].node)); +@@ -8336,11 +8328,11 @@ yyreduce: + in_def = (yyvsp[-5].num) & 1; + current_arg = (yyvsp[-3].id); + } +-#line 8336 "parse.c" /* yacc.c:1646 */ ++#line 8328 "parse.c" /* yacc.c:1646 */ + break; + + case 340: +-#line 3119 "parse.y" /* yacc.c:1646 */ ++#line 3111 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = NEW_BREAK(0); +@@ -8349,11 +8341,11 @@ yyreduce: + $$ = dispatch1(break, arg_new()); + %*/ + } +-#line 8349 "parse.c" /* yacc.c:1646 */ ++#line 8341 "parse.c" /* yacc.c:1646 */ + break; + + case 341: +-#line 3128 "parse.y" /* yacc.c:1646 */ ++#line 3120 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = NEW_NEXT(0); +@@ -8362,11 +8354,11 @@ yyreduce: + $$ = dispatch1(next, arg_new()); + %*/ + } +-#line 8362 "parse.c" /* yacc.c:1646 */ ++#line 8354 "parse.c" /* yacc.c:1646 */ + break; + + case 342: +-#line 3137 "parse.y" /* yacc.c:1646 */ ++#line 3129 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = NEW_REDO(); +@@ -8375,11 +8367,11 @@ yyreduce: + $$ = dispatch0(redo); + %*/ + } +-#line 8375 "parse.c" /* yacc.c:1646 */ ++#line 8367 "parse.c" /* yacc.c:1646 */ + break; + + case 343: +-#line 3146 "parse.y" /* yacc.c:1646 */ ++#line 3138 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = NEW_RETRY(); +@@ -8388,11 +8380,11 @@ yyreduce: + $$ = dispatch0(retry); + %*/ + } +-#line 8388 "parse.c" /* yacc.c:1646 */ ++#line 8380 "parse.c" /* yacc.c:1646 */ + break; + + case 344: +-#line 3157 "parse.y" /* yacc.c:1646 */ ++#line 3149 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + value_expr((yyvsp[0].node)); +@@ -8402,51 +8394,51 @@ yyreduce: + $$ = $1; + %*/ + } +-#line 8402 "parse.c" /* yacc.c:1646 */ ++#line 8394 "parse.c" /* yacc.c:1646 */ + break; + + case 345: +-#line 3169 "parse.y" /* yacc.c:1646 */ ++#line 3161 "parse.y" /* yacc.c:1646 */ + { + token_info_push("begin"); + } +-#line 8410 "parse.c" /* yacc.c:1646 */ ++#line 8402 "parse.c" /* yacc.c:1646 */ + break; + + case 346: +-#line 3175 "parse.y" /* yacc.c:1646 */ ++#line 3167 "parse.y" /* yacc.c:1646 */ + { + token_info_push("if"); + } +-#line 8418 "parse.c" /* yacc.c:1646 */ ++#line 8410 "parse.c" /* yacc.c:1646 */ + break; + + case 347: +-#line 3181 "parse.y" /* yacc.c:1646 */ ++#line 3173 "parse.y" /* yacc.c:1646 */ + { + token_info_push("unless"); + } +-#line 8426 "parse.c" /* yacc.c:1646 */ ++#line 8418 "parse.c" /* yacc.c:1646 */ + break; + + case 348: +-#line 3187 "parse.y" /* yacc.c:1646 */ ++#line 3179 "parse.y" /* yacc.c:1646 */ + { + token_info_push("while"); + } +-#line 8434 "parse.c" /* yacc.c:1646 */ ++#line 8426 "parse.c" /* yacc.c:1646 */ + break; + + case 349: +-#line 3193 "parse.y" /* yacc.c:1646 */ ++#line 3185 "parse.y" /* yacc.c:1646 */ + { + token_info_push("until"); + } +-#line 8442 "parse.c" /* yacc.c:1646 */ ++#line 8434 "parse.c" /* yacc.c:1646 */ + break; + + case 350: +-#line 3199 "parse.y" /* yacc.c:1646 */ ++#line 3191 "parse.y" /* yacc.c:1646 */ + { + token_info_push("case"); + /*%%%*/ +@@ -8454,35 +8446,35 @@ yyreduce: + /*% + %*/ + } +-#line 8454 "parse.c" /* yacc.c:1646 */ ++#line 8446 "parse.c" /* yacc.c:1646 */ + break; + + case 351: +-#line 3209 "parse.y" /* yacc.c:1646 */ ++#line 3201 "parse.y" /* yacc.c:1646 */ + { + token_info_push("for"); + } +-#line 8462 "parse.c" /* yacc.c:1646 */ ++#line 8454 "parse.c" /* yacc.c:1646 */ + break; + + case 352: +-#line 3215 "parse.y" /* yacc.c:1646 */ ++#line 3207 "parse.y" /* yacc.c:1646 */ + { + token_info_push("class"); + } +-#line 8470 "parse.c" /* yacc.c:1646 */ ++#line 8462 "parse.c" /* yacc.c:1646 */ + break; + + case 353: +-#line 3221 "parse.y" /* yacc.c:1646 */ ++#line 3213 "parse.y" /* yacc.c:1646 */ + { + token_info_push("module"); + } +-#line 8478 "parse.c" /* yacc.c:1646 */ ++#line 8470 "parse.c" /* yacc.c:1646 */ + break; + + case 354: +-#line 3227 "parse.y" /* yacc.c:1646 */ ++#line 3219 "parse.y" /* yacc.c:1646 */ + { + token_info_push("def"); + /*%%%*/ +@@ -8490,28 +8482,28 @@ yyreduce: + /*% + %*/ + } +-#line 8490 "parse.c" /* yacc.c:1646 */ ++#line 8482 "parse.c" /* yacc.c:1646 */ + break; + + case 355: +-#line 3237 "parse.y" /* yacc.c:1646 */ ++#line 3229 "parse.y" /* yacc.c:1646 */ + { + token_info_pop("end"); + } +-#line 8498 "parse.c" /* yacc.c:1646 */ ++#line 8490 "parse.c" /* yacc.c:1646 */ + break; + + case 356: +-#line 3243 "parse.y" /* yacc.c:1646 */ ++#line 3235 "parse.y" /* yacc.c:1646 */ + { + if (in_class && !in_def && !dyna_in_block()) + yyerror0("Invalid return in class/module body"); + } +-#line 8507 "parse.c" /* yacc.c:1646 */ ++#line 8499 "parse.c" /* yacc.c:1646 */ + break; + + case 363: +-#line 3274 "parse.y" /* yacc.c:1646 */ ++#line 3266 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = new_if((yyvsp[-3].node), (yyvsp[-1].node), (yyvsp[0].node), &(yyloc)); +@@ -8520,11 +8512,11 @@ yyreduce: + $$ = dispatch3(elsif, $2, $4, escape_Qundef($5)); + %*/ + } +-#line 8520 "parse.c" /* yacc.c:1646 */ ++#line 8512 "parse.c" /* yacc.c:1646 */ + break; + + case 365: +-#line 3286 "parse.y" /* yacc.c:1646 */ ++#line 3278 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = (yyvsp[0].node); +@@ -8532,22 +8524,22 @@ yyreduce: + $$ = dispatch1(else, $2); + %*/ + } +-#line 8532 "parse.c" /* yacc.c:1646 */ ++#line 8524 "parse.c" /* yacc.c:1646 */ + break; + + case 368: +-#line 3300 "parse.y" /* yacc.c:1646 */ ++#line 3292 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = assignable((yyvsp[0].id), 0, &(yyloc)); + /*%%%*/ + /*% + %*/ + } +-#line 8543 "parse.c" /* yacc.c:1646 */ ++#line 8535 "parse.c" /* yacc.c:1646 */ + break; + + case 369: +-#line 3307 "parse.y" /* yacc.c:1646 */ ++#line 3299 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = (yyvsp[-1].node); +@@ -8555,11 +8547,11 @@ yyreduce: + $$ = dispatch1(mlhs_paren, $2); + %*/ + } +-#line 8555 "parse.c" /* yacc.c:1646 */ ++#line 8547 "parse.c" /* yacc.c:1646 */ + break; + + case 370: +-#line 3317 "parse.y" /* yacc.c:1646 */ ++#line 3309 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = new_list((yyvsp[0].node), &(yyloc)); +@@ -8567,11 +8559,11 @@ yyreduce: + $$ = mlhs_add(mlhs_new(), $1); + %*/ + } +-#line 8567 "parse.c" /* yacc.c:1646 */ ++#line 8559 "parse.c" /* yacc.c:1646 */ + break; + + case 371: +-#line 3325 "parse.y" /* yacc.c:1646 */ ++#line 3317 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = list_append((yyvsp[-2].node), (yyvsp[0].node)); +@@ -8579,11 +8571,11 @@ yyreduce: + $$ = mlhs_add($1, $3); + %*/ + } +-#line 8579 "parse.c" /* yacc.c:1646 */ ++#line 8571 "parse.c" /* yacc.c:1646 */ + break; + + case 372: +-#line 3335 "parse.y" /* yacc.c:1646 */ ++#line 3327 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = new_masgn((yyvsp[0].node), 0, &(yyloc)); +@@ -8591,11 +8583,11 @@ yyreduce: + $$ = $1; + %*/ + } +-#line 8591 "parse.c" /* yacc.c:1646 */ ++#line 8583 "parse.c" /* yacc.c:1646 */ + break; + + case 373: +-#line 3343 "parse.y" /* yacc.c:1646 */ ++#line 3335 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = assignable((yyvsp[0].id), 0, &(yyloc)); + /*%%%*/ +@@ -8604,11 +8596,11 @@ yyreduce: + $$ = mlhs_add_star($1, $$); + %*/ + } +-#line 8604 "parse.c" /* yacc.c:1646 */ ++#line 8596 "parse.c" /* yacc.c:1646 */ + break; + + case 374: +-#line 3352 "parse.y" /* yacc.c:1646 */ ++#line 3344 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = assignable((yyvsp[-2].id), 0, &(yyloc)); + /*%%%*/ +@@ -8618,11 +8610,11 @@ yyreduce: + $$ = mlhs_add_post($$, $6); + %*/ + } +-#line 8618 "parse.c" /* yacc.c:1646 */ ++#line 8610 "parse.c" /* yacc.c:1646 */ + break; + + case 375: +-#line 3362 "parse.y" /* yacc.c:1646 */ ++#line 3354 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = new_masgn((yyvsp[-2].node), NODE_SPECIAL_NO_NAME_REST, &(yyloc)); +@@ -8630,11 +8622,11 @@ yyreduce: + $$ = mlhs_add_star($1, Qnil); + %*/ + } +-#line 8630 "parse.c" /* yacc.c:1646 */ ++#line 8622 "parse.c" /* yacc.c:1646 */ + break; + + case 376: +-#line 3370 "parse.y" /* yacc.c:1646 */ ++#line 3362 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = new_masgn((yyvsp[-4].node), new_postarg(NODE_SPECIAL_NO_NAME_REST, (yyvsp[0].node), &(yyloc)), &(yyloc)); +@@ -8643,11 +8635,11 @@ yyreduce: + $$ = mlhs_add_post($$, $5); + %*/ + } +-#line 8643 "parse.c" /* yacc.c:1646 */ ++#line 8635 "parse.c" /* yacc.c:1646 */ + break; + + case 377: +-#line 3379 "parse.y" /* yacc.c:1646 */ ++#line 3371 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = assignable((yyvsp[0].id), 0, &(yyloc)); + /*%%%*/ +@@ -8656,11 +8648,11 @@ yyreduce: + $$ = mlhs_add_star(mlhs_new(), $$); + %*/ + } +-#line 8656 "parse.c" /* yacc.c:1646 */ ++#line 8648 "parse.c" /* yacc.c:1646 */ + break; + + case 378: +-#line 3388 "parse.y" /* yacc.c:1646 */ ++#line 3380 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = assignable((yyvsp[-2].id), 0, &(yyloc)); + /*%%%*/ +@@ -8670,11 +8662,11 @@ yyreduce: + $$ = mlhs_add_post($$, $4); + %*/ + } +-#line 8670 "parse.c" /* yacc.c:1646 */ ++#line 8662 "parse.c" /* yacc.c:1646 */ + break; + + case 379: +-#line 3398 "parse.y" /* yacc.c:1646 */ ++#line 3390 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = new_masgn(0, NODE_SPECIAL_NO_NAME_REST, &(yyloc)); +@@ -8682,11 +8674,11 @@ yyreduce: + $$ = mlhs_add_star(mlhs_new(), Qnil); + %*/ + } +-#line 8682 "parse.c" /* yacc.c:1646 */ ++#line 8674 "parse.c" /* yacc.c:1646 */ + break; + + case 380: +-#line 3406 "parse.y" /* yacc.c:1646 */ ++#line 3398 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = new_masgn(0, new_postarg(NODE_SPECIAL_NO_NAME_REST, (yyvsp[0].node), &(yyloc)), &(yyloc)); +@@ -8695,99 +8687,99 @@ yyreduce: + $$ = mlhs_add_post($$, $3); + %*/ + } +-#line 8695 "parse.c" /* yacc.c:1646 */ ++#line 8687 "parse.c" /* yacc.c:1646 */ + break; + + case 381: +-#line 3418 "parse.y" /* yacc.c:1646 */ ++#line 3410 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args_tail((yyvsp[-3].node), (yyvsp[-1].id), (yyvsp[0].id), &(yylsp[-1])); + } +-#line 8703 "parse.c" /* yacc.c:1646 */ ++#line 8695 "parse.c" /* yacc.c:1646 */ + break; + + case 382: +-#line 3422 "parse.y" /* yacc.c:1646 */ ++#line 3414 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args_tail((yyvsp[-1].node), Qnone, (yyvsp[0].id), &(yylsp[-1])); + } +-#line 8711 "parse.c" /* yacc.c:1646 */ ++#line 8703 "parse.c" /* yacc.c:1646 */ + break; + + case 383: +-#line 3426 "parse.y" /* yacc.c:1646 */ ++#line 3418 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args_tail(Qnone, (yyvsp[-1].id), (yyvsp[0].id), &(yylsp[-1])); + } +-#line 8719 "parse.c" /* yacc.c:1646 */ ++#line 8711 "parse.c" /* yacc.c:1646 */ + break; + + case 384: +-#line 3430 "parse.y" /* yacc.c:1646 */ ++#line 3422 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args_tail(Qnone, Qnone, (yyvsp[0].id), &(yylsp[0])); + } +-#line 8727 "parse.c" /* yacc.c:1646 */ ++#line 8719 "parse.c" /* yacc.c:1646 */ + break; + + case 385: +-#line 3436 "parse.y" /* yacc.c:1646 */ ++#line 3428 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = (yyvsp[0].node); + } +-#line 8735 "parse.c" /* yacc.c:1646 */ ++#line 8727 "parse.c" /* yacc.c:1646 */ + break; + + case 386: +-#line 3440 "parse.y" /* yacc.c:1646 */ ++#line 3432 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args_tail(Qnone, Qnone, Qnone, &(yylsp[0])); + } +-#line 8743 "parse.c" /* yacc.c:1646 */ ++#line 8735 "parse.c" /* yacc.c:1646 */ + break; + + case 387: +-#line 3446 "parse.y" /* yacc.c:1646 */ ++#line 3438 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args((yyvsp[-5].node), (yyvsp[-3].node), (yyvsp[-1].id), Qnone, (yyvsp[0].node), &(yyloc)); + } +-#line 8751 "parse.c" /* yacc.c:1646 */ ++#line 8743 "parse.c" /* yacc.c:1646 */ + break; + + case 388: +-#line 3450 "parse.y" /* yacc.c:1646 */ ++#line 3442 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args((yyvsp[-7].node), (yyvsp[-5].node), (yyvsp[-3].id), (yyvsp[-1].node), (yyvsp[0].node), &(yyloc)); + } +-#line 8759 "parse.c" /* yacc.c:1646 */ ++#line 8751 "parse.c" /* yacc.c:1646 */ + break; + + case 389: +-#line 3454 "parse.y" /* yacc.c:1646 */ ++#line 3446 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args((yyvsp[-3].node), (yyvsp[-1].node), Qnone, Qnone, (yyvsp[0].node), &(yyloc)); + } +-#line 8767 "parse.c" /* yacc.c:1646 */ ++#line 8759 "parse.c" /* yacc.c:1646 */ + break; + + case 390: +-#line 3458 "parse.y" /* yacc.c:1646 */ ++#line 3450 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args((yyvsp[-5].node), (yyvsp[-3].node), Qnone, (yyvsp[-1].node), (yyvsp[0].node), &(yyloc)); + } +-#line 8775 "parse.c" /* yacc.c:1646 */ ++#line 8767 "parse.c" /* yacc.c:1646 */ + break; + + case 391: +-#line 3462 "parse.y" /* yacc.c:1646 */ ++#line 3454 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args((yyvsp[-3].node), Qnone, (yyvsp[-1].id), Qnone, (yyvsp[0].node), &(yyloc)); + } +-#line 8783 "parse.c" /* yacc.c:1646 */ ++#line 8775 "parse.c" /* yacc.c:1646 */ + break; + + case 392: +-#line 3466 "parse.y" /* yacc.c:1646 */ ++#line 3458 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args((yyvsp[-1].node), Qnone, 1, Qnone, new_args_tail(Qnone, Qnone, Qnone, &(yylsp[-1])), &(yyloc)); + /*%%%*/ +@@ -8795,91 +8787,91 @@ yyreduce: + dispatch1(excessed_comma, $$); + %*/ + } +-#line 8795 "parse.c" /* yacc.c:1646 */ ++#line 8787 "parse.c" /* yacc.c:1646 */ + break; + + case 393: +-#line 3474 "parse.y" /* yacc.c:1646 */ ++#line 3466 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args((yyvsp[-5].node), Qnone, (yyvsp[-3].id), (yyvsp[-1].node), (yyvsp[0].node), &(yyloc)); + } +-#line 8803 "parse.c" /* yacc.c:1646 */ ++#line 8795 "parse.c" /* yacc.c:1646 */ + break; + + case 394: +-#line 3478 "parse.y" /* yacc.c:1646 */ ++#line 3470 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args((yyvsp[-1].node), Qnone, Qnone, Qnone, (yyvsp[0].node), &(yyloc)); + } +-#line 8811 "parse.c" /* yacc.c:1646 */ ++#line 8803 "parse.c" /* yacc.c:1646 */ + break; + + case 395: +-#line 3482 "parse.y" /* yacc.c:1646 */ ++#line 3474 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args(Qnone, (yyvsp[-3].node), (yyvsp[-1].id), Qnone, (yyvsp[0].node), &(yyloc)); + } +-#line 8819 "parse.c" /* yacc.c:1646 */ ++#line 8811 "parse.c" /* yacc.c:1646 */ + break; + + case 396: +-#line 3486 "parse.y" /* yacc.c:1646 */ ++#line 3478 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args(Qnone, (yyvsp[-5].node), (yyvsp[-3].id), (yyvsp[-1].node), (yyvsp[0].node), &(yyloc)); + } +-#line 8827 "parse.c" /* yacc.c:1646 */ ++#line 8819 "parse.c" /* yacc.c:1646 */ + break; + + case 397: +-#line 3490 "parse.y" /* yacc.c:1646 */ ++#line 3482 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args(Qnone, (yyvsp[-1].node), Qnone, Qnone, (yyvsp[0].node), &(yyloc)); + } +-#line 8835 "parse.c" /* yacc.c:1646 */ ++#line 8827 "parse.c" /* yacc.c:1646 */ + break; + + case 398: +-#line 3494 "parse.y" /* yacc.c:1646 */ ++#line 3486 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args(Qnone, (yyvsp[-3].node), Qnone, (yyvsp[-1].node), (yyvsp[0].node), &(yyloc)); + } +-#line 8843 "parse.c" /* yacc.c:1646 */ ++#line 8835 "parse.c" /* yacc.c:1646 */ + break; + + case 399: +-#line 3498 "parse.y" /* yacc.c:1646 */ ++#line 3490 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args(Qnone, Qnone, (yyvsp[-1].id), Qnone, (yyvsp[0].node), &(yyloc)); + } +-#line 8851 "parse.c" /* yacc.c:1646 */ ++#line 8843 "parse.c" /* yacc.c:1646 */ + break; + + case 400: +-#line 3502 "parse.y" /* yacc.c:1646 */ ++#line 3494 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args(Qnone, Qnone, (yyvsp[-3].id), (yyvsp[-1].node), (yyvsp[0].node), &(yyloc)); + } +-#line 8859 "parse.c" /* yacc.c:1646 */ ++#line 8851 "parse.c" /* yacc.c:1646 */ + break; + + case 401: +-#line 3506 "parse.y" /* yacc.c:1646 */ ++#line 3498 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args(Qnone, Qnone, Qnone, Qnone, (yyvsp[0].node), &(yyloc)); + } +-#line 8867 "parse.c" /* yacc.c:1646 */ ++#line 8859 "parse.c" /* yacc.c:1646 */ + break; + + case 403: +-#line 3513 "parse.y" /* yacc.c:1646 */ ++#line 3505 "parse.y" /* yacc.c:1646 */ + { + command_start = TRUE; + } +-#line 8875 "parse.c" /* yacc.c:1646 */ ++#line 8867 "parse.c" /* yacc.c:1646 */ + break; + + case 404: +-#line 3519 "parse.y" /* yacc.c:1646 */ ++#line 3511 "parse.y" /* yacc.c:1646 */ + { + current_arg = 0; + /*%%%*/ +@@ -8889,11 +8881,11 @@ yyreduce: + escape_Qundef($2)); + %*/ + } +-#line 8889 "parse.c" /* yacc.c:1646 */ ++#line 8881 "parse.c" /* yacc.c:1646 */ + break; + + case 405: +-#line 3529 "parse.y" /* yacc.c:1646 */ ++#line 3521 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = 0; +@@ -8902,11 +8894,11 @@ yyreduce: + Qnil); + %*/ + } +-#line 8902 "parse.c" /* yacc.c:1646 */ ++#line 8894 "parse.c" /* yacc.c:1646 */ + break; + + case 406: +-#line 3538 "parse.y" /* yacc.c:1646 */ ++#line 3530 "parse.y" /* yacc.c:1646 */ + { + current_arg = 0; + /*%%%*/ +@@ -8915,19 +8907,19 @@ yyreduce: + $$ = blockvar_new(escape_Qundef($2), escape_Qundef($3)); + %*/ + } +-#line 8915 "parse.c" /* yacc.c:1646 */ ++#line 8907 "parse.c" /* yacc.c:1646 */ + break; + + case 407: +-#line 3550 "parse.y" /* yacc.c:1646 */ ++#line 3542 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = 0; + } +-#line 8923 "parse.c" /* yacc.c:1646 */ ++#line 8915 "parse.c" /* yacc.c:1646 */ + break; + + case 408: +-#line 3554 "parse.y" /* yacc.c:1646 */ ++#line 3546 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = 0; +@@ -8935,11 +8927,11 @@ yyreduce: + $$ = $3; + %*/ + } +-#line 8935 "parse.c" /* yacc.c:1646 */ ++#line 8927 "parse.c" /* yacc.c:1646 */ + break; + + case 411: +-#line 3580 "parse.y" /* yacc.c:1646 */ ++#line 3572 "parse.y" /* yacc.c:1646 */ + { + new_bv(get_id((yyvsp[0].id))); + /*%%%*/ +@@ -8947,53 +8939,53 @@ yyreduce: + $$ = get_value($1); + %*/ + } +-#line 8947 "parse.c" /* yacc.c:1646 */ ++#line 8939 "parse.c" /* yacc.c:1646 */ + break; + + case 412: +-#line 3588 "parse.y" /* yacc.c:1646 */ ++#line 3580 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = 0; + } +-#line 8955 "parse.c" /* yacc.c:1646 */ ++#line 8947 "parse.c" /* yacc.c:1646 */ + break; + + case 413: +-#line 3593 "parse.y" /* yacc.c:1646 */ ++#line 3585 "parse.y" /* yacc.c:1646 */ + { + (yyval.vars) = dyna_push(); + } +-#line 8963 "parse.c" /* yacc.c:1646 */ ++#line 8955 "parse.c" /* yacc.c:1646 */ + break; + + case 414: +-#line 3596 "parse.y" /* yacc.c:1646 */ ++#line 3588 "parse.y" /* yacc.c:1646 */ + { + (yyval.num) = lpar_beg; + lpar_beg = ++paren_nest; + } +-#line 8972 "parse.c" /* yacc.c:1646 */ ++#line 8964 "parse.c" /* yacc.c:1646 */ + break; + + case 415: +-#line 3601 "parse.y" /* yacc.c:1646 */ ++#line 3593 "parse.y" /* yacc.c:1646 */ + { + (yyval.num) = ruby_sourceline; + } +-#line 8980 "parse.c" /* yacc.c:1646 */ ++#line 8972 "parse.c" /* yacc.c:1646 */ + break; + + case 416: +-#line 3604 "parse.y" /* yacc.c:1646 */ ++#line 3596 "parse.y" /* yacc.c:1646 */ + { + (yyval.val) = cmdarg_stack; + CMDARG_SET(0); + } +-#line 8989 "parse.c" /* yacc.c:1646 */ ++#line 8981 "parse.c" /* yacc.c:1646 */ + break; + + case 417: +-#line 3609 "parse.y" /* yacc.c:1646 */ ++#line 3601 "parse.y" /* yacc.c:1646 */ + { + lpar_beg = (yyvsp[-4].num); + CMDARG_SET((yyvsp[-1].val)); +@@ -9008,11 +9000,11 @@ yyreduce: + %*/ + dyna_pop((yyvsp[-5].vars)); + } +-#line 9008 "parse.c" /* yacc.c:1646 */ ++#line 9000 "parse.c" /* yacc.c:1646 */ + break; + + case 418: +-#line 3626 "parse.y" /* yacc.c:1646 */ ++#line 3618 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = (yyvsp[-2].node); +@@ -9020,46 +9012,46 @@ yyreduce: + $$ = dispatch1(paren, $2); + %*/ + } +-#line 9020 "parse.c" /* yacc.c:1646 */ ++#line 9012 "parse.c" /* yacc.c:1646 */ + break; + + case 419: +-#line 3634 "parse.y" /* yacc.c:1646 */ ++#line 3626 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = (yyvsp[0].node); + } +-#line 9028 "parse.c" /* yacc.c:1646 */ ++#line 9020 "parse.c" /* yacc.c:1646 */ + break; + + case 420: +-#line 3640 "parse.y" /* yacc.c:1646 */ ++#line 3632 "parse.y" /* yacc.c:1646 */ + { + token_info_pop("}"); + (yyval.node) = (yyvsp[-1].node); + } +-#line 9037 "parse.c" /* yacc.c:1646 */ ++#line 9029 "parse.c" /* yacc.c:1646 */ + break; + + case 421: +-#line 3645 "parse.y" /* yacc.c:1646 */ ++#line 3637 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = (yyvsp[-1].node); + } +-#line 9045 "parse.c" /* yacc.c:1646 */ ++#line 9037 "parse.c" /* yacc.c:1646 */ + break; + + case 422: +-#line 3651 "parse.y" /* yacc.c:1646 */ ++#line 3643 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.num) = ruby_sourceline; + /*% %*/ + } +-#line 9055 "parse.c" /* yacc.c:1646 */ ++#line 9047 "parse.c" /* yacc.c:1646 */ + break; + + case 423: +-#line 3657 "parse.y" /* yacc.c:1646 */ ++#line 3649 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = (yyvsp[-1].node); + /*%%%*/ +@@ -9068,11 +9060,11 @@ yyreduce: + nd_set_line((yyval.node), (yyvsp[-2].num)); + /*% %*/ + } +-#line 9068 "parse.c" /* yacc.c:1646 */ ++#line 9060 "parse.c" /* yacc.c:1646 */ + break; + + case 424: +-#line 3668 "parse.y" /* yacc.c:1646 */ ++#line 3660 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + if (nd_type((yyvsp[-1].node)) == NODE_YIELD) { +@@ -9089,19 +9081,19 @@ yyreduce: + $$ = method_add_block($1, $2); + %*/ + } +-#line 9089 "parse.c" /* yacc.c:1646 */ ++#line 9081 "parse.c" /* yacc.c:1646 */ + break; + + case 425: +-#line 3685 "parse.y" /* yacc.c:1646 */ ++#line 3677 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_qcall((yyvsp[-2].id), (yyvsp[-3].node), (yyvsp[-1].id), (yyvsp[0].node), &(yyloc)); + } +-#line 9097 "parse.c" /* yacc.c:1646 */ ++#line 9089 "parse.c" /* yacc.c:1646 */ + break; + + case 426: +-#line 3689 "parse.y" /* yacc.c:1646 */ ++#line 3681 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + block_dup_check((yyvsp[-1].node), (yyvsp[0].node)); +@@ -9114,11 +9106,11 @@ yyreduce: + $$ = method_add_block($$, $5); + %*/ + } +-#line 9114 "parse.c" /* yacc.c:1646 */ ++#line 9106 "parse.c" /* yacc.c:1646 */ + break; + + case 427: +-#line 3702 "parse.y" /* yacc.c:1646 */ ++#line 3694 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + block_dup_check((yyvsp[-1].node), (yyvsp[0].node)); +@@ -9131,11 +9123,11 @@ yyreduce: + $$ = method_add_block($$, $5); + %*/ + } +-#line 9131 "parse.c" /* yacc.c:1646 */ ++#line 9123 "parse.c" /* yacc.c:1646 */ + break; + + case 428: +-#line 3717 "parse.y" /* yacc.c:1646 */ ++#line 3709 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = (yyvsp[-1].node); +@@ -9145,95 +9137,95 @@ yyreduce: + $$ = method_arg(dispatch1(fcall, $1), $2); + %*/ + } +-#line 9145 "parse.c" /* yacc.c:1646 */ ++#line 9137 "parse.c" /* yacc.c:1646 */ + break; + + case 429: +-#line 3727 "parse.y" /* yacc.c:1646 */ ++#line 3719 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.num) = ruby_sourceline; + /*% %*/ + } +-#line 9155 "parse.c" /* yacc.c:1646 */ ++#line 9147 "parse.c" /* yacc.c:1646 */ + break; + + case 430: +-#line 3733 "parse.y" /* yacc.c:1646 */ ++#line 3725 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_qcall((yyvsp[-3].id), (yyvsp[-4].node), (yyvsp[-2].id), (yyvsp[0].node), &(yyloc)); + nd_set_line((yyval.node), (yyvsp[-1].num)); + } +-#line 9164 "parse.c" /* yacc.c:1646 */ ++#line 9156 "parse.c" /* yacc.c:1646 */ + break; + + case 431: +-#line 3738 "parse.y" /* yacc.c:1646 */ ++#line 3730 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.num) = ruby_sourceline; + /*% %*/ + } +-#line 9174 "parse.c" /* yacc.c:1646 */ ++#line 9166 "parse.c" /* yacc.c:1646 */ + break; + + case 432: +-#line 3744 "parse.y" /* yacc.c:1646 */ ++#line 3736 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_qcall(ID2VAL(idCOLON2), (yyvsp[-4].node), (yyvsp[-2].id), (yyvsp[0].node), &(yyloc)); + nd_set_line((yyval.node), (yyvsp[-1].num)); + } +-#line 9183 "parse.c" /* yacc.c:1646 */ ++#line 9175 "parse.c" /* yacc.c:1646 */ + break; + + case 433: +-#line 3749 "parse.y" /* yacc.c:1646 */ ++#line 3741 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_qcall(ID2VAL(idCOLON2), (yyvsp[-2].node), (yyvsp[0].id), Qnull, &(yyloc)); + } +-#line 9191 "parse.c" /* yacc.c:1646 */ ++#line 9183 "parse.c" /* yacc.c:1646 */ + break; + + case 434: +-#line 3753 "parse.y" /* yacc.c:1646 */ ++#line 3745 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.num) = ruby_sourceline; + /*% %*/ + } +-#line 9201 "parse.c" /* yacc.c:1646 */ ++#line 9193 "parse.c" /* yacc.c:1646 */ + break; + + case 435: +-#line 3759 "parse.y" /* yacc.c:1646 */ ++#line 3751 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_qcall((yyvsp[-2].id), (yyvsp[-3].node), ID2VAL(idCall), (yyvsp[0].node), &(yyloc)); + nd_set_line((yyval.node), (yyvsp[-1].num)); + } +-#line 9210 "parse.c" /* yacc.c:1646 */ ++#line 9202 "parse.c" /* yacc.c:1646 */ + break; + + case 436: +-#line 3764 "parse.y" /* yacc.c:1646 */ ++#line 3756 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.num) = ruby_sourceline; + /*% %*/ + } +-#line 9220 "parse.c" /* yacc.c:1646 */ ++#line 9212 "parse.c" /* yacc.c:1646 */ + break; + + case 437: +-#line 3770 "parse.y" /* yacc.c:1646 */ ++#line 3762 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_qcall(ID2VAL(idCOLON2), (yyvsp[-3].node), ID2VAL(idCall), (yyvsp[0].node), &(yyloc)); + nd_set_line((yyval.node), (yyvsp[-1].num)); + } +-#line 9229 "parse.c" /* yacc.c:1646 */ ++#line 9221 "parse.c" /* yacc.c:1646 */ + break; + + case 438: +-#line 3775 "parse.y" /* yacc.c:1646 */ ++#line 3767 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = NEW_SUPER((yyvsp[0].node)); +@@ -9242,11 +9234,11 @@ yyreduce: + $$ = dispatch1(super, $2); + %*/ + } +-#line 9242 "parse.c" /* yacc.c:1646 */ ++#line 9234 "parse.c" /* yacc.c:1646 */ + break; + + case 439: +-#line 3784 "parse.y" /* yacc.c:1646 */ ++#line 3776 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = NEW_ZSUPER(); +@@ -9255,11 +9247,11 @@ yyreduce: + $$ = dispatch0(zsuper); + %*/ + } +-#line 9255 "parse.c" /* yacc.c:1646 */ ++#line 9247 "parse.c" /* yacc.c:1646 */ + break; + + case 440: +-#line 3793 "parse.y" /* yacc.c:1646 */ ++#line 3785 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + if ((yyvsp[-3].node) && nd_type((yyvsp[-3].node)) == NODE_SELF) +@@ -9271,21 +9263,21 @@ yyreduce: + $$ = dispatch2(aref, $1, escape_Qundef($3)); + %*/ + } +-#line 9271 "parse.c" /* yacc.c:1646 */ ++#line 9263 "parse.c" /* yacc.c:1646 */ + break; + + case 441: +-#line 3807 "parse.y" /* yacc.c:1646 */ ++#line 3799 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.num) = ruby_sourceline; + /*% %*/ + } +-#line 9281 "parse.c" /* yacc.c:1646 */ ++#line 9273 "parse.c" /* yacc.c:1646 */ + break; + + case 442: +-#line 3813 "parse.y" /* yacc.c:1646 */ ++#line 3805 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = (yyvsp[-1].node); + /*%%%*/ +@@ -9294,21 +9286,21 @@ yyreduce: + nd_set_line((yyval.node), (yyvsp[-2].num)); + /*% %*/ + } +-#line 9294 "parse.c" /* yacc.c:1646 */ ++#line 9286 "parse.c" /* yacc.c:1646 */ + break; + + case 443: +-#line 3822 "parse.y" /* yacc.c:1646 */ ++#line 3814 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.num) = ruby_sourceline; + /*% %*/ + } +-#line 9304 "parse.c" /* yacc.c:1646 */ ++#line 9296 "parse.c" /* yacc.c:1646 */ + break; + + case 444: +-#line 3828 "parse.y" /* yacc.c:1646 */ ++#line 3820 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = (yyvsp[-1].node); + /*%%%*/ +@@ -9317,55 +9309,55 @@ yyreduce: + nd_set_line((yyval.node), (yyvsp[-2].num)); + /*% %*/ + } +-#line 9317 "parse.c" /* yacc.c:1646 */ ++#line 9309 "parse.c" /* yacc.c:1646 */ + break; + + case 445: +-#line 3838 "parse.y" /* yacc.c:1646 */ ++#line 3830 "parse.y" /* yacc.c:1646 */ + {(yyval.vars) = dyna_push();} +-#line 9323 "parse.c" /* yacc.c:1646 */ ++#line 9315 "parse.c" /* yacc.c:1646 */ + break; + + case 446: +-#line 3839 "parse.y" /* yacc.c:1646 */ ++#line 3831 "parse.y" /* yacc.c:1646 */ + {(yyval.val) = cmdarg_stack >> 1; CMDARG_SET(0);} +-#line 9329 "parse.c" /* yacc.c:1646 */ ++#line 9321 "parse.c" /* yacc.c:1646 */ + break; + + case 447: +-#line 3841 "parse.y" /* yacc.c:1646 */ ++#line 3833 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_brace_body((yyvsp[-1].node), (yyvsp[0].node), &(yyloc)); + dyna_pop((yyvsp[-3].vars)); + CMDARG_SET((yyvsp[-2].val)); + } +-#line 9339 "parse.c" /* yacc.c:1646 */ ++#line 9331 "parse.c" /* yacc.c:1646 */ + break; + + case 448: +-#line 3848 "parse.y" /* yacc.c:1646 */ ++#line 3840 "parse.y" /* yacc.c:1646 */ + {(yyval.vars) = dyna_push();} +-#line 9345 "parse.c" /* yacc.c:1646 */ ++#line 9337 "parse.c" /* yacc.c:1646 */ + break; + + case 449: +-#line 3849 "parse.y" /* yacc.c:1646 */ ++#line 3841 "parse.y" /* yacc.c:1646 */ + {(yyval.val) = cmdarg_stack; CMDARG_SET(0);} +-#line 9351 "parse.c" /* yacc.c:1646 */ ++#line 9343 "parse.c" /* yacc.c:1646 */ + break; + + case 450: +-#line 3851 "parse.y" /* yacc.c:1646 */ ++#line 3843 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_do_body((yyvsp[-1].node), (yyvsp[0].node), &(yyloc)); + dyna_pop((yyvsp[-3].vars)); + CMDARG_SET((yyvsp[-2].val)); + } +-#line 9361 "parse.c" /* yacc.c:1646 */ ++#line 9353 "parse.c" /* yacc.c:1646 */ + break; + + case 451: +-#line 3861 "parse.y" /* yacc.c:1646 */ ++#line 3853 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = NEW_WHEN((yyvsp[-3].node), (yyvsp[-1].node), (yyvsp[0].node)); +@@ -9374,11 +9366,11 @@ yyreduce: + $$ = dispatch3(when, $2, $4, escape_Qundef($5)); + %*/ + } +-#line 9374 "parse.c" /* yacc.c:1646 */ ++#line 9366 "parse.c" /* yacc.c:1646 */ + break; + + case 454: +-#line 3878 "parse.y" /* yacc.c:1646 */ ++#line 3870 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + if ((yyvsp[-3].node)) { +@@ -9398,11 +9390,11 @@ yyreduce: + escape_Qundef($6)); + %*/ + } +-#line 9398 "parse.c" /* yacc.c:1646 */ ++#line 9390 "parse.c" /* yacc.c:1646 */ + break; + + case 456: +-#line 3901 "parse.y" /* yacc.c:1646 */ ++#line 3893 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = new_list((yyvsp[0].node), &(yyloc)); +@@ -9410,11 +9402,11 @@ yyreduce: + $$ = rb_ary_new3(1, get_value($1)); + %*/ + } +-#line 9410 "parse.c" /* yacc.c:1646 */ ++#line 9402 "parse.c" /* yacc.c:1646 */ + break; + + case 457: +-#line 3909 "parse.y" /* yacc.c:1646 */ ++#line 3901 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + if (!((yyval.node) = splat_array((yyvsp[0].node)))) (yyval.node) = (yyvsp[0].node); +@@ -9422,19 +9414,19 @@ yyreduce: + $$ = $1; + %*/ + } +-#line 9422 "parse.c" /* yacc.c:1646 */ ++#line 9414 "parse.c" /* yacc.c:1646 */ + break; + + case 459: +-#line 3920 "parse.y" /* yacc.c:1646 */ ++#line 3912 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = (yyvsp[0].node); + } +-#line 9430 "parse.c" /* yacc.c:1646 */ ++#line 9422 "parse.c" /* yacc.c:1646 */ + break; + + case 461: +-#line 3927 "parse.y" /* yacc.c:1646 */ ++#line 3919 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = (yyvsp[0].node); +@@ -9442,11 +9434,11 @@ yyreduce: + $$ = dispatch1(ensure, $2); + %*/ + } +-#line 9442 "parse.c" /* yacc.c:1646 */ ++#line 9434 "parse.c" /* yacc.c:1646 */ + break; + + case 464: +-#line 3939 "parse.y" /* yacc.c:1646 */ ++#line 3931 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = new_lit(ID2SYM((yyvsp[0].id)), &(yyloc)); +@@ -9454,11 +9446,11 @@ yyreduce: + $$ = dispatch1(symbol_literal, $1); + %*/ + } +-#line 9454 "parse.c" /* yacc.c:1646 */ ++#line 9446 "parse.c" /* yacc.c:1646 */ + break; + + case 466: +-#line 3950 "parse.y" /* yacc.c:1646 */ ++#line 3942 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + NODE *node = (yyvsp[0].node); +@@ -9473,22 +9465,22 @@ yyreduce: + $$ = $1; + %*/ + } +-#line 9473 "parse.c" /* yacc.c:1646 */ ++#line 9465 "parse.c" /* yacc.c:1646 */ + break; + + case 467: +-#line 3967 "parse.y" /* yacc.c:1646 */ ++#line 3959 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node)->nd_loc = (yyloc); + /*% + %*/ + } +-#line 9484 "parse.c" /* yacc.c:1646 */ ++#line 9476 "parse.c" /* yacc.c:1646 */ + break; + + case 469: +-#line 3975 "parse.y" /* yacc.c:1646 */ ++#line 3967 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = literal_concat((yyvsp[-1].node), (yyvsp[0].node), &(yyloc)); +@@ -9496,11 +9488,11 @@ yyreduce: + $$ = dispatch2(string_concat, $1, $2); + %*/ + } +-#line 9496 "parse.c" /* yacc.c:1646 */ ++#line 9488 "parse.c" /* yacc.c:1646 */ + break; + + case 470: +-#line 3985 "parse.y" /* yacc.c:1646 */ ++#line 3977 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_string1(heredoc_dedent((yyvsp[-1].node))); + /*%%%*/ +@@ -9508,27 +9500,27 @@ yyreduce: + /*% + %*/ + } +-#line 9508 "parse.c" /* yacc.c:1646 */ ++#line 9500 "parse.c" /* yacc.c:1646 */ + break; + + case 471: +-#line 3995 "parse.y" /* yacc.c:1646 */ ++#line 3987 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_xstring(heredoc_dedent((yyvsp[-1].node)), &(yyloc)); + } +-#line 9516 "parse.c" /* yacc.c:1646 */ ++#line 9508 "parse.c" /* yacc.c:1646 */ + break; + + case 472: +-#line 4001 "parse.y" /* yacc.c:1646 */ ++#line 3993 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_regexp((yyvsp[-1].node), (yyvsp[0].num), &(yyloc)); + } +-#line 9524 "parse.c" /* yacc.c:1646 */ ++#line 9516 "parse.c" /* yacc.c:1646 */ + break; + + case 473: +-#line 4007 "parse.y" /* yacc.c:1646 */ ++#line 3999 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = make_array((yyvsp[-1].node), &(yyloc)); +@@ -9536,11 +9528,11 @@ yyreduce: + $$ = dispatch1(array, $3); + %*/ + } +-#line 9536 "parse.c" /* yacc.c:1646 */ ++#line 9528 "parse.c" /* yacc.c:1646 */ + break; + + case 474: +-#line 4017 "parse.y" /* yacc.c:1646 */ ++#line 4009 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = 0; +@@ -9548,11 +9540,11 @@ yyreduce: + $$ = dispatch0(words_new); + %*/ + } +-#line 9548 "parse.c" /* yacc.c:1646 */ ++#line 9540 "parse.c" /* yacc.c:1646 */ + break; + + case 475: +-#line 4025 "parse.y" /* yacc.c:1646 */ ++#line 4017 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = list_append((yyvsp[-2].node), evstr2dstr((yyvsp[-1].node))); +@@ -9560,11 +9552,11 @@ yyreduce: + $$ = dispatch2(words_add, $1, $2); + %*/ + } +-#line 9560 "parse.c" /* yacc.c:1646 */ ++#line 9552 "parse.c" /* yacc.c:1646 */ + break; + + case 477: +-#line 4043 "parse.y" /* yacc.c:1646 */ ++#line 4035 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = literal_concat((yyvsp[-1].node), (yyvsp[0].node), &(yyloc)); +@@ -9572,11 +9564,11 @@ yyreduce: + $$ = dispatch2(word_add, $1, $2); + %*/ + } +-#line 9572 "parse.c" /* yacc.c:1646 */ ++#line 9564 "parse.c" /* yacc.c:1646 */ + break; + + case 478: +-#line 4053 "parse.y" /* yacc.c:1646 */ ++#line 4045 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = make_array((yyvsp[-1].node), &(yyloc)); +@@ -9584,11 +9576,11 @@ yyreduce: + $$ = dispatch1(array, $3); + %*/ + } +-#line 9584 "parse.c" /* yacc.c:1646 */ ++#line 9576 "parse.c" /* yacc.c:1646 */ + break; + + case 479: +-#line 4063 "parse.y" /* yacc.c:1646 */ ++#line 4055 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = 0; +@@ -9596,11 +9588,11 @@ yyreduce: + $$ = dispatch0(symbols_new); + %*/ + } +-#line 9596 "parse.c" /* yacc.c:1646 */ ++#line 9588 "parse.c" /* yacc.c:1646 */ + break; + + case 480: +-#line 4071 "parse.y" /* yacc.c:1646 */ ++#line 4063 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyvsp[-1].node) = evstr2dstr((yyvsp[-1].node)); +@@ -9616,11 +9608,11 @@ yyreduce: + $$ = dispatch2(symbols_add, $1, $2); + %*/ + } +-#line 9616 "parse.c" /* yacc.c:1646 */ ++#line 9608 "parse.c" /* yacc.c:1646 */ + break; + + case 481: +-#line 4089 "parse.y" /* yacc.c:1646 */ ++#line 4081 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = make_array((yyvsp[-1].node), &(yyloc)); +@@ -9628,11 +9620,11 @@ yyreduce: + $$ = dispatch1(array, $3); + %*/ + } +-#line 9628 "parse.c" /* yacc.c:1646 */ ++#line 9620 "parse.c" /* yacc.c:1646 */ + break; + + case 482: +-#line 4099 "parse.y" /* yacc.c:1646 */ ++#line 4091 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = make_array((yyvsp[-1].node), &(yyloc)); +@@ -9640,11 +9632,11 @@ yyreduce: + $$ = dispatch1(array, $3); + %*/ + } +-#line 9640 "parse.c" /* yacc.c:1646 */ ++#line 9632 "parse.c" /* yacc.c:1646 */ + break; + + case 483: +-#line 4109 "parse.y" /* yacc.c:1646 */ ++#line 4101 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = 0; +@@ -9652,11 +9644,11 @@ yyreduce: + $$ = dispatch0(qwords_new); + %*/ + } +-#line 9652 "parse.c" /* yacc.c:1646 */ ++#line 9644 "parse.c" /* yacc.c:1646 */ + break; + + case 484: +-#line 4117 "parse.y" /* yacc.c:1646 */ ++#line 4109 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyvsp[-1].node)->nd_loc = (yylsp[-1]); +@@ -9665,11 +9657,11 @@ yyreduce: + $$ = dispatch2(qwords_add, $1, $2); + %*/ + } +-#line 9665 "parse.c" /* yacc.c:1646 */ ++#line 9657 "parse.c" /* yacc.c:1646 */ + break; + + case 485: +-#line 4128 "parse.y" /* yacc.c:1646 */ ++#line 4120 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = 0; +@@ -9677,11 +9669,11 @@ yyreduce: + $$ = dispatch0(qsymbols_new); + %*/ + } +-#line 9677 "parse.c" /* yacc.c:1646 */ ++#line 9669 "parse.c" /* yacc.c:1646 */ + break; + + case 486: +-#line 4136 "parse.y" /* yacc.c:1646 */ ++#line 4128 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + VALUE lit; +@@ -9694,11 +9686,11 @@ yyreduce: + $$ = dispatch2(qsymbols_add, $1, $2); + %*/ + } +-#line 9694 "parse.c" /* yacc.c:1646 */ ++#line 9686 "parse.c" /* yacc.c:1646 */ + break; + + case 487: +-#line 4151 "parse.y" /* yacc.c:1646 */ ++#line 4143 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = 0; +@@ -9706,11 +9698,11 @@ yyreduce: + $$ = dispatch0(string_content); + %*/ + } +-#line 9706 "parse.c" /* yacc.c:1646 */ ++#line 9698 "parse.c" /* yacc.c:1646 */ + break; + + case 488: +-#line 4159 "parse.y" /* yacc.c:1646 */ ++#line 4151 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = literal_concat((yyvsp[-1].node), (yyvsp[0].node), &(yyloc)); +@@ -9718,11 +9710,11 @@ yyreduce: + $$ = dispatch2(string_add, $1, $2); + %*/ + } +-#line 9718 "parse.c" /* yacc.c:1646 */ ++#line 9710 "parse.c" /* yacc.c:1646 */ + break; + + case 489: +-#line 4169 "parse.y" /* yacc.c:1646 */ ++#line 4161 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = 0; +@@ -9730,11 +9722,11 @@ yyreduce: + $$ = dispatch0(xstring_new); + %*/ + } +-#line 9730 "parse.c" /* yacc.c:1646 */ ++#line 9722 "parse.c" /* yacc.c:1646 */ + break; + + case 490: +-#line 4177 "parse.y" /* yacc.c:1646 */ ++#line 4169 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = literal_concat((yyvsp[-1].node), (yyvsp[0].node), &(yyloc)); +@@ -9742,11 +9734,11 @@ yyreduce: + $$ = dispatch2(xstring_add, $1, $2); + %*/ + } +-#line 9742 "parse.c" /* yacc.c:1646 */ ++#line 9734 "parse.c" /* yacc.c:1646 */ + break; + + case 491: +-#line 4187 "parse.y" /* yacc.c:1646 */ ++#line 4179 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = 0; +@@ -9754,11 +9746,11 @@ yyreduce: + $$ = ripper_new_yylval(0, dispatch0(regexp_new), 0); + %*/ + } +-#line 9754 "parse.c" /* yacc.c:1646 */ ++#line 9746 "parse.c" /* yacc.c:1646 */ + break; + + case 492: +-#line 4195 "parse.y" /* yacc.c:1646 */ ++#line 4187 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + NODE *head = (yyvsp[-1].node), *tail = (yyvsp[0].node); +@@ -9797,33 +9789,33 @@ yyreduce: + } + %*/ + } +-#line 9797 "parse.c" /* yacc.c:1646 */ ++#line 9789 "parse.c" /* yacc.c:1646 */ + break; + + case 493: +-#line 4236 "parse.y" /* yacc.c:1646 */ ++#line 4228 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node)->nd_loc = (yyloc); + /*% + %*/ + } +-#line 9808 "parse.c" /* yacc.c:1646 */ ++#line 9800 "parse.c" /* yacc.c:1646 */ + break; + + case 494: +-#line 4243 "parse.y" /* yacc.c:1646 */ ++#line 4235 "parse.y" /* yacc.c:1646 */ + { + /* need to backup lex_strterm so that a string literal `%&foo,#$&,bar&` can be parsed */ + (yyval.strterm) = lex_strterm; + lex_strterm = 0; + SET_LEX_STATE(EXPR_BEG); + } +-#line 9819 "parse.c" /* yacc.c:1646 */ ++#line 9811 "parse.c" /* yacc.c:1646 */ + break; + + case 495: +-#line 4250 "parse.y" /* yacc.c:1646 */ ++#line 4242 "parse.y" /* yacc.c:1646 */ + { + lex_strterm = (yyvsp[-1].strterm); + /*%%%*/ +@@ -9833,59 +9825,59 @@ yyreduce: + $$ = dispatch1(string_dvar, $3); + %*/ + } +-#line 9833 "parse.c" /* yacc.c:1646 */ ++#line 9825 "parse.c" /* yacc.c:1646 */ + break; + + case 496: +-#line 4260 "parse.y" /* yacc.c:1646 */ ++#line 4252 "parse.y" /* yacc.c:1646 */ + { + (yyvsp[0].val) = cond_stack; + (yyval.val) = cmdarg_stack; + COND_SET(0); + CMDARG_SET(0); + } +-#line 9844 "parse.c" /* yacc.c:1646 */ ++#line 9836 "parse.c" /* yacc.c:1646 */ + break; + + case 497: +-#line 4266 "parse.y" /* yacc.c:1646 */ ++#line 4258 "parse.y" /* yacc.c:1646 */ + { + /* need to backup lex_strterm so that a string literal `%!foo,#{ !0 },bar!` can be parsed */ + (yyval.strterm) = lex_strterm; + lex_strterm = 0; + } +-#line 9854 "parse.c" /* yacc.c:1646 */ ++#line 9846 "parse.c" /* yacc.c:1646 */ + break; + + case 498: +-#line 4271 "parse.y" /* yacc.c:1646 */ ++#line 4263 "parse.y" /* yacc.c:1646 */ + { + (yyval.num) = lex_state; + SET_LEX_STATE(EXPR_BEG); + } +-#line 9863 "parse.c" /* yacc.c:1646 */ ++#line 9855 "parse.c" /* yacc.c:1646 */ + break; + + case 499: +-#line 4275 "parse.y" /* yacc.c:1646 */ ++#line 4267 "parse.y" /* yacc.c:1646 */ + { + (yyval.num) = brace_nest; + brace_nest = 0; + } +-#line 9872 "parse.c" /* yacc.c:1646 */ ++#line 9864 "parse.c" /* yacc.c:1646 */ + break; + + case 500: +-#line 4279 "parse.y" /* yacc.c:1646 */ ++#line 4271 "parse.y" /* yacc.c:1646 */ + { + (yyval.num) = heredoc_indent; + heredoc_indent = 0; + } +-#line 9881 "parse.c" /* yacc.c:1646 */ ++#line 9873 "parse.c" /* yacc.c:1646 */ + break; + + case 501: +-#line 4284 "parse.y" /* yacc.c:1646 */ ++#line 4276 "parse.y" /* yacc.c:1646 */ + { + COND_SET((yyvsp[-7].val)); + CMDARG_SET((yyvsp[-6].val)); +@@ -9901,11 +9893,11 @@ yyreduce: + $$ = dispatch1(string_embexpr, $7); + %*/ + } +-#line 9901 "parse.c" /* yacc.c:1646 */ ++#line 9893 "parse.c" /* yacc.c:1646 */ + break; + + case 502: +-#line 4302 "parse.y" /* yacc.c:1646 */ ++#line 4294 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = new_gvar((yyvsp[0].id), &(yyloc)); +@@ -9913,11 +9905,11 @@ yyreduce: + $$ = dispatch1(var_ref, $1); + %*/ + } +-#line 9913 "parse.c" /* yacc.c:1646 */ ++#line 9905 "parse.c" /* yacc.c:1646 */ + break; + + case 503: +-#line 4310 "parse.y" /* yacc.c:1646 */ ++#line 4302 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = new_ivar((yyvsp[0].id), &(yyloc)); +@@ -9925,11 +9917,11 @@ yyreduce: + $$ = dispatch1(var_ref, $1); + %*/ + } +-#line 9925 "parse.c" /* yacc.c:1646 */ ++#line 9917 "parse.c" /* yacc.c:1646 */ + break; + + case 504: +-#line 4318 "parse.y" /* yacc.c:1646 */ ++#line 4310 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = NEW_CVAR((yyvsp[0].id)); +@@ -9938,11 +9930,11 @@ yyreduce: + $$ = dispatch1(var_ref, $1); + %*/ + } +-#line 9938 "parse.c" /* yacc.c:1646 */ ++#line 9930 "parse.c" /* yacc.c:1646 */ + break; + + case 506: +-#line 4330 "parse.y" /* yacc.c:1646 */ ++#line 4322 "parse.y" /* yacc.c:1646 */ + { + SET_LEX_STATE(EXPR_END|EXPR_ENDARG); + /*%%%*/ +@@ -9951,11 +9943,11 @@ yyreduce: + $$ = dispatch1(symbol, $2); + %*/ + } +-#line 9951 "parse.c" /* yacc.c:1646 */ ++#line 9943 "parse.c" /* yacc.c:1646 */ + break; + + case 511: +-#line 4347 "parse.y" /* yacc.c:1646 */ ++#line 4339 "parse.y" /* yacc.c:1646 */ + { + SET_LEX_STATE(EXPR_END|EXPR_ENDARG); + /*%%%*/ +@@ -9964,11 +9956,11 @@ yyreduce: + $$ = dispatch1(dyna_symbol, $2); + %*/ + } +-#line 9964 "parse.c" /* yacc.c:1646 */ ++#line 9956 "parse.c" /* yacc.c:1646 */ + break; + + case 513: +-#line 4359 "parse.y" /* yacc.c:1646 */ ++#line 4351 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = (yyvsp[0].node); +@@ -9977,97 +9969,97 @@ yyreduce: + $$ = dispatch2(unary, ID2VAL(idUMinus), $2); + %*/ + } +-#line 9977 "parse.c" /* yacc.c:1646 */ ++#line 9969 "parse.c" /* yacc.c:1646 */ + break; + + case 514: +-#line 4370 "parse.y" /* yacc.c:1646 */ ++#line 4362 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node)->nd_loc = (yyloc); + /*% + %*/ + } +-#line 9988 "parse.c" /* yacc.c:1646 */ ++#line 9980 "parse.c" /* yacc.c:1646 */ + break; + + case 515: +-#line 4377 "parse.y" /* yacc.c:1646 */ ++#line 4369 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node)->nd_loc = (yyloc); + /*% + %*/ + } +-#line 9999 "parse.c" /* yacc.c:1646 */ ++#line 9991 "parse.c" /* yacc.c:1646 */ + break; + + case 516: +-#line 4384 "parse.y" /* yacc.c:1646 */ ++#line 4376 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node)->nd_loc = (yyloc); + /*% + %*/ + } +-#line 10010 "parse.c" /* yacc.c:1646 */ ++#line 10002 "parse.c" /* yacc.c:1646 */ + break; + + case 517: +-#line 4391 "parse.y" /* yacc.c:1646 */ ++#line 4383 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node)->nd_loc = (yyloc); + /*% + %*/ + } +-#line 10021 "parse.c" /* yacc.c:1646 */ ++#line 10013 "parse.c" /* yacc.c:1646 */ + break; + + case 523: +-#line 4406 "parse.y" /* yacc.c:1646 */ ++#line 4398 "parse.y" /* yacc.c:1646 */ + {(yyval.id) = KWD2EID(nil, (yyvsp[0].id));} +-#line 10027 "parse.c" /* yacc.c:1646 */ ++#line 10019 "parse.c" /* yacc.c:1646 */ + break; + + case 524: +-#line 4407 "parse.y" /* yacc.c:1646 */ ++#line 4399 "parse.y" /* yacc.c:1646 */ + {(yyval.id) = KWD2EID(self, (yyvsp[0].id));} +-#line 10033 "parse.c" /* yacc.c:1646 */ ++#line 10025 "parse.c" /* yacc.c:1646 */ + break; + + case 525: +-#line 4408 "parse.y" /* yacc.c:1646 */ ++#line 4400 "parse.y" /* yacc.c:1646 */ + {(yyval.id) = KWD2EID(true, (yyvsp[0].id));} +-#line 10039 "parse.c" /* yacc.c:1646 */ ++#line 10031 "parse.c" /* yacc.c:1646 */ + break; + + case 526: +-#line 4409 "parse.y" /* yacc.c:1646 */ ++#line 4401 "parse.y" /* yacc.c:1646 */ + {(yyval.id) = KWD2EID(false, (yyvsp[0].id));} +-#line 10045 "parse.c" /* yacc.c:1646 */ ++#line 10037 "parse.c" /* yacc.c:1646 */ + break; + + case 527: +-#line 4410 "parse.y" /* yacc.c:1646 */ ++#line 4402 "parse.y" /* yacc.c:1646 */ + {(yyval.id) = KWD2EID(_FILE__, (yyvsp[0].id));} +-#line 10051 "parse.c" /* yacc.c:1646 */ ++#line 10043 "parse.c" /* yacc.c:1646 */ + break; + + case 528: +-#line 4411 "parse.y" /* yacc.c:1646 */ ++#line 4403 "parse.y" /* yacc.c:1646 */ + {(yyval.id) = KWD2EID(_LINE__, (yyvsp[0].id));} +-#line 10057 "parse.c" /* yacc.c:1646 */ ++#line 10049 "parse.c" /* yacc.c:1646 */ + break; + + case 529: +-#line 4412 "parse.y" /* yacc.c:1646 */ ++#line 4404 "parse.y" /* yacc.c:1646 */ + {(yyval.id) = KWD2EID(_ENCODING__, (yyvsp[0].id));} +-#line 10063 "parse.c" /* yacc.c:1646 */ ++#line 10055 "parse.c" /* yacc.c:1646 */ + break; + + case 530: +-#line 4416 "parse.y" /* yacc.c:1646 */ ++#line 4408 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + if (!((yyval.node) = gettable((yyvsp[0].id), &(yyloc)))) (yyval.node) = new_begin(0, &(yyloc)); +@@ -10080,11 +10072,11 @@ yyreduce: + } + %*/ + } +-#line 10080 "parse.c" /* yacc.c:1646 */ ++#line 10072 "parse.c" /* yacc.c:1646 */ + break; + + case 531: +-#line 4429 "parse.y" /* yacc.c:1646 */ ++#line 4421 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + if (!((yyval.node) = gettable((yyvsp[0].id), &(yyloc)))) (yyval.node) = new_begin(0, &(yyloc)); +@@ -10092,66 +10084,66 @@ yyreduce: + $$ = dispatch1(var_ref, $1); + %*/ + } +-#line 10092 "parse.c" /* yacc.c:1646 */ ++#line 10084 "parse.c" /* yacc.c:1646 */ + break; + + case 532: +-#line 4439 "parse.y" /* yacc.c:1646 */ ++#line 4431 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = assignable(var_field((yyvsp[0].id)), 0, &(yyloc)); + } +-#line 10100 "parse.c" /* yacc.c:1646 */ ++#line 10092 "parse.c" /* yacc.c:1646 */ + break; + + case 533: +-#line 4443 "parse.y" /* yacc.c:1646 */ ++#line 4435 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = assignable(var_field((yyvsp[0].id)), 0, &(yyloc)); + } +-#line 10108 "parse.c" /* yacc.c:1646 */ ++#line 10100 "parse.c" /* yacc.c:1646 */ + break; + + case 534: +-#line 4449 "parse.y" /* yacc.c:1646 */ ++#line 4441 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node)->nd_loc = (yyloc); + /*% + %*/ + } +-#line 10119 "parse.c" /* yacc.c:1646 */ ++#line 10111 "parse.c" /* yacc.c:1646 */ + break; + + case 535: +-#line 4456 "parse.y" /* yacc.c:1646 */ ++#line 4448 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node)->nd_loc = (yyloc); + /*% + %*/ + } +-#line 10130 "parse.c" /* yacc.c:1646 */ ++#line 10122 "parse.c" /* yacc.c:1646 */ + break; + + case 536: +-#line 4465 "parse.y" /* yacc.c:1646 */ ++#line 4457 "parse.y" /* yacc.c:1646 */ + { + SET_LEX_STATE(EXPR_BEG); + command_start = TRUE; + } +-#line 10139 "parse.c" /* yacc.c:1646 */ ++#line 10131 "parse.c" /* yacc.c:1646 */ + break; + + case 537: +-#line 4470 "parse.y" /* yacc.c:1646 */ ++#line 4462 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = (yyvsp[-1].node); + } +-#line 10147 "parse.c" /* yacc.c:1646 */ ++#line 10139 "parse.c" /* yacc.c:1646 */ + break; + + case 538: +-#line 4474 "parse.y" /* yacc.c:1646 */ ++#line 4466 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = 0; +@@ -10159,11 +10151,11 @@ yyreduce: + $$ = Qnil; + %*/ + } +-#line 10159 "parse.c" /* yacc.c:1646 */ ++#line 10151 "parse.c" /* yacc.c:1646 */ + break; + + case 539: +-#line 4484 "parse.y" /* yacc.c:1646 */ ++#line 4476 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = (yyvsp[-1].node); +@@ -10173,201 +10165,201 @@ yyreduce: + SET_LEX_STATE(EXPR_BEG); + command_start = TRUE; + } +-#line 10173 "parse.c" /* yacc.c:1646 */ ++#line 10165 "parse.c" /* yacc.c:1646 */ + break; + + case 540: +-#line 4493 "parse.y" /* yacc.c:1646 */ ++#line 4485 "parse.y" /* yacc.c:1646 */ + { + (yyval.num) = parser->in_kwarg; + parser->in_kwarg = 1; + SET_LEX_STATE(lex_state|EXPR_LABEL); /* force for args */ + } +-#line 10183 "parse.c" /* yacc.c:1646 */ ++#line 10175 "parse.c" /* yacc.c:1646 */ + break; + + case 541: +-#line 4499 "parse.y" /* yacc.c:1646 */ ++#line 4491 "parse.y" /* yacc.c:1646 */ + { + parser->in_kwarg = !!(yyvsp[-2].num); + (yyval.node) = (yyvsp[-1].node); + SET_LEX_STATE(EXPR_BEG); + command_start = TRUE; + } +-#line 10194 "parse.c" /* yacc.c:1646 */ ++#line 10186 "parse.c" /* yacc.c:1646 */ + break; + + case 542: +-#line 4508 "parse.y" /* yacc.c:1646 */ ++#line 4500 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args_tail((yyvsp[-3].node), (yyvsp[-1].id), (yyvsp[0].id), &(yylsp[-1])); + } +-#line 10202 "parse.c" /* yacc.c:1646 */ ++#line 10194 "parse.c" /* yacc.c:1646 */ + break; + + case 543: +-#line 4512 "parse.y" /* yacc.c:1646 */ ++#line 4504 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args_tail((yyvsp[-1].node), Qnone, (yyvsp[0].id), &(yylsp[-1])); + } +-#line 10210 "parse.c" /* yacc.c:1646 */ ++#line 10202 "parse.c" /* yacc.c:1646 */ + break; + + case 544: +-#line 4516 "parse.y" /* yacc.c:1646 */ ++#line 4508 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args_tail(Qnone, (yyvsp[-1].id), (yyvsp[0].id), &(yylsp[-1])); + } +-#line 10218 "parse.c" /* yacc.c:1646 */ ++#line 10210 "parse.c" /* yacc.c:1646 */ + break; + + case 545: +-#line 4520 "parse.y" /* yacc.c:1646 */ ++#line 4512 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args_tail(Qnone, Qnone, (yyvsp[0].id), &(yylsp[0])); + } +-#line 10226 "parse.c" /* yacc.c:1646 */ ++#line 10218 "parse.c" /* yacc.c:1646 */ + break; + + case 546: +-#line 4526 "parse.y" /* yacc.c:1646 */ ++#line 4518 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = (yyvsp[0].node); + } +-#line 10234 "parse.c" /* yacc.c:1646 */ ++#line 10226 "parse.c" /* yacc.c:1646 */ + break; + + case 547: +-#line 4530 "parse.y" /* yacc.c:1646 */ ++#line 4522 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args_tail(Qnone, Qnone, Qnone, &(yylsp[0])); + } +-#line 10242 "parse.c" /* yacc.c:1646 */ ++#line 10234 "parse.c" /* yacc.c:1646 */ + break; + + case 548: +-#line 4536 "parse.y" /* yacc.c:1646 */ ++#line 4528 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args((yyvsp[-5].node), (yyvsp[-3].node), (yyvsp[-1].id), Qnone, (yyvsp[0].node), &(yyloc)); + } +-#line 10250 "parse.c" /* yacc.c:1646 */ ++#line 10242 "parse.c" /* yacc.c:1646 */ + break; + + case 549: +-#line 4540 "parse.y" /* yacc.c:1646 */ ++#line 4532 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args((yyvsp[-7].node), (yyvsp[-5].node), (yyvsp[-3].id), (yyvsp[-1].node), (yyvsp[0].node), &(yyloc)); + } +-#line 10258 "parse.c" /* yacc.c:1646 */ ++#line 10250 "parse.c" /* yacc.c:1646 */ + break; + + case 550: +-#line 4544 "parse.y" /* yacc.c:1646 */ ++#line 4536 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args((yyvsp[-3].node), (yyvsp[-1].node), Qnone, Qnone, (yyvsp[0].node), &(yyloc)); + } +-#line 10266 "parse.c" /* yacc.c:1646 */ ++#line 10258 "parse.c" /* yacc.c:1646 */ + break; + + case 551: +-#line 4548 "parse.y" /* yacc.c:1646 */ ++#line 4540 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args((yyvsp[-5].node), (yyvsp[-3].node), Qnone, (yyvsp[-1].node), (yyvsp[0].node), &(yyloc)); + } +-#line 10274 "parse.c" /* yacc.c:1646 */ ++#line 10266 "parse.c" /* yacc.c:1646 */ + break; + + case 552: +-#line 4552 "parse.y" /* yacc.c:1646 */ ++#line 4544 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args((yyvsp[-3].node), Qnone, (yyvsp[-1].id), Qnone, (yyvsp[0].node), &(yyloc)); + } +-#line 10282 "parse.c" /* yacc.c:1646 */ ++#line 10274 "parse.c" /* yacc.c:1646 */ + break; + + case 553: +-#line 4556 "parse.y" /* yacc.c:1646 */ ++#line 4548 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args((yyvsp[-5].node), Qnone, (yyvsp[-3].id), (yyvsp[-1].node), (yyvsp[0].node), &(yyloc)); + } +-#line 10290 "parse.c" /* yacc.c:1646 */ ++#line 10282 "parse.c" /* yacc.c:1646 */ + break; + + case 554: +-#line 4560 "parse.y" /* yacc.c:1646 */ ++#line 4552 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args((yyvsp[-1].node), Qnone, Qnone, Qnone, (yyvsp[0].node), &(yyloc)); + } +-#line 10298 "parse.c" /* yacc.c:1646 */ ++#line 10290 "parse.c" /* yacc.c:1646 */ + break; + + case 555: +-#line 4564 "parse.y" /* yacc.c:1646 */ ++#line 4556 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args(Qnone, (yyvsp[-3].node), (yyvsp[-1].id), Qnone, (yyvsp[0].node), &(yyloc)); + } +-#line 10306 "parse.c" /* yacc.c:1646 */ ++#line 10298 "parse.c" /* yacc.c:1646 */ + break; + + case 556: +-#line 4568 "parse.y" /* yacc.c:1646 */ ++#line 4560 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args(Qnone, (yyvsp[-5].node), (yyvsp[-3].id), (yyvsp[-1].node), (yyvsp[0].node), &(yyloc)); + } +-#line 10314 "parse.c" /* yacc.c:1646 */ ++#line 10306 "parse.c" /* yacc.c:1646 */ + break; + + case 557: +-#line 4572 "parse.y" /* yacc.c:1646 */ ++#line 4564 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args(Qnone, (yyvsp[-1].node), Qnone, Qnone, (yyvsp[0].node), &(yyloc)); + } +-#line 10322 "parse.c" /* yacc.c:1646 */ ++#line 10314 "parse.c" /* yacc.c:1646 */ + break; + + case 558: +-#line 4576 "parse.y" /* yacc.c:1646 */ ++#line 4568 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args(Qnone, (yyvsp[-3].node), Qnone, (yyvsp[-1].node), (yyvsp[0].node), &(yyloc)); + } +-#line 10330 "parse.c" /* yacc.c:1646 */ ++#line 10322 "parse.c" /* yacc.c:1646 */ + break; + + case 559: +-#line 4580 "parse.y" /* yacc.c:1646 */ ++#line 4572 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args(Qnone, Qnone, (yyvsp[-1].id), Qnone, (yyvsp[0].node), &(yyloc)); + } +-#line 10338 "parse.c" /* yacc.c:1646 */ ++#line 10330 "parse.c" /* yacc.c:1646 */ + break; + + case 560: +-#line 4584 "parse.y" /* yacc.c:1646 */ ++#line 4576 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args(Qnone, Qnone, (yyvsp[-3].id), (yyvsp[-1].node), (yyvsp[0].node), &(yyloc)); + } +-#line 10346 "parse.c" /* yacc.c:1646 */ ++#line 10338 "parse.c" /* yacc.c:1646 */ + break; + + case 561: +-#line 4588 "parse.y" /* yacc.c:1646 */ ++#line 4580 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args(Qnone, Qnone, Qnone, Qnone, (yyvsp[0].node), &(yyloc)); + } +-#line 10354 "parse.c" /* yacc.c:1646 */ ++#line 10346 "parse.c" /* yacc.c:1646 */ + break; + + case 562: +-#line 4592 "parse.y" /* yacc.c:1646 */ ++#line 4584 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = new_args_tail(Qnone, Qnone, Qnone, &(yylsp[0])); + (yyval.node) = new_args(Qnone, Qnone, Qnone, Qnone, (yyval.node), &(yylsp[0])); + } +-#line 10363 "parse.c" /* yacc.c:1646 */ ++#line 10355 "parse.c" /* yacc.c:1646 */ + break; + + case 563: +-#line 4599 "parse.y" /* yacc.c:1646 */ ++#line 4591 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + yyerror0("formal argument cannot be a constant"); +@@ -10377,11 +10369,11 @@ yyreduce: + ripper_error(); + %*/ + } +-#line 10377 "parse.c" /* yacc.c:1646 */ ++#line 10369 "parse.c" /* yacc.c:1646 */ + break; + + case 564: +-#line 4609 "parse.y" /* yacc.c:1646 */ ++#line 4601 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + yyerror0("formal argument cannot be an instance variable"); +@@ -10391,11 +10383,11 @@ yyreduce: + ripper_error(); + %*/ + } +-#line 10391 "parse.c" /* yacc.c:1646 */ ++#line 10383 "parse.c" /* yacc.c:1646 */ + break; + + case 565: +-#line 4619 "parse.y" /* yacc.c:1646 */ ++#line 4611 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + yyerror0("formal argument cannot be a global variable"); +@@ -10405,11 +10397,11 @@ yyreduce: + ripper_error(); + %*/ + } +-#line 10405 "parse.c" /* yacc.c:1646 */ ++#line 10397 "parse.c" /* yacc.c:1646 */ + break; + + case 566: +-#line 4629 "parse.y" /* yacc.c:1646 */ ++#line 4621 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + yyerror0("formal argument cannot be a class variable"); +@@ -10419,31 +10411,31 @@ yyreduce: + ripper_error(); + %*/ + } +-#line 10419 "parse.c" /* yacc.c:1646 */ ++#line 10411 "parse.c" /* yacc.c:1646 */ + break; + + case 568: +-#line 4642 "parse.y" /* yacc.c:1646 */ ++#line 4634 "parse.y" /* yacc.c:1646 */ + { + formal_argument(get_id((yyvsp[0].id))); + (yyval.id) = (yyvsp[0].id); + } +-#line 10428 "parse.c" /* yacc.c:1646 */ ++#line 10420 "parse.c" /* yacc.c:1646 */ + break; + + case 569: +-#line 4649 "parse.y" /* yacc.c:1646 */ ++#line 4641 "parse.y" /* yacc.c:1646 */ + { + ID id = get_id((yyvsp[0].id)); + arg_var(id); + current_arg = id; + (yyval.id) = (yyvsp[0].id); + } +-#line 10439 "parse.c" /* yacc.c:1646 */ ++#line 10431 "parse.c" /* yacc.c:1646 */ + break; + + case 570: +-#line 4658 "parse.y" /* yacc.c:1646 */ ++#line 4650 "parse.y" /* yacc.c:1646 */ + { + current_arg = 0; + /*%%%*/ +@@ -10452,11 +10444,11 @@ yyreduce: + $$ = get_value($1); + %*/ + } +-#line 10452 "parse.c" /* yacc.c:1646 */ ++#line 10444 "parse.c" /* yacc.c:1646 */ + break; + + case 571: +-#line 4667 "parse.y" /* yacc.c:1646 */ ++#line 4659 "parse.y" /* yacc.c:1646 */ + { + ID tid = internal_id(); + /*%%%*/ +@@ -10479,11 +10471,11 @@ yyreduce: + $$ = dispatch1(mlhs_paren, $2); + %*/ + } +-#line 10479 "parse.c" /* yacc.c:1646 */ ++#line 10471 "parse.c" /* yacc.c:1646 */ + break; + + case 573: +-#line 4699 "parse.y" /* yacc.c:1646 */ ++#line 4691 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = (yyvsp[-2].node); +@@ -10494,22 +10486,22 @@ yyreduce: + $$ = rb_ary_push($1, get_value($3)); + %*/ + } +-#line 10494 "parse.c" /* yacc.c:1646 */ ++#line 10486 "parse.c" /* yacc.c:1646 */ + break; + + case 574: +-#line 4713 "parse.y" /* yacc.c:1646 */ ++#line 4705 "parse.y" /* yacc.c:1646 */ + { + ID id = get_id((yyvsp[0].id)); + arg_var(formal_argument(id)); + current_arg = id; + (yyval.id) = (yyvsp[0].id); + } +-#line 10505 "parse.c" /* yacc.c:1646 */ ++#line 10497 "parse.c" /* yacc.c:1646 */ + break; + + case 575: +-#line 4722 "parse.y" /* yacc.c:1646 */ ++#line 4714 "parse.y" /* yacc.c:1646 */ + { + current_arg = 0; + (yyval.node) = assignable((yyvsp[-1].id), (yyvsp[0].node), &(yyloc)); +@@ -10519,11 +10511,11 @@ yyreduce: + $$ = rb_assoc_new(get_value($$), get_value($2)); + %*/ + } +-#line 10519 "parse.c" /* yacc.c:1646 */ ++#line 10511 "parse.c" /* yacc.c:1646 */ + break; + + case 576: +-#line 4732 "parse.y" /* yacc.c:1646 */ ++#line 4724 "parse.y" /* yacc.c:1646 */ + { + current_arg = 0; + (yyval.node) = assignable((yyvsp[0].id), NODE_SPECIAL_REQUIRED_KEYWORD, &(yyloc)); +@@ -10533,11 +10525,11 @@ yyreduce: + $$ = rb_assoc_new(get_value($$), 0); + %*/ + } +-#line 10533 "parse.c" /* yacc.c:1646 */ ++#line 10525 "parse.c" /* yacc.c:1646 */ + break; + + case 577: +-#line 4744 "parse.y" /* yacc.c:1646 */ ++#line 4736 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = assignable((yyvsp[-1].id), (yyvsp[0].node), &(yyloc)); + /*%%%*/ +@@ -10546,11 +10538,11 @@ yyreduce: + $$ = rb_assoc_new(get_value($$), get_value($2)); + %*/ + } +-#line 10546 "parse.c" /* yacc.c:1646 */ ++#line 10538 "parse.c" /* yacc.c:1646 */ + break; + + case 578: +-#line 4753 "parse.y" /* yacc.c:1646 */ ++#line 4745 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = assignable((yyvsp[0].id), NODE_SPECIAL_REQUIRED_KEYWORD, &(yyloc)); + /*%%%*/ +@@ -10559,11 +10551,11 @@ yyreduce: + $$ = rb_assoc_new(get_value($$), 0); + %*/ + } +-#line 10559 "parse.c" /* yacc.c:1646 */ ++#line 10551 "parse.c" /* yacc.c:1646 */ + break; + + case 579: +-#line 4764 "parse.y" /* yacc.c:1646 */ ++#line 4756 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = (yyvsp[0].node); +@@ -10571,11 +10563,11 @@ yyreduce: + $$ = rb_ary_new3(1, get_value($1)); + %*/ + } +-#line 10571 "parse.c" /* yacc.c:1646 */ ++#line 10563 "parse.c" /* yacc.c:1646 */ + break; + + case 580: +-#line 4772 "parse.y" /* yacc.c:1646 */ ++#line 4764 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = kwd_append((yyvsp[-2].node), (yyvsp[0].node)); +@@ -10583,11 +10575,11 @@ yyreduce: + $$ = rb_ary_push($1, get_value($3)); + %*/ + } +-#line 10583 "parse.c" /* yacc.c:1646 */ ++#line 10575 "parse.c" /* yacc.c:1646 */ + break; + + case 581: +-#line 4783 "parse.y" /* yacc.c:1646 */ ++#line 4775 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = (yyvsp[0].node); +@@ -10595,11 +10587,11 @@ yyreduce: + $$ = rb_ary_new3(1, get_value($1)); + %*/ + } +-#line 10595 "parse.c" /* yacc.c:1646 */ ++#line 10587 "parse.c" /* yacc.c:1646 */ + break; + + case 582: +-#line 4791 "parse.y" /* yacc.c:1646 */ ++#line 4783 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = kwd_append((yyvsp[-2].node), (yyvsp[0].node)); +@@ -10607,11 +10599,11 @@ yyreduce: + $$ = rb_ary_push($1, get_value($3)); + %*/ + } +-#line 10607 "parse.c" /* yacc.c:1646 */ ++#line 10599 "parse.c" /* yacc.c:1646 */ + break; + + case 585: +-#line 4805 "parse.y" /* yacc.c:1646 */ ++#line 4797 "parse.y" /* yacc.c:1646 */ + { + shadowing_lvar(get_id((yyvsp[0].id))); + /*%%%*/ +@@ -10620,11 +10612,11 @@ yyreduce: + $$ = dispatch1(kwrest_param, $2); + %*/ + } +-#line 10620 "parse.c" /* yacc.c:1646 */ ++#line 10612 "parse.c" /* yacc.c:1646 */ + break; + + case 586: +-#line 4814 "parse.y" /* yacc.c:1646 */ ++#line 4806 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.id) = internal_id(); +@@ -10633,11 +10625,11 @@ yyreduce: + $$ = dispatch1(kwrest_param, Qnil); + %*/ + } +-#line 10633 "parse.c" /* yacc.c:1646 */ ++#line 10625 "parse.c" /* yacc.c:1646 */ + break; + + case 587: +-#line 4825 "parse.y" /* yacc.c:1646 */ ++#line 4817 "parse.y" /* yacc.c:1646 */ + { + current_arg = 0; + (yyval.node) = assignable((yyvsp[-2].id), (yyvsp[0].node), &(yyloc)); +@@ -10648,11 +10640,11 @@ yyreduce: + $$ = rb_assoc_new(get_value($$), get_value($3)); + %*/ + } +-#line 10648 "parse.c" /* yacc.c:1646 */ ++#line 10640 "parse.c" /* yacc.c:1646 */ + break; + + case 588: +-#line 4838 "parse.y" /* yacc.c:1646 */ ++#line 4830 "parse.y" /* yacc.c:1646 */ + { + current_arg = 0; + (yyval.node) = assignable((yyvsp[-2].id), (yyvsp[0].node), &(yyloc)); +@@ -10663,11 +10655,11 @@ yyreduce: + $$ = rb_assoc_new(get_value($$), get_value($3)); + %*/ + } +-#line 10663 "parse.c" /* yacc.c:1646 */ ++#line 10655 "parse.c" /* yacc.c:1646 */ + break; + + case 589: +-#line 4851 "parse.y" /* yacc.c:1646 */ ++#line 4843 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = (yyvsp[0].node); +@@ -10675,11 +10667,11 @@ yyreduce: + $$ = rb_ary_new3(1, get_value($1)); + %*/ + } +-#line 10675 "parse.c" /* yacc.c:1646 */ ++#line 10667 "parse.c" /* yacc.c:1646 */ + break; + + case 590: +-#line 4859 "parse.y" /* yacc.c:1646 */ ++#line 4851 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = opt_arg_append((yyvsp[-2].node), (yyvsp[0].node)); +@@ -10687,11 +10679,11 @@ yyreduce: + $$ = rb_ary_push($1, get_value($3)); + %*/ + } +-#line 10687 "parse.c" /* yacc.c:1646 */ ++#line 10679 "parse.c" /* yacc.c:1646 */ + break; + + case 591: +-#line 4869 "parse.y" /* yacc.c:1646 */ ++#line 4861 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = (yyvsp[0].node); +@@ -10699,11 +10691,11 @@ yyreduce: + $$ = rb_ary_new3(1, get_value($1)); + %*/ + } +-#line 10699 "parse.c" /* yacc.c:1646 */ ++#line 10691 "parse.c" /* yacc.c:1646 */ + break; + + case 592: +-#line 4877 "parse.y" /* yacc.c:1646 */ ++#line 4869 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = opt_arg_append((yyvsp[-2].node), (yyvsp[0].node)); +@@ -10711,11 +10703,11 @@ yyreduce: + $$ = rb_ary_push($1, get_value($3)); + %*/ + } +-#line 10711 "parse.c" /* yacc.c:1646 */ ++#line 10703 "parse.c" /* yacc.c:1646 */ + break; + + case 595: +-#line 4891 "parse.y" /* yacc.c:1646 */ ++#line 4883 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + if (!is_local_id((yyvsp[0].id))) +@@ -10728,11 +10720,11 @@ yyreduce: + $$ = dispatch1(rest_param, $2); + %*/ + } +-#line 10728 "parse.c" /* yacc.c:1646 */ ++#line 10720 "parse.c" /* yacc.c:1646 */ + break; + + case 596: +-#line 4904 "parse.y" /* yacc.c:1646 */ ++#line 4896 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.id) = internal_id(); +@@ -10741,11 +10733,11 @@ yyreduce: + $$ = dispatch1(rest_param, Qnil); + %*/ + } +-#line 10741 "parse.c" /* yacc.c:1646 */ ++#line 10733 "parse.c" /* yacc.c:1646 */ + break; + + case 599: +-#line 4919 "parse.y" /* yacc.c:1646 */ ++#line 4911 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + if (!is_local_id((yyvsp[0].id))) +@@ -10760,19 +10752,19 @@ yyreduce: + $$ = dispatch1(blockarg, $2); + %*/ + } +-#line 10760 "parse.c" /* yacc.c:1646 */ ++#line 10752 "parse.c" /* yacc.c:1646 */ + break; + + case 600: +-#line 4936 "parse.y" /* yacc.c:1646 */ ++#line 4928 "parse.y" /* yacc.c:1646 */ + { + (yyval.id) = (yyvsp[0].id); + } +-#line 10768 "parse.c" /* yacc.c:1646 */ ++#line 10760 "parse.c" /* yacc.c:1646 */ + break; + + case 601: +-#line 4940 "parse.y" /* yacc.c:1646 */ ++#line 4932 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.id) = 0; +@@ -10780,11 +10772,11 @@ yyreduce: + $$ = Qundef; + %*/ + } +-#line 10780 "parse.c" /* yacc.c:1646 */ ++#line 10772 "parse.c" /* yacc.c:1646 */ + break; + + case 602: +-#line 4950 "parse.y" /* yacc.c:1646 */ ++#line 4942 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + value_expr((yyvsp[0].node)); +@@ -10794,17 +10786,17 @@ yyreduce: + $$ = $1; + %*/ + } +-#line 10794 "parse.c" /* yacc.c:1646 */ ++#line 10786 "parse.c" /* yacc.c:1646 */ + break; + + case 603: +-#line 4959 "parse.y" /* yacc.c:1646 */ ++#line 4951 "parse.y" /* yacc.c:1646 */ + {SET_LEX_STATE(EXPR_BEG);} +-#line 10800 "parse.c" /* yacc.c:1646 */ ++#line 10792 "parse.c" /* yacc.c:1646 */ + break; + + case 604: +-#line 4960 "parse.y" /* yacc.c:1646 */ ++#line 4952 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + if ((yyvsp[-1].node) == 0) { +@@ -10832,11 +10824,11 @@ yyreduce: + $$ = dispatch1(paren, $3); + %*/ + } +-#line 10832 "parse.c" /* yacc.c:1646 */ ++#line 10824 "parse.c" /* yacc.c:1646 */ + break; + + case 606: +-#line 4991 "parse.y" /* yacc.c:1646 */ ++#line 4983 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = (yyvsp[-1].node); +@@ -10844,11 +10836,11 @@ yyreduce: + $$ = dispatch1(assoclist_from_args, $1); + %*/ + } +-#line 10844 "parse.c" /* yacc.c:1646 */ ++#line 10836 "parse.c" /* yacc.c:1646 */ + break; + + case 608: +-#line 5008 "parse.y" /* yacc.c:1646 */ ++#line 5000 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + NODE *assocs = (yyvsp[-2].node); +@@ -10870,11 +10862,11 @@ yyreduce: + $$ = rb_ary_push($1, get_value($3)); + %*/ + } +-#line 10870 "parse.c" /* yacc.c:1646 */ ++#line 10862 "parse.c" /* yacc.c:1646 */ + break; + + case 609: +-#line 5032 "parse.y" /* yacc.c:1646 */ ++#line 5024 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + if (nd_type((yyvsp[-2].node)) == NODE_STR) { +@@ -10886,11 +10878,11 @@ yyreduce: + $$ = dispatch2(assoc_new, $1, $3); + %*/ + } +-#line 10886 "parse.c" /* yacc.c:1646 */ ++#line 10878 "parse.c" /* yacc.c:1646 */ + break; + + case 610: +-#line 5044 "parse.y" /* yacc.c:1646 */ ++#line 5036 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + (yyval.node) = list_append(new_list(new_lit(ID2SYM((yyvsp[-1].id)), &(yylsp[-1])), &(yyloc)), (yyvsp[0].node)); +@@ -10898,11 +10890,11 @@ yyreduce: + $$ = dispatch2(assoc_new, $1, $2); + %*/ + } +-#line 10898 "parse.c" /* yacc.c:1646 */ ++#line 10890 "parse.c" /* yacc.c:1646 */ + break; + + case 611: +-#line 5052 "parse.y" /* yacc.c:1646 */ ++#line 5044 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + YYLTYPE location; +@@ -10913,11 +10905,11 @@ yyreduce: + $$ = dispatch2(assoc_new, dispatch1(dyna_symbol, $2), $4); + %*/ + } +-#line 10913 "parse.c" /* yacc.c:1646 */ ++#line 10905 "parse.c" /* yacc.c:1646 */ + break; + + case 612: +-#line 5063 "parse.y" /* yacc.c:1646 */ ++#line 5055 "parse.y" /* yacc.c:1646 */ + { + /*%%%*/ + if (nd_type((yyvsp[0].node)) == NODE_HASH && +@@ -10929,61 +10921,61 @@ yyreduce: + $$ = dispatch1(assoc_splat, $2); + %*/ + } +-#line 10929 "parse.c" /* yacc.c:1646 */ ++#line 10921 "parse.c" /* yacc.c:1646 */ + break; + + case 625: +-#line 5097 "parse.y" /* yacc.c:1646 */ ++#line 5089 "parse.y" /* yacc.c:1646 */ + { + (yyval.id) = TOKEN2VAL('.'); + } +-#line 10937 "parse.c" /* yacc.c:1646 */ ++#line 10929 "parse.c" /* yacc.c:1646 */ + break; + + case 626: +-#line 5101 "parse.y" /* yacc.c:1646 */ ++#line 5093 "parse.y" /* yacc.c:1646 */ + { + (yyval.id) = ID2VAL(idANDDOT); + } +-#line 10945 "parse.c" /* yacc.c:1646 */ ++#line 10937 "parse.c" /* yacc.c:1646 */ + break; + + case 628: +-#line 5108 "parse.y" /* yacc.c:1646 */ ++#line 5100 "parse.y" /* yacc.c:1646 */ + { + (yyval.id) = ID2VAL(idCOLON2); + } +-#line 10953 "parse.c" /* yacc.c:1646 */ ++#line 10945 "parse.c" /* yacc.c:1646 */ + break; + + case 638: +-#line 5132 "parse.y" /* yacc.c:1646 */ ++#line 5124 "parse.y" /* yacc.c:1646 */ + {yyerrok;token_flush(parser);} +-#line 10959 "parse.c" /* yacc.c:1646 */ ++#line 10951 "parse.c" /* yacc.c:1646 */ + break; + + case 639: +-#line 5133 "parse.y" /* yacc.c:1646 */ ++#line 5125 "parse.y" /* yacc.c:1646 */ + {token_flush(parser);} +-#line 10965 "parse.c" /* yacc.c:1646 */ ++#line 10957 "parse.c" /* yacc.c:1646 */ + break; + + case 641: +-#line 5137 "parse.y" /* yacc.c:1646 */ ++#line 5129 "parse.y" /* yacc.c:1646 */ + {yyerrok;} +-#line 10971 "parse.c" /* yacc.c:1646 */ ++#line 10963 "parse.c" /* yacc.c:1646 */ + break; + + case 642: +-#line 5141 "parse.y" /* yacc.c:1646 */ ++#line 5133 "parse.y" /* yacc.c:1646 */ + { + (yyval.node) = Qnull; + } +-#line 10979 "parse.c" /* yacc.c:1646 */ ++#line 10971 "parse.c" /* yacc.c:1646 */ + break; + + +-#line 10983 "parse.c" /* yacc.c:1646 */ ++#line 10975 "parse.c" /* yacc.c:1646 */ + default: break; + } + /* User semantic actions sometimes alter yychar, and that requires +@@ -11218,7 +11210,7 @@ yyreturn: + #endif + return yyresult; + } +-#line 5145 "parse.y" /* yacc.c:1906 */ ++#line 5137 "parse.y" /* yacc.c:1906 */ + + # undef parser + # undef yylex +@@ -16034,11 +16026,13 @@ assignable_gen(struct parser_params *parser, ID id, NO + #ifdef RIPPER + ID id = get_id(lhs); + # define assignable_result(x) (lhs) ++# define assignable_error() (lhs) + # define parser_yyerror(parser, x) (lhs = assign_error_gen(parser, lhs)) + #else + # define assignable_result(x) assignable_result0(x, location) ++# define assignable_error() new_begin(0, location) + #endif +- if (!id) return assignable_result(0); ++ if (!id) return assignable_error(); + switch (id) { + case keyword_self: + yyerror0("Can't change the value of self"); +@@ -16101,7 +16095,7 @@ assignable_gen(struct parser_params *parser, ID id, NO + compile_error(PARSER_ARG "identifier %"PRIsVALUE" is not valid to set", rb_id2str(id)); + } + error: +- return assignable_result(0); ++ return assignable_error(); + #undef assignable_result + #undef parser_yyerror + } diff --git a/lang/ruby25/files/patch-parse.y b/lang/ruby25/files/patch-parse.y new file mode 100644 index 000000000000..d5eb28423d51 --- /dev/null +++ b/lang/ruby25/files/patch-parse.y @@ -0,0 +1,45 @@ +--- parse.y.orig 2017-12-21 06:52:15 UTC ++++ parse.y +@@ -1983,18 +1983,10 @@ mlhs_node : user_variable + lhs : user_variable + { + $$ = assignable(var_field($1), 0, &@$); +- /*%%%*/ +- if (!$$) $$ = new_begin(0, &@$); +- /*% +- %*/ + } + | keyword_variable + { + $$ = assignable(var_field($1), 0, &@$); +- /*%%%*/ +- if (!$$) $$ = new_begin(0, &@$); +- /*% +- %*/ + } + | primary_value '[' opt_call_args rbracket + { +@@ -9957,11 +9949,13 @@ assignable_gen(struct parser_params *parser, ID id, NO + #ifdef RIPPER + ID id = get_id(lhs); + # define assignable_result(x) (lhs) ++# define assignable_error() (lhs) + # define parser_yyerror(parser, x) (lhs = assign_error_gen(parser, lhs)) + #else + # define assignable_result(x) assignable_result0(x, location) ++# define assignable_error() new_begin(0, location) + #endif +- if (!id) return assignable_result(0); ++ if (!id) return assignable_error(); + switch (id) { + case keyword_self: + yyerror0("Can't change the value of self"); +@@ -10024,7 +10018,7 @@ assignable_gen(struct parser_params *parser, ID id, NO + compile_error(PARSER_ARG "identifier %"PRIsVALUE" is not valid to set", rb_id2str(id)); + } + error: +- return assignable_result(0); ++ return assignable_error(); + #undef assignable_result + #undef parser_yyerror + } diff --git a/lang/ruby25/files/patch-test_ruby_test__parse.rb b/lang/ruby25/files/patch-test_ruby_test__parse.rb new file mode 100644 index 000000000000..ad238a625dde --- /dev/null +++ b/lang/ruby25/files/patch-test_ruby_test__parse.rb @@ -0,0 +1,15 @@ +--- test/ruby/test_parse.rb.orig 2017-12-20 00:09:51 UTC ++++ test/ruby/test_parse.rb +@@ -746,6 +746,12 @@ x = __ENCODING__ + end + END + end ++ assert_raise(SyntaxError) do ++ eval "#{<<~"begin;"}\n#{<<~'end;'}", nil, __FILE__, __LINE__+1 ++ begin; ++ x, true ++ end; ++ end + end + + def test_block_dup |