summaryrefslogtreecommitdiffhomepage
path: root/mrbgems
diff options
context:
space:
mode:
authortaiyoslime <[email protected]>2020-10-05 19:53:05 +0900
committertaiyoslime <[email protected]>2020-10-13 14:09:36 +0900
commitbec4d053400c3a11c8efd68c3e8bd5ea4a0bcc54 (patch)
tree166195f4009b90a90d1fe1b28ad4c8c84ba2597d /mrbgems
parent9ea7b718683386d2dc0787e919fc3d413ab20e67 (diff)
downloadmruby-bec4d053400c3a11c8efd68c3e8bd5ea4a0bcc54.tar.gz
mruby-bec4d053400c3a11c8efd68c3e8bd5ea4a0bcc54.zip
Introduce endless range (a part of #5085)
Co-Authored-By: n4o847 <[email protected]> Co-Authored-By: smallkirby <[email protected]>
Diffstat (limited to 'mrbgems')
-rw-r--r--mrbgems/mruby-compiler/core/parse.y8
-rw-r--r--mrbgems/mruby-compiler/core/y.tab.c2478
-rw-r--r--mrbgems/mruby-range-ext/mrblib/range.rb16
-rw-r--r--mrbgems/mruby-range-ext/src/range.c16
-rw-r--r--mrbgems/mruby-range-ext/test/range.rb29
-rw-r--r--mrbgems/mruby-string-ext/mrblib/string.rb23
6 files changed, 1331 insertions, 1239 deletions
diff --git a/mrbgems/mruby-compiler/core/parse.y b/mrbgems/mruby-compiler/core/parse.y
index 9de45a536..6033581fe 100644
--- a/mrbgems/mruby-compiler/core/parse.y
+++ b/mrbgems/mruby-compiler/core/parse.y
@@ -2118,10 +2118,18 @@ arg : lhs '=' arg_rhs
{
$$ = new_dot2(p, $1, $3);
}
+ | arg tDOT2
+ {
+ $$ = new_dot2(p, $1, new_nil(p));
+ }
| arg tDOT3 arg
{
$$ = new_dot3(p, $1, $3);
}
+ | arg tDOT3
+ {
+ $$ = new_dot3(p, $1, new_nil(p));
+ }
| arg '+' arg
{
$$ = call_bin_op(p, $1, "+", $3);
diff --git a/mrbgems/mruby-compiler/core/y.tab.c b/mrbgems/mruby-compiler/core/y.tab.c
index c570fb1d7..4a363096b 100644
--- a/mrbgems/mruby-compiler/core/y.tab.c
+++ b/mrbgems/mruby-compiler/core/y.tab.c
@@ -1907,7 +1907,7 @@ union yyalloc
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 176
/* YYNRULES -- Number of rules. */
-#define YYNRULES 594
+#define YYNRULES 596
/* YYNSTATES -- Number of states. */
#define YYNSTATES 1034
@@ -1991,43 +1991,43 @@ static const yytype_int16 yyrline[] =
2121, 2125, 2129, 2133, 2137, 2141, 2145, 2149, 2153, 2157,
2161, 2165, 2169, 2173, 2177, 2181, 2185, 2189, 2193, 2197,
2201, 2205, 2209, 2213, 2217, 2221, 2225, 2229, 2233, 2237,
- 2241, 2245, 2249, 2255, 2256, 2261, 2265, 2272, 2276, 2284,
- 2288, 2314, 2315, 2318, 2319, 2320, 2325, 2330, 2337, 2343,
- 2348, 2353, 2358, 2365, 2365, 2376, 2382, 2386, 2392, 2393,
- 2396, 2402, 2408, 2413, 2420, 2425, 2430, 2437, 2438, 2439,
- 2440, 2441, 2442, 2443, 2444, 2448, 2453, 2452, 2464, 2468,
- 2463, 2473, 2473, 2477, 2481, 2485, 2489, 2494, 2499, 2503,
- 2507, 2511, 2515, 2519, 2520, 2526, 2532, 2525, 2544, 2552,
- 2560, 2560, 2560, 2567, 2567, 2567, 2574, 2580, 2585, 2587,
- 2584, 2596, 2594, 2612, 2617, 2610, 2634, 2632, 2649, 2653,
- 2648, 2670, 2676, 2669, 2693, 2697, 2701, 2705, 2711, 2718,
- 2719, 2720, 2723, 2724, 2727, 2728, 2736, 2737, 2743, 2747,
- 2750, 2754, 2758, 2762, 2767, 2771, 2775, 2779, 2785, 2784,
- 2794, 2798, 2802, 2806, 2812, 2817, 2822, 2826, 2830, 2834,
+ 2241, 2245, 2249, 2253, 2257, 2263, 2264, 2269, 2273, 2280,
+ 2284, 2292, 2296, 2322, 2323, 2326, 2327, 2328, 2333, 2338,
+ 2345, 2351, 2356, 2361, 2366, 2373, 2373, 2384, 2390, 2394,
+ 2400, 2401, 2404, 2410, 2416, 2421, 2428, 2433, 2438, 2445,
+ 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2456, 2461, 2460,
+ 2472, 2476, 2471, 2481, 2481, 2485, 2489, 2493, 2497, 2502,
+ 2507, 2511, 2515, 2519, 2523, 2527, 2528, 2534, 2540, 2533,
+ 2552, 2560, 2568, 2568, 2568, 2575, 2575, 2575, 2582, 2588,
+ 2593, 2595, 2592, 2604, 2602, 2620, 2625, 2618, 2642, 2640,
+ 2657, 2661, 2656, 2678, 2684, 2677, 2701, 2705, 2709, 2713,
+ 2719, 2726, 2727, 2728, 2731, 2732, 2735, 2736, 2744, 2745,
+ 2751, 2755, 2758, 2762, 2766, 2770, 2775, 2779, 2783, 2787,
+ 2793, 2792, 2802, 2806, 2810, 2814, 2820, 2825, 2830, 2834,
2838, 2842, 2846, 2850, 2854, 2858, 2862, 2866, 2870, 2874,
- 2878, 2884, 2889, 2896, 2896, 2900, 2905, 2912, 2916, 2922,
- 2923, 2926, 2931, 2934, 2938, 2944, 2948, 2955, 2954, 2969,
- 2979, 2983, 2988, 2995, 2999, 3003, 3007, 3011, 3015, 3019,
- 3023, 3027, 3034, 3033, 3048, 3047, 3063, 3071, 3080, 3083,
- 3090, 3093, 3097, 3098, 3101, 3105, 3108, 3112, 3115, 3116,
- 3117, 3118, 3121, 3122, 3128, 3129, 3130, 3134, 3140, 3141,
- 3147, 3152, 3151, 3162, 3166, 3172, 3176, 3182, 3186, 3192,
- 3195, 3196, 3199, 3205, 3211, 3212, 3215, 3222, 3221, 3235,
- 3239, 3246, 3251, 3258, 3264, 3265, 3266, 3267, 3268, 3272,
- 3278, 3282, 3288, 3289, 3290, 3294, 3300, 3304, 3308, 3312,
- 3316, 3322, 3326, 3332, 3336, 3340, 3344, 3348, 3352, 3360,
- 3367, 3378, 3379, 3383, 3387, 3386, 3402, 3408, 3426, 3432,
- 3438, 3444, 3451, 3456, 3463, 3467, 3473, 3477, 3483, 3484,
- 3487, 3491, 3497, 3501, 3505, 3509, 3515, 3520, 3525, 3529,
+ 2878, 2882, 2886, 2892, 2897, 2904, 2904, 2908, 2913, 2920,
+ 2924, 2930, 2931, 2934, 2939, 2942, 2946, 2952, 2956, 2963,
+ 2962, 2977, 2987, 2991, 2996, 3003, 3007, 3011, 3015, 3019,
+ 3023, 3027, 3031, 3035, 3042, 3041, 3056, 3055, 3071, 3079,
+ 3088, 3091, 3098, 3101, 3105, 3106, 3109, 3113, 3116, 3120,
+ 3123, 3124, 3125, 3126, 3129, 3130, 3136, 3137, 3138, 3142,
+ 3148, 3149, 3155, 3160, 3159, 3170, 3174, 3180, 3184, 3190,
+ 3194, 3200, 3203, 3204, 3207, 3213, 3219, 3220, 3223, 3230,
+ 3229, 3243, 3247, 3254, 3259, 3266, 3272, 3273, 3274, 3275,
+ 3276, 3280, 3286, 3290, 3296, 3297, 3298, 3302, 3308, 3312,
+ 3316, 3320, 3324, 3330, 3334, 3340, 3344, 3348, 3352, 3356,
+ 3360, 3368, 3375, 3386, 3387, 3391, 3395, 3394, 3410, 3416,
+ 3434, 3440, 3446, 3452, 3459, 3464, 3471, 3475, 3481, 3485,
+ 3491, 3492, 3495, 3499, 3505, 3509, 3513, 3517, 3523, 3528,
3533, 3537, 3541, 3545, 3549, 3553, 3557, 3561, 3565, 3569,
- 3573, 3577, 3582, 3588, 3593, 3598, 3603, 3608, 3615, 3619,
- 3626, 3631, 3630, 3642, 3646, 3652, 3660, 3668, 3676, 3680,
- 3686, 3690, 3696, 3697, 3700, 3705, 3712, 3713, 3716, 3722,
- 3726, 3732, 3737, 3737, 3762, 3763, 3769, 3774, 3780, 3781,
- 3784, 3790, 3795, 3805, 3812, 3813, 3814, 3817, 3818, 3819,
- 3820, 3823, 3824, 3825, 3828, 3829, 3832, 3836, 3842, 3843,
- 3849, 3850, 3853, 3854, 3857, 3860, 3861, 3862, 3865, 3866,
- 3867, 3870, 3877, 3878, 3882
+ 3573, 3577, 3581, 3585, 3590, 3596, 3601, 3606, 3611, 3616,
+ 3623, 3627, 3634, 3639, 3638, 3650, 3654, 3660, 3668, 3676,
+ 3684, 3688, 3694, 3698, 3704, 3705, 3708, 3713, 3720, 3721,
+ 3724, 3730, 3734, 3740, 3745, 3745, 3770, 3771, 3777, 3782,
+ 3788, 3789, 3792, 3798, 3803, 3813, 3820, 3821, 3822, 3825,
+ 3826, 3827, 3828, 3831, 3832, 3833, 3836, 3837, 3840, 3844,
+ 3850, 3851, 3857, 3858, 3861, 3862, 3865, 3868, 3869, 3870,
+ 3873, 3874, 3875, 3878, 3885, 3886, 3890
};
#endif
@@ -2126,7 +2126,7 @@ static const yytype_int16 yytoknum[] =
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
-#define YYTABLE_NINF (-595)
+#define YYTABLE_NINF (-597)
#define yytable_value_is_error(Yyn) \
((Yyn) == YYTABLE_NINF)
@@ -2246,110 +2246,110 @@ static const yytype_int16 yypact[] =
means the default is an error. */
static const yytype_int16 yydefact[] =
{
- 2, 0, 0, 1, 0, 0, 0, 0, 276, 0,
- 0, 300, 303, 0, 0, 580, 324, 325, 326, 327,
- 288, 253, 400, 475, 474, 476, 477, 582, 0, 10,
- 0, 479, 478, 480, 466, 275, 468, 467, 470, 469,
- 462, 463, 424, 425, 481, 482, 274, 0, 0, 0,
- 0, 278, 594, 594, 80, 295, 0, 0, 0, 0,
- 0, 0, 439, 0, 0, 0, 3, 580, 6, 9,
+ 2, 0, 0, 1, 0, 0, 0, 0, 278, 0,
+ 0, 302, 305, 0, 0, 582, 326, 327, 328, 329,
+ 290, 255, 402, 477, 476, 478, 479, 584, 0, 10,
+ 0, 481, 480, 482, 468, 277, 470, 469, 472, 471,
+ 464, 465, 426, 427, 483, 484, 276, 0, 0, 0,
+ 0, 280, 596, 596, 80, 297, 0, 0, 0, 0,
+ 0, 0, 441, 0, 0, 0, 3, 582, 6, 9,
27, 32, 44, 52, 51, 0, 68, 0, 72, 82,
- 0, 49, 232, 0, 53, 293, 267, 268, 422, 269,
- 270, 271, 420, 419, 451, 421, 418, 473, 0, 272,
- 273, 253, 5, 8, 324, 325, 288, 594, 400, 0,
- 105, 106, 274, 0, 0, 0, 0, 108, 483, 328,
- 0, 473, 273, 0, 316, 160, 170, 161, 157, 186,
+ 0, 49, 234, 0, 53, 295, 269, 270, 424, 271,
+ 272, 273, 422, 421, 453, 423, 420, 475, 0, 274,
+ 275, 255, 5, 8, 326, 327, 290, 596, 402, 0,
+ 105, 106, 276, 0, 0, 0, 0, 108, 485, 330,
+ 0, 475, 275, 0, 318, 160, 170, 161, 157, 186,
187, 188, 189, 168, 183, 176, 166, 165, 181, 164,
163, 159, 184, 158, 171, 175, 177, 169, 162, 178,
185, 180, 179, 172, 182, 167, 156, 174, 173, 155,
153, 154, 150, 151, 152, 110, 112, 111, 145, 146,
141, 123, 124, 125, 132, 129, 131, 126, 127, 147,
148, 133, 134, 138, 142, 128, 130, 120, 121, 122,
- 135, 136, 137, 139, 140, 143, 144, 149, 552, 318,
- 113, 114, 551, 0, 0, 0, 50, 0, 0, 0,
- 473, 0, 273, 0, 0, 0, 104, 0, 339, 338,
- 0, 0, 473, 273, 179, 172, 182, 167, 150, 151,
- 152, 110, 111, 0, 115, 117, 20, 116, 442, 447,
- 446, 588, 591, 580, 590, 0, 444, 0, 592, 589,
- 581, 564, 0, 0, 0, 0, 248, 260, 66, 252,
- 594, 422, 594, 556, 67, 65, 594, 242, 289, 64,
- 0, 241, 399, 63, 580, 0, 583, 18, 0, 0,
- 209, 0, 210, 285, 0, 0, 0, 580, 15, 580,
- 70, 14, 0, 580, 0, 585, 585, 233, 0, 0,
- 585, 554, 0, 0, 78, 0, 88, 95, 522, 456,
- 455, 457, 458, 0, 454, 453, 437, 431, 430, 433,
- 0, 0, 428, 449, 0, 460, 0, 426, 0, 435,
- 0, 464, 465, 48, 224, 225, 4, 581, 0, 0,
- 0, 0, 0, 0, 0, 387, 389, 0, 84, 0,
+ 135, 136, 137, 139, 140, 143, 144, 149, 554, 320,
+ 113, 114, 553, 0, 0, 0, 50, 0, 0, 0,
+ 475, 0, 275, 0, 0, 0, 104, 0, 341, 340,
+ 0, 0, 475, 275, 179, 172, 182, 167, 150, 151,
+ 152, 110, 111, 0, 115, 117, 20, 116, 444, 449,
+ 448, 590, 593, 582, 592, 0, 446, 0, 594, 591,
+ 583, 566, 0, 0, 0, 0, 250, 262, 66, 254,
+ 596, 424, 596, 558, 67, 65, 596, 244, 291, 64,
+ 0, 243, 401, 63, 582, 0, 585, 18, 0, 0,
+ 211, 0, 212, 287, 0, 0, 0, 582, 15, 582,
+ 70, 14, 0, 582, 0, 587, 587, 235, 0, 0,
+ 587, 556, 0, 0, 78, 0, 88, 95, 524, 458,
+ 457, 459, 460, 0, 456, 455, 439, 433, 432, 435,
+ 0, 0, 430, 451, 0, 462, 0, 428, 0, 437,
+ 0, 466, 467, 48, 226, 227, 4, 583, 0, 0,
+ 0, 0, 0, 0, 0, 389, 391, 0, 84, 0,
76, 73, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 200, 202, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 577, 594, 576, 0, 579, 578, 0, 404, 402, 294,
- 423, 0, 0, 393, 57, 292, 313, 105, 106, 107,
- 464, 465, 484, 311, 0, 594, 0, 0, 0, 319,
- 575, 574, 321, 0, 594, 285, 330, 0, 329, 0,
- 0, 594, 0, 0, 0, 0, 0, 0, 285, 0,
- 594, 0, 308, 0, 118, 0, 0, 443, 445, 0,
- 0, 593, 558, 0, 261, 563, 255, 0, 258, 249,
- 0, 257, 0, 250, 0, 580, 0, 580, 594, 594,
- 243, 254, 580, 0, 291, 47, 0, 0, 0, 0,
- 0, 0, 17, 580, 283, 13, 581, 69, 279, 282,
- 286, 587, 234, 586, 587, 236, 287, 555, 94, 86,
- 0, 81, 0, 0, 594, 0, 529, 525, 524, 523,
- 526, 527, 498, 531, 543, 499, 547, 546, 542, 522,
- 296, 491, 496, 594, 501, 594, 521, 384, 528, 530,
- 533, 507, 0, 540, 507, 545, 507, 0, 505, 459,
- 0, 0, 434, 440, 438, 429, 450, 461, 427, 436,
+ 579, 596, 578, 0, 581, 580, 0, 406, 404, 296,
+ 425, 0, 0, 395, 57, 294, 315, 105, 106, 107,
+ 466, 467, 486, 313, 0, 596, 0, 0, 0, 321,
+ 577, 576, 323, 0, 596, 287, 332, 0, 331, 0,
+ 0, 596, 0, 0, 0, 0, 0, 0, 287, 0,
+ 596, 0, 310, 0, 118, 0, 0, 445, 447, 0,
+ 0, 595, 560, 0, 263, 565, 257, 0, 260, 251,
+ 0, 259, 0, 252, 0, 582, 0, 582, 596, 596,
+ 245, 256, 582, 0, 293, 47, 0, 0, 0, 0,
+ 0, 0, 17, 582, 285, 13, 583, 69, 281, 284,
+ 288, 589, 236, 588, 589, 238, 289, 557, 94, 86,
+ 0, 81, 0, 0, 596, 0, 531, 527, 526, 525,
+ 528, 529, 500, 533, 545, 501, 549, 548, 544, 524,
+ 298, 493, 498, 596, 503, 596, 523, 386, 530, 532,
+ 535, 509, 0, 542, 509, 547, 509, 0, 507, 461,
+ 0, 0, 436, 442, 440, 431, 452, 463, 429, 438,
0, 0, 7, 21, 22, 23, 24, 25, 45, 46,
- 594, 0, 28, 30, 0, 31, 580, 0, 74, 85,
- 43, 33, 41, 0, 237, 190, 29, 0, 273, 206,
- 214, 219, 220, 221, 216, 218, 228, 229, 222, 223,
- 199, 200, 226, 227, 582, 215, 217, 211, 212, 213,
- 201, 202, 203, 204, 205, 567, 572, 568, 573, 398,
- 253, 396, 0, 567, 569, 568, 570, 397, 594, 567,
- 568, 253, 594, 594, 34, 237, 191, 40, 198, 55,
- 58, 0, 0, 0, 105, 106, 109, 0, 0, 594,
- 0, 580, 522, 0, 277, 594, 594, 410, 594, 331,
- 571, 284, 0, 567, 568, 594, 333, 301, 332, 304,
- 571, 284, 0, 567, 568, 0, 0, 0, 0, 260,
- 0, 307, 559, 561, 560, 0, 0, 262, 256, 594,
- 562, 557, 240, 239, 244, 245, 247, 290, 584, 19,
- 0, 26, 197, 71, 16, 580, 585, 87, 79, 91,
- 93, 0, 90, 92, 489, 535, 0, 582, 0, 490,
- 0, 503, 550, 500, 0, 504, 0, 514, 536, 0,
- 517, 544, 0, 519, 548, 452, 0, 441, 207, 208,
- 375, 373, 0, 372, 371, 266, 0, 83, 77, 0,
- 0, 0, 0, 0, 594, 0, 0, 0, 0, 395,
- 61, 401, 0, 0, 394, 59, 390, 54, 0, 0,
- 594, 314, 0, 0, 401, 317, 553, 522, 0, 0,
- 322, 411, 412, 594, 413, 0, 594, 336, 0, 0,
- 334, 0, 0, 401, 0, 0, 0, 0, 0, 401,
- 0, 119, 448, 306, 0, 0, 259, 263, 251, 594,
- 11, 280, 235, 89, 529, 347, 580, 340, 0, 377,
- 0, 0, 297, 0, 497, 594, 549, 506, 534, 507,
- 507, 507, 541, 507, 529, 507, 432, 370, 582, 582,
- 493, 494, 594, 594, 355, 0, 538, 355, 355, 353,
- 0, 0, 264, 75, 42, 238, 567, 568, 0, 567,
- 568, 0, 0, 39, 195, 38, 196, 62, 0, 36,
- 193, 37, 194, 60, 391, 392, 0, 0, 0, 0,
- 485, 312, 580, 580, 0, 488, 522, 0, 0, 415,
- 337, 0, 12, 417, 0, 298, 0, 299, 0, 0,
- 309, 262, 594, 246, 348, 345, 532, 0, 383, 0,
- 0, 0, 502, 0, 510, 0, 512, 0, 518, 0,
- 515, 520, 0, 0, 0, 492, 0, 351, 352, 355,
- 363, 537, 0, 366, 0, 368, 388, 265, 401, 231,
- 230, 35, 192, 405, 403, 0, 0, 487, 486, 320,
- 0, 0, 414, 0, 96, 103, 0, 416, 0, 302,
- 305, 0, 407, 408, 406, 0, 0, 343, 381, 582,
- 379, 382, 386, 385, 507, 507, 507, 507, 376, 374,
- 285, 0, 495, 594, 0, 354, 361, 355, 355, 355,
- 539, 355, 355, 56, 315, 0, 102, 0, 594, 0,
- 594, 594, 0, 349, 346, 0, 341, 0, 378, 511,
- 0, 508, 513, 516, 571, 284, 350, 0, 358, 0,
- 360, 0, 367, 0, 364, 369, 323, 99, 101, 0,
- 567, 568, 409, 335, 310, 0, 344, 0, 380, 507,
- 355, 355, 355, 355, 97, 342, 509, 359, 0, 356,
- 362, 365, 355, 357
+ 596, 0, 28, 30, 0, 31, 582, 0, 74, 85,
+ 43, 33, 41, 0, 239, 190, 29, 0, 275, 208,
+ 216, 221, 222, 223, 218, 220, 230, 231, 224, 225,
+ 199, 201, 228, 229, 584, 217, 219, 213, 214, 215,
+ 203, 204, 205, 206, 207, 569, 574, 570, 575, 400,
+ 255, 398, 0, 569, 571, 570, 572, 399, 596, 569,
+ 570, 255, 596, 596, 34, 239, 191, 40, 198, 55,
+ 58, 0, 0, 0, 105, 106, 109, 0, 0, 596,
+ 0, 582, 524, 0, 279, 596, 596, 412, 596, 333,
+ 573, 286, 0, 569, 570, 596, 335, 303, 334, 306,
+ 573, 286, 0, 569, 570, 0, 0, 0, 0, 262,
+ 0, 309, 561, 563, 562, 0, 0, 264, 258, 596,
+ 564, 559, 242, 241, 246, 247, 249, 292, 586, 19,
+ 0, 26, 197, 71, 16, 582, 587, 87, 79, 91,
+ 93, 0, 90, 92, 491, 537, 0, 584, 0, 492,
+ 0, 505, 552, 502, 0, 506, 0, 516, 538, 0,
+ 519, 546, 0, 521, 550, 454, 0, 443, 209, 210,
+ 377, 375, 0, 374, 373, 268, 0, 83, 77, 0,
+ 0, 0, 0, 0, 596, 0, 0, 0, 0, 397,
+ 61, 403, 0, 0, 396, 59, 392, 54, 0, 0,
+ 596, 316, 0, 0, 403, 319, 555, 524, 0, 0,
+ 324, 413, 414, 596, 415, 0, 596, 338, 0, 0,
+ 336, 0, 0, 403, 0, 0, 0, 0, 0, 403,
+ 0, 119, 450, 308, 0, 0, 261, 265, 253, 596,
+ 11, 282, 237, 89, 531, 349, 582, 342, 0, 379,
+ 0, 0, 299, 0, 499, 596, 551, 508, 536, 509,
+ 509, 509, 543, 509, 531, 509, 434, 372, 584, 584,
+ 495, 496, 596, 596, 357, 0, 540, 357, 357, 355,
+ 0, 0, 266, 75, 42, 240, 569, 570, 0, 569,
+ 570, 0, 0, 39, 195, 38, 196, 62, 0, 36,
+ 193, 37, 194, 60, 393, 394, 0, 0, 0, 0,
+ 487, 314, 582, 582, 0, 490, 524, 0, 0, 417,
+ 339, 0, 12, 419, 0, 300, 0, 301, 0, 0,
+ 311, 264, 596, 248, 350, 347, 534, 0, 385, 0,
+ 0, 0, 504, 0, 512, 0, 514, 0, 520, 0,
+ 517, 522, 0, 0, 0, 494, 0, 353, 354, 357,
+ 365, 539, 0, 368, 0, 370, 390, 267, 403, 233,
+ 232, 35, 192, 407, 405, 0, 0, 489, 488, 322,
+ 0, 0, 416, 0, 96, 103, 0, 418, 0, 304,
+ 307, 0, 409, 410, 408, 0, 0, 345, 383, 584,
+ 381, 384, 388, 387, 509, 509, 509, 509, 378, 376,
+ 287, 0, 497, 596, 0, 356, 363, 357, 357, 357,
+ 541, 357, 357, 56, 317, 0, 102, 0, 596, 0,
+ 596, 596, 0, 351, 348, 0, 343, 0, 380, 513,
+ 0, 510, 515, 518, 573, 286, 352, 0, 360, 0,
+ 362, 0, 369, 0, 366, 371, 325, 99, 101, 0,
+ 569, 570, 411, 337, 312, 0, 346, 0, 382, 509,
+ 357, 357, 357, 357, 97, 344, 511, 361, 0, 358,
+ 364, 367, 357, 359
};
/* YYPGOTO[NTERM-NUM]. */
@@ -2412,42 +2412,42 @@ static const yytype_int16 yytable[] =
668, 688, 305, 533, 668, 662, 399, 629, 766, 642,
258, 264, 209, 671, 265, 314, 705, 776, 652, 885,
200, 600, 812, 608, 970, 387, 305, 694, 951, 614,
- 617, 295, 629, 336, 119, 119, 267, 272, -564, 416,
+ 617, 295, 629, 336, 119, 119, 267, 272, -566, 416,
748, 749, 119, 274, -99, 271, 800, 242, 262, 262,
- 384, -472, 262, -101, 394, 473, 324, 326, 328, 330,
- -96, 209, -475, 83, 380, 535, 728, 841, 535, 422,
- 535, 629, 535, -474, 535, -103, -476, 477, -102, -104,
+ 384, -474, 262, -101, 394, 473, 324, 326, 328, 330,
+ -96, 209, -477, 83, 380, 535, 728, 841, 535, 422,
+ 535, 629, 535, -476, 535, -103, -478, 477, -102, -104,
431, 479, 691, 119, 296, 300, -98, 256, 256, 695,
- 397, 256, -471, 646, 398, 794, 629, 497, 498, 499,
- 500, -466, 987, 387, 3, -100, 382, 119, 242, 970,
- 261, 261, 279, 501, 261, -466, 393, 424, -475, 556,
- -96, -97, 267, 272, 283, 533, 951, 808, 801, -474,
- -477, 842, -476, 630, 345, 388, 238, 560, 393, 239,
- 240, 470, 697, 516, 847, -103, 261, 261, -564, 853,
- -466, 765, 83, 439, -564, 426, 427, -466, -401, -91,
- 348, -567, 209, 209, 453, 495, 490, 241, -93, 242,
- -568, 986, 286, 720, 489, -88, 560, 560, 858, 238,
- 471, 390, 239, 240, 884, 825, -477, 353, 825, 450,
- -95, 454, 314, -94, 476, -69, 391, 200, 451, -479,
+ 397, 256, -473, 646, 398, 794, 629, 497, 498, 499,
+ 500, -468, 987, 387, 3, -100, 382, 119, 242, 970,
+ 261, 261, 279, 501, 261, -468, 393, 424, -477, 556,
+ -96, -97, 267, 272, 283, 533, 951, 808, 801, -476,
+ -479, 842, -478, 630, 345, 388, 238, 560, 393, 239,
+ 240, 470, 697, 516, 847, -103, 261, 261, -566, 853,
+ -468, 765, 83, 439, -566, 426, 427, -468, -403, -91,
+ 348, -569, 209, 209, 453, 495, 490, 241, -93, 242,
+ -570, 986, 286, 720, 489, -88, 560, 560, 858, 238,
+ 471, 390, 239, 240, 884, 825, -479, 353, 825, 450,
+ -95, 454, 314, -94, 476, -69, 391, 200, 451, -481,
451, -90, 483, 483, 460, 671, 812, 483, -102, 436,
241, 392, 242, 388, 209, 717, -83, 721, 209, 266,
- -92, -401, 209, 209, 481, 668, 668, 83, 786, 290,
- 347, 490, 83, 83, -471, -401, -89, 286, 833, -103,
- 83, 266, 506, 672, 376, 377, 378, -478, -480, 260,
- 677, 305, 472, 475, 942, -479, -466, 352, -470, 274,
- 478, 683, -96, 402, 461, 415, 516, 507, -401, 410,
- -401, 552, 762, 825, 535, 558, 562, -401, 423, 543,
+ -92, -403, 209, 209, 481, 668, 668, 83, 786, 290,
+ 347, 490, 83, 83, -473, -403, -89, 286, 833, -103,
+ 83, 266, 506, 672, 376, 377, 378, -480, -482, 260,
+ 677, 305, 472, 475, 942, -481, -468, 352, -472, 274,
+ 478, 683, -96, 402, 461, 415, 516, 507, -403, 410,
+ -403, 552, 762, 825, 535, 558, 562, -403, 423, 543,
544, 545, 546, -88, 419, 83, 209, 209, 209, 209,
83, 209, 209, 290, 432, 209, 626, 83, 305, 774,
- 567, 428, 262, -478, -480, 69, 892, 775, 808, 542,
- 547, 530, -466, -98, -470, 562, 562, 437, 808, 460,
- 239, 240, 838, 907, 908, 411, 554, -98, -328, 209,
+ 567, 428, 262, -480, -482, 69, 892, 775, 808, 542,
+ 547, 530, -468, -98, -472, 562, 562, 437, 808, 460,
+ 239, 240, 838, 907, 908, 411, 554, -98, -330, 209,
808, 554, 119, 434, 600, -100, 608, 256, 880, 567,
- 567, 256, -328, 460, 727, 717, 439, 606, 533, 753,
+ 567, 256, -330, 460, 727, 717, 439, 606, 533, 753,
606, 448, 637, 209, 42, 83, 209, 43, 442, 460,
261, 687, 467, 489, 261, 83, 665, 353, 460, 209,
- 606, 392, 792, 83, 788, 843, 276, -328, 209, 119,
- 849, 851, -68, 83, -328, 474, 606, 675, 676, 876,
+ 606, 392, 792, 83, 788, 843, 276, -330, 209, 119,
+ 849, 851, -68, 83, -330, 474, 606, 675, 676, 876,
863, 516, 943, 486, 785, 606, 451, 451, 607, -103,
237, 468, 60, 490, 480, 102, 416, 286, 331, 332,
-98, 679, 671, -98, -98, 83, 488, -97, 660, 756,
@@ -2460,66 +2460,66 @@ static const yytype_int16 yytable[] =
381, 635, 669, 726, 864, 607, 921, 382, 724, 639,
744, -100, 256, 746, 788, 101, -98, 661, -97, 261,
516, 256, 736, 238, 529, 305, 239, 240, 673, 101,
- 607, 744, 276, 686, 678, 261, 560, -90, -565, 119,
- 681, 119, 560, 404, 261, -83, 890, 560, 560, -582,
- 448, 700, -582, -582, 241, -100, 242, 380, 794, 638,
+ 607, 744, 276, 686, 678, 261, 560, -90, -567, 119,
+ 681, 119, 560, 404, 261, -83, 890, 560, 560, -584,
+ 448, 700, -584, -584, 241, -100, 242, 380, 794, 638,
497, 498, 499, 500, 261, 703, 271, 645, 261, 271,
724, 724, 704, 740, 730, 420, 501, 657, 101, 706,
- 101, 745, 242, 752, 747, 256, 1009, 271, -274, 380,
+ 101, 745, 242, 752, 747, 256, 1009, 271, -276, 380,
209, 83, 405, 764, 767, 261, 767, 709, 261, 382,
- 629, -470, -274, 767, 886, 926, 119, 711, 261, 784,
- 237, 712, 760, 483, 743, -470, 780, 200, 454, 714,
+ 629, -472, -276, 767, 886, 926, 119, 711, 261, 784,
+ 237, 712, 760, 483, 743, -472, 780, 200, 454, 714,
489, 781, 936, 209, 421, 400, 401, 451, 938, 257,
- 257, 382, 729, 257, 554, 739, 316, -274, 317, 318,
- 200, 854, -100, 267, -274, 276, 267, 985, -565, 741,
- -470, 731, -100, 560, -565, -100, -100, -470, 429, 754,
+ 257, 382, 729, 257, 554, 739, 316, -276, 317, 318,
+ 200, 854, -100, 267, -276, 276, 267, 985, -567, 741,
+ -472, 731, -100, 560, -567, -100, -100, -472, 429, 754,
280, 282, 739, -92, 267, 257, 298, 768, 765, 101,
927, 928, 380, 716, 755, 562, 975, 334, 335, 101,
101, 562, 845, -100, 765, -100, 562, 562, 319, 320,
83, 948, 460, 497, 498, 499, 500, 305, 83, 567,
902, 903, 209, 353, 773, 567, 209, 430, 724, 501,
567, 567, 779, 782, 382, 783, 83, 83, 834, 606,
- 790, 869, -571, 848, 873, 793, 83, 789, 242, 874,
+ 790, 869, -573, 848, 873, 793, 83, 789, 242, 874,
710, 101, 713, 83, 816, 101, 209, 861, 883, 101,
101, 867, 343, 344, 101, 83, 83, 451, 871, 101,
101, -97, 238, 83, 875, 239, 240, 101, 374, 375,
376, 377, 378, 702, 616, 618, 276, 276, 83, 83,
607, 534, -89, 317, 318, 877, 887, 888, 119, 803,
- 702, 702, 889, 694, 893, -571, 895, 897, 905, 261,
- 261, 899, 562, 911, 906, 909, 616, 618, 912, -571,
+ 702, 702, 889, 694, 893, -573, 895, 897, 905, 261,
+ 261, 899, 562, 911, 906, 909, 616, 618, 912, -573,
502, 914, 101, 101, 101, 101, 101, 101, 101, 101,
916, 918, 101, 979, 101, 923, 567, 101, 238, 924,
929, 239, 240, 319, 320, 256, 83, 83, 505, 506,
- 939, 940, -571, 946, -571, 933, 206, 206, -567, 83,
- 767, -571, 206, 952, 682, 469, 101, 493, 261, 241,
+ 939, 940, -573, 946, -573, 933, 206, 206, -569, 83,
+ 767, -573, 206, 952, 682, 469, 101, 493, 261, 241,
953, 242, 960, 958, 507, 959, 101, 101, 973, 380,
- 329, 380, -284, 317, 318, 444, 445, 446, 334, 119,
- 101, 974, 101, 101, 119, -473, -284, 976, 990, 257,
- 997, 539, 101, 257, 317, 318, 101, 988, 1006, -473,
+ 329, 380, -286, 317, 318, 444, 445, 446, 334, 119,
+ 101, 974, 101, 101, 119, -475, -286, 976, 990, 257,
+ 997, 539, 101, 257, 317, 318, 101, 988, 1006, -475,
101, 857, 999, 1001, 421, 101, 494, 276, 83, 1003,
- 101, 382, 810, 382, 83, 813, 83, 870, -273, 83,
- 1014, -284, 1015, 319, 320, -568, 119, 828, -284, 878,
- 879, 702, -273, 1017, -473, 238, -567, 882, 239, 240,
- -568, -473, 101, 1024, 319, 320, 460, 680, 637, 767,
- 396, 101, 1028, 891, 218, -567, 209, 124, 1013, 1018,
- 323, 317, 318, 817, 1012, 418, 241, -273, 242, 101,
- 553, 418, 855, 606, -273, 564, 569, 570, 571, 572,
+ 101, 382, 810, 382, 83, 813, 83, 870, -275, 83,
+ 1014, -286, 1015, 319, 320, -570, 119, 828, -286, 878,
+ 879, 702, -275, 1017, -475, 238, -569, 882, 239, 240,
+ -570, -475, 101, 1024, 319, 320, 460, 680, 637, 767,
+ 396, 101, 1028, 891, 218, -569, 209, 124, 1013, 1018,
+ 323, 317, 318, 817, 1012, 418, 241, -275, 242, 101,
+ 553, 418, 855, 606, -275, 564, 569, 570, 571, 572,
573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
583, 584, 585, 586, 587, 588, 589, 590, 591, 592,
593, 594, 438, 202, 257, 820, 101, 261, 441, 930,
- 925, 319, 320, 804, 615, 615, 452, 962, -567, -568,
- -285, 967, 809, 937, 607, 894, 896, 898, 257, 900,
- 0, 901, -567, 0, -285, 733, 0, 100, 0, 100,
+ 925, 319, 320, 804, 615, 615, 452, 962, -569, -570,
+ -287, 967, 809, 937, 607, 894, 896, 898, 257, 900,
+ 0, 901, -569, 0, -287, 733, 0, 100, 0, 100,
122, 122, 615, 0, 257, 0, 615, 615, 223, 380,
0, 206, 206, 257, 961, 0, 0, 325, 317, 318,
- 0, 0, 659, 0, 0, -567, 663, -567, 380, -285,
- 664, -567, 0, 667, -567, 670, -285, 298, 0, 256,
- 0, 0, -568, 0, 734, 100, 0, 977, 980, 307,
- 981, 382, 0, 982, 615, 441, -568, 101, 101, 955,
+ 0, 0, 659, 0, 0, -569, 663, -569, 380, -287,
+ 664, -569, 0, 667, -569, 670, -287, 298, 0, 256,
+ 0, 0, -570, 0, 734, 100, 0, 977, 980, 307,
+ 981, 382, 0, 982, 615, 441, -570, 101, 101, 955,
0, 380, 261, 405, 667, 0, 0, 298, 319, 320,
382, 462, 465, 307, 0, 968, 0, 257, 971, 0,
- 844, 846, 0, 0, 0, 850, 852, 0, 0, -568,
- 101, -568, 0, 0, 699, -568, 978, 0, -568, 0,
+ 844, 846, 0, 0, 0, 850, 852, 0, 0, -570,
+ 101, -570, 0, 0, 699, -570, 978, 0, -570, 0,
797, 0, 0, 382, 794, 708, 497, 498, 499, 500,
100, 0, 0, 811, 844, 846, 815, 850, 852, 327,
317, 318, 501, 718, 719, 824, 0, 0, 0, 0,
@@ -2562,10 +2562,10 @@ static const yytype_int16 yytable[] =
1030, 1031, 353, 0, 0, 0, 366, 367, 648, 0,
1033, 0, 0, 0, 80, 0, 97, 366, 367, 80,
80, 794, 0, 497, 498, 499, 500, 80, 373, 374,
- 375, 376, 377, 378, -281, 0, 100, -281, -281, 501,
+ 375, 376, 377, 378, -283, 0, 100, -283, -283, 501,
0, 0, 98, 371, 372, 373, 374, 375, 376, 377,
378, 0, 0, 0, 0, 0, 0, 374, 375, 376,
- 377, 378, 307, 503, -281, -281, 0, -281, 0, 947,
+ 377, 378, 307, 503, -283, -283, 0, -283, 0, 947,
238, 257, 80, 239, 240, 206, 794, 80, 497, 498,
499, 500, 0, 0, 80, 0, 0, 563, 496, 0,
497, 498, 499, 500, 501, 0, 418, 448, 0, 0,
@@ -2609,21 +2609,21 @@ static const yytype_int16 yytable[] =
0, 0, 563, 507, 0, 0, 0, 563, 563, 0,
0, 0, 0, 80, 80, 0, 0, 0, 0, 0,
0, 0, 0, 80, 0, 0, 0, 0, 0, 0,
- 80, -594, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 80, 80, -594, -594, -594, -594, -594, -594,
- 80, -594, 0, 98, 97, 0, 0, -594, -594, 0,
- 0, 0, 0, 0, 0, 80, 80, 0, -594, -594,
- 0, -594, -594, -594, -594, -594, 0, 0, 0, 0,
+ 80, -596, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 80, 80, -596, -596, -596, -596, -596, -596,
+ 80, -596, 0, 98, 97, 0, 0, -596, -596, 0,
+ 0, 0, 0, 0, 0, 80, 80, 0, -596, -596,
+ 0, -596, -596, -596, -596, -596, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 563, 0, 0, 0, 0, 0, 0,
- -594, 0, 0, 80, 80, 0, 0, 0, 0, 0,
- 0, 0, 932, 0, -594, 0, 80, 0, 0, 0,
- 0, 0, 0, 0, -594, 98, 0, -594, -594, 0,
+ -596, 0, 0, 80, 80, 0, 0, 0, 0, 0,
+ 0, 0, 932, 0, -596, 0, 80, 0, 0, 0,
+ 0, 0, 0, 0, -596, 98, 0, -596, -596, 0,
0, 0, 0, 97, 0, 0, 0, 0, 0, 0,
- 306, 97, 0, 0, 0, 0, 0, -594, -594, 0,
- 0, 0, 0, 266, -594, -594, -594, -594, 0, 97,
+ 306, 97, 0, 0, 0, 0, 0, -596, -596, 0,
+ 0, 0, 0, 266, -596, -596, -596, -596, 0, 97,
97, 0, 0, 0, 0, 0, 0, 0, 0, 97,
0, 0, 0, 0, 0, 80, 97, 0, 0, 0,
0, 80, 0, 80, 0, 0, 80, 0, 97, 97,
@@ -2643,16 +2643,16 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 353, 354, 355, 356, 357, 358,
359, 360, 361, 362, 363, 364, 365, 0, 0, 366,
367, 97, 0, 0, 0, 0, 0, 97, 0, 97,
- 98, 0, 97, 353, -595, -595, -595, -595, 358, 359,
- 98, 98, -595, -595, 0, 0, 0, 0, 366, 367,
+ 98, 0, 97, 353, -597, -597, -597, -597, 358, 359,
+ 98, 98, -597, -597, 0, 0, 0, 0, 366, 367,
0, 0, 368, 98, 369, 370, 371, 372, 373, 374,
375, 376, 377, 378, 0, 0, 0, 0, 0, 0,
- 0, 0, -260, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -262, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 369, 370, 371, 372, 373, 374, 375,
376, 377, 378, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 98, 0, 0, 0, 0, 0, 98, 0,
- 98, -594, 4, 98, 5, 6, 7, 8, 9, 10,
+ 98, -596, 4, 98, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 0, 0, 0, 0, 0, 0,
15, 0, 16, 17, 18, 19, 0, 0, 0, 0,
0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
@@ -2663,90 +2663,90 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 49, 0, 0, 50, 51, 0, 52, 53, 0,
54, 0, 0, 55, 0, 56, 57, 58, 59, 60,
- 61, -466, 0, 62, -594, 0, 0, -594, -594, 0,
- 0, 0, 0, 0, -466, -466, -466, -466, -466, -466,
- 0, -466, 0, 63, 64, 65, 0, 0, -466, -466,
- 0, 0, 0, 0, 0, -594, 0, -594, -466, -466,
- 0, -466, -466, -466, -466, -466, 0, 0, 0, 0,
+ 61, -468, 0, 62, -596, 0, 0, -596, -596, 0,
+ 0, 0, 0, 0, -468, -468, -468, -468, -468, -468,
+ 0, -468, 0, 63, 64, 65, 0, 0, -468, -468,
+ 0, 0, 0, 0, 0, -596, 0, -596, -468, -468,
+ 0, -468, -468, -468, -468, -468, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 442, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, -466, -466, -466, -466, -466, -466, -466,
- -466, -466, -466, -466, -466, -466, 0, 0, -466, -466,
- -466, 0, -466, -466, 0, 0, 0, 0, 0, -466,
- 0, 0, 0, 0, -466, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, -466, 0, 0, -466, -466, 0,
- -466, -466, 0, -466, -466, -466, -466, -466, -466, -466,
- -466, -466, -466, 0, 0, -594, 0, 0, -466, -466,
- -466, -466, 0, 0, -466, -466, -466, -466, -594, -594,
- -594, -594, -594, -594, 0, -594, 0, 0, 0, 0,
- 0, 0, -594, -594, 0, 0, 0, 0, 0, 0,
- 0, 0, -594, -594, 0, -594, -594, -594, -594, -594,
+ 0, 0, 0, -468, -468, -468, -468, -468, -468, -468,
+ -468, -468, -468, -468, -468, -468, 0, 0, -468, -468,
+ -468, 0, -468, -468, 0, 0, 0, 0, 0, -468,
+ 0, 0, 0, 0, -468, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -468, 0, 0, -468, -468, 0,
+ -468, -468, 0, -468, -468, -468, -468, -468, -468, -468,
+ -468, -468, -468, 0, 0, -596, 0, 0, -468, -468,
+ -468, -468, 0, 0, -468, -468, -468, -468, -596, -596,
+ -596, -596, -596, -596, 0, -596, 0, 0, 0, 0,
+ 0, 0, -596, -596, 0, 0, 0, 0, 0, 0,
+ 0, 0, -596, -596, 0, -596, -596, -596, -596, -596,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, -594, -594, -594,
- -594, -594, -594, -594, -594, -594, -594, -594, -594, -594,
- 0, 0, -594, -594, -594, 0, 0, -594, 0, 0,
- 0, 0, 0, -594, 0, 0, 0, 0, -594, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, -594, 0,
- 0, -594, -594, 0, 0, -594, 0, -594, -594, -594,
- -594, -594, -594, -594, -594, -594, -594, 0, 0, -571,
- 0, 0, -594, -594, -594, -594, 0, 266, -594, -594,
- -594, -594, -571, -571, -571, 0, -571, -571, 0, -571,
- 0, 0, 0, 0, 0, -571, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, -571, -571, 0, -571,
- -571, -571, -571, -571, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -596, -596, -596,
+ -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
+ 0, 0, -596, -596, -596, 0, 0, -596, 0, 0,
+ 0, 0, 0, -596, 0, 0, 0, 0, -596, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, -596, 0,
+ 0, -596, -596, 0, 0, -596, 0, -596, -596, -596,
+ -596, -596, -596, -596, -596, -596, -596, 0, 0, -573,
+ 0, 0, -596, -596, -596, -596, 0, 266, -596, -596,
+ -596, -596, -573, -573, -573, 0, -573, -573, 0, -573,
+ 0, 0, 0, 0, 0, -573, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, -573, -573, 0, -573,
+ -573, -573, -573, -573, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, -571, -571, -571, -571, -571, -571, -571, -571, -571,
- -571, -571, -571, -571, 0, 0, -571, -571, -571, 0,
+ 0, -573, -573, -573, -573, -573, -573, -573, -573, -573,
+ -573, -573, -573, -573, 0, 0, -573, -573, -573, 0,
737, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, -571, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, -571, 0, 0, -571, -571, 0, -99, -571,
- 0, -571, -571, -571, -571, -571, -571, -571, -571, -571,
- -571, 0, 0, -571, 0, -571, -571, -571, 0, -91,
- 0, 0, -571, -571, -571, -571, -571, -571, -571, 0,
- -571, -571, 0, -571, 0, 0, 0, 0, 0, -571,
+ 0, 0, -573, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -573, 0, 0, -573, -573, 0, -99, -573,
+ 0, -573, -573, -573, -573, -573, -573, -573, -573, -573,
+ -573, 0, 0, -573, 0, -573, -573, -573, 0, -91,
+ 0, 0, -573, -573, -573, -573, -573, -573, -573, 0,
+ -573, -573, 0, -573, 0, 0, 0, 0, 0, -573,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- -571, -571, 0, -571, -571, -571, -571, -571, 0, 0,
+ -573, -573, 0, -573, -573, -573, -573, -573, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, -571, -571, -571, -571, -571,
- -571, -571, -571, -571, -571, -571, -571, -571, 0, 0,
- -571, -571, -571, 0, 737, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, -571, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, -571, 0, 0, -571,
- -571, 0, -99, -571, 0, -571, -571, -571, -571, -571,
- -571, -571, -571, -571, -571, 0, 0, -284, 0, -571,
- -571, -571, 0, -571, 0, 0, -571, -571, -571, -571,
- -284, -284, -284, 0, -284, -284, 0, -284, 0, 0,
+ 0, 0, 0, 0, 0, -573, -573, -573, -573, -573,
+ -573, -573, -573, -573, -573, -573, -573, -573, 0, 0,
+ -573, -573, -573, 0, 737, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, -573, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, -573, 0, 0, -573,
+ -573, 0, -99, -573, 0, -573, -573, -573, -573, -573,
+ -573, -573, -573, -573, -573, 0, 0, -286, 0, -573,
+ -573, -573, 0, -573, 0, 0, -573, -573, -573, -573,
+ -286, -286, -286, 0, -286, -286, 0, -286, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, -284, -284, 0, -284, -284, -284,
- -284, -284, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -286, -286, 0, -286, -286, -286,
+ -286, -286, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, -284,
- -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
- -284, -284, 0, 0, -284, -284, -284, 0, 738, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, -286,
+ -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
+ -286, -286, 0, 0, -286, -286, -286, 0, 738, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- -284, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- -284, 0, 0, -284, -284, 0, -101, -284, 0, -284,
- -284, -284, -284, -284, -284, -284, -284, -284, -284, 0,
- 0, -284, 0, 0, -284, -284, 0, -93, 0, 0,
- -284, -284, -284, -284, -284, -284, -284, 0, -284, -284,
- 0, -284, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, -284, -284,
- 0, -284, -284, -284, -284, -284, 0, 0, 0, 0,
+ -286, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ -286, 0, 0, -286, -286, 0, -101, -286, 0, -286,
+ -286, -286, -286, -286, -286, -286, -286, -286, -286, 0,
+ 0, -286, 0, 0, -286, -286, 0, -93, 0, 0,
+ -286, -286, -286, -286, -286, -286, -286, 0, -286, -286,
+ 0, -286, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, -286, -286,
+ 0, -286, -286, -286, -286, -286, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, -284, -284, -284, -284, -284, -284, -284,
- -284, -284, -284, -284, -284, -284, 0, 0, -284, -284,
- -284, 0, 738, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, -284, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, -284, 0, 0, -284, -284, 0,
- -101, -284, 0, -284, -284, -284, -284, -284, -284, -284,
- -284, -284, -284, 0, 0, 0, 0, 0, -284, -284,
- 0, -284, 0, 0, -284, -284, -284, -284, 284, 0,
+ 0, 0, 0, -286, -286, -286, -286, -286, -286, -286,
+ -286, -286, -286, -286, -286, -286, 0, 0, -286, -286,
+ -286, 0, 738, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -286, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -286, 0, 0, -286, -286, 0,
+ -101, -286, 0, -286, -286, -286, -286, -286, -286, -286,
+ -286, -286, -286, 0, 0, 0, 0, 0, -286, -286,
+ 0, -286, 0, 0, -286, -286, -286, -286, 284, 0,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- -594, -594, -594, 0, 0, -594, 15, 0, 16, 17,
+ -596, -596, -596, 0, 0, -596, 15, 0, 16, 17,
18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
0, 0, 28, 0, 30, 31, 32, 33, 34, 35,
@@ -2756,11 +2756,11 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 49, 0, 0,
50, 51, 0, 52, 53, 0, 54, 0, 0, 55,
0, 56, 57, 58, 59, 60, 61, 0, 0, 62,
- -594, 0, 0, -594, -594, 0, 0, 0, 0, 0,
+ -596, 0, 0, -596, -596, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
64, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, -594, 284, -594, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 14, 0, 0, -594, 0, -594, -594,
+ 0, -596, 284, -596, 5, 6, 7, 8, 9, 10,
+ 11, 12, 13, 14, 0, 0, -596, 0, -596, -596,
15, 0, 16, 17, 18, 19, 0, 0, 0, 0,
0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
27, 0, 0, 0, 0, 0, 28, 0, 30, 31,
@@ -2770,12 +2770,12 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 49, 0, 0, 50, 51, 0, 52, 53, 0,
54, 0, 0, 55, 0, 56, 57, 58, 59, 60,
- 61, 0, 0, 62, -594, 0, 0, -594, -594, 0,
+ 61, 0, 0, 62, -596, 0, 0, -596, -596, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 63, 64, 65, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, -594, 284, -594, 5, 6,
+ 0, 0, 0, 0, 0, -596, 284, -596, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 0, 0,
- -594, 0, 0, -594, 15, -594, 16, 17, 18, 19,
+ -596, 0, 0, -596, 15, -596, 16, 17, 18, 19,
0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
28, 0, 30, 31, 32, 33, 34, 35, 36, 37,
@@ -2784,12 +2784,12 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 49, 0, 0, 50, 51,
0, 52, 53, 0, 54, 0, 0, 55, 0, 56,
- 57, 58, 59, 60, 61, 0, 0, 62, -594, 0,
- 0, -594, -594, 0, 0, 0, 0, 0, 0, 0,
+ 57, 58, 59, 60, 61, 0, 0, 62, -596, 0,
+ 0, -596, -596, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 63, 64, 65,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, -594,
- 284, -594, 5, 6, 7, 8, 9, 10, 11, 12,
- 13, 14, 0, 0, -594, 0, 0, -594, 15, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, -596,
+ 284, -596, 5, 6, 7, 8, 9, 10, 11, 12,
+ 13, 14, 0, 0, -596, 0, 0, -596, 15, 0,
16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
0, 0, 0, 0, 28, 0, 30, 31, 32, 33,
@@ -2799,10 +2799,10 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
0, 0, 50, 51, 0, 52, 53, 0, 54, 0,
0, 55, 0, 56, 57, 58, 59, 60, 61, 0,
- 0, 62, -594, 0, 0, -594, -594, 4, 0, 5,
+ 0, 62, -596, 0, 0, -596, -596, 4, 0, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14, 0,
0, 63, 64, 65, 0, 15, 0, 16, 17, 18,
- 19, 0, 0, -594, 0, -594, 20, 21, 22, 23,
+ 19, 0, 0, -596, 0, -596, 20, 21, 22, 23,
24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
0, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 0, 40, 41, 42, 0, 0, 43,
@@ -2810,12 +2810,12 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 49, 0, 0, 50,
51, 0, 52, 53, 0, 54, 0, 0, 55, 0,
- 56, 57, 58, 59, 60, 61, 0, 0, 62, -594,
- 0, 0, -594, -594, 0, 0, 0, 0, 0, 0,
+ 56, 57, 58, 59, 60, 61, 0, 0, 62, -596,
+ 0, 0, -596, -596, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 63, 64,
- 65, 0, 0, -594, 0, 0, 0, 0, 0, 0,
- -594, 284, -594, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 0, -594, -594, 0, 0, 0, 15,
+ 65, 0, 0, -596, 0, 0, 0, 0, 0, 0,
+ -596, 284, -596, 5, 6, 7, 8, 9, 10, 11,
+ 12, 13, 14, 0, -596, -596, 0, 0, 0, 15,
0, 16, 17, 18, 19, 0, 0, 0, 0, 0,
20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
0, 0, 0, 0, 0, 28, 0, 30, 31, 32,
@@ -2825,10 +2825,10 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
49, 0, 0, 50, 51, 0, 52, 53, 0, 54,
0, 0, 55, 0, 56, 57, 58, 59, 60, 61,
- 0, 0, 62, -594, 0, 0, -594, -594, 284, 0,
+ 0, 0, 62, -596, 0, 0, -596, -596, 284, 0,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
0, 0, 63, 64, 65, 0, 15, 0, 16, 17,
- 18, 19, 0, 0, -594, 0, -594, 20, 21, 22,
+ 18, 19, 0, 0, -596, 0, -596, 20, 21, 22,
23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
0, 0, 28, 0, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 0, 40, 41, 42, 0, 0,
@@ -2837,10 +2837,10 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 49, 0, 0,
285, 51, 0, 52, 53, 0, 54, 0, 0, 55,
0, 56, 57, 58, 59, 60, 61, 0, 0, 62,
- -594, 0, 0, -594, -594, 284, 0, 5, 6, 7,
+ -596, 0, 0, -596, -596, 284, 0, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 0, 0, 63,
64, 65, 0, 15, 0, 16, 17, 18, 19, 0,
- -594, -594, 0, -594, 20, 21, 22, 23, 24, 25,
+ -596, -596, 0, -596, 20, 21, 22, 23, 24, 25,
26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
0, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 0, 40, 41, 42, 0, 0, 43, 0, 0,
@@ -2848,11 +2848,11 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 49, 0, 0, 50, 51, 0,
52, 53, 0, 54, 0, 0, 55, 0, 56, 57,
- 58, 59, 60, 61, 0, 0, 62, -594, 0, 0,
- -594, -594, 284, 0, 5, 6, 7, 8, 9, 10,
+ 58, 59, 60, 61, 0, 0, 62, -596, 0, 0,
+ -596, -596, 284, 0, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 0, 0, 63, 64, 65, 0,
- 15, 0, 16, 17, 18, 19, 0, -594, -594, 0,
- -594, 20, 21, 22, 23, 24, 25, 26, 0, 0,
+ 15, 0, 16, 17, 18, 19, 0, -596, -596, 0,
+ -596, 20, 21, 22, 23, 24, 25, 26, 0, 0,
27, 0, 0, 0, 0, 0, 28, 0, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 0, 40,
41, 42, 0, 0, 43, 0, 0, 44, 45, 0,
@@ -2860,12 +2860,12 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 49, 0, 0, 50, 51, 0, 52, 53, 0,
54, 0, 0, 55, 0, 56, 57, 58, 59, 60,
- 61, 0, 0, 62, -594, 0, 0, -594, -594, 0,
+ 61, 0, 0, 62, -596, 0, 0, -596, -596, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 64, 65, 0, 0, -594, 0,
- 0, 0, 0, 0, 0, -594, 284, -594, 5, 6,
+ 0, 0, 0, 63, 64, 65, 0, 0, -596, 0,
+ 0, 0, 0, 0, 0, -596, 284, -596, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 0, 0,
- -594, 0, 0, 0, 15, 0, 16, 17, 18, 19,
+ -596, 0, 0, 0, 15, 0, 16, 17, 18, 19,
0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
28, 0, 30, 31, 32, 33, 34, 35, 36, 37,
@@ -2874,11 +2874,11 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 49, 0, 0, 50, 51,
0, 52, 53, 0, 54, 0, 0, 55, 0, 56,
- 57, 58, 59, 60, 61, 0, 0, 62, -594, 0,
- 0, -594, -594, 0, 0, 5, 6, 7, 8, 9,
+ 57, 58, 59, 60, 61, 0, 0, 62, -596, 0,
+ 0, -596, -596, 0, 0, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 0, 0, 63, 64, 65,
- 0, 15, 0, 16, 17, 18, 19, 0, 0, -594,
- 0, -594, 20, 21, 22, 23, 24, 25, 26, 0,
+ 0, 15, 0, 16, 17, 18, 19, 0, 0, -596,
+ 0, -596, 20, 21, 22, 23, 24, 25, 26, 0,
0, 27, 0, 0, 0, 0, 0, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 0,
40, 41, 42, 0, 0, 43, 0, 0, 44, 45,
@@ -2927,21 +2927,7 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 185, 186, 187, 188, 189, 190, 191, 192,
193, 194, 0, 195, 196, 0, 0, 0, 0, 0,
- 0, 197, 198, -564, -564, -564, -564, -564, -564, -564,
- -564, -564, 0, 0, 0, 0, 0, 0, 0, -564,
- 0, -564, -564, -564, -564, 0, -564, 0, 0, 0,
- -564, -564, -564, -564, -564, -564, -564, 0, 0, -564,
- 0, 0, 0, 0, 0, 0, 0, 0, -564, -564,
- -564, -564, -564, -564, -564, -564, -564, 0, -564, -564,
- -564, 0, 0, -564, 0, 0, -564, -564, 0, -564,
- -564, -564, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- -564, 0, 0, -564, -564, 0, -564, -564, 0, -564,
- -564, -564, -564, 0, -564, -564, -564, -564, -564, -564,
- 0, 0, -564, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, -564, -564, -564, 0, -564, 0, 0, 0,
- 0, 0, -564, -566, -566, -566, -566, -566, -566, -566,
+ 0, 197, 198, -566, -566, -566, -566, -566, -566, -566,
-566, -566, 0, 0, 0, 0, 0, 0, 0, -566,
0, -566, -566, -566, -566, 0, -566, 0, 0, 0,
-566, -566, -566, -566, -566, -566, -566, 0, 0, -566,
@@ -2955,79 +2941,93 @@ static const yytype_int16 yytable[] =
0, 0, -566, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -566, -566, -566, 0, -566, 0, 0, 0,
- 0, 0, -566, -565, -565, -565, -565, -565, -565, -565,
- -565, -565, 0, 0, 0, 0, 0, 0, 0, -565,
- 0, -565, -565, -565, -565, 0, -565, 0, 0, 0,
- -565, -565, -565, -565, -565, -565, -565, 0, 0, -565,
- 0, 0, 0, 0, 0, 0, 0, 0, -565, -565,
- -565, -565, -565, -565, -565, -565, -565, 0, -565, -565,
- -565, 0, 0, -565, 0, 0, -565, -565, 0, -565,
- -565, -565, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- -565, 0, 0, -565, -565, 0, -565, -565, 0, -565,
- -565, -565, -565, 0, -565, -565, -565, -565, -565, -565,
- 0, 0, -565, 0, 0, 0, 0, 0, 0, -567,
- -567, -567, -567, -567, -567, -567, -567, -567, 0, 0,
- 0, 0, -565, -565, -565, -567, -565, -567, -567, -567,
- -567, 0, -565, 0, 0, 0, -567, -567, -567, -567,
- -567, -567, -567, 0, 0, -567, 0, 0, 0, 0,
- 0, 0, 0, 0, -567, -567, -567, -567, -567, -567,
- -567, -567, -567, 0, -567, -567, -567, 0, 0, -567,
- 0, 0, -567, -567, 0, -567, -567, -567, 0, 0,
+ 0, 0, -566, -568, -568, -568, -568, -568, -568, -568,
+ -568, -568, 0, 0, 0, 0, 0, 0, 0, -568,
+ 0, -568, -568, -568, -568, 0, -568, 0, 0, 0,
+ -568, -568, -568, -568, -568, -568, -568, 0, 0, -568,
+ 0, 0, 0, 0, 0, 0, 0, 0, -568, -568,
+ -568, -568, -568, -568, -568, -568, -568, 0, -568, -568,
+ -568, 0, 0, -568, 0, 0, -568, -568, 0, -568,
+ -568, -568, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, -567, 771, 0, -567,
- -567, 0, -567, -567, 0, -567, -567, -567, -567, 0,
- -567, -567, -567, -567, -567, -567, 0, 0, -567, 0,
- 0, 0, 0, 0, 0, -99, -568, -568, -568, -568,
- -568, -568, -568, -568, -568, 0, 0, 0, -567, -567,
- -567, 0, -568, 0, -568, -568, -568, -568, -567, 0,
- 0, 0, 0, -568, -568, -568, -568, -568, -568, -568,
+ -568, 0, 0, -568, -568, 0, -568, -568, 0, -568,
+ -568, -568, -568, 0, -568, -568, -568, -568, -568, -568,
0, 0, -568, 0, 0, 0, 0, 0, 0, 0,
- 0, -568, -568, -568, -568, -568, -568, -568, -568, -568,
- 0, -568, -568, -568, 0, 0, -568, 0, 0, -568,
- -568, 0, -568, -568, -568, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, -568, 772, 0, -568, -568, 0, -568,
- -568, 0, -568, -568, -568, -568, 0, -568, -568, -568,
- -568, -568, -568, 0, 0, -568, 0, 0, 0, 0,
- 0, 0, -101, -253, -253, -253, -253, -253, -253, -253,
- -253, -253, 0, 0, 0, -568, -568, -568, 0, -253,
- 0, -253, -253, -253, -253, -568, 0, 0, 0, 0,
- -253, -253, -253, -253, -253, -253, -253, 0, 0, -253,
- 0, 0, 0, 0, 0, 0, 0, 0, -253, -253,
- -253, -253, -253, -253, -253, -253, -253, 0, -253, -253,
- -253, 0, 0, -253, 0, 0, -253, -253, 0, -253,
- -253, -253, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -568, -568, -568, 0, -568, 0, 0, 0,
+ 0, 0, -568, -567, -567, -567, -567, -567, -567, -567,
+ -567, -567, 0, 0, 0, 0, 0, 0, 0, -567,
+ 0, -567, -567, -567, -567, 0, -567, 0, 0, 0,
+ -567, -567, -567, -567, -567, -567, -567, 0, 0, -567,
+ 0, 0, 0, 0, 0, 0, 0, 0, -567, -567,
+ -567, -567, -567, -567, -567, -567, -567, 0, -567, -567,
+ -567, 0, 0, -567, 0, 0, -567, -567, 0, -567,
+ -567, -567, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- -253, 0, 0, -253, -253, 0, -253, -253, 0, -253,
- -253, -253, -253, 0, -253, -253, -253, -253, -253, -253,
- 0, 0, -253, 0, 0, 0, 0, 0, 0, -569,
+ -567, 0, 0, -567, -567, 0, -567, -567, 0, -567,
+ -567, -567, -567, 0, -567, -567, -567, -567, -567, -567,
+ 0, 0, -567, 0, 0, 0, 0, 0, 0, -569,
-569, -569, -569, -569, -569, -569, -569, -569, 0, 0,
- 0, 0, -253, -253, -253, -569, 0, -569, -569, -569,
- -569, 0, 266, 0, 0, 0, -569, -569, -569, -569,
+ 0, 0, -567, -567, -567, -569, -567, -569, -569, -569,
+ -569, 0, -567, 0, 0, 0, -569, -569, -569, -569,
-569, -569, -569, 0, 0, -569, 0, 0, 0, 0,
0, 0, 0, 0, -569, -569, -569, -569, -569, -569,
-569, -569, -569, 0, -569, -569, -569, 0, 0, -569,
0, 0, -569, -569, 0, -569, -569, -569, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, -569, 0, 0, -569,
+ 0, 0, 0, 0, 0, 0, -569, 771, 0, -569,
-569, 0, -569, -569, 0, -569, -569, -569, -569, 0,
-569, -569, -569, -569, -569, -569, 0, 0, -569, 0,
- 0, 0, 0, 0, 0, -570, -570, -570, -570, -570,
- -570, -570, -570, -570, 0, 0, 0, 0, -569, -569,
- -569, -570, 0, -570, -570, -570, -570, 0, -569, 0,
- 0, 0, -570, -570, -570, -570, -570, -570, -570, 0,
- 0, -570, 0, 0, 0, 0, 0, 0, 0, 0,
- -570, -570, -570, -570, -570, -570, -570, -570, -570, 0,
- -570, -570, -570, 0, 0, -570, 0, 0, -570, -570,
- 0, -570, -570, -570, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -99, -570, -570, -570, -570,
+ -570, -570, -570, -570, -570, 0, 0, 0, -569, -569,
+ -569, 0, -570, 0, -570, -570, -570, -570, -569, 0,
+ 0, 0, 0, -570, -570, -570, -570, -570, -570, -570,
+ 0, 0, -570, 0, 0, 0, 0, 0, 0, 0,
+ 0, -570, -570, -570, -570, -570, -570, -570, -570, -570,
+ 0, -570, -570, -570, 0, 0, -570, 0, 0, -570,
+ -570, 0, -570, -570, -570, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, -570, 0, 0, -570, -570, 0, -570, -570,
- 0, -570, -570, -570, -570, 0, -570, -570, -570, -570,
- -570, -570, 0, 0, -570, 0, 0, 0, 0, 0,
+ 0, 0, 0, -570, 772, 0, -570, -570, 0, -570,
+ -570, 0, -570, -570, -570, -570, 0, -570, -570, -570,
+ -570, -570, -570, 0, 0, -570, 0, 0, 0, 0,
+ 0, 0, -101, -255, -255, -255, -255, -255, -255, -255,
+ -255, -255, 0, 0, 0, -570, -570, -570, 0, -255,
+ 0, -255, -255, -255, -255, -570, 0, 0, 0, 0,
+ -255, -255, -255, -255, -255, -255, -255, 0, 0, -255,
+ 0, 0, 0, 0, 0, 0, 0, 0, -255, -255,
+ -255, -255, -255, -255, -255, -255, -255, 0, -255, -255,
+ -255, 0, 0, -255, 0, 0, -255, -255, 0, -255,
+ -255, -255, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, -570, -570, -570, 0, 0, 0,
- 0, 0, 0, 0, -570, 125, 126, 127, 128, 129,
+ -255, 0, 0, -255, -255, 0, -255, -255, 0, -255,
+ -255, -255, -255, 0, -255, -255, -255, -255, -255, -255,
+ 0, 0, -255, 0, 0, 0, 0, 0, 0, -571,
+ -571, -571, -571, -571, -571, -571, -571, -571, 0, 0,
+ 0, 0, -255, -255, -255, -571, 0, -571, -571, -571,
+ -571, 0, 266, 0, 0, 0, -571, -571, -571, -571,
+ -571, -571, -571, 0, 0, -571, 0, 0, 0, 0,
+ 0, 0, 0, 0, -571, -571, -571, -571, -571, -571,
+ -571, -571, -571, 0, -571, -571, -571, 0, 0, -571,
+ 0, 0, -571, -571, 0, -571, -571, -571, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, -571, 0, 0, -571,
+ -571, 0, -571, -571, 0, -571, -571, -571, -571, 0,
+ -571, -571, -571, -571, -571, -571, 0, 0, -571, 0,
+ 0, 0, 0, 0, 0, -572, -572, -572, -572, -572,
+ -572, -572, -572, -572, 0, 0, 0, 0, -571, -571,
+ -571, -572, 0, -572, -572, -572, -572, 0, -571, 0,
+ 0, 0, -572, -572, -572, -572, -572, -572, -572, 0,
+ 0, -572, 0, 0, 0, 0, 0, 0, 0, 0,
+ -572, -572, -572, -572, -572, -572, -572, -572, -572, 0,
+ -572, -572, -572, 0, 0, -572, 0, 0, -572, -572,
+ 0, -572, -572, -572, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -572, 0, 0, -572, -572, 0, -572, -572,
+ 0, -572, -572, -572, -572, 0, -572, -572, -572, -572,
+ -572, -572, 0, 0, -572, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -572, -572, -572, 0, 0, 0,
+ 0, 0, 0, 0, -572, 125, 126, 127, 128, 129,
130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
140, 141, 142, 143, 144, 145, 146, 147, 148, 0,
0, 0, 149, 150, 151, 224, 225, 226, 227, 156,
@@ -3529,17 +3529,17 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 368, 0, 369, 370, 371, 372, 373, 374, 375,
376, 377, 378, 0, 0, 0, 0, 0, 0, 0,
- 368, -260, 369, 370, 371, 372, 373, 374, 375, 376,
+ 368, -262, 369, 370, 371, 372, 373, 374, 375, 376,
377, 378, 0, 0, 0, 0, 0, 0, 0, 0,
- -261, 353, 354, 355, 356, 357, 358, 359, 360, 361,
+ -263, 353, 354, 355, 356, 357, 358, 359, 360, 361,
362, 363, 364, 365, 0, 0, 366, 367, 0, 0,
353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
363, 364, 365, 0, 0, 366, 367, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 368,
0, 369, 370, 371, 372, 373, 374, 375, 376, 377,
- 378, 0, 0, 0, 0, 0, 0, 0, 368, -262,
+ 378, 0, 0, 0, 0, 0, 0, 0, 368, -264,
369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
- 0, 0, 0, 0, 0, 0, 0, 0, -263, 353,
+ 0, 0, 0, 0, 0, 0, 0, 0, -265, 353,
354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
364, 365, 0, 0, 366, 367, 0, 0, 0, 447,
353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
@@ -3549,7 +3549,7 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 0, 368, 0,
369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
- 363, -595, -595, 0, 0, 366, 367, 353, 354, 355,
+ 363, -597, -597, 0, 0, 366, 367, 353, 354, 355,
356, 357, 358, 359, 360, 0, 362, 363, 0, 0,
0, 0, 366, 367, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -4863,43 +4863,43 @@ static const yytype_int16 yyr1[] =
184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
- 184, 184, 184, 185, 185, 185, 185, 186, 186, 187,
- 187, 188, 188, 189, 189, 189, 189, 189, 190, 190,
- 190, 190, 190, 192, 191, 193, 194, 194, 195, 195,
- 196, 196, 196, 196, 197, 197, 197, 198, 198, 198,
- 198, 198, 198, 198, 198, 198, 199, 198, 200, 201,
- 198, 202, 198, 198, 198, 198, 198, 198, 198, 198,
- 198, 198, 198, 198, 198, 203, 204, 198, 198, 198,
- 205, 206, 198, 207, 208, 198, 198, 198, 209, 210,
- 198, 211, 198, 212, 213, 198, 214, 198, 215, 216,
- 198, 217, 218, 198, 198, 198, 198, 198, 219, 220,
- 220, 220, 221, 221, 222, 222, 223, 223, 224, 224,
- 225, 225, 225, 225, 225, 225, 225, 225, 226, 225,
- 227, 227, 227, 227, 228, 228, 229, 229, 229, 229,
+ 184, 184, 184, 184, 184, 185, 185, 185, 185, 186,
+ 186, 187, 187, 188, 188, 189, 189, 189, 189, 189,
+ 190, 190, 190, 190, 190, 192, 191, 193, 194, 194,
+ 195, 195, 196, 196, 196, 196, 197, 197, 197, 198,
+ 198, 198, 198, 198, 198, 198, 198, 198, 199, 198,
+ 200, 201, 198, 202, 198, 198, 198, 198, 198, 198,
+ 198, 198, 198, 198, 198, 198, 198, 203, 204, 198,
+ 198, 198, 205, 206, 198, 207, 208, 198, 198, 198,
+ 209, 210, 198, 211, 198, 212, 213, 198, 214, 198,
+ 215, 216, 198, 217, 218, 198, 198, 198, 198, 198,
+ 219, 220, 220, 220, 221, 221, 222, 222, 223, 223,
+ 224, 224, 225, 225, 225, 225, 225, 225, 225, 225,
+ 226, 225, 227, 227, 227, 227, 228, 228, 229, 229,
229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
- 229, 230, 230, 232, 231, 231, 231, 233, 233, 234,
- 234, 235, 235, 236, 236, 237, 237, 239, 238, 240,
- 240, 240, 240, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 243, 242, 244, 242, 245, 246, 246, 247,
- 247, 248, 248, 248, 249, 249, 250, 250, 251, 251,
- 251, 251, 252, 252, 253, 253, 253, 253, 254, 254,
- 255, 256, 255, 255, 255, 257, 257, 258, 258, 259,
- 260, 260, 261, 261, 262, 262, 263, 264, 263, 265,
- 265, 266, 266, 267, 268, 268, 268, 268, 268, 268,
- 269, 269, 270, 270, 270, 270, 271, 271, 271, 271,
- 271, 272, 272, 273, 273, 273, 273, 273, 273, 273,
- 273, 274, 274, 275, 276, 275, 277, 277, 277, 278,
- 279, 279, 280, 280, 281, 281, 282, 282, 283, 283,
- 284, 284, 285, 285, 285, 285, 286, 286, 287, 287,
+ 229, 229, 229, 230, 230, 232, 231, 231, 231, 233,
+ 233, 234, 234, 235, 235, 236, 236, 237, 237, 239,
+ 238, 240, 240, 240, 240, 241, 241, 241, 241, 241,
+ 241, 241, 241, 241, 243, 242, 244, 242, 245, 246,
+ 246, 247, 247, 248, 248, 248, 249, 249, 250, 250,
+ 251, 251, 251, 251, 252, 252, 253, 253, 253, 253,
+ 254, 254, 255, 256, 255, 255, 255, 257, 257, 258,
+ 258, 259, 260, 260, 261, 261, 262, 262, 263, 264,
+ 263, 265, 265, 266, 266, 267, 268, 268, 268, 268,
+ 268, 268, 269, 269, 270, 270, 270, 270, 271, 271,
+ 271, 271, 271, 272, 272, 273, 273, 273, 273, 273,
+ 273, 273, 273, 274, 274, 275, 276, 275, 277, 277,
+ 277, 278, 279, 279, 280, 280, 281, 281, 282, 282,
+ 283, 283, 284, 284, 285, 285, 285, 285, 286, 286,
287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 288, 288, 288, 288, 288, 289, 289,
- 290, 291, 290, 292, 292, 293, 294, 295, 296, 296,
- 297, 297, 298, 298, 299, 299, 300, 300, 301, 302,
- 302, 303, 304, 303, 305, 305, 306, 306, 307, 307,
- 308, 308, 308, 308, 309, 309, 309, 310, 310, 310,
- 310, 311, 311, 311, 312, 312, 313, 313, 314, 314,
- 315, 315, 316, 316, 317, 318, 318, 318, 319, 319,
- 319, 320, 321, 321, 322
+ 287, 287, 287, 287, 287, 288, 288, 288, 288, 288,
+ 289, 289, 290, 291, 290, 292, 292, 293, 294, 295,
+ 296, 296, 297, 297, 298, 298, 299, 299, 300, 300,
+ 301, 302, 302, 303, 304, 303, 305, 305, 306, 306,
+ 307, 307, 308, 308, 308, 308, 309, 309, 309, 310,
+ 310, 310, 310, 311, 311, 311, 312, 312, 313, 313,
+ 314, 314, 315, 315, 316, 316, 317, 318, 318, 318,
+ 319, 319, 319, 320, 321, 321, 322
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -4925,46 +4925,46 @@ static const yytype_int8 yyr2[] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3, 3, 6, 5, 5, 5, 5, 4, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 4, 4, 2,
- 2, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 2, 2, 3, 3, 3, 3,
- 6, 6, 1, 1, 2, 4, 2, 1, 3, 3,
- 3, 1, 1, 1, 2, 2, 4, 2, 1, 2,
- 2, 4, 1, 0, 2, 2, 2, 1, 1, 3,
- 1, 2, 3, 4, 3, 4, 2, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 0, 4, 0, 0,
- 5, 0, 3, 3, 3, 2, 3, 3, 1, 2,
- 4, 3, 2, 1, 2, 0, 0, 5, 6, 6,
- 0, 0, 7, 0, 0, 7, 5, 4, 0, 0,
- 9, 0, 6, 0, 0, 8, 0, 5, 0, 0,
- 7, 0, 0, 9, 1, 1, 1, 1, 1, 1,
- 1, 2, 1, 1, 1, 5, 1, 2, 1, 1,
- 1, 4, 6, 3, 5, 2, 4, 1, 0, 4,
- 4, 2, 2, 1, 2, 0, 6, 8, 4, 6,
- 4, 3, 6, 2, 4, 6, 2, 4, 2, 4,
- 1, 1, 1, 0, 4, 1, 4, 1, 4, 1,
- 3, 1, 1, 4, 1, 3, 3, 0, 5, 2,
- 4, 5, 5, 2, 4, 4, 3, 3, 3, 2,
- 1, 4, 0, 5, 0, 5, 5, 1, 1, 6,
- 1, 1, 1, 1, 2, 1, 2, 1, 1, 1,
- 1, 1, 1, 2, 1, 1, 2, 3, 1, 2,
- 1, 0, 4, 1, 2, 2, 3, 2, 3, 1,
- 1, 2, 1, 2, 1, 2, 1, 0, 4, 2,
- 3, 1, 4, 2, 1, 1, 1, 1, 1, 2,
- 2, 3, 1, 1, 2, 2, 1, 1, 1, 1,
+ 2, 3, 2, 3, 3, 3, 3, 3, 3, 4,
+ 4, 2, 2, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 2, 2, 3, 3,
+ 3, 3, 6, 6, 1, 1, 2, 4, 2, 1,
+ 3, 3, 3, 1, 1, 1, 2, 2, 4, 2,
+ 1, 2, 2, 4, 1, 0, 2, 2, 2, 1,
+ 1, 3, 1, 2, 3, 4, 3, 4, 2, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 0, 4,
+ 0, 0, 5, 0, 3, 3, 3, 2, 3, 3,
+ 1, 2, 4, 3, 2, 1, 2, 0, 0, 5,
+ 6, 6, 0, 0, 7, 0, 0, 7, 5, 4,
+ 0, 0, 9, 0, 6, 0, 0, 8, 0, 5,
+ 0, 0, 7, 0, 0, 9, 1, 1, 1, 1,
+ 1, 1, 1, 2, 1, 1, 1, 5, 1, 2,
+ 1, 1, 1, 4, 6, 3, 5, 2, 4, 1,
+ 0, 4, 4, 2, 2, 1, 2, 0, 6, 8,
+ 4, 6, 4, 3, 6, 2, 4, 6, 2, 4,
+ 2, 4, 1, 1, 1, 0, 4, 1, 4, 1,
+ 4, 1, 3, 1, 1, 4, 1, 3, 3, 0,
+ 5, 2, 4, 5, 5, 2, 4, 4, 3, 3,
+ 3, 2, 1, 4, 0, 5, 0, 5, 5, 1,
+ 1, 6, 1, 1, 1, 1, 2, 1, 2, 1,
+ 1, 1, 1, 1, 1, 2, 1, 1, 2, 3,
+ 1, 2, 1, 0, 4, 1, 2, 2, 3, 2,
+ 3, 1, 1, 2, 1, 2, 1, 2, 1, 0,
+ 4, 2, 3, 1, 4, 2, 1, 1, 1, 1,
+ 1, 2, 2, 3, 1, 1, 2, 2, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 0, 0, 4, 3, 3, 2, 2,
- 2, 1, 2, 1, 1, 3, 1, 3, 1, 1,
- 2, 1, 4, 2, 2, 1, 2, 0, 6, 8,
- 4, 6, 4, 6, 2, 4, 6, 2, 4, 2,
- 4, 1, 0, 1, 1, 1, 1, 1, 1, 1,
- 1, 0, 4, 1, 3, 2, 2, 2, 1, 3,
- 1, 3, 1, 1, 2, 1, 1, 1, 2, 2,
- 1, 1, 0, 4, 1, 2, 1, 3, 1, 2,
- 3, 3, 3, 2, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 0, 0, 4, 3, 3,
+ 2, 2, 2, 1, 2, 1, 1, 3, 1, 3,
+ 1, 1, 2, 1, 4, 2, 2, 1, 2, 0,
+ 6, 8, 4, 6, 4, 6, 2, 4, 6, 2,
+ 4, 2, 4, 1, 0, 1, 1, 1, 1, 1,
+ 1, 1, 1, 0, 4, 1, 3, 2, 2, 2,
+ 1, 3, 1, 3, 1, 1, 2, 1, 1, 1,
+ 2, 2, 1, 1, 0, 4, 1, 2, 1, 3,
+ 1, 2, 3, 3, 3, 2, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 0, 1, 0, 1, 2, 0, 1, 1, 1, 1,
- 1, 1, 1, 2, 0
+ 1, 1, 0, 1, 0, 1, 2, 0, 1, 1,
+ 1, 1, 1, 1, 1, 2, 0
};
@@ -6778,7 +6778,7 @@ yyreduce:
case 200:
#line 2122 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_dot3(p, (yyvsp[-2].nd), (yyvsp[0].nd));
+ (yyval.nd) = new_dot2(p, (yyvsp[-1].nd), new_nil(p));
}
#line 6784 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6786,7 +6786,7 @@ yyreduce:
case 201:
#line 2126 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "+", (yyvsp[0].nd));
+ (yyval.nd) = new_dot3(p, (yyvsp[-2].nd), (yyvsp[0].nd));
}
#line 6792 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6794,7 +6794,7 @@ yyreduce:
case 202:
#line 2130 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "-", (yyvsp[0].nd));
+ (yyval.nd) = new_dot3(p, (yyvsp[-1].nd), new_nil(p));
}
#line 6800 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6802,7 +6802,7 @@ yyreduce:
case 203:
#line 2134 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "*", (yyvsp[0].nd));
+ (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "+", (yyvsp[0].nd));
}
#line 6808 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6810,7 +6810,7 @@ yyreduce:
case 204:
#line 2138 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "/", (yyvsp[0].nd));
+ (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "-", (yyvsp[0].nd));
}
#line 6816 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6818,7 +6818,7 @@ yyreduce:
case 205:
#line 2142 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "%", (yyvsp[0].nd));
+ (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "*", (yyvsp[0].nd));
}
#line 6824 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6826,7 +6826,7 @@ yyreduce:
case 206:
#line 2146 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd));
+ (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "/", (yyvsp[0].nd));
}
#line 6832 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6834,7 +6834,7 @@ yyreduce:
case 207:
#line 2150 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_uni_op(p, call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd)), "-@");
+ (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "%", (yyvsp[0].nd));
}
#line 6840 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6842,7 +6842,7 @@ yyreduce:
case 208:
#line 2154 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_uni_op(p, call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd)), "-@");
+ (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd));
}
#line 6848 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6850,7 +6850,7 @@ yyreduce:
case 209:
#line 2158 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_uni_op(p, (yyvsp[0].nd), "+@");
+ (yyval.nd) = call_uni_op(p, call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd)), "-@");
}
#line 6856 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6858,7 +6858,7 @@ yyreduce:
case 210:
#line 2162 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_uni_op(p, (yyvsp[0].nd), "-@");
+ (yyval.nd) = call_uni_op(p, call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd)), "-@");
}
#line 6864 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6866,7 +6866,7 @@ yyreduce:
case 211:
#line 2166 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "|", (yyvsp[0].nd));
+ (yyval.nd) = call_uni_op(p, (yyvsp[0].nd), "+@");
}
#line 6872 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6874,7 +6874,7 @@ yyreduce:
case 212:
#line 2170 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "^", (yyvsp[0].nd));
+ (yyval.nd) = call_uni_op(p, (yyvsp[0].nd), "-@");
}
#line 6880 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6882,7 +6882,7 @@ yyreduce:
case 213:
#line 2174 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "&", (yyvsp[0].nd));
+ (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "|", (yyvsp[0].nd));
}
#line 6888 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6890,7 +6890,7 @@ yyreduce:
case 214:
#line 2178 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<=>", (yyvsp[0].nd));
+ (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "^", (yyvsp[0].nd));
}
#line 6896 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6898,7 +6898,7 @@ yyreduce:
case 215:
#line 2182 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">", (yyvsp[0].nd));
+ (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "&", (yyvsp[0].nd));
}
#line 6904 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6906,7 +6906,7 @@ yyreduce:
case 216:
#line 2186 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">=", (yyvsp[0].nd));
+ (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<=>", (yyvsp[0].nd));
}
#line 6912 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6914,7 +6914,7 @@ yyreduce:
case 217:
#line 2190 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<", (yyvsp[0].nd));
+ (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">", (yyvsp[0].nd));
}
#line 6920 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6922,7 +6922,7 @@ yyreduce:
case 218:
#line 2194 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<=", (yyvsp[0].nd));
+ (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">=", (yyvsp[0].nd));
}
#line 6928 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6930,7 +6930,7 @@ yyreduce:
case 219:
#line 2198 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "==", (yyvsp[0].nd));
+ (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<", (yyvsp[0].nd));
}
#line 6936 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6938,7 +6938,7 @@ yyreduce:
case 220:
#line 2202 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "===", (yyvsp[0].nd));
+ (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<=", (yyvsp[0].nd));
}
#line 6944 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6946,7 +6946,7 @@ yyreduce:
case 221:
#line 2206 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "!=", (yyvsp[0].nd));
+ (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "==", (yyvsp[0].nd));
}
#line 6952 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6954,7 +6954,7 @@ yyreduce:
case 222:
#line 2210 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "=~", (yyvsp[0].nd));
+ (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "===", (yyvsp[0].nd));
}
#line 6960 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6962,7 +6962,7 @@ yyreduce:
case 223:
#line 2214 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "!~", (yyvsp[0].nd));
+ (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "!=", (yyvsp[0].nd));
}
#line 6968 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6970,7 +6970,7 @@ yyreduce:
case 224:
#line 2218 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "!");
+ (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "=~", (yyvsp[0].nd));
}
#line 6976 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6978,7 +6978,7 @@ yyreduce:
case 225:
#line 2222 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "~");
+ (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "!~", (yyvsp[0].nd));
}
#line 6984 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6986,7 +6986,7 @@ yyreduce:
case 226:
#line 2226 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<<", (yyvsp[0].nd));
+ (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "!");
}
#line 6992 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6994,7 +6994,7 @@ yyreduce:
case 227:
#line 2230 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">>", (yyvsp[0].nd));
+ (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "~");
}
#line 7000 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7002,7 +7002,7 @@ yyreduce:
case 228:
#line 2234 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_and(p, (yyvsp[-2].nd), (yyvsp[0].nd));
+ (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<<", (yyvsp[0].nd));
}
#line 7008 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7010,7 +7010,7 @@ yyreduce:
case 229:
#line 2238 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_or(p, (yyvsp[-2].nd), (yyvsp[0].nd));
+ (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">>", (yyvsp[0].nd));
}
#line 7016 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7018,7 +7018,7 @@ yyreduce:
case 230:
#line 2242 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_if(p, cond((yyvsp[-5].nd)), (yyvsp[-3].nd), (yyvsp[0].nd));
+ (yyval.nd) = new_and(p, (yyvsp[-2].nd), (yyvsp[0].nd));
}
#line 7024 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7026,7 +7026,7 @@ yyreduce:
case 231:
#line 2246 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_if(p, cond((yyvsp[-5].nd)), (yyvsp[-3].nd), (yyvsp[0].nd));
+ (yyval.nd) = new_or(p, (yyvsp[-2].nd), (yyvsp[0].nd));
}
#line 7032 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7034,65 +7034,81 @@ yyreduce:
case 232:
#line 2250 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = (yyvsp[0].nd);
+ (yyval.nd) = new_if(p, cond((yyvsp[-5].nd)), (yyvsp[-3].nd), (yyvsp[0].nd));
}
#line 7040 "mrbgems/mruby-compiler/core/y.tab.c"
break;
+ case 233:
+#line 2254 "mrbgems/mruby-compiler/core/parse.y"
+ {
+ (yyval.nd) = new_if(p, cond((yyvsp[-5].nd)), (yyvsp[-3].nd), (yyvsp[0].nd));
+ }
+#line 7048 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
case 234:
-#line 2257 "mrbgems/mruby-compiler/core/parse.y"
+#line 2258 "mrbgems/mruby-compiler/core/parse.y"
+ {
+ (yyval.nd) = (yyvsp[0].nd);
+ }
+#line 7056 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
+ case 236:
+#line 2265 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-1].nd);
NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
}
-#line 7049 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7065 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 235:
-#line 2262 "mrbgems/mruby-compiler/core/parse.y"
+ case 237:
+#line 2270 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = push((yyvsp[-3].nd), new_kw_hash(p, (yyvsp[-1].nd)));
}
-#line 7057 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7073 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 236:
-#line 2266 "mrbgems/mruby-compiler/core/parse.y"
+ case 238:
+#line 2274 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons(new_kw_hash(p, (yyvsp[-1].nd)), 0);
NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
}
-#line 7066 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7082 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 237:
-#line 2273 "mrbgems/mruby-compiler/core/parse.y"
+ case 239:
+#line 2281 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 7074 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7090 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 238:
-#line 2277 "mrbgems/mruby-compiler/core/parse.y"
+ case 240:
+#line 2285 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[-2].nd));
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 7084 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7100 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 239:
-#line 2285 "mrbgems/mruby-compiler/core/parse.y"
+ case 241:
+#line 2293 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 7092 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7108 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 240:
-#line 2289 "mrbgems/mruby-compiler/core/parse.y"
+ case 242:
+#line 2297 "mrbgems/mruby-compiler/core/parse.y"
{
#if 1
mrb_sym r = mrb_intern_lit(p->mrb, "*");
@@ -7116,273 +7132,257 @@ yyreduce:
(yyval.nd) = 0;
}
}
-#line 7120 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7136 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 245:
-#line 2321 "mrbgems/mruby-compiler/core/parse.y"
+ case 247:
+#line 2329 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons((yyvsp[-1].nd),0);
NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
}
-#line 7129 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7145 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 246:
-#line 2326 "mrbgems/mruby-compiler/core/parse.y"
+ case 248:
+#line 2334 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons(push((yyvsp[-3].nd), new_kw_hash(p, (yyvsp[-1].nd))), 0);
NODE_LINENO((yyval.nd), (yyvsp[-3].nd));
}
-#line 7138 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7154 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 247:
-#line 2331 "mrbgems/mruby-compiler/core/parse.y"
+ case 249:
+#line 2339 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons(list1(new_kw_hash(p, (yyvsp[-1].nd))), 0);
NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
}
-#line 7147 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7163 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 248:
-#line 2338 "mrbgems/mruby-compiler/core/parse.y"
+ case 250:
+#line 2346 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = cons(list1((yyvsp[0].nd)), 0);
NODE_LINENO((yyval.nd), (yyvsp[0].nd));
}
-#line 7157 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7173 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 249:
-#line 2344 "mrbgems/mruby-compiler/core/parse.y"
+ case 251:
+#line 2352 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons((yyvsp[-1].nd), (yyvsp[0].nd));
NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
}
-#line 7166 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7182 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 250:
-#line 2349 "mrbgems/mruby-compiler/core/parse.y"
+ case 252:
+#line 2357 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons(list1(new_kw_hash(p, (yyvsp[-1].nd))), (yyvsp[0].nd));
NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
}
-#line 7175 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7191 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 251:
-#line 2354 "mrbgems/mruby-compiler/core/parse.y"
+ case 253:
+#line 2362 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons(push((yyvsp[-3].nd), new_kw_hash(p, (yyvsp[-1].nd))), (yyvsp[0].nd));
NODE_LINENO((yyval.nd), (yyvsp[-3].nd));
}
-#line 7184 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7200 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 252:
-#line 2359 "mrbgems/mruby-compiler/core/parse.y"
+ case 254:
+#line 2367 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons(0, (yyvsp[0].nd));
NODE_LINENO((yyval.nd), (yyvsp[0].nd));
}
-#line 7193 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7209 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 253:
-#line 2365 "mrbgems/mruby-compiler/core/parse.y"
+ case 255:
+#line 2373 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.stack) = p->cmdarg_stack;
CMDARG_PUSH(1);
}
-#line 7202 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7218 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 254:
-#line 2370 "mrbgems/mruby-compiler/core/parse.y"
+ case 256:
+#line 2378 "mrbgems/mruby-compiler/core/parse.y"
{
p->cmdarg_stack = (yyvsp[-1].stack);
(yyval.nd) = (yyvsp[0].nd);
}
-#line 7211 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7227 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 255:
-#line 2377 "mrbgems/mruby-compiler/core/parse.y"
+ case 257:
+#line 2385 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_block_arg(p, (yyvsp[0].nd));
}
-#line 7219 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7235 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 256:
-#line 2383 "mrbgems/mruby-compiler/core/parse.y"
+ case 258:
+#line 2391 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 7227 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7243 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 257:
-#line 2387 "mrbgems/mruby-compiler/core/parse.y"
+ case 259:
+#line 2395 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = 0;
}
-#line 7235 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7251 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 260:
-#line 2397 "mrbgems/mruby-compiler/core/parse.y"
+ case 262:
+#line 2405 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = cons((yyvsp[0].nd), 0);
NODE_LINENO((yyval.nd), (yyvsp[0].nd));
}
-#line 7245 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7261 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 261:
-#line 2403 "mrbgems/mruby-compiler/core/parse.y"
+ case 263:
+#line 2411 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = cons(new_splat(p, (yyvsp[0].nd)), 0);
NODE_LINENO((yyval.nd), (yyvsp[0].nd));
}
-#line 7255 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7271 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 262:
-#line 2409 "mrbgems/mruby-compiler/core/parse.y"
+ case 264:
+#line 2417 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 7264 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7280 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 263:
-#line 2414 "mrbgems/mruby-compiler/core/parse.y"
+ case 265:
+#line 2422 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = push((yyvsp[-3].nd), new_splat(p, (yyvsp[0].nd)));
}
-#line 7273 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7289 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 264:
-#line 2421 "mrbgems/mruby-compiler/core/parse.y"
+ case 266:
+#line 2429 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 7282 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7298 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 265:
-#line 2426 "mrbgems/mruby-compiler/core/parse.y"
+ case 267:
+#line 2434 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = push((yyvsp[-3].nd), new_splat(p, (yyvsp[0].nd)));
}
-#line 7291 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7307 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 266:
-#line 2431 "mrbgems/mruby-compiler/core/parse.y"
+ case 268:
+#line 2439 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = list1(new_splat(p, (yyvsp[0].nd)));
}
-#line 7300 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7316 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 274:
-#line 2445 "mrbgems/mruby-compiler/core/parse.y"
+ case 276:
+#line 2453 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_nvar(p, (yyvsp[0].num));
}
-#line 7308 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7324 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 275:
-#line 2449 "mrbgems/mruby-compiler/core/parse.y"
+ case 277:
+#line 2457 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_fcall(p, (yyvsp[0].id), 0);
}
-#line 7316 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7332 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 276:
-#line 2453 "mrbgems/mruby-compiler/core/parse.y"
+ case 278:
+#line 2461 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.stack) = p->cmdarg_stack;
p->cmdarg_stack = 0;
}
-#line 7325 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7341 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 277:
-#line 2459 "mrbgems/mruby-compiler/core/parse.y"
+ case 279:
+#line 2467 "mrbgems/mruby-compiler/core/parse.y"
{
p->cmdarg_stack = (yyvsp[-2].stack);
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 7334 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7350 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 278:
-#line 2464 "mrbgems/mruby-compiler/core/parse.y"
+ case 280:
+#line 2472 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.stack) = p->cmdarg_stack;
p->cmdarg_stack = 0;
}
-#line 7343 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7359 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 279:
-#line 2468 "mrbgems/mruby-compiler/core/parse.y"
+ case 281:
+#line 2476 "mrbgems/mruby-compiler/core/parse.y"
{p->lstate = EXPR_ENDARG;}
-#line 7349 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7365 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 280:
-#line 2469 "mrbgems/mruby-compiler/core/parse.y"
+ case 282:
+#line 2477 "mrbgems/mruby-compiler/core/parse.y"
{
p->cmdarg_stack = (yyvsp[-3].stack);
(yyval.nd) = (yyvsp[-2].nd);
}
-#line 7358 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 281:
-#line 2473 "mrbgems/mruby-compiler/core/parse.y"
- {p->lstate = EXPR_ENDARG;}
-#line 7364 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 282:
-#line 2474 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_nil(p);
- }
-#line 7372 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7374 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 283:
-#line 2478 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-1].nd);
- }
+#line 2481 "mrbgems/mruby-compiler/core/parse.y"
+ {p->lstate = EXPR_ENDARG;}
#line 7380 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 284:
#line 2482 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id));
+ (yyval.nd) = new_nil(p);
}
#line 7388 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7390,7 +7390,7 @@ yyreduce:
case 285:
#line 2486 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_colon3(p, (yyvsp[0].id));
+ (yyval.nd) = (yyvsp[-1].nd);
}
#line 7396 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7398,33 +7398,33 @@ yyreduce:
case 286:
#line 2490 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_array(p, (yyvsp[-1].nd));
- NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
+ (yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id));
}
-#line 7405 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7404 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 287:
-#line 2495 "mrbgems/mruby-compiler/core/parse.y"
+#line 2494 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_hash(p, (yyvsp[-1].nd));
- NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
+ (yyval.nd) = new_colon3(p, (yyvsp[0].id));
}
-#line 7414 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7412 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 288:
-#line 2500 "mrbgems/mruby-compiler/core/parse.y"
+#line 2498 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_return(p, 0);
+ (yyval.nd) = new_array(p, (yyvsp[-1].nd));
+ NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
}
-#line 7422 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7421 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 289:
-#line 2504 "mrbgems/mruby-compiler/core/parse.y"
+#line 2503 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_yield(p, (yyvsp[0].nd));
+ (yyval.nd) = new_hash(p, (yyvsp[-1].nd));
+ NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
}
#line 7430 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7432,7 +7432,7 @@ yyreduce:
case 290:
#line 2508 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_uni_op(p, cond((yyvsp[-1].nd)), "!");
+ (yyval.nd) = new_return(p, 0);
}
#line 7438 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7440,7 +7440,7 @@ yyreduce:
case 291:
#line 2512 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_uni_op(p, new_nil(p), "!");
+ (yyval.nd) = new_yield(p, (yyvsp[0].nd));
}
#line 7446 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7448,41 +7448,57 @@ yyreduce:
case 292:
#line 2516 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_fcall(p, (yyvsp[-1].id), cons(0, (yyvsp[0].nd)));
+ (yyval.nd) = call_uni_op(p, cond((yyvsp[-1].nd)), "!");
}
#line 7454 "mrbgems/mruby-compiler/core/y.tab.c"
break;
+ case 293:
+#line 2520 "mrbgems/mruby-compiler/core/parse.y"
+ {
+ (yyval.nd) = call_uni_op(p, new_nil(p), "!");
+ }
+#line 7462 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
case 294:
-#line 2521 "mrbgems/mruby-compiler/core/parse.y"
+#line 2524 "mrbgems/mruby-compiler/core/parse.y"
+ {
+ (yyval.nd) = new_fcall(p, (yyvsp[-1].id), cons(0, (yyvsp[0].nd)));
+ }
+#line 7470 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
+ case 296:
+#line 2529 "mrbgems/mruby-compiler/core/parse.y"
{
call_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd));
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 7463 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7479 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 295:
-#line 2526 "mrbgems/mruby-compiler/core/parse.y"
+ case 297:
+#line 2534 "mrbgems/mruby-compiler/core/parse.y"
{
local_nest(p);
(yyval.num) = p->lpar_beg;
p->lpar_beg = ++p->paren_nest;
}
-#line 7473 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7489 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 296:
-#line 2532 "mrbgems/mruby-compiler/core/parse.y"
+ case 298:
+#line 2540 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.stack) = p->cmdarg_stack;
p->cmdarg_stack = 0;
}
-#line 7482 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7498 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 297:
-#line 2537 "mrbgems/mruby-compiler/core/parse.y"
+ case 299:
+#line 2545 "mrbgems/mruby-compiler/core/parse.y"
{
p->lpar_beg = (yyvsp[-3].num);
(yyval.nd) = new_lambda(p, (yyvsp[-2].nd), (yyvsp[0].nd));
@@ -7490,149 +7506,149 @@ yyreduce:
p->cmdarg_stack = (yyvsp[-1].stack);
CMDARG_LEXPOP();
}
-#line 7494 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7510 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 298:
-#line 2548 "mrbgems/mruby-compiler/core/parse.y"
+ case 300:
+#line 2556 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_if(p, cond((yyvsp[-4].nd)), (yyvsp[-2].nd), (yyvsp[-1].nd));
SET_LINENO((yyval.nd), (yyvsp[-5].num));
}
-#line 7503 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7519 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 299:
-#line 2556 "mrbgems/mruby-compiler/core/parse.y"
+ case 301:
+#line 2564 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_unless(p, cond((yyvsp[-4].nd)), (yyvsp[-2].nd), (yyvsp[-1].nd));
SET_LINENO((yyval.nd), (yyvsp[-5].num));
}
-#line 7512 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7528 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 300:
-#line 2560 "mrbgems/mruby-compiler/core/parse.y"
+ case 302:
+#line 2568 "mrbgems/mruby-compiler/core/parse.y"
{COND_PUSH(1);}
-#line 7518 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7534 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 301:
-#line 2560 "mrbgems/mruby-compiler/core/parse.y"
+ case 303:
+#line 2568 "mrbgems/mruby-compiler/core/parse.y"
{COND_POP();}
-#line 7524 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7540 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 302:
-#line 2563 "mrbgems/mruby-compiler/core/parse.y"
+ case 304:
+#line 2571 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_while(p, cond((yyvsp[-4].nd)), (yyvsp[-1].nd));
SET_LINENO((yyval.nd), (yyvsp[-6].num));
}
-#line 7533 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7549 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 303:
-#line 2567 "mrbgems/mruby-compiler/core/parse.y"
+ case 305:
+#line 2575 "mrbgems/mruby-compiler/core/parse.y"
{COND_PUSH(1);}
-#line 7539 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7555 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 304:
-#line 2567 "mrbgems/mruby-compiler/core/parse.y"
+ case 306:
+#line 2575 "mrbgems/mruby-compiler/core/parse.y"
{COND_POP();}
-#line 7545 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7561 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 305:
-#line 2570 "mrbgems/mruby-compiler/core/parse.y"
+ case 307:
+#line 2578 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_until(p, cond((yyvsp[-4].nd)), (yyvsp[-1].nd));
SET_LINENO((yyval.nd), (yyvsp[-6].num));
}
-#line 7554 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7570 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 306:
-#line 2577 "mrbgems/mruby-compiler/core/parse.y"
+ case 308:
+#line 2585 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_case(p, (yyvsp[-3].nd), (yyvsp[-1].nd));
}
-#line 7562 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7578 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 307:
-#line 2581 "mrbgems/mruby-compiler/core/parse.y"
+ case 309:
+#line 2589 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_case(p, 0, (yyvsp[-1].nd));
}
-#line 7570 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7586 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 308:
-#line 2585 "mrbgems/mruby-compiler/core/parse.y"
+ case 310:
+#line 2593 "mrbgems/mruby-compiler/core/parse.y"
{COND_PUSH(1);}
-#line 7576 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7592 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 309:
-#line 2587 "mrbgems/mruby-compiler/core/parse.y"
+ case 311:
+#line 2595 "mrbgems/mruby-compiler/core/parse.y"
{COND_POP();}
-#line 7582 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7598 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 310:
-#line 2590 "mrbgems/mruby-compiler/core/parse.y"
+ case 312:
+#line 2598 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_for(p, (yyvsp[-7].nd), (yyvsp[-4].nd), (yyvsp[-1].nd));
SET_LINENO((yyval.nd), (yyvsp[-8].num));
}
-#line 7591 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7607 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 311:
-#line 2596 "mrbgems/mruby-compiler/core/parse.y"
+ case 313:
+#line 2604 "mrbgems/mruby-compiler/core/parse.y"
{
if (p->in_def || p->in_single)
yyerror(p, "class definition in method body");
(yyval.nd) = local_switch(p);
nvars_block(p);
}
-#line 7602 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7618 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 312:
-#line 2604 "mrbgems/mruby-compiler/core/parse.y"
+ case 314:
+#line 2612 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_class(p, (yyvsp[-4].nd), (yyvsp[-3].nd), (yyvsp[-1].nd));
SET_LINENO((yyval.nd), (yyvsp[-5].num));
local_resume(p, (yyvsp[-2].nd));
nvars_unnest(p);
}
-#line 7613 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7629 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 313:
-#line 2612 "mrbgems/mruby-compiler/core/parse.y"
+ case 315:
+#line 2620 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.num) = p->in_def;
p->in_def = 0;
}
-#line 7622 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7638 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 314:
-#line 2617 "mrbgems/mruby-compiler/core/parse.y"
+ case 316:
+#line 2625 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons(local_switch(p), nint(p->in_single));
nvars_block(p);
p->in_single = 0;
}
-#line 7632 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7648 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 315:
-#line 2624 "mrbgems/mruby-compiler/core/parse.y"
+ case 317:
+#line 2632 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_sclass(p, (yyvsp[-5].nd), (yyvsp[-1].nd));
SET_LINENO((yyval.nd), (yyvsp[-7].num));
@@ -7641,52 +7657,52 @@ yyreduce:
p->in_def = (yyvsp[-4].num);
p->in_single = intn((yyvsp[-2].nd)->cdr);
}
-#line 7645 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7661 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 316:
-#line 2634 "mrbgems/mruby-compiler/core/parse.y"
+ case 318:
+#line 2642 "mrbgems/mruby-compiler/core/parse.y"
{
if (p->in_def || p->in_single)
yyerror(p, "module definition in method body");
(yyval.nd) = local_switch(p);
nvars_block(p);
}
-#line 7656 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7672 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 317:
-#line 2642 "mrbgems/mruby-compiler/core/parse.y"
+ case 319:
+#line 2650 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_module(p, (yyvsp[-3].nd), (yyvsp[-1].nd));
SET_LINENO((yyval.nd), (yyvsp[-4].num));
local_resume(p, (yyvsp[-2].nd));
nvars_unnest(p);
}
-#line 7667 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7683 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 318:
-#line 2649 "mrbgems/mruby-compiler/core/parse.y"
+ case 320:
+#line 2657 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.stack) = p->cmdarg_stack;
p->cmdarg_stack = 0;
}
-#line 7676 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7692 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 319:
-#line 2653 "mrbgems/mruby-compiler/core/parse.y"
+ case 321:
+#line 2661 "mrbgems/mruby-compiler/core/parse.y"
{
p->in_def++;
(yyval.nd) = local_switch(p);
nvars_block(p);
}
-#line 7686 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7702 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 320:
-#line 2661 "mrbgems/mruby-compiler/core/parse.y"
+ case 322:
+#line 2669 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_def(p, (yyvsp[-5].id), (yyvsp[-2].nd), (yyvsp[-1].nd));
SET_LINENO((yyval.nd), (yyvsp[-6].num));
@@ -7695,32 +7711,32 @@ yyreduce:
p->in_def--;
p->cmdarg_stack = (yyvsp[-4].stack);
}
-#line 7699 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7715 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 321:
-#line 2670 "mrbgems/mruby-compiler/core/parse.y"
+ case 323:
+#line 2678 "mrbgems/mruby-compiler/core/parse.y"
{
p->lstate = EXPR_FNAME;
(yyval.stack) = p->cmdarg_stack;
p->cmdarg_stack = 0;
}
-#line 7709 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7725 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 322:
-#line 2676 "mrbgems/mruby-compiler/core/parse.y"
+ case 324:
+#line 2684 "mrbgems/mruby-compiler/core/parse.y"
{
p->in_single++;
p->lstate = EXPR_ENDFN; /* force for args */
(yyval.nd) = local_switch(p);
nvars_block(p);
}
-#line 7720 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7736 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 323:
-#line 2685 "mrbgems/mruby-compiler/core/parse.y"
+ case 325:
+#line 2693 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_sdef(p, (yyvsp[-7].nd), (yyvsp[-4].id), (yyvsp[-2].nd), (yyvsp[-1].nd));
SET_LINENO((yyval.nd), (yyvsp[-8].num));
@@ -7729,29 +7745,13 @@ yyreduce:
p->in_single--;
p->cmdarg_stack = (yyvsp[-5].stack);
}
-#line 7733 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 324:
-#line 2694 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_break(p, 0);
- }
-#line 7741 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 325:
-#line 2698 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_next(p, 0);
- }
#line 7749 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 326:
#line 2702 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_redo(p);
+ (yyval.nd) = new_break(p, 0);
}
#line 7757 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7759,56 +7759,56 @@ yyreduce:
case 327:
#line 2706 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_retry(p);
+ (yyval.nd) = new_next(p, 0);
}
#line 7765 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 328:
-#line 2712 "mrbgems/mruby-compiler/core/parse.y"
+#line 2710 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = (yyvsp[0].nd);
- if (!(yyval.nd)) (yyval.nd) = new_nil(p);
+ (yyval.nd) = new_redo(p);
}
-#line 7774 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7773 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 335:
-#line 2731 "mrbgems/mruby-compiler/core/parse.y"
+ case 329:
+#line 2714 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_if(p, cond((yyvsp[-3].nd)), (yyvsp[-1].nd), (yyvsp[0].nd));
+ (yyval.nd) = new_retry(p);
}
-#line 7782 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7781 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 337:
-#line 2738 "mrbgems/mruby-compiler/core/parse.y"
+ case 330:
+#line 2720 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
+ if (!(yyval.nd)) (yyval.nd) = new_nil(p);
}
#line 7790 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 338:
-#line 2744 "mrbgems/mruby-compiler/core/parse.y"
+ case 337:
+#line 2739 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = list1(list1((yyvsp[0].nd)));
+ (yyval.nd) = new_if(p, cond((yyvsp[-3].nd)), (yyvsp[-1].nd), (yyvsp[0].nd));
}
#line 7798 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 340:
-#line 2751 "mrbgems/mruby-compiler/core/parse.y"
+ case 339:
+#line 2746 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = list3((yyvsp[0].nd),0,0);
+ (yyval.nd) = (yyvsp[0].nd);
}
#line 7806 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 341:
-#line 2755 "mrbgems/mruby-compiler/core/parse.y"
+ case 340:
+#line 2752 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = list3((yyvsp[-3].nd), new_arg(p, (yyvsp[0].id)), 0);
+ (yyval.nd) = list1(list1((yyvsp[0].nd)));
}
#line 7814 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7816,7 +7816,7 @@ yyreduce:
case 342:
#line 2759 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = list3((yyvsp[-5].nd), new_arg(p, (yyvsp[-2].id)), (yyvsp[0].nd));
+ (yyval.nd) = list3((yyvsp[0].nd),0,0);
}
#line 7822 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7824,24 +7824,24 @@ yyreduce:
case 343:
#line 2763 "mrbgems/mruby-compiler/core/parse.y"
{
- local_add_f(p, 0);
- (yyval.nd) = list3((yyvsp[-2].nd), (node*)-1, 0);
+ (yyval.nd) = list3((yyvsp[-3].nd), new_arg(p, (yyvsp[0].id)), 0);
}
-#line 7831 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7830 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 344:
-#line 2768 "mrbgems/mruby-compiler/core/parse.y"
+#line 2767 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = list3((yyvsp[-4].nd), (node*)-1, (yyvsp[0].nd));
+ (yyval.nd) = list3((yyvsp[-5].nd), new_arg(p, (yyvsp[-2].id)), (yyvsp[0].nd));
}
-#line 7839 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7838 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 345:
-#line 2772 "mrbgems/mruby-compiler/core/parse.y"
+#line 2771 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = list3(0, new_arg(p, (yyvsp[0].id)), 0);
+ local_add_f(p, 0);
+ (yyval.nd) = list3((yyvsp[-2].nd), (node*)-1, 0);
}
#line 7847 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7849,7 +7849,7 @@ yyreduce:
case 346:
#line 2776 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = list3(0, new_arg(p, (yyvsp[-2].id)), (yyvsp[0].nd));
+ (yyval.nd) = list3((yyvsp[-4].nd), (node*)-1, (yyvsp[0].nd));
}
#line 7855 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7857,40 +7857,40 @@ yyreduce:
case 347:
#line 2780 "mrbgems/mruby-compiler/core/parse.y"
{
- local_add_f(p, 0);
- (yyval.nd) = list3(0, (node*)-1, 0);
+ (yyval.nd) = list3(0, new_arg(p, (yyvsp[0].id)), 0);
}
-#line 7864 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7863 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 348:
-#line 2785 "mrbgems/mruby-compiler/core/parse.y"
+#line 2784 "mrbgems/mruby-compiler/core/parse.y"
{
- local_add_f(p, 0);
+ (yyval.nd) = list3(0, new_arg(p, (yyvsp[-2].id)), (yyvsp[0].nd));
}
-#line 7872 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7871 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 349:
-#line 2789 "mrbgems/mruby-compiler/core/parse.y"
+#line 2788 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = list3(0, (node*)-1, (yyvsp[0].nd));
+ local_add_f(p, 0);
+ (yyval.nd) = list3(0, (node*)-1, 0);
}
#line 7880 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 350:
-#line 2795 "mrbgems/mruby-compiler/core/parse.y"
+#line 2793 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args_tail(p, (yyvsp[-3].nd), (yyvsp[-1].nd), (yyvsp[0].id));
+ local_add_f(p, 0);
}
#line 7888 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 351:
-#line 2799 "mrbgems/mruby-compiler/core/parse.y"
+#line 2797 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args_tail(p, (yyvsp[-1].nd), 0, (yyvsp[0].id));
+ (yyval.nd) = list3(0, (node*)-1, (yyvsp[0].nd));
}
#line 7896 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7898,7 +7898,7 @@ yyreduce:
case 352:
#line 2803 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args_tail(p, 0, (yyvsp[-1].nd), (yyvsp[0].id));
+ (yyval.nd) = new_args_tail(p, (yyvsp[-3].nd), (yyvsp[-1].nd), (yyvsp[0].id));
}
#line 7904 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7906,39 +7906,39 @@ yyreduce:
case 353:
#line 2807 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args_tail(p, 0, 0, (yyvsp[0].id));
+ (yyval.nd) = new_args_tail(p, (yyvsp[-1].nd), 0, (yyvsp[0].id));
}
#line 7912 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 354:
-#line 2813 "mrbgems/mruby-compiler/core/parse.y"
+#line 2811 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = (yyvsp[0].nd);
+ (yyval.nd) = new_args_tail(p, 0, (yyvsp[-1].nd), (yyvsp[0].id));
}
#line 7920 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 355:
-#line 2817 "mrbgems/mruby-compiler/core/parse.y"
+#line 2815 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args_tail(p, 0, 0, 0);
+ (yyval.nd) = new_args_tail(p, 0, 0, (yyvsp[0].id));
}
#line 7928 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 356:
-#line 2823 "mrbgems/mruby-compiler/core/parse.y"
+#line 2821 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd));
+ (yyval.nd) = (yyvsp[0].nd);
}
#line 7936 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 357:
-#line 2827 "mrbgems/mruby-compiler/core/parse.y"
+#line 2825 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, (yyvsp[-7].nd), (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
+ (yyval.nd) = new_args_tail(p, 0, 0, 0);
}
#line 7944 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7946,7 +7946,7 @@ yyreduce:
case 358:
#line 2831 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, (yyvsp[-3].nd), (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd));
+ (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd));
}
#line 7952 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7954,7 +7954,7 @@ yyreduce:
case 359:
#line 2835 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd));
+ (yyval.nd) = new_args(p, (yyvsp[-7].nd), (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
}
#line 7960 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7962,7 +7962,7 @@ yyreduce:
case 360:
#line 2839 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, (yyvsp[-3].nd), 0, (yyvsp[-1].id), 0, (yyvsp[0].nd));
+ (yyval.nd) = new_args(p, (yyvsp[-3].nd), (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd));
}
#line 7968 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7970,7 +7970,7 @@ yyreduce:
case 361:
#line 2843 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, (yyvsp[-2].nd), 0, 0, 0, (yyvsp[0].nd));
+ (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd));
}
#line 7976 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7978,7 +7978,7 @@ yyreduce:
case 362:
#line 2847 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, (yyvsp[-5].nd), 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
+ (yyval.nd) = new_args(p, (yyvsp[-3].nd), 0, (yyvsp[-1].id), 0, (yyvsp[0].nd));
}
#line 7984 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7986,7 +7986,7 @@ yyreduce:
case 363:
#line 2851 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, (yyvsp[-1].nd), 0, 0, 0, (yyvsp[0].nd));
+ (yyval.nd) = new_args(p, (yyvsp[-2].nd), 0, 0, 0, (yyvsp[0].nd));
}
#line 7992 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7994,7 +7994,7 @@ yyreduce:
case 364:
#line 2855 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd));
+ (yyval.nd) = new_args(p, (yyvsp[-5].nd), 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
}
#line 8000 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8002,7 +8002,7 @@ yyreduce:
case 365:
#line 2859 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, 0, (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
+ (yyval.nd) = new_args(p, (yyvsp[-1].nd), 0, 0, 0, (yyvsp[0].nd));
}
#line 8008 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8010,7 +8010,7 @@ yyreduce:
case 366:
#line 2863 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, 0, (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd));
+ (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd));
}
#line 8016 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8018,7 +8018,7 @@ yyreduce:
case 367:
#line 2867 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd));
+ (yyval.nd) = new_args(p, 0, (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
}
#line 8024 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8026,7 +8026,7 @@ yyreduce:
case 368:
#line 2871 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, 0, 0, (yyvsp[-1].id), 0, (yyvsp[0].nd));
+ (yyval.nd) = new_args(p, 0, (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd));
}
#line 8032 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8034,7 +8034,7 @@ yyreduce:
case 369:
#line 2875 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, 0, 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
+ (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd));
}
#line 8040 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8042,138 +8042,154 @@ yyreduce:
case 370:
#line 2879 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, 0, 0, 0, 0, (yyvsp[0].nd));
+ (yyval.nd) = new_args(p, 0, 0, (yyvsp[-1].id), 0, (yyvsp[0].nd));
}
#line 8048 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 371:
-#line 2885 "mrbgems/mruby-compiler/core/parse.y"
+#line 2883 "mrbgems/mruby-compiler/core/parse.y"
+ {
+ (yyval.nd) = new_args(p, 0, 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
+ }
+#line 8056 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
+ case 372:
+#line 2887 "mrbgems/mruby-compiler/core/parse.y"
+ {
+ (yyval.nd) = new_args(p, 0, 0, 0, 0, (yyvsp[0].nd));
+ }
+#line 8064 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
+ case 373:
+#line 2893 "mrbgems/mruby-compiler/core/parse.y"
{
local_add_blk(p, 0);
(yyval.nd) = 0;
}
-#line 8057 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8073 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 372:
-#line 2890 "mrbgems/mruby-compiler/core/parse.y"
+ case 374:
+#line 2898 "mrbgems/mruby-compiler/core/parse.y"
{
p->cmd_start = TRUE;
(yyval.nd) = (yyvsp[0].nd);
}
-#line 8066 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8082 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 373:
-#line 2896 "mrbgems/mruby-compiler/core/parse.y"
+ case 375:
+#line 2904 "mrbgems/mruby-compiler/core/parse.y"
{local_add_blk(p, 0);}
-#line 8072 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8088 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 374:
-#line 2897 "mrbgems/mruby-compiler/core/parse.y"
+ case 376:
+#line 2905 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = 0;
}
-#line 8080 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8096 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 375:
-#line 2901 "mrbgems/mruby-compiler/core/parse.y"
+ case 377:
+#line 2909 "mrbgems/mruby-compiler/core/parse.y"
{
local_add_blk(p, 0);
(yyval.nd) = 0;
}
-#line 8089 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8105 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 376:
-#line 2906 "mrbgems/mruby-compiler/core/parse.y"
+ case 378:
+#line 2914 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-2].nd);
}
-#line 8097 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8113 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 377:
-#line 2913 "mrbgems/mruby-compiler/core/parse.y"
+ case 379:
+#line 2921 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = 0;
}
-#line 8105 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8121 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 378:
-#line 2917 "mrbgems/mruby-compiler/core/parse.y"
+ case 380:
+#line 2925 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = 0;
}
-#line 8113 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8129 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 381:
-#line 2927 "mrbgems/mruby-compiler/core/parse.y"
+ case 383:
+#line 2935 "mrbgems/mruby-compiler/core/parse.y"
{
local_add_f(p, (yyvsp[0].id));
new_bv(p, (yyvsp[0].id));
}
-#line 8122 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8138 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 383:
-#line 2935 "mrbgems/mruby-compiler/core/parse.y"
+ case 385:
+#line 2943 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-2].nd);
}
-#line 8130 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8146 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 384:
-#line 2939 "mrbgems/mruby-compiler/core/parse.y"
+ case 386:
+#line 2947 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 8138 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8154 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 385:
-#line 2945 "mrbgems/mruby-compiler/core/parse.y"
+ case 387:
+#line 2953 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 8146 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8162 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 386:
-#line 2949 "mrbgems/mruby-compiler/core/parse.y"
+ case 388:
+#line 2957 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 8154 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8170 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 387:
-#line 2955 "mrbgems/mruby-compiler/core/parse.y"
+ case 389:
+#line 2963 "mrbgems/mruby-compiler/core/parse.y"
{
local_nest(p);
nvars_nest(p);
}
-#line 8163 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8179 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 388:
-#line 2962 "mrbgems/mruby-compiler/core/parse.y"
+ case 390:
+#line 2970 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_block(p,(yyvsp[-2].nd),(yyvsp[-1].nd));
local_unnest(p);
nvars_unnest(p);
}
-#line 8173 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8189 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 389:
-#line 2970 "mrbgems/mruby-compiler/core/parse.y"
+ case 391:
+#line 2978 "mrbgems/mruby-compiler/core/parse.y"
{
if ((yyvsp[-1].nd)->car == (node*)NODE_YIELD) {
yyerror(p, "block given to yield");
@@ -8183,55 +8199,39 @@ yyreduce:
}
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 8187 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8203 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 390:
-#line 2980 "mrbgems/mruby-compiler/core/parse.y"
+ case 392:
+#line 2988 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num));
}
-#line 8195 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8211 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 391:
-#line 2984 "mrbgems/mruby-compiler/core/parse.y"
+ case 393:
+#line 2992 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), (yyvsp[-1].nd), (yyvsp[-3].num));
call_with_block(p, (yyval.nd), (yyvsp[0].nd));
}
-#line 8204 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8220 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 392:
-#line 2989 "mrbgems/mruby-compiler/core/parse.y"
+ case 394:
+#line 2997 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), (yyvsp[-1].nd), (yyvsp[-3].num));
call_with_block(p, (yyval.nd), (yyvsp[0].nd));
}
-#line 8213 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 393:
-#line 2996 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_fcall(p, (yyvsp[-1].id), (yyvsp[0].nd));
- }
-#line 8221 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 394:
-#line 3000 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num));
- }
#line 8229 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 395:
#line 3004 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), tCOLON2);
+ (yyval.nd) = new_fcall(p, (yyvsp[-1].id), (yyvsp[0].nd));
}
#line 8237 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8239,7 +8239,7 @@ yyreduce:
case 396:
#line 3008 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2);
+ (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num));
}
#line 8245 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8247,7 +8247,7 @@ yyreduce:
case 397:
#line 3012 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_call(p, (yyvsp[-2].nd), intern_lit("call"), (yyvsp[0].nd), (yyvsp[-1].num));
+ (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), tCOLON2);
}
#line 8253 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8255,7 +8255,7 @@ yyreduce:
case 398:
#line 3016 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_call(p, (yyvsp[-2].nd), intern_lit("call"), (yyvsp[0].nd), tCOLON2);
+ (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2);
}
#line 8261 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8263,7 +8263,7 @@ yyreduce:
case 399:
#line 3020 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_super(p, (yyvsp[0].nd));
+ (yyval.nd) = new_call(p, (yyvsp[-2].nd), intern_lit("call"), (yyvsp[0].nd), (yyvsp[-1].num));
}
#line 8269 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8271,7 +8271,7 @@ yyreduce:
case 400:
#line 3024 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_zsuper(p);
+ (yyval.nd) = new_call(p, (yyvsp[-2].nd), intern_lit("call"), (yyvsp[0].nd), tCOLON2);
}
#line 8277 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8279,63 +8279,79 @@ yyreduce:
case 401:
#line 3028 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_lit("[]"), (yyvsp[-1].nd), '.');
+ (yyval.nd) = new_super(p, (yyvsp[0].nd));
}
#line 8285 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 402:
-#line 3034 "mrbgems/mruby-compiler/core/parse.y"
+#line 3032 "mrbgems/mruby-compiler/core/parse.y"
+ {
+ (yyval.nd) = new_zsuper(p);
+ }
+#line 8293 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
+ case 403:
+#line 3036 "mrbgems/mruby-compiler/core/parse.y"
+ {
+ (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_lit("[]"), (yyvsp[-1].nd), '.');
+ }
+#line 8301 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
+ case 404:
+#line 3042 "mrbgems/mruby-compiler/core/parse.y"
{
local_nest(p);
nvars_nest(p);
(yyval.num) = p->lineno;
}
-#line 8295 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8311 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 403:
-#line 3041 "mrbgems/mruby-compiler/core/parse.y"
+ case 405:
+#line 3049 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_block(p,(yyvsp[-2].nd),(yyvsp[-1].nd));
SET_LINENO((yyval.nd), (yyvsp[-3].num));
local_unnest(p);
nvars_unnest(p);
}
-#line 8306 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8322 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 404:
-#line 3048 "mrbgems/mruby-compiler/core/parse.y"
+ case 406:
+#line 3056 "mrbgems/mruby-compiler/core/parse.y"
{
local_nest(p);
nvars_nest(p);
(yyval.num) = p->lineno;
}
-#line 8316 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8332 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 405:
-#line 3055 "mrbgems/mruby-compiler/core/parse.y"
+ case 407:
+#line 3063 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_block(p,(yyvsp[-2].nd),(yyvsp[-1].nd));
SET_LINENO((yyval.nd), (yyvsp[-3].num));
local_unnest(p);
nvars_unnest(p);
}
-#line 8327 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8343 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 406:
-#line 3066 "mrbgems/mruby-compiler/core/parse.y"
+ case 408:
+#line 3074 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons(cons((yyvsp[-3].nd), (yyvsp[-1].nd)), (yyvsp[0].nd));
}
-#line 8335 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8351 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 407:
-#line 3072 "mrbgems/mruby-compiler/core/parse.y"
+ case 409:
+#line 3080 "mrbgems/mruby-compiler/core/parse.y"
{
if ((yyvsp[0].nd)) {
(yyval.nd) = cons(cons(0, (yyvsp[0].nd)), 0);
@@ -8344,297 +8360,281 @@ yyreduce:
(yyval.nd) = 0;
}
}
-#line 8348 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8364 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 409:
-#line 3086 "mrbgems/mruby-compiler/core/parse.y"
+ case 411:
+#line 3094 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1(list3((yyvsp[-4].nd), (yyvsp[-3].nd), (yyvsp[-1].nd)));
if ((yyvsp[0].nd)) (yyval.nd) = append((yyval.nd), (yyvsp[0].nd));
}
-#line 8357 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8373 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 411:
-#line 3094 "mrbgems/mruby-compiler/core/parse.y"
+ case 413:
+#line 3102 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1((yyvsp[0].nd));
}
-#line 8365 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8381 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 414:
-#line 3102 "mrbgems/mruby-compiler/core/parse.y"
+ case 416:
+#line 3110 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 8373 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8389 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 416:
-#line 3109 "mrbgems/mruby-compiler/core/parse.y"
+ case 418:
+#line 3117 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 8381 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8397 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 423:
-#line 3123 "mrbgems/mruby-compiler/core/parse.y"
+ case 425:
+#line 3131 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = concat_string(p, (yyvsp[-1].nd), (yyvsp[0].nd));
}
-#line 8389 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8405 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 426:
-#line 3131 "mrbgems/mruby-compiler/core/parse.y"
+ case 428:
+#line 3139 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 8397 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8413 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 427:
-#line 3135 "mrbgems/mruby-compiler/core/parse.y"
+ case 429:
+#line 3143 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_dstr(p, push((yyvsp[-1].nd), (yyvsp[0].nd)));
}
-#line 8405 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8421 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 429:
-#line 3142 "mrbgems/mruby-compiler/core/parse.y"
+ case 431:
+#line 3150 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = append((yyvsp[-1].nd), (yyvsp[0].nd));
}
-#line 8413 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8429 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 430:
-#line 3148 "mrbgems/mruby-compiler/core/parse.y"
+ case 432:
+#line 3156 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1((yyvsp[0].nd));
}
-#line 8421 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8437 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 431:
-#line 3152 "mrbgems/mruby-compiler/core/parse.y"
+ case 433:
+#line 3160 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = p->lex_strterm;
p->lex_strterm = NULL;
}
-#line 8430 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8446 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 432:
-#line 3158 "mrbgems/mruby-compiler/core/parse.y"
+ case 434:
+#line 3166 "mrbgems/mruby-compiler/core/parse.y"
{
p->lex_strterm = (yyvsp[-2].nd);
(yyval.nd) = list2((yyvsp[-3].nd), (yyvsp[-1].nd));
}
-#line 8439 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8455 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 433:
-#line 3163 "mrbgems/mruby-compiler/core/parse.y"
+ case 435:
+#line 3171 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1(new_literal_delim(p));
}
-#line 8447 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8463 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 434:
-#line 3167 "mrbgems/mruby-compiler/core/parse.y"
+ case 436:
+#line 3175 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1(new_literal_delim(p));
}
-#line 8455 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8471 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 435:
-#line 3173 "mrbgems/mruby-compiler/core/parse.y"
+ case 437:
+#line 3181 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 8463 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8479 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 436:
-#line 3177 "mrbgems/mruby-compiler/core/parse.y"
+ case 438:
+#line 3185 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_dxstr(p, push((yyvsp[-1].nd), (yyvsp[0].nd)));
}
-#line 8471 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8487 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 437:
-#line 3183 "mrbgems/mruby-compiler/core/parse.y"
+ case 439:
+#line 3191 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 8479 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8495 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 438:
-#line 3187 "mrbgems/mruby-compiler/core/parse.y"
+ case 440:
+#line 3195 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_dregx(p, (yyvsp[-1].nd), (yyvsp[0].nd));
}
-#line 8487 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8503 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 442:
-#line 3200 "mrbgems/mruby-compiler/core/parse.y"
+ case 444:
+#line 3208 "mrbgems/mruby-compiler/core/parse.y"
{
parser_heredoc_info * inf = parsing_heredoc_inf(p);
inf->doc = push(inf->doc, new_str(p, "", 0));
heredoc_end(p);
}
-#line 8497 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8513 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 443:
-#line 3206 "mrbgems/mruby-compiler/core/parse.y"
+ case 445:
+#line 3214 "mrbgems/mruby-compiler/core/parse.y"
{
heredoc_end(p);
}
-#line 8505 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8521 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 446:
-#line 3216 "mrbgems/mruby-compiler/core/parse.y"
+ case 448:
+#line 3224 "mrbgems/mruby-compiler/core/parse.y"
{
parser_heredoc_info * inf = parsing_heredoc_inf(p);
inf->doc = push(inf->doc, (yyvsp[0].nd));
heredoc_treat_nextline(p);
}
-#line 8515 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8531 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 447:
-#line 3222 "mrbgems/mruby-compiler/core/parse.y"
+ case 449:
+#line 3230 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = p->lex_strterm;
p->lex_strterm = NULL;
}
-#line 8524 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8540 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 448:
-#line 3228 "mrbgems/mruby-compiler/core/parse.y"
+ case 450:
+#line 3236 "mrbgems/mruby-compiler/core/parse.y"
{
parser_heredoc_info * inf = parsing_heredoc_inf(p);
p->lex_strterm = (yyvsp[-2].nd);
inf->doc = push(push(inf->doc, (yyvsp[-3].nd)), (yyvsp[-1].nd));
}
-#line 8534 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8550 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 449:
-#line 3236 "mrbgems/mruby-compiler/core/parse.y"
+ case 451:
+#line 3244 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_words(p, list1((yyvsp[0].nd)));
}
-#line 8542 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8558 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 450:
-#line 3240 "mrbgems/mruby-compiler/core/parse.y"
+ case 452:
+#line 3248 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_words(p, push((yyvsp[-1].nd), (yyvsp[0].nd)));
}
-#line 8550 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8566 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 451:
-#line 3247 "mrbgems/mruby-compiler/core/parse.y"
+ case 453:
+#line 3255 "mrbgems/mruby-compiler/core/parse.y"
{
p->lstate = EXPR_ENDARG;
(yyval.nd) = new_sym(p, (yyvsp[0].id));
}
-#line 8559 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8575 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 452:
-#line 3252 "mrbgems/mruby-compiler/core/parse.y"
+ case 454:
+#line 3260 "mrbgems/mruby-compiler/core/parse.y"
{
p->lstate = EXPR_ENDARG;
(yyval.nd) = new_dsym(p, new_dstr(p, push((yyvsp[-1].nd), (yyvsp[0].nd))));
}
-#line 8568 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 453:
-#line 3259 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.id) = (yyvsp[0].id);
- }
-#line 8576 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 458:
-#line 3269 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.id) = new_strsym(p, (yyvsp[0].nd));
- }
#line 8584 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 459:
-#line 3273 "mrbgems/mruby-compiler/core/parse.y"
+ case 455:
+#line 3267 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.id) = new_strsym(p, (yyvsp[0].nd));
+ (yyval.id) = (yyvsp[0].id);
}
#line 8592 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 460:
-#line 3279 "mrbgems/mruby-compiler/core/parse.y"
+#line 3277 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_symbols(p, list1((yyvsp[0].nd)));
+ (yyval.id) = new_strsym(p, (yyvsp[0].nd));
}
#line 8600 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 461:
-#line 3283 "mrbgems/mruby-compiler/core/parse.y"
+#line 3281 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_symbols(p, push((yyvsp[-1].nd), (yyvsp[0].nd)));
+ (yyval.id) = new_strsym(p, (yyvsp[0].nd));
}
#line 8608 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 464:
-#line 3291 "mrbgems/mruby-compiler/core/parse.y"
+ case 462:
+#line 3287 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = negate_lit(p, (yyvsp[0].nd));
+ (yyval.nd) = new_symbols(p, list1((yyvsp[0].nd)));
}
#line 8616 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 465:
-#line 3295 "mrbgems/mruby-compiler/core/parse.y"
+ case 463:
+#line 3291 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = negate_lit(p, (yyvsp[0].nd));
+ (yyval.nd) = new_symbols(p, push((yyvsp[-1].nd), (yyvsp[0].nd)));
}
#line 8624 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 466:
-#line 3301 "mrbgems/mruby-compiler/core/parse.y"
+#line 3299 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_lvar(p, (yyvsp[0].id));
+ (yyval.nd) = negate_lit(p, (yyvsp[0].nd));
}
#line 8632 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 467:
-#line 3305 "mrbgems/mruby-compiler/core/parse.y"
+#line 3303 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_ivar(p, (yyvsp[0].id));
+ (yyval.nd) = negate_lit(p, (yyvsp[0].nd));
}
#line 8640 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8642,7 +8642,7 @@ yyreduce:
case 468:
#line 3309 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_gvar(p, (yyvsp[0].id));
+ (yyval.nd) = new_lvar(p, (yyvsp[0].id));
}
#line 8648 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8650,7 +8650,7 @@ yyreduce:
case 469:
#line 3313 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_cvar(p, (yyvsp[0].id));
+ (yyval.nd) = new_ivar(p, (yyvsp[0].id));
}
#line 8656 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8658,39 +8658,39 @@ yyreduce:
case 470:
#line 3317 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_const(p, (yyvsp[0].id));
+ (yyval.nd) = new_gvar(p, (yyvsp[0].id));
}
#line 8664 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 471:
-#line 3323 "mrbgems/mruby-compiler/core/parse.y"
+#line 3321 "mrbgems/mruby-compiler/core/parse.y"
{
- assignable(p, (yyvsp[0].nd));
+ (yyval.nd) = new_cvar(p, (yyvsp[0].id));
}
#line 8672 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 472:
-#line 3327 "mrbgems/mruby-compiler/core/parse.y"
+#line 3325 "mrbgems/mruby-compiler/core/parse.y"
{
- yyerror(p, "can't assign to numbered parameter");
+ (yyval.nd) = new_const(p, (yyvsp[0].id));
}
#line 8680 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 473:
-#line 3333 "mrbgems/mruby-compiler/core/parse.y"
+#line 3331 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = var_reference(p, (yyvsp[0].nd));
+ assignable(p, (yyvsp[0].nd));
}
#line 8688 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 474:
-#line 3337 "mrbgems/mruby-compiler/core/parse.y"
+#line 3335 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_nil(p);
+ yyerror(p, "can't assign to numbered parameter");
}
#line 8696 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8698,7 +8698,7 @@ yyreduce:
case 475:
#line 3341 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_self(p);
+ (yyval.nd) = var_reference(p, (yyvsp[0].nd));
}
#line 8704 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8706,7 +8706,7 @@ yyreduce:
case 476:
#line 3345 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_true(p);
+ (yyval.nd) = new_nil(p);
}
#line 8712 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8714,7 +8714,7 @@ yyreduce:
case 477:
#line 3349 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_false(p);
+ (yyval.nd) = new_self(p);
}
#line 8720 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8722,28 +8722,44 @@ yyreduce:
case 478:
#line 3353 "mrbgems/mruby-compiler/core/parse.y"
{
+ (yyval.nd) = new_true(p);
+ }
+#line 8728 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
+ case 479:
+#line 3357 "mrbgems/mruby-compiler/core/parse.y"
+ {
+ (yyval.nd) = new_false(p);
+ }
+#line 8736 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
+ case 480:
+#line 3361 "mrbgems/mruby-compiler/core/parse.y"
+ {
const char *fn = mrb_sym_name_len(p->mrb, p->filename_sym, NULL);
if (!fn) {
fn = "(null)";
}
(yyval.nd) = new_str(p, fn, strlen(fn));
}
-#line 8732 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8748 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 479:
-#line 3361 "mrbgems/mruby-compiler/core/parse.y"
+ case 481:
+#line 3369 "mrbgems/mruby-compiler/core/parse.y"
{
char buf[16];
dump_int(p->lineno, buf);
(yyval.nd) = new_int(p, buf, 10, 0);
}
-#line 8743 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8759 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 480:
-#line 3368 "mrbgems/mruby-compiler/core/parse.y"
+ case 482:
+#line 3376 "mrbgems/mruby-compiler/core/parse.y"
{
#ifdef MRB_UTF8_STRING
const char *enc = "UTF-8";
@@ -8752,46 +8768,46 @@ yyreduce:
#endif
(yyval.nd) = new_str(p, enc, strlen(enc));
}
-#line 8756 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8772 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 483:
-#line 3383 "mrbgems/mruby-compiler/core/parse.y"
+ case 485:
+#line 3391 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = 0;
}
-#line 8764 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8780 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 484:
-#line 3387 "mrbgems/mruby-compiler/core/parse.y"
+ case 486:
+#line 3395 "mrbgems/mruby-compiler/core/parse.y"
{
p->lstate = EXPR_BEG;
p->cmd_start = TRUE;
}
-#line 8773 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8789 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 485:
-#line 3392 "mrbgems/mruby-compiler/core/parse.y"
+ case 487:
+#line 3400 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 8781 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8797 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 486:
-#line 3403 "mrbgems/mruby-compiler/core/parse.y"
+ case 488:
+#line 3411 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-1].nd);
p->lstate = EXPR_BEG;
p->cmd_start = TRUE;
}
-#line 8791 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8807 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 487:
-#line 3409 "mrbgems/mruby-compiler/core/parse.y"
+ case 489:
+#line 3417 "mrbgems/mruby-compiler/core/parse.y"
{
#if 1
/* til real keyword args implemented */
@@ -8809,80 +8825,64 @@ yyreduce:
new_args_tail(p, 0, new_kw_rest_args(p, nsym(k)), b));
#endif
}
-#line 8813 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 488:
-#line 3427 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-1].nd);
- }
-#line 8821 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 489:
-#line 3433 "mrbgems/mruby-compiler/core/parse.y"
- {
- local_nest(p);
- }
#line 8829 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 490:
-#line 3439 "mrbgems/mruby-compiler/core/parse.y"
+#line 3435 "mrbgems/mruby-compiler/core/parse.y"
{
- void_expr_error(p, (yyvsp[0].nd));
- (yyval.nd) = new_kw_arg(p, (yyvsp[-1].id), cons((yyvsp[0].nd), locals_node(p)));
- local_unnest(p);
+ (yyval.nd) = (yyvsp[-1].nd);
}
-#line 8839 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8837 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 491:
-#line 3445 "mrbgems/mruby-compiler/core/parse.y"
+#line 3441 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_kw_arg(p, (yyvsp[0].id), 0);
- local_unnest(p);
+ local_nest(p);
}
-#line 8848 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8845 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 492:
-#line 3452 "mrbgems/mruby-compiler/core/parse.y"
+#line 3447 "mrbgems/mruby-compiler/core/parse.y"
{
+ void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = new_kw_arg(p, (yyvsp[-1].id), cons((yyvsp[0].nd), locals_node(p)));
local_unnest(p);
}
-#line 8857 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8855 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 493:
-#line 3457 "mrbgems/mruby-compiler/core/parse.y"
+#line 3453 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_kw_arg(p, (yyvsp[0].id), 0);
local_unnest(p);
}
-#line 8866 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8864 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 494:
-#line 3464 "mrbgems/mruby-compiler/core/parse.y"
+#line 3460 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = list1((yyvsp[0].nd));
+ (yyval.nd) = new_kw_arg(p, (yyvsp[-1].id), cons((yyvsp[0].nd), locals_node(p)));
+ local_unnest(p);
}
-#line 8874 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8873 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 495:
-#line 3468 "mrbgems/mruby-compiler/core/parse.y"
+#line 3465 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
+ (yyval.nd) = new_kw_arg(p, (yyvsp[0].id), 0);
+ local_unnest(p);
}
#line 8882 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 496:
-#line 3474 "mrbgems/mruby-compiler/core/parse.y"
+#line 3472 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1((yyvsp[0].nd));
}
@@ -8890,41 +8890,41 @@ yyreduce:
break;
case 497:
-#line 3478 "mrbgems/mruby-compiler/core/parse.y"
+#line 3476 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
}
#line 8898 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 500:
-#line 3488 "mrbgems/mruby-compiler/core/parse.y"
+ case 498:
+#line 3482 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_kw_rest_args(p, nsym((yyvsp[0].id)));
+ (yyval.nd) = list1((yyvsp[0].nd));
}
#line 8906 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 501:
-#line 3492 "mrbgems/mruby-compiler/core/parse.y"
+ case 499:
+#line 3486 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_kw_rest_args(p, 0);
+ (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
}
#line 8914 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 502:
-#line 3498 "mrbgems/mruby-compiler/core/parse.y"
+#line 3496 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args_tail(p, (yyvsp[-3].nd), (yyvsp[-1].nd), (yyvsp[0].id));
+ (yyval.nd) = new_kw_rest_args(p, nsym((yyvsp[0].id)));
}
#line 8922 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 503:
-#line 3502 "mrbgems/mruby-compiler/core/parse.y"
+#line 3500 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args_tail(p, (yyvsp[-1].nd), 0, (yyvsp[0].id));
+ (yyval.nd) = new_kw_rest_args(p, 0);
}
#line 8930 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8932,7 +8932,7 @@ yyreduce:
case 504:
#line 3506 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args_tail(p, 0, (yyvsp[-1].nd), (yyvsp[0].id));
+ (yyval.nd) = new_args_tail(p, (yyvsp[-3].nd), (yyvsp[-1].nd), (yyvsp[0].id));
}
#line 8938 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8940,39 +8940,39 @@ yyreduce:
case 505:
#line 3510 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args_tail(p, 0, 0, (yyvsp[0].id));
+ (yyval.nd) = new_args_tail(p, (yyvsp[-1].nd), 0, (yyvsp[0].id));
}
#line 8946 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 506:
-#line 3516 "mrbgems/mruby-compiler/core/parse.y"
+#line 3514 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = (yyvsp[0].nd);
+ (yyval.nd) = new_args_tail(p, 0, (yyvsp[-1].nd), (yyvsp[0].id));
}
#line 8954 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 507:
-#line 3520 "mrbgems/mruby-compiler/core/parse.y"
+#line 3518 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args_tail(p, 0, 0, 0);
+ (yyval.nd) = new_args_tail(p, 0, 0, (yyvsp[0].id));
}
#line 8962 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 508:
-#line 3526 "mrbgems/mruby-compiler/core/parse.y"
+#line 3524 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd));
+ (yyval.nd) = (yyvsp[0].nd);
}
#line 8970 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 509:
-#line 3530 "mrbgems/mruby-compiler/core/parse.y"
+#line 3528 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, (yyvsp[-7].nd), (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
+ (yyval.nd) = new_args_tail(p, 0, 0, 0);
}
#line 8978 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8980,7 +8980,7 @@ yyreduce:
case 510:
#line 3534 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, (yyvsp[-3].nd), (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd));
+ (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd));
}
#line 8986 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8988,7 +8988,7 @@ yyreduce:
case 511:
#line 3538 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd));
+ (yyval.nd) = new_args(p, (yyvsp[-7].nd), (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
}
#line 8994 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8996,7 +8996,7 @@ yyreduce:
case 512:
#line 3542 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, (yyvsp[-3].nd), 0, (yyvsp[-1].id), 0, (yyvsp[0].nd));
+ (yyval.nd) = new_args(p, (yyvsp[-3].nd), (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd));
}
#line 9002 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -9004,7 +9004,7 @@ yyreduce:
case 513:
#line 3546 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, (yyvsp[-5].nd), 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
+ (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd));
}
#line 9010 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -9012,7 +9012,7 @@ yyreduce:
case 514:
#line 3550 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, (yyvsp[-1].nd), 0, 0, 0, (yyvsp[0].nd));
+ (yyval.nd) = new_args(p, (yyvsp[-3].nd), 0, (yyvsp[-1].id), 0, (yyvsp[0].nd));
}
#line 9018 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -9020,7 +9020,7 @@ yyreduce:
case 515:
#line 3554 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd));
+ (yyval.nd) = new_args(p, (yyvsp[-5].nd), 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
}
#line 9026 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -9028,7 +9028,7 @@ yyreduce:
case 516:
#line 3558 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, 0, (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
+ (yyval.nd) = new_args(p, (yyvsp[-1].nd), 0, 0, 0, (yyvsp[0].nd));
}
#line 9034 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -9036,7 +9036,7 @@ yyreduce:
case 517:
#line 3562 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, 0, (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd));
+ (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd));
}
#line 9042 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -9044,7 +9044,7 @@ yyreduce:
case 518:
#line 3566 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd));
+ (yyval.nd) = new_args(p, 0, (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
}
#line 9050 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -9052,7 +9052,7 @@ yyreduce:
case 519:
#line 3570 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, 0, 0, (yyvsp[-1].id), 0, (yyvsp[0].nd));
+ (yyval.nd) = new_args(p, 0, (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd));
}
#line 9058 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -9060,7 +9060,7 @@ yyreduce:
case 520:
#line 3574 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, 0, 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
+ (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd));
}
#line 9066 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -9068,7 +9068,7 @@ yyreduce:
case 521:
#line 3578 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_args(p, 0, 0, 0, 0, (yyvsp[0].nd));
+ (yyval.nd) = new_args(p, 0, 0, (yyvsp[-1].id), 0, (yyvsp[0].nd));
}
#line 9074 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -9076,237 +9076,253 @@ yyreduce:
case 522:
#line 3582 "mrbgems/mruby-compiler/core/parse.y"
{
+ (yyval.nd) = new_args(p, 0, 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
+ }
+#line 9082 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
+ case 523:
+#line 3586 "mrbgems/mruby-compiler/core/parse.y"
+ {
+ (yyval.nd) = new_args(p, 0, 0, 0, 0, (yyvsp[0].nd));
+ }
+#line 9090 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
+ case 524:
+#line 3590 "mrbgems/mruby-compiler/core/parse.y"
+ {
local_add_f(p, mrb_intern_lit(p->mrb, "&"));
(yyval.nd) = new_args(p, 0, 0, 0, 0, 0);
}
-#line 9083 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9099 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 523:
-#line 3589 "mrbgems/mruby-compiler/core/parse.y"
+ case 525:
+#line 3597 "mrbgems/mruby-compiler/core/parse.y"
{
yyerror(p, "formal argument cannot be a constant");
(yyval.nd) = 0;
}
-#line 9092 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9108 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 524:
-#line 3594 "mrbgems/mruby-compiler/core/parse.y"
+ case 526:
+#line 3602 "mrbgems/mruby-compiler/core/parse.y"
{
yyerror(p, "formal argument cannot be an instance variable");
(yyval.nd) = 0;
}
-#line 9101 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9117 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 525:
-#line 3599 "mrbgems/mruby-compiler/core/parse.y"
+ case 527:
+#line 3607 "mrbgems/mruby-compiler/core/parse.y"
{
yyerror(p, "formal argument cannot be a global variable");
(yyval.nd) = 0;
}
-#line 9110 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9126 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 526:
-#line 3604 "mrbgems/mruby-compiler/core/parse.y"
+ case 528:
+#line 3612 "mrbgems/mruby-compiler/core/parse.y"
{
yyerror(p, "formal argument cannot be a class variable");
(yyval.nd) = 0;
}
-#line 9119 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9135 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 527:
-#line 3609 "mrbgems/mruby-compiler/core/parse.y"
+ case 529:
+#line 3617 "mrbgems/mruby-compiler/core/parse.y"
{
yyerror(p, "formal argument cannot be a numbered parameter");
(yyval.nd) = 0;
}
-#line 9128 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9144 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 528:
-#line 3616 "mrbgems/mruby-compiler/core/parse.y"
+ case 530:
+#line 3624 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.id) = 0;
}
-#line 9136 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9152 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 529:
-#line 3620 "mrbgems/mruby-compiler/core/parse.y"
+ case 531:
+#line 3628 "mrbgems/mruby-compiler/core/parse.y"
{
local_add_f(p, (yyvsp[0].id));
(yyval.id) = (yyvsp[0].id);
}
-#line 9145 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9161 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 530:
-#line 3627 "mrbgems/mruby-compiler/core/parse.y"
+ case 532:
+#line 3635 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_arg(p, (yyvsp[0].id));
}
-#line 9153 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9169 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 531:
-#line 3631 "mrbgems/mruby-compiler/core/parse.y"
+ case 533:
+#line 3639 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = local_switch(p);
}
-#line 9161 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9177 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 532:
-#line 3635 "mrbgems/mruby-compiler/core/parse.y"
+ case 534:
+#line 3643 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_masgn_param(p, (yyvsp[-1].nd), p->locals->car);
local_resume(p, (yyvsp[-2].nd));
local_add_f(p, 0);
}
-#line 9171 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9187 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 533:
-#line 3643 "mrbgems/mruby-compiler/core/parse.y"
+ case 535:
+#line 3651 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1((yyvsp[0].nd));
}
-#line 9179 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9195 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 534:
-#line 3647 "mrbgems/mruby-compiler/core/parse.y"
+ case 536:
+#line 3655 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 9187 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9203 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 535:
-#line 3653 "mrbgems/mruby-compiler/core/parse.y"
+ case 537:
+#line 3661 "mrbgems/mruby-compiler/core/parse.y"
{
local_add_f(p, (yyvsp[-1].id));
local_nest(p);
(yyval.id) = (yyvsp[-1].id);
}
-#line 9197 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9213 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 536:
-#line 3661 "mrbgems/mruby-compiler/core/parse.y"
+ case 538:
+#line 3669 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = cons(nsym((yyvsp[-1].id)), cons((yyvsp[0].nd), locals_node(p)));
local_unnest(p);
}
-#line 9207 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9223 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 537:
-#line 3669 "mrbgems/mruby-compiler/core/parse.y"
+ case 539:
+#line 3677 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = cons(nsym((yyvsp[-1].id)), cons((yyvsp[0].nd), locals_node(p)));
local_unnest(p);
}
-#line 9217 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9233 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 538:
-#line 3677 "mrbgems/mruby-compiler/core/parse.y"
+ case 540:
+#line 3685 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1((yyvsp[0].nd));
}
-#line 9225 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9241 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 539:
-#line 3681 "mrbgems/mruby-compiler/core/parse.y"
+ case 541:
+#line 3689 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 9233 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9249 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 540:
-#line 3687 "mrbgems/mruby-compiler/core/parse.y"
+ case 542:
+#line 3695 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1((yyvsp[0].nd));
}
-#line 9241 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9257 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 541:
-#line 3691 "mrbgems/mruby-compiler/core/parse.y"
+ case 543:
+#line 3699 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 9249 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9265 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 544:
-#line 3701 "mrbgems/mruby-compiler/core/parse.y"
+ case 546:
+#line 3709 "mrbgems/mruby-compiler/core/parse.y"
{
local_add_f(p, (yyvsp[0].id));
(yyval.id) = (yyvsp[0].id);
}
-#line 9258 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9274 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 545:
-#line 3706 "mrbgems/mruby-compiler/core/parse.y"
+ case 547:
+#line 3714 "mrbgems/mruby-compiler/core/parse.y"
{
local_add_f(p, mrb_intern_lit(p->mrb, "*"));
(yyval.id) = -1;
}
-#line 9267 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9283 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 548:
-#line 3717 "mrbgems/mruby-compiler/core/parse.y"
+ case 550:
+#line 3725 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.id) = (yyvsp[0].id);
}
-#line 9275 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9291 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 549:
-#line 3723 "mrbgems/mruby-compiler/core/parse.y"
+ case 551:
+#line 3731 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.id) = (yyvsp[0].id);
}
-#line 9283 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9299 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 550:
-#line 3727 "mrbgems/mruby-compiler/core/parse.y"
+ case 552:
+#line 3735 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.id) = 0;
}
-#line 9291 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9307 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 551:
-#line 3733 "mrbgems/mruby-compiler/core/parse.y"
+ case 553:
+#line 3741 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
if (!(yyval.nd)) (yyval.nd) = new_nil(p);
}
-#line 9300 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9316 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 552:
-#line 3737 "mrbgems/mruby-compiler/core/parse.y"
+ case 554:
+#line 3745 "mrbgems/mruby-compiler/core/parse.y"
{p->lstate = EXPR_BEG;}
-#line 9306 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9322 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 553:
-#line 3738 "mrbgems/mruby-compiler/core/parse.y"
+ case 555:
+#line 3746 "mrbgems/mruby-compiler/core/parse.y"
{
if ((yyvsp[-1].nd) == 0) {
yyerror(p, "can't define singleton method for ().");
@@ -9329,55 +9345,55 @@ yyreduce:
}
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 9333 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9349 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 555:
-#line 3764 "mrbgems/mruby-compiler/core/parse.y"
+ case 557:
+#line 3772 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 9341 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9357 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 556:
-#line 3770 "mrbgems/mruby-compiler/core/parse.y"
+ case 558:
+#line 3778 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1((yyvsp[0].nd));
NODE_LINENO((yyval.nd), (yyvsp[0].nd));
}
-#line 9350 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9366 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 557:
-#line 3775 "mrbgems/mruby-compiler/core/parse.y"
+ case 559:
+#line 3783 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 9358 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9374 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 560:
-#line 3785 "mrbgems/mruby-compiler/core/parse.y"
+ case 562:
+#line 3793 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[-2].nd));
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = cons((yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 9368 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9384 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 561:
-#line 3791 "mrbgems/mruby-compiler/core/parse.y"
+ case 563:
+#line 3799 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = cons(new_sym(p, (yyvsp[-2].id)), (yyvsp[0].nd));
}
-#line 9377 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9393 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 562:
-#line 3796 "mrbgems/mruby-compiler/core/parse.y"
+ case 564:
+#line 3804 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
if ((yyvsp[-2].nd)->car == (node*)NODE_DSTR) {
@@ -9387,67 +9403,67 @@ yyreduce:
(yyval.nd) = cons(new_sym(p, new_strsym(p, (yyvsp[-2].nd))), (yyvsp[0].nd));
}
}
-#line 9391 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9407 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 563:
-#line 3806 "mrbgems/mruby-compiler/core/parse.y"
+ case 565:
+#line 3814 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = cons(new_kw_rest_args(p, 0), (yyvsp[0].nd));
}
-#line 9400 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9416 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 576:
-#line 3833 "mrbgems/mruby-compiler/core/parse.y"
+ case 578:
+#line 3841 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.num) = '.';
}
-#line 9408 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9424 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 577:
-#line 3837 "mrbgems/mruby-compiler/core/parse.y"
+ case 579:
+#line 3845 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.num) = 0;
}
-#line 9416 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9432 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 579:
-#line 3844 "mrbgems/mruby-compiler/core/parse.y"
+ case 581:
+#line 3852 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.num) = tCOLON2;
}
-#line 9424 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9440 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 588:
-#line 3865 "mrbgems/mruby-compiler/core/parse.y"
+ case 590:
+#line 3873 "mrbgems/mruby-compiler/core/parse.y"
{yyerrok;}
-#line 9430 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9446 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 591:
-#line 3871 "mrbgems/mruby-compiler/core/parse.y"
+ case 593:
+#line 3879 "mrbgems/mruby-compiler/core/parse.y"
{
p->lineno += (yyvsp[0].num);
p->column = 0;
}
-#line 9439 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9455 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 594:
-#line 3882 "mrbgems/mruby-compiler/core/parse.y"
+ case 596:
+#line 3890 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = 0;
}
-#line 9447 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9463 "mrbgems/mruby-compiler/core/y.tab.c"
break;
-#line 9451 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9467 "mrbgems/mruby-compiler/core/y.tab.c"
default: break;
}
@@ -9679,7 +9695,7 @@ yyreturn:
#endif
return yyresult;
}
-#line 3886 "mrbgems/mruby-compiler/core/parse.y"
+#line 3894 "mrbgems/mruby-compiler/core/parse.y"
#define pylval (*((YYSTYPE*)(p->ylval)))
diff --git a/mrbgems/mruby-range-ext/mrblib/range.rb b/mrbgems/mruby-range-ext/mrblib/range.rb
index a213beb57..8b0969003 100644
--- a/mrbgems/mruby-range-ext/mrblib/range.rb
+++ b/mrbgems/mruby-range-ext/mrblib/range.rb
@@ -27,10 +27,12 @@ class Range
end
def max(&block)
- val = self.first
- last = self.last
+ val = self.begin
+ last = self.end
return super if block
+ raise RangeError, "cannot get the maximum of endless range" if last.nil?
+
# fast path for numerics
if val.kind_of?(Numeric) && last.kind_of?(Numeric)
raise TypeError if exclude_end? && !last.kind_of?(Fixnum)
@@ -47,9 +49,13 @@ class Range
end
def min(&block)
- val = self.first
- last = self.last
- return super if block
+ val = self.begin
+ last = self.end
+ if block
+ raise RangeError, "cannot get the minimum of endless range with custom comparison method" if last.nil?
+ return super
+ end
+ return val if last.nil?
# fast path for numerics
if val.kind_of?(Numeric) && last.kind_of?(Numeric)
diff --git a/mrbgems/mruby-range-ext/src/range.c b/mrbgems/mruby-range-ext/src/range.c
index 2a0b4e97d..c263b484b 100644
--- a/mrbgems/mruby-range-ext/src/range.c
+++ b/mrbgems/mruby-range-ext/src/range.c
@@ -42,6 +42,9 @@ range_cover(mrb_state *mrb, mrb_value range)
end = RANGE_END(r);
if (r_le(mrb, beg, val)) {
+ if (mrb_nil_p(end)) {
+ return mrb_true_value();
+ }
if (RANGE_EXCL(r)) {
if (r_lt(mrb, val, end))
return mrb_true_value();
@@ -76,6 +79,11 @@ range_last(mrb_state *mrb, mrb_value range)
{
mrb_value num;
mrb_value array;
+ struct RRange *r = mrb_range_ptr(mrb, range);
+
+ if (mrb_nil_p(RANGE_END(r))) {
+ mrb_raise(mrb, E_RANGE_ERROR, "cannot get the last element of endless range");
+ }
if (mrb_get_args(mrb, "|o", &num) == 0) {
return mrb_range_end(mrb, range);
@@ -108,6 +116,10 @@ range_size(mrb_state *mrb, mrb_value range)
beg = RANGE_BEG(r);
end = RANGE_END(r);
+ if ((mrb_fixnum_p(beg) || mrb_float_p(beg)) && mrb_nil_p(end)) {
+ return mrb_float_value(mrb, INFINITY);
+ }
+
excl = RANGE_EXCL(r);
if (mrb_fixnum_p(beg)) {
beg_f = (mrb_float)mrb_fixnum(beg);
@@ -159,6 +171,10 @@ range_size(mrb_state *mrb, mrb_value range)
beg = RANGE_BEG(r);
end = RANGE_END(r);
+ if (mrb_fixnum_p(beg) && mrb_nil_p(end)) {
+ return mrb_nil_value();
+ }
+
excl = RANGE_EXCL(r) ? 0 : 1;
if (mrb_fixnum_p(beg) && mrb_fixnum_p(end)) {
diff --git a/mrbgems/mruby-range-ext/test/range.rb b/mrbgems/mruby-range-ext/test/range.rb
index 865e46d02..169ba7169 100644
--- a/mrbgems/mruby-range-ext/test/range.rb
+++ b/mrbgems/mruby-range-ext/test/range.rb
@@ -5,11 +5,16 @@ assert('Range#cover?') do
assert_true ("a".."z").cover?("c")
assert_true !("a".."z").cover?("5")
assert_true ("a".."z").cover?("cc")
+ assert_true ("a"..).cover?("c")
+ assert_false ("a"..).cover?("5")
+ assert_true ("a"..).cover?("cc")
end
assert('Range#first') do
assert_equal 10, (10..20).first
assert_equal [10, 11, 12], (10..20).first(3)
+ assert_equal 10, (10..).first
+ assert_equal [10, 11, 12], (10..).first(3)
skip unless Object.const_defined?(:Float)
assert_equal [0, 1, 2], (0..Float::INFINITY).first(3)
@@ -18,6 +23,8 @@ end
assert('Range#last') do
assert_equal 20, (10..20).last
assert_equal 20, (10...20).last
+ assert_raise(RangeError) { (10..).last }
+ assert_raise(RangeError) { (10...).last }
assert_equal [18, 19, 20], (10..20).last(3)
assert_equal [17, 18, 19], (10...20).last(3)
end
@@ -26,6 +33,9 @@ assert('Range#size') do
assert_equal 42, (1..42).size
assert_equal 41, (1...42).size
assert_nil ('a'..'z').size
+ assert_nil ('a'..).size
+
+ assert_nil (1..).size unless Object.const_defined?(:Float)
skip unless Object.const_defined?(:Float)
assert_equal 6, (1...6.3).size
@@ -33,6 +43,10 @@ assert('Range#size') do
assert_equal 5, (1.1...6).size
assert_equal 15, (1.0..15.9).size
assert_equal Float::INFINITY, (0..Float::INFINITY).size
+
+ assert_equal Float::INFINITY, (1..).size
+ assert_equal Float::INFINITY, (1...).size
+ assert_equal Float::INFINITY, (1.0..).size
end
assert('Range#max') do
@@ -50,6 +64,10 @@ assert('Range#max') do
# returns the endpoint when the endpoint equals the start point and the range is inclusive
assert_equal 5, (5..5).max
+ # raises RangeError when called on an endless range
+ assert_raise(RangeError) { (10..).max }
+ assert_raise(RangeError) { (10...).max }
+
skip unless Object.const_defined?(:Float)
# returns the maximum value in the Float range when called with no arguments
@@ -94,26 +112,31 @@ assert('Range#min') do
# returns the minimum value in the range when called with no arguments
assert_equal 1, (1..10).min
assert_equal 1, (1...10).min
+ assert_equal 1, (1..).min
# returns nil when the start point is greater than the endpoint
assert_equal nil, (100..10).min
# returns nil when the endpoint equals the start point and the range is exclusive
- assert_equal nil, (5...5).max
+ assert_equal nil, (5...5).min
# returns the endpoint when the endpoint equals the start point and the range is inclusive
- assert_equal 5, (5..5).max
+ assert_equal 5, (5..5).min
skip unless Object.const_defined?(:Float)
# returns the minimum value in the Float range when called with no arguments
assert_equal 303.20, (303.20..908.1111).min
+ assert_equal 1, (1.0..).min
# returns nil when the start point is greater than the endpoint in a Float range
- assert_equal nil, (3003.20..908.1111).max
+ assert_equal nil, (3003.20..908.1111).min
end
assert('Range#min given a block') do
+ # raise when called with a block in endless range
+ assert_raise(RangeError) { (1..).min{} }
+
# passes each pair of values in the range to the block
acc = []
(1..10).min do |a, b|
diff --git a/mrbgems/mruby-string-ext/mrblib/string.rb b/mrbgems/mruby-string-ext/mrblib/string.rb
index e57d75355..32914d074 100644
--- a/mrbgems/mruby-string-ext/mrblib/string.rb
+++ b/mrbgems/mruby-string-ext/mrblib/string.rb
@@ -444,4 +444,27 @@ class String
end
self
end
+
+ def __upto_endless(&block)
+ return to_enum(:__upto_endless) unless block
+
+ len = self.length
+ # both edges are all digits
+ bi = self.to_i(10)
+ if bi > 0 or bi == "0"*len
+ while true
+ s = bi.to_s
+ s = s.rjust(len, "0") if s.length < len
+ yield s
+ bi += 1
+ end
+ return self
+ end
+ bs = self
+ while true
+ yield bs
+ bs = bs.succ
+ end
+ self
+ end
end