summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2020-10-15 18:35:13 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2020-10-15 18:35:13 +0900
commit6b457d2c006c333bfdc1328ecc73db7e63a6aca5 (patch)
treed4175aeefd1bf78893e21dda70615127594ad29f
parentc779413df39ef7d96583bda08104491c55049fad (diff)
parentbec4d053400c3a11c8efd68c3e8bd5ea4a0bcc54 (diff)
downloadmruby-6b457d2c006c333bfdc1328ecc73db7e63a6aca5.tar.gz
mruby-6b457d2c006c333bfdc1328ecc73db7e63a6aca5.zip
Merge branch 'work_for_merge' of https://github.com/zubycz/mruby into zubycz-work_for_merge
-rw-r--r--mrbgems/mruby-compiler/core/parse.y8
-rw-r--r--mrbgems/mruby-compiler/core/y.tab.c2518
-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.rb23
-rw-r--r--mrbgems/mruby-string-ext/mrblib/string.rb23
-rw-r--r--mrblib/range.rb26
-rw-r--r--src/range.c28
-rw-r--r--test/t/array.rb5
-rw-r--r--test/t/range.rb68
-rw-r--r--test/t/string.rb4
11 files changed, 1466 insertions, 1269 deletions
diff --git a/mrbgems/mruby-compiler/core/parse.y b/mrbgems/mruby-compiler/core/parse.y
index 6409f0b3d..557a8c5ac 100644
--- a/mrbgems/mruby-compiler/core/parse.y
+++ b/mrbgems/mruby-compiler/core/parse.y
@@ -2190,10 +2190,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 becf886c5..07cb3ded5 100644
--- a/mrbgems/mruby-compiler/core/y.tab.c
+++ b/mrbgems/mruby-compiler/core/y.tab.c
@@ -1933,7 +1933,7 @@ union yyalloc
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 177
/* YYNRULES -- Number of rules. */
-#define YYNRULES 603
+#define YYNRULES 605
/* YYNSTATES -- Number of states. */
#define YYNSTATES 1054
@@ -2018,43 +2018,43 @@ static const yytype_int16 yyrline[] =
2201, 2205, 2209, 2213, 2217, 2221, 2225, 2229, 2233, 2237,
2241, 2245, 2249, 2253, 2257, 2261, 2265, 2269, 2273, 2277,
2281, 2285, 2289, 2293, 2297, 2301, 2305, 2309, 2313, 2317,
- 2321, 2329, 2338, 2347, 2357, 2363, 2364, 2369, 2373, 2380,
- 2384, 2392, 2396, 2422, 2423, 2426, 2427, 2428, 2433, 2438,
- 2445, 2451, 2456, 2461, 2466, 2473, 2473, 2484, 2490, 2494,
- 2500, 2501, 2504, 2510, 2516, 2521, 2528, 2533, 2538, 2545,
- 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2556, 2561, 2560,
- 2572, 2576, 2571, 2581, 2581, 2585, 2589, 2593, 2597, 2602,
- 2607, 2611, 2615, 2619, 2623, 2627, 2628, 2634, 2640, 2633,
- 2652, 2660, 2668, 2668, 2668, 2675, 2675, 2675, 2682, 2688,
- 2693, 2695, 2692, 2704, 2702, 2720, 2725, 2718, 2742, 2740,
- 2756, 2766, 2777, 2781, 2785, 2789, 2795, 2802, 2803, 2804,
- 2807, 2808, 2811, 2812, 2820, 2821, 2827, 2831, 2834, 2838,
- 2842, 2846, 2851, 2855, 2859, 2863, 2869, 2868, 2878, 2882,
- 2886, 2890, 2896, 2901, 2906, 2910, 2914, 2918, 2922, 2926,
- 2930, 2934, 2938, 2942, 2946, 2950, 2954, 2958, 2962, 2968,
- 2973, 2980, 2980, 2984, 2989, 2996, 3000, 3006, 3007, 3010,
- 3015, 3018, 3022, 3028, 3032, 3039, 3038, 3053, 3063, 3067,
- 3072, 3079, 3083, 3087, 3091, 3095, 3099, 3103, 3107, 3111,
- 3118, 3117, 3132, 3131, 3147, 3155, 3164, 3167, 3174, 3177,
- 3181, 3182, 3185, 3189, 3192, 3196, 3199, 3200, 3201, 3202,
- 3205, 3206, 3212, 3213, 3214, 3218, 3224, 3225, 3231, 3236,
- 3235, 3246, 3250, 3256, 3260, 3266, 3270, 3276, 3279, 3280,
- 3283, 3289, 3295, 3296, 3299, 3306, 3305, 3319, 3323, 3330,
- 3335, 3342, 3348, 3349, 3350, 3351, 3352, 3356, 3362, 3366,
- 3372, 3373, 3374, 3378, 3384, 3388, 3392, 3396, 3400, 3406,
- 3410, 3416, 3420, 3424, 3428, 3432, 3436, 3444, 3451, 3462,
- 3463, 3467, 3471, 3470, 3486, 3492, 3512, 3513, 3519, 3525,
- 3531, 3538, 3543, 3550, 3554, 3560, 3564, 3570, 3571, 3574,
- 3578, 3584, 3588, 3592, 3596, 3602, 3607, 3612, 3616, 3620,
+ 2321, 2325, 2329, 2337, 2346, 2355, 2365, 2371, 2372, 2377,
+ 2381, 2388, 2392, 2400, 2404, 2430, 2431, 2434, 2435, 2436,
+ 2441, 2446, 2453, 2459, 2464, 2469, 2474, 2481, 2481, 2492,
+ 2498, 2502, 2508, 2509, 2512, 2518, 2524, 2529, 2536, 2541,
+ 2546, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2564,
+ 2569, 2568, 2580, 2584, 2579, 2589, 2589, 2593, 2597, 2601,
+ 2605, 2610, 2615, 2619, 2623, 2627, 2631, 2635, 2636, 2642,
+ 2648, 2641, 2660, 2668, 2676, 2676, 2676, 2683, 2683, 2683,
+ 2690, 2696, 2701, 2703, 2700, 2712, 2710, 2728, 2733, 2726,
+ 2750, 2748, 2764, 2774, 2785, 2789, 2793, 2797, 2803, 2810,
+ 2811, 2812, 2815, 2816, 2819, 2820, 2828, 2829, 2835, 2839,
+ 2842, 2846, 2850, 2854, 2859, 2863, 2867, 2871, 2877, 2876,
+ 2886, 2890, 2894, 2898, 2904, 2909, 2914, 2918, 2922, 2926,
+ 2930, 2934, 2938, 2942, 2946, 2950, 2954, 2958, 2962, 2966,
+ 2970, 2976, 2981, 2988, 2988, 2992, 2997, 3004, 3008, 3014,
+ 3015, 3018, 3023, 3026, 3030, 3036, 3040, 3047, 3046, 3061,
+ 3071, 3075, 3080, 3087, 3091, 3095, 3099, 3103, 3107, 3111,
+ 3115, 3119, 3126, 3125, 3140, 3139, 3155, 3163, 3172, 3175,
+ 3182, 3185, 3189, 3190, 3193, 3197, 3200, 3204, 3207, 3208,
+ 3209, 3210, 3213, 3214, 3220, 3221, 3222, 3226, 3232, 3233,
+ 3239, 3244, 3243, 3254, 3258, 3264, 3268, 3274, 3278, 3284,
+ 3287, 3288, 3291, 3297, 3303, 3304, 3307, 3314, 3313, 3327,
+ 3331, 3338, 3343, 3350, 3356, 3357, 3358, 3359, 3360, 3364,
+ 3370, 3374, 3380, 3381, 3382, 3386, 3392, 3396, 3400, 3404,
+ 3408, 3414, 3418, 3424, 3428, 3432, 3436, 3440, 3444, 3452,
+ 3459, 3470, 3471, 3475, 3479, 3478, 3494, 3500, 3520, 3521,
+ 3527, 3533, 3539, 3546, 3551, 3558, 3562, 3568, 3572, 3578,
+ 3579, 3582, 3586, 3592, 3596, 3600, 3604, 3610, 3615, 3620,
3624, 3628, 3632, 3636, 3640, 3644, 3648, 3652, 3656, 3660,
- 3664, 3669, 3675, 3680, 3685, 3690, 3695, 3702, 3706, 3713,
- 3718, 3717, 3729, 3733, 3739, 3747, 3755, 3763, 3767, 3773,
- 3777, 3783, 3784, 3787, 3792, 3799, 3800, 3803, 3809, 3813,
- 3819, 3824, 3824, 3849, 3850, 3856, 3861, 3867, 3868, 3871,
- 3877, 3882, 3892, 3899, 3900, 3901, 3904, 3905, 3906, 3907,
- 3910, 3911, 3912, 3915, 3916, 3919, 3923, 3929, 3930, 3936,
- 3937, 3940, 3941, 3944, 3947, 3948, 3949, 3952, 3953, 3954,
- 3957, 3964, 3965, 3969
+ 3664, 3668, 3672, 3677, 3683, 3688, 3693, 3698, 3703, 3710,
+ 3714, 3721, 3726, 3725, 3737, 3741, 3747, 3755, 3763, 3771,
+ 3775, 3781, 3785, 3791, 3792, 3795, 3800, 3807, 3808, 3811,
+ 3817, 3821, 3827, 3832, 3832, 3857, 3858, 3864, 3869, 3875,
+ 3876, 3879, 3885, 3890, 3900, 3907, 3908, 3909, 3912, 3913,
+ 3914, 3915, 3918, 3919, 3920, 3923, 3924, 3927, 3931, 3937,
+ 3938, 3944, 3945, 3948, 3949, 3952, 3955, 3956, 3957, 3960,
+ 3961, 3962, 3965, 3972, 3973, 3977
};
#endif
@@ -2153,7 +2153,7 @@ static const yytype_int16 yytoknum[] =
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
-#define YYTABLE_NINF (-604)
+#define YYTABLE_NINF (-606)
#define yytable_value_is_error(Yyn) \
((Yyn) == YYTABLE_NINF)
@@ -2275,19 +2275,19 @@ static const yytype_int16 yypact[] =
means the default is an error. */
static const yytype_int16 yydefact[] =
{
- 2, 0, 0, 1, 0, 0, 0, 0, 288, 0,
- 0, 312, 315, 0, 0, 589, 332, 333, 334, 335,
- 300, 265, 408, 483, 482, 484, 485, 591, 0, 10,
- 0, 487, 486, 488, 474, 287, 476, 475, 478, 477,
- 470, 471, 432, 433, 489, 490, 286, 0, 0, 0,
- 0, 290, 603, 603, 88, 307, 0, 0, 0, 0,
- 0, 0, 447, 0, 0, 0, 3, 589, 6, 9,
- 32, 27, 33, 531, 531, 49, 60, 59, 0, 76,
- 0, 80, 90, 0, 54, 244, 0, 61, 305, 279,
- 280, 430, 281, 282, 283, 428, 427, 459, 429, 426,
- 481, 0, 284, 285, 265, 5, 8, 332, 333, 300,
- 603, 408, 0, 113, 114, 286, 0, 0, 0, 0,
- 531, 531, 116, 491, 336, 0, 481, 285, 0, 328,
+ 2, 0, 0, 1, 0, 0, 0, 0, 290, 0,
+ 0, 314, 317, 0, 0, 591, 334, 335, 336, 337,
+ 302, 267, 410, 485, 484, 486, 487, 593, 0, 10,
+ 0, 489, 488, 490, 476, 289, 478, 477, 480, 479,
+ 472, 473, 434, 435, 491, 492, 288, 0, 0, 0,
+ 0, 292, 605, 605, 88, 309, 0, 0, 0, 0,
+ 0, 0, 449, 0, 0, 0, 3, 591, 6, 9,
+ 32, 27, 33, 533, 533, 49, 60, 59, 0, 76,
+ 0, 80, 90, 0, 54, 246, 0, 61, 307, 281,
+ 282, 432, 283, 284, 285, 430, 429, 461, 431, 428,
+ 483, 0, 286, 287, 267, 5, 8, 334, 335, 302,
+ 605, 410, 0, 113, 114, 288, 0, 0, 0, 0,
+ 533, 533, 116, 493, 338, 0, 483, 287, 0, 330,
168, 178, 169, 165, 194, 195, 196, 197, 176, 191,
184, 174, 173, 189, 172, 171, 167, 192, 166, 179,
183, 185, 177, 170, 186, 193, 188, 187, 180, 190,
@@ -2295,92 +2295,92 @@ static const yytype_int16 yydefact[] =
118, 120, 119, 153, 154, 149, 131, 132, 133, 140,
137, 139, 134, 135, 155, 156, 141, 142, 146, 150,
136, 138, 128, 129, 130, 143, 144, 145, 147, 148,
- 151, 152, 157, 561, 55, 121, 122, 560, 0, 0,
- 0, 58, 0, 0, 54, 0, 481, 0, 285, 0,
- 0, 0, 112, 0, 347, 346, 0, 0, 104, 111,
+ 151, 152, 157, 563, 55, 121, 122, 562, 0, 0,
+ 0, 58, 0, 0, 54, 0, 483, 0, 287, 0,
+ 0, 0, 112, 0, 349, 348, 0, 0, 104, 111,
187, 180, 190, 175, 158, 159, 160, 118, 119, 0,
- 123, 125, 20, 124, 450, 455, 454, 597, 600, 589,
- 599, 0, 452, 0, 601, 598, 590, 573, 0, 0,
- 0, 0, 260, 272, 74, 264, 603, 430, 603, 565,
- 75, 73, 603, 254, 301, 72, 0, 253, 407, 71,
- 589, 0, 592, 18, 0, 0, 217, 0, 218, 297,
- 0, 0, 0, 589, 15, 589, 78, 14, 0, 589,
- 0, 594, 594, 245, 0, 0, 594, 563, 0, 0,
- 86, 0, 96, 103, 531, 464, 463, 465, 466, 0,
- 462, 461, 445, 439, 438, 441, 0, 0, 436, 457,
- 0, 468, 0, 434, 0, 443, 0, 472, 473, 53,
- 232, 233, 4, 590, 0, 0, 0, 0, 0, 0,
- 0, 0, 538, 534, 533, 532, 535, 536, 507, 540,
- 552, 508, 556, 555, 551, 531, 496, 0, 500, 505,
- 603, 510, 603, 530, 0, 537, 539, 542, 516, 0,
- 549, 516, 554, 516, 0, 514, 496, 0, 395, 397,
+ 123, 125, 20, 124, 452, 457, 456, 599, 602, 591,
+ 601, 0, 454, 0, 603, 600, 592, 575, 0, 0,
+ 0, 0, 262, 274, 74, 266, 605, 432, 605, 567,
+ 75, 73, 605, 256, 303, 72, 0, 255, 409, 71,
+ 591, 0, 594, 18, 0, 0, 219, 0, 220, 299,
+ 0, 0, 0, 591, 15, 591, 78, 14, 0, 591,
+ 0, 596, 596, 247, 0, 0, 596, 565, 0, 0,
+ 86, 0, 96, 103, 533, 466, 465, 467, 468, 0,
+ 464, 463, 447, 441, 440, 443, 0, 0, 438, 459,
+ 0, 470, 0, 436, 0, 445, 0, 474, 475, 53,
+ 234, 235, 4, 592, 0, 0, 0, 0, 0, 0,
+ 0, 0, 540, 536, 535, 534, 537, 538, 509, 542,
+ 554, 510, 558, 557, 553, 533, 498, 0, 502, 507,
+ 605, 512, 605, 532, 0, 539, 541, 544, 518, 0,
+ 551, 518, 556, 518, 0, 516, 498, 0, 397, 399,
0, 92, 0, 84, 81, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 208, 210, 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, 586, 603, 585, 0, 588, 587,
- 0, 412, 410, 306, 431, 0, 0, 401, 65, 304,
- 325, 113, 114, 115, 472, 473, 496, 492, 323, 0,
- 603, 0, 0, 0, 584, 583, 56, 0, 603, 297,
- 338, 0, 337, 0, 0, 603, 0, 0, 0, 0,
- 0, 0, 110, 0, 603, 0, 320, 0, 126, 0,
- 0, 451, 453, 0, 0, 602, 567, 0, 273, 572,
- 267, 0, 270, 261, 0, 269, 0, 262, 0, 589,
- 0, 589, 603, 603, 255, 266, 589, 0, 303, 52,
- 0, 0, 0, 0, 0, 0, 17, 589, 295, 13,
- 590, 77, 291, 294, 298, 596, 246, 595, 596, 248,
- 299, 564, 102, 94, 0, 89, 0, 0, 603, 0,
- 531, 308, 392, 467, 0, 0, 442, 448, 446, 437,
- 458, 469, 435, 444, 0, 0, 7, 21, 22, 23,
- 24, 25, 37, 36, 50, 51, 498, 544, 0, 589,
- 589, 0, 0, 499, 0, 512, 559, 509, 0, 513,
- 497, 0, 523, 545, 0, 526, 553, 0, 528, 557,
- 0, 0, 603, 0, 28, 30, 0, 31, 589, 0,
- 82, 93, 48, 38, 46, 0, 249, 198, 29, 0,
- 285, 214, 222, 227, 228, 229, 224, 226, 236, 237,
- 230, 231, 207, 208, 234, 235, 35, 34, 591, 223,
- 225, 219, 220, 221, 209, 210, 211, 212, 213, 576,
- 581, 577, 582, 406, 265, 404, 0, 576, 578, 577,
- 579, 405, 603, 576, 577, 265, 603, 603, 39, 249,
+ 0, 0, 0, 0, 588, 605, 587, 0, 590, 589,
+ 0, 414, 412, 308, 433, 0, 0, 403, 65, 306,
+ 327, 113, 114, 115, 474, 475, 498, 494, 325, 0,
+ 605, 0, 0, 0, 586, 585, 56, 0, 605, 299,
+ 340, 0, 339, 0, 0, 605, 0, 0, 0, 0,
+ 0, 0, 110, 0, 605, 0, 322, 0, 126, 0,
+ 0, 453, 455, 0, 0, 604, 569, 0, 275, 574,
+ 269, 0, 272, 263, 0, 271, 0, 264, 0, 591,
+ 0, 591, 605, 605, 257, 268, 591, 0, 305, 52,
+ 0, 0, 0, 0, 0, 0, 17, 591, 297, 13,
+ 592, 77, 293, 296, 300, 598, 248, 597, 598, 250,
+ 301, 566, 102, 94, 0, 89, 0, 0, 605, 0,
+ 533, 310, 394, 469, 0, 0, 444, 450, 448, 439,
+ 460, 471, 437, 446, 0, 0, 7, 21, 22, 23,
+ 24, 25, 37, 36, 50, 51, 500, 546, 0, 591,
+ 591, 0, 0, 501, 0, 514, 561, 511, 0, 515,
+ 499, 0, 525, 547, 0, 528, 555, 0, 530, 559,
+ 0, 0, 605, 0, 28, 30, 0, 31, 591, 0,
+ 82, 93, 48, 38, 46, 0, 251, 198, 29, 0,
+ 287, 216, 224, 229, 230, 231, 226, 228, 238, 239,
+ 232, 233, 207, 209, 236, 237, 35, 34, 593, 225,
+ 227, 221, 222, 223, 211, 212, 213, 214, 215, 578,
+ 583, 579, 584, 408, 267, 406, 0, 578, 580, 579,
+ 581, 407, 605, 578, 579, 267, 605, 605, 39, 251,
199, 45, 206, 63, 66, 0, 0, 0, 113, 114,
- 117, 0, 0, 603, 0, 589, 0, 289, 603, 603,
- 418, 603, 339, 580, 296, 0, 576, 577, 603, 341,
- 313, 340, 316, 107, 109, 0, 106, 108, 0, 0,
- 0, 0, 272, 0, 319, 568, 570, 569, 0, 0,
- 274, 268, 603, 571, 566, 252, 251, 256, 257, 259,
- 302, 593, 19, 0, 26, 205, 79, 16, 589, 594,
- 95, 87, 99, 101, 0, 98, 100, 591, 0, 460,
- 0, 449, 215, 216, 538, 355, 589, 348, 495, 494,
- 240, 330, 0, 506, 603, 558, 515, 543, 516, 516,
- 516, 550, 516, 538, 516, 242, 331, 383, 381, 0,
- 380, 379, 278, 0, 91, 85, 0, 0, 0, 0,
- 0, 603, 0, 0, 0, 0, 403, 69, 409, 0,
- 0, 402, 67, 398, 62, 0, 0, 603, 326, 0,
- 0, 409, 329, 562, 57, 419, 420, 603, 421, 0,
- 603, 344, 0, 0, 342, 0, 0, 409, 0, 0,
- 0, 0, 0, 105, 0, 127, 456, 318, 0, 0,
- 271, 275, 263, 603, 11, 292, 247, 97, 0, 385,
- 0, 0, 309, 440, 356, 353, 541, 0, 0, 511,
- 0, 519, 0, 521, 0, 527, 0, 524, 529, 0,
- 378, 591, 591, 502, 503, 603, 603, 363, 0, 547,
- 363, 363, 361, 0, 0, 276, 83, 47, 250, 576,
- 577, 0, 576, 577, 0, 0, 44, 203, 43, 204,
- 70, 0, 41, 201, 42, 202, 68, 399, 400, 0,
- 0, 0, 0, 493, 324, 0, 0, 423, 345, 0,
- 12, 425, 0, 310, 0, 311, 0, 0, 321, 274,
- 603, 258, 391, 0, 0, 0, 0, 0, 351, 241,
- 516, 516, 516, 516, 243, 0, 0, 0, 501, 0,
- 359, 360, 363, 371, 546, 0, 374, 0, 376, 396,
- 277, 409, 239, 238, 40, 200, 413, 411, 0, 0,
- 0, 422, 0, 104, 111, 0, 424, 0, 314, 317,
- 0, 415, 416, 414, 389, 591, 387, 390, 394, 393,
- 357, 354, 0, 349, 520, 0, 517, 522, 525, 384,
- 382, 297, 0, 504, 603, 0, 362, 369, 363, 363,
- 363, 548, 363, 363, 64, 327, 110, 0, 603, 0,
- 603, 603, 0, 0, 386, 0, 352, 0, 516, 580,
- 296, 358, 0, 366, 0, 368, 0, 375, 0, 372,
- 377, 107, 109, 0, 576, 577, 417, 343, 322, 388,
- 350, 518, 363, 363, 363, 363, 105, 367, 0, 364,
- 370, 373, 363, 365
+ 117, 0, 0, 605, 0, 591, 0, 291, 605, 605,
+ 420, 605, 341, 582, 298, 0, 578, 579, 605, 343,
+ 315, 342, 318, 107, 109, 0, 106, 108, 0, 0,
+ 0, 0, 274, 0, 321, 570, 572, 571, 0, 0,
+ 276, 270, 605, 573, 568, 254, 253, 258, 259, 261,
+ 304, 595, 19, 0, 26, 205, 79, 16, 591, 596,
+ 95, 87, 99, 101, 0, 98, 100, 593, 0, 462,
+ 0, 451, 217, 218, 540, 357, 591, 350, 497, 496,
+ 242, 332, 0, 508, 605, 560, 517, 545, 518, 518,
+ 518, 552, 518, 540, 518, 244, 333, 385, 383, 0,
+ 382, 381, 280, 0, 91, 85, 0, 0, 0, 0,
+ 0, 605, 0, 0, 0, 0, 405, 69, 411, 0,
+ 0, 404, 67, 400, 62, 0, 0, 605, 328, 0,
+ 0, 411, 331, 564, 57, 421, 422, 605, 423, 0,
+ 605, 346, 0, 0, 344, 0, 0, 411, 0, 0,
+ 0, 0, 0, 105, 0, 127, 458, 320, 0, 0,
+ 273, 277, 265, 605, 11, 294, 249, 97, 0, 387,
+ 0, 0, 311, 442, 358, 355, 543, 0, 0, 513,
+ 0, 521, 0, 523, 0, 529, 0, 526, 531, 0,
+ 380, 593, 593, 504, 505, 605, 605, 365, 0, 549,
+ 365, 365, 363, 0, 0, 278, 83, 47, 252, 578,
+ 579, 0, 578, 579, 0, 0, 44, 203, 43, 204,
+ 70, 0, 41, 201, 42, 202, 68, 401, 402, 0,
+ 0, 0, 0, 495, 326, 0, 0, 425, 347, 0,
+ 12, 427, 0, 312, 0, 313, 0, 0, 323, 276,
+ 605, 260, 393, 0, 0, 0, 0, 0, 353, 243,
+ 518, 518, 518, 518, 245, 0, 0, 0, 503, 0,
+ 361, 362, 365, 373, 548, 0, 376, 0, 378, 398,
+ 279, 411, 241, 240, 40, 200, 415, 413, 0, 0,
+ 0, 424, 0, 104, 111, 0, 426, 0, 316, 319,
+ 0, 417, 418, 416, 391, 593, 389, 392, 396, 395,
+ 359, 356, 0, 351, 522, 0, 519, 524, 527, 386,
+ 384, 299, 0, 506, 605, 0, 364, 371, 365, 365,
+ 365, 550, 365, 365, 64, 329, 110, 0, 605, 0,
+ 605, 605, 0, 0, 388, 0, 354, 0, 518, 582,
+ 298, 360, 0, 368, 0, 370, 0, 377, 0, 374,
+ 379, 107, 109, 0, 578, 579, 419, 345, 324, 390,
+ 352, 520, 365, 365, 365, 365, 105, 369, 0, 366,
+ 372, 375, 365, 367
};
/* YYPGOTO[NTERM-NUM]. */
@@ -2446,37 +2446,37 @@ static const yytype_int16 yytable[] =
120, 120, 711, 373, 373, 267, 267, 534, 120, 517,
731, 350, 351, 302, 306, 273, 278, 977, 277, 301,
840, 566, 350, 351, 890, 689, 438, 570, 884, 896,
- 525, -480, 342, 3, 215, 547, 86, 644, 767, -479,
+ 525, -482, 342, 3, 215, 547, 86, 644, 767, -481,
809, 652, 483, 434, 655, 466, 646, 121, 121, 120,
387, 330, 332, 334, 336, 121, 475, 264, 270, -112,
- 289, 271, 349, 1001, 1013, 673, 292, -104, 432, -483,
+ 289, 271, 349, 1001, 1013, 673, 292, -104, 432, -485,
248, 672, 549, 775, 272, 549, 120, 549, 644, 549,
652, 549, 768, 567, 391, 432, 685, 244, -96, 673,
- 245, 246, 885, 337, 338, 695, 121, 387, 437, -296,
- 752, 388, 841, -479, 273, 278, 868, 977, -482, 868,
- 598, 244, -296, -296, 245, 246, 390, 514, 247, -77,
- 248, 358, 437, 121, 285, -483, -296, 86, 673, 444,
- 445, -104, 901, -484, 292, 812, 809, -485, 215, 215,
- -91, 539, 247, 395, 248, -487, 272, 533, -296, 361,
- 362, 602, -577, 673, 983, -296, 362, 470, 471, 734,
- 396, -296, 320, -101, -482, -577, 339, 262, -296, 520,
- -486, 262, 871, 205, 495, 363, 495, 527, 527, 280,
- 504, 363, 527, 248, 497, 830, 868, 714, -488, -484,
- 215, 602, 602, -485, 215, 547, -336, 373, 215, 215,
- -474, -487, 737, 86, -478, 435, 971, 280, 86, 86,
- -336, -573, 761, 447, 480, 572, 86, 420, 421, 422,
- 454, 459, 711, 711, 441, 267, -486, 311, 442, 267,
+ 245, 246, 885, 337, 338, 695, 121, 387, 437, -298,
+ 752, 388, 841, -481, 273, 278, 868, 977, -484, 868,
+ 598, 244, -298, -298, 245, 246, 390, 514, 247, -77,
+ 248, 358, 437, 121, 285, -485, -298, 86, 673, 444,
+ 445, -104, 901, -486, 292, 812, 809, -487, 215, 215,
+ -91, 539, 247, 395, 248, -489, 272, 533, -298, 361,
+ 362, 602, -579, 673, 983, -298, 362, 470, 471, 734,
+ 396, -298, 320, -101, -484, -579, 339, 262, -298, 520,
+ -488, 262, 871, 205, 495, 363, 495, 527, 527, 280,
+ 504, 363, 527, 248, 497, 830, 868, 714, -490, -486,
+ 215, 602, 602, -487, 215, 547, -338, 373, 215, 215,
+ -476, -489, 737, 86, -480, 435, 971, 280, 86, 86,
+ -338, -575, 761, 447, 480, 572, 86, 420, 421, 422,
+ 454, 459, 711, 711, 441, 267, -488, 311, 442, 267,
296, 718, 719, 757, 534, 591, 463, 268, 124, 124,
- 757, 516, 436, 266, -488, -336, 124, 806, 373, 522,
- 876, 468, -336, 467, 931, 741, -474, 472, 519, 428,
- -478, 86, 215, 215, 215, 215, 86, 226, 215, 215,
- -111, 918, 476, 424, -474, 562, 455, 670, 576, -111,
- 576, 557, 558, 559, 560, 86, 478, 124, -474, 549,
+ 757, 516, 436, 266, -490, -338, 124, 806, 373, 522,
+ 876, 468, -338, 467, 931, 741, -476, 472, 519, 428,
+ -480, 86, 215, 215, 215, 215, 86, 226, 215, 215,
+ -111, 918, 476, 424, -476, 562, 455, 670, 576, -111,
+ 576, 557, 558, 559, 560, 86, 478, 124, -476, 549,
556, -103, 42, 483, 69, 43, 515, 534, 600, 561,
674, 512, 935, 936, 120, 86, 515, 292, 215, 492,
86, 311, 544, 609, 124, 426, 486, 505, 511, 849,
- 262, -573, 436, -474, -110, 773, 396, -573, 757, 226,
- -474, 296, 518, 504, -110, 789, 530, 626, 791, -76,
+ 262, -575, 436, -476, -110, 773, 396, -575, 757, 226,
+ -476, 296, 518, 504, -110, 789, 530, 626, 791, -76,
60, 793, 886, 215, 120, 262, 999, 892, 894, 1002,
-111, 121, 818, 609, 609, -102, 532, 596, 504, 791,
262, 650, 596, -106, 650, 524, 680, 790, 215, 262,
@@ -2497,89 +2497,89 @@ static const yytype_int16 yytable[] =
246, 751, 104, 104, 832, 800, 766, 311, 104, 104,
104, 244, 282, 104, 245, 246, 783, 460, 776, 120,
585, 120, 588, 651, 602, 777, 425, 604, 604, 741,
- 602, -481, 124, 426, 778, 602, 602, 462, 418, 419,
- 420, 421, 422, 104, 462, -481, 788, 801, 802, 1021,
+ 602, -483, 124, 426, 778, 602, 602, 462, 418, 419,
+ 420, 421, 422, 104, 462, -483, 788, 801, 802, 1021,
277, 740, 921, 277, 771, 771, 787, 104, 809, 244,
817, 823, 245, 246, 792, 826, 121, 794, 121, 827,
834, 277, 124, 837, 215, 86, 808, 811, 248, 811,
- -481, 485, -96, 847, 120, 843, 811, -481, 566, 804,
+ -483, 485, -96, 847, 120, 843, 811, -483, 566, 804,
247, 965, 248, 799, 850, 527, 852, 967, 854, 856,
205, 243, 904, 825, 533, 905, 215, 873, 897, 104,
495, 104, 909, 673, 244, 449, 124, 245, 246, 1033,
913, 282, 915, 205, 923, 824, 922, 927, 786, 424,
- 939, 121, -285, 899, 124, 596, 273, 602, 942, 273,
- 945, 492, 660, 662, 947, 247, -285, 248, -409, 949,
- 951, 464, 576, 956, 957, 786, 335, 273, -409, 323,
+ 939, 121, -287, 899, 124, 596, 273, 602, 942, 273,
+ 945, 492, 660, 662, 947, 247, -287, 248, -411, 949,
+ 951, 464, 576, 956, 957, 786, 335, 273, -411, 323,
324, 267, 267, 968, 450, 424, 262, 969, 485, 833,
978, 426, 979, 715, 660, 662, 985, 86, 924, 504,
- 720, -285, 989, -103, 311, 86, 609, 990, -285, 215,
+ 720, -287, 989, -103, 311, 86, 609, 990, -287, 215,
991, 726, 609, 215, 1004, 771, 747, 609, 609, 580,
465, 1005, 104, 86, 86, 907, 650, 426, 911, 325,
- 326, -409, 760, 104, 104, 764, 1006, 86, 877, 1015,
- 215, -409, 725, -591, 267, -409, -591, -591, 1017, 86,
- 86, 495, 1022, 1024, 1026, -409, 1028, 86, 1046, 912,
- 959, 1038, -576, 748, 749, 282, 282, 755, 86, 86,
- -577, 755, 1048, 723, 754, 129, 248, 124, -409, 124,
- -409, 120, -97, 576, 576, 104, 651, -409, -409, 104,
- -409, 938, 774, 104, 104, 1037, 944, -409, 104, 860,
+ 326, -411, 760, 104, 104, 764, 1006, 86, 877, 1015,
+ 215, -411, 725, -593, 267, -411, -593, -593, 1017, 86,
+ 86, 495, 1022, 1024, 1026, -411, 1028, 86, 1046, 912,
+ 959, 1038, -578, 748, 749, 282, 282, 755, 86, 86,
+ -579, 755, 1048, 723, 754, 129, 248, 124, -411, 124,
+ -411, 120, -97, 576, 576, 104, 651, -411, -411, 104,
+ -411, 938, 774, 104, 104, 1037, 944, -411, 104, 860,
1039, 1036, 1009, 104, 104, 744, 898, 353, 354, 355,
356, 104, 482, 207, 753, 691, 691, 553, 993, 609,
323, 324, 900, 357, 998, 211, 211, 758, 121, 86,
- 86, 211, -286, 962, 496, 908, -297, 86, 811, 0,
- 0, 0, 124, 0, 0, 0, -286, 916, 917, 0,
- -297, 0, 0, 0, 0, 920, 104, 104, 104, 104,
+ 86, 211, -288, 962, 496, 908, -299, 86, 811, 0,
+ 0, 0, 124, 0, 0, 0, -288, 916, 917, 0,
+ -299, 0, 0, 0, 0, 920, 104, 104, 104, 104,
104, 104, 0, 104, 104, 485, 0, 925, 120, 803,
325, 326, 485, 120, 0, 473, 0, 0, 0, 282,
- 104, -286, 0, 1014, 267, -297, 0, -102, -286, 424,
- 604, 0, -297, 86, 844, 86, 604, 888, 86, 0,
+ 104, -288, 0, 1014, 267, -299, 0, -102, -288, 424,
+ 604, 0, -299, 86, 844, 86, 604, 888, 86, 0,
104, 604, 604, 104, 0, 104, 0, 0, 104, 0,
120, 513, 576, 262, 0, 121, 867, 851, 853, 855,
121, 857, 835, 858, 474, 424, 504, 958, 680, 811,
- 0, 426, 440, 0, 0, 966, 215, 0, 104, -293,
- 846, 0, -293, -293, -574, 537, 0, 0, 104, 104,
+ 0, 426, 440, 0, 0, 966, 215, 0, 104, -295,
+ 846, 0, -295, -295, -576, 537, 0, 0, 104, 104,
0, 0, 0, 650, 946, 948, 0, 121, 0, 424,
- 465, 872, 0, 104, 0, 104, 104, 426, 866, -293,
- -293, 267, -293, 396, 104, 863, 0, 0, 104, -106,
+ 465, 872, 0, 104, 0, 104, 104, 426, 866, -295,
+ -295, 267, -295, 396, 104, 863, 0, 0, 104, -106,
0, 744, 104, 353, 354, 355, 356, 104, 409, 410,
0, 1010, 104, 1011, 538, 0, 1012, 0, 930, 357,
- 932, 426, 0, 604, 933, 0, 0, -478, -481, 0,
+ 932, 426, 0, 604, 933, 0, 0, -480, -483, 0,
798, 887, 889, 651, 0, 0, 893, 895, 0, 124,
- 0, -478, -481, -108, 104, 0, 997, 417, 418, 419,
+ 0, -480, -483, -108, 104, 0, 997, 417, 418, 419,
420, 421, 422, 104, 0, 0, 211, 211, 0, 0,
0, 0, 887, 889, 0, 893, 895, 0, 462, 0,
- 322, 104, 323, 324, -574, 0, -478, -481, 104, -285,
- -574, 214, 214, -478, -481, 0, 0, 214, 263, 263,
- 982, 0, 263, -285, 980, 981, -106, 0, 0, -106,
+ 322, 104, 323, 324, -576, 0, -480, -483, 104, -287,
+ -576, 214, 214, -480, -483, 0, 0, 214, 263, 263,
+ 982, 0, 263, -287, 980, 981, -106, 0, 0, -106,
-106, 0, 1023, 1025, 1027, 0, 1029, 1030, 0, 984,
- 986, 987, 988, 1000, -580, 1003, 506, 509, 0, 286,
- 288, 0, 325, 326, 263, 304, 124, -106, -285, -106,
- 0, 124, 0, 0, 0, -285, 340, 341, 955, 0,
+ 986, 987, 988, 1000, -582, 1003, 506, 509, 0, 286,
+ 288, 0, 325, 326, 263, 304, 124, -106, -287, -106,
+ 0, 124, 0, 0, 0, -287, 340, 341, 955, 0,
-108, 0, 0, -108, -108, 0, 1047, 1049, 1050, 1051,
- 1016, 0, 755, 1018, 0, 872, 1053, -580, 872, 994,
+ 1016, 0, 755, 1018, 0, 872, 1053, -582, 872, 994,
872, 955, 866, 0, 903, 866, 863, 866, 124, 863,
- 0, -108, 863, -108, 863, -576, 0, -580, 0, 0,
+ 0, -108, 863, -108, 863, -578, 0, -582, 0, 0,
211, 211, 211, 211, 0, 1040, 564, 565, 214, 691,
- 1042, -580, 1044, -576, 0, 0, 1045, 1041, -297, 104,
+ 1042, -582, 1044, -578, 0, 0, 1045, 1041, -299, 104,
104, 744, 0, 353, 354, 355, 356, 0, 872, 780,
- 0, 0, -297, 0, 0, 866, 1052, 0, 0, 357,
- -580, 0, 863, 424, -580, 0, -580, -577, -99, 0,
- -576, 104, 0, -580, -580, 872, 0, 872, -576, 872,
- 0, 872, 866, 359, 866, 0, 866, -297, 866, 863,
- 992, 863, -576, 863, -297, 863, -576, 0, 781, 0,
- 0, 872, 0, 0, 424, 426, 0, -580, 866, -580,
- -576, 462, -577, -576, 0, 863, -580, 462, 974, 0,
- 353, 354, 355, 356, 0, -576, 0, -576, 0, 675,
- -577, -576, 214, 214, -576, 0, 357, 0, 0, 450,
- 0, 1007, 104, -576, -577, -576, 426, -98, 0, -576,
- 104, 104, -576, 0, 104, 424, 0, 104, 104, 329,
+ 0, 0, -299, 0, 0, 866, 1052, 0, 0, 357,
+ -582, 0, 863, 424, -582, 0, -582, -579, -99, 0,
+ -578, 104, 0, -582, -582, 872, 0, 872, -578, 872,
+ 0, 872, 866, 359, 866, 0, 866, -299, 866, 863,
+ 992, 863, -578, 863, -299, 863, -578, 0, 781, 0,
+ 0, 872, 0, 0, 424, 426, 0, -582, 866, -582,
+ -578, 462, -579, -578, 0, 863, -582, 462, 974, 0,
+ 353, 354, 355, 356, 0, -578, 0, -578, 0, 675,
+ -579, -578, 214, 214, -578, 0, 357, 0, 0, 450,
+ 0, 1007, 104, -578, -579, -578, 426, -98, 0, -578,
+ 104, 104, -578, 0, 104, 424, 0, 104, 104, 329,
323, 324, 104, 104, 548, 0, 323, 324, 104, 104,
- 488, 489, 490, 340, 0, -577, 0, -577, 0, -577,
- 0, -100, 104, -577, 263, 104, -577, 0, 263, -577,
+ 488, 489, 490, 340, 0, -579, 0, -579, 0, -579,
+ 0, -100, 104, -579, 263, 104, -579, 0, 263, -579,
1008, 0, 214, 214, 104, 104, 0, 426, 0, 0,
0, 0, 104, 331, 323, 324, 0, 0, 0, 0,
325, 326, 0, 104, 104, 0, 325, 326, 0, 333,
- 323, 324, -577, 0, -577, 543, 323, 324, -577, 396,
- 0, -577, 0, 0, 244, 0, 0, 245, 246, 0,
+ 323, 324, -579, 0, -579, 543, 323, 324, -579, 396,
+ 0, -579, 0, 0, 244, 0, 0, 245, 246, 0,
0, 550, 323, 324, 409, 410, 0, 0, 763, 0,
353, 354, 355, 356, 325, 326, 214, 214, 214, 214,
0, 492, 214, 214, 104, 247, 357, 248, 0, 358,
@@ -2596,22 +2596,22 @@ static const yytype_int16 yytable[] =
245, 246, 0, 0, 211, 659, 0, 263, 0, 659,
659, 104, 739, 323, 324, 0, 263, 415, 416, 417,
418, 419, 420, 421, 422, 702, 0, 0, 247, 706,
- 248, 0, 0, 707, -603, 103, 710, 0, 713, 313,
- 304, 352, 0, 353, 354, 355, 356, -603, -603, -603,
- -603, -603, -603, 0, -603, 0, 0, 659, 0, 357,
- -603, -603, 358, 325, 326, 0, 313, 710, 0, 0,
- 304, -603, -603, 0, -603, -603, -603, -603, -603, 0,
+ 248, 0, 0, 707, -605, 103, 710, 0, 713, 313,
+ 304, 352, 0, 353, 354, 355, 356, -605, -605, -605,
+ -605, -605, -605, 0, -605, 0, 0, 659, 0, 357,
+ -605, -605, 358, 325, 326, 0, 313, 710, 0, 0,
+ 304, -605, -605, 0, -605, -605, -605, -605, -605, 0,
263, 0, 0, 359, 344, 345, 346, 347, 348, 360,
361, 362, 0, 0, 0, 0, 742, 743, 0, 0,
0, 0, 0, 103, 0, 0, 0, 0, 0, 0,
0, 0, 0, 750, 0, 0, 363, 0, 211, 364,
- 0, 0, 0, -603, 352, 0, 353, 354, 355, 356,
- 995, 0, 765, 0, 0, 772, 0, -603, 0, 0,
- 0, 0, 357, 0, 0, 358, 0, -603, 0, 0,
- -603, -603, 100, 0, 100, 126, 126, 126, 0, 0,
+ 0, 0, 0, -605, 352, 0, 353, 354, 355, 356,
+ 995, 0, 765, 0, 0, 772, 0, -605, 0, 0,
+ 0, 0, 357, 0, 0, 358, 0, -605, 0, 0,
+ -605, -605, 100, 0, 100, 126, 126, 126, 0, 0,
0, 0, 0, 228, 0, 0, 359, 0, 0, 0,
- -603, -603, 360, 361, 362, 0, 272, -603, -603, -603,
- -603, 0, 83, 0, 83, 744, 0, 353, 354, 355,
+ -605, -605, 360, 361, 362, 0, 272, -605, -605, -605,
+ -605, 0, 83, 0, 83, 744, 0, 353, 354, 355,
356, 0, 0, 225, 103, 0, 0, 0, 0, 363,
100, 0, 364, 357, 312, 0, 0, 744, 214, 353,
354, 355, 356, 0, 0, 365, 0, 0, 0, 0,
@@ -2667,7 +2667,7 @@ static const yytype_int16 yytable[] =
0, 101, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 83, 0, 0, 0, 0,
0, 0, 396, 397, 398, 399, 400, 401, 402, 403,
- 404, 405, 406, -604, -604, 0, 0, 409, 410, 312,
+ 404, 405, 406, -606, -606, 0, 0, 409, 410, 312,
0, 0, 0, 0, 103, 0, 0, 0, 0, 0,
0, 313, 103, 610, 0, 0, 0, 0, 0, 610,
0, 0, 0, 0, 610, 610, 0, 0, 0, 0,
@@ -2685,7 +2685,7 @@ static const yytype_int16 yytable[] =
964, 101, 0, 0, 103, 0, 0, 0, 0, 0,
0, 0, 0, 412, 0, 413, 414, 415, 416, 417,
418, 419, 420, 421, 422, 0, 0, 0, 0, 100,
- 0, 0, 0, -272, 0, 0, 312, 100, 0, 0,
+ 0, 0, 0, -274, 0, 0, 312, 100, 0, 0,
0, 0, 0, 0, 0, 0, 101, 0, 0, 0,
0, 101, 0, 0, 0, 100, 100, 0, 0, 83,
103, 0, 103, 0, 0, 103, 0, 83, 605, 100,
@@ -2708,7 +2708,7 @@ static const yytype_int16 yytable[] =
100, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 101, 0,
0, 0, 0, 0, 0, 83, 0, 83, 0, 0,
- 83, 0, 0, 0, 0, 0, 0, -603, 4, 0,
+ 83, 0, 0, 0, 0, 0, 0, -605, 4, 0,
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,
@@ -2720,10 +2720,10 @@ 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,
101, 56, 57, 58, 59, 60, 61, 0, 0, 62,
- -603, 0, 0, -603, -603, 0, 0, 396, -604, -604,
- -604, -604, 401, 402, 0, 0, -604, -604, 0, 63,
+ -605, 0, 0, -605, -605, 0, 0, 396, -606, -606,
+ -606, -606, 401, 402, 0, 0, -606, -606, 0, 63,
64, 65, 409, 410, 0, 0, 0, 0, 0, 0,
- 0, -603, 0, -603, 0, 0, 0, 0, 0, 0,
+ 0, -605, 0, -605, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 779, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 413, 414, 415,
416, 417, 418, 419, 420, 421, 422, 0, 0, 0,
@@ -2737,91 +2737,91 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 101, 101, 0, 0, 0, 0,
0, 0, 101, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 101, 101, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, -474, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, -476, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, -474, -474, -474, -474, -474, -474, 0, -474, 0,
- 0, 0, 0, 0, 0, -474, -474, 0, 0, 0,
- 0, 0, 0, 0, 101, -474, -474, 0, -474, -474,
- -474, -474, -474, 0, 101, 101, 0, 0, 0, 0,
+ 0, -476, -476, -476, -476, -476, -476, 0, -476, 0,
+ 0, 0, 0, 0, 0, -476, -476, 0, 0, 0,
+ 0, 0, 0, 0, 101, -476, -476, 0, -476, -476,
+ -476, -476, -476, 0, 101, 101, 0, 0, 0, 0,
0, 0, 101, 0, 0, 486, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
- -474, -474, -474, 0, 0, -474, -474, -474, 0, -474,
- -474, 0, 0, 0, 0, 0, -474, 0, 0, 0,
- 0, -474, 0, 0, 0, 0, 0, 0, 101, 0,
- 101, -474, 0, 101, -474, -474, 0, -474, -474, 0,
- -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
- 0, 0, -603, 0, 0, -474, -474, -474, -474, 0,
- 0, -474, -474, -474, -474, -603, -603, -603, -603, -603,
- -603, 0, -603, 0, 0, 0, 0, 0, 0, -603,
- -603, 0, 0, 0, 0, 0, 0, 0, 0, -603,
- -603, 0, -603, -603, -603, -603, -603, 0, 0, 0,
+ -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
+ -476, -476, -476, 0, 0, -476, -476, -476, 0, -476,
+ -476, 0, 0, 0, 0, 0, -476, 0, 0, 0,
+ 0, -476, 0, 0, 0, 0, 0, 0, 101, 0,
+ 101, -476, 0, 101, -476, -476, 0, -476, -476, 0,
+ -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
+ 0, 0, -605, 0, 0, -476, -476, -476, -476, 0,
+ 0, -476, -476, -476, -476, -605, -605, -605, -605, -605,
+ -605, 0, -605, 0, 0, 0, 0, 0, 0, -605,
+ -605, 0, 0, 0, 0, 0, 0, 0, 0, -605,
+ -605, 0, -605, -605, -605, -605, -605, 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, -603, -603, -603, -603, -603, -603,
- -603, -603, -603, -603, -603, -603, -603, 0, 0, -603,
- -603, -603, 0, 0, -603, 0, 0, 0, 0, 0,
- -603, 0, 0, 0, 0, -603, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, -603, 0, 0, -603, -603,
- 0, 0, -603, 0, -603, -603, -603, -603, -603, -603,
- -603, -603, -603, -603, 0, 0, -580, 0, 0, -603,
- -603, -603, -603, 0, 272, -603, -603, -603, -603, -580,
- -580, -580, 0, -580, -580, 0, -580, 0, 0, 0,
- 0, 0, -580, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, -580, -580, 0, -580, -580, -580, -580,
- -580, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -605, -605, -605, -605, -605, -605,
+ -605, -605, -605, -605, -605, -605, -605, 0, 0, -605,
+ -605, -605, 0, 0, -605, 0, 0, 0, 0, 0,
+ -605, 0, 0, 0, 0, -605, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -605, 0, 0, -605, -605,
+ 0, 0, -605, 0, -605, -605, -605, -605, -605, -605,
+ -605, -605, -605, -605, 0, 0, -582, 0, 0, -605,
+ -605, -605, -605, 0, 272, -605, -605, -605, -605, -582,
+ -582, -582, 0, -582, -582, 0, -582, 0, 0, 0,
+ 0, 0, -582, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -582, -582, 0, -582, -582, -582, -582,
+ -582, 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, -580, -580,
- -580, -580, -580, -580, -580, -580, -580, -580, -580, -580,
- -580, 0, 0, -580, -580, -580, 0, 784, -580, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, -580,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, -580,
- 0, 0, -580, -580, 0, -107, -580, 0, -580, -580,
- -580, -580, -580, -580, -580, -580, -580, -580, 0, 0,
- -580, 0, -580, -580, -580, 0, -99, 0, 0, -580,
- -580, -580, -580, -580, -580, -580, 0, -580, -580, 0,
- -580, 0, 0, 0, 0, 0, -580, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, -580, -580, 0,
- -580, -580, -580, -580, -580, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, -582, -582,
+ -582, -582, -582, -582, -582, -582, -582, -582, -582, -582,
+ -582, 0, 0, -582, -582, -582, 0, 784, -582, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, -582,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, -582,
+ 0, 0, -582, -582, 0, -107, -582, 0, -582, -582,
+ -582, -582, -582, -582, -582, -582, -582, -582, 0, 0,
+ -582, 0, -582, -582, -582, 0, -99, 0, 0, -582,
+ -582, -582, -582, -582, -582, -582, 0, -582, -582, 0,
+ -582, 0, 0, 0, 0, 0, -582, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -582, -582, 0,
+ -582, -582, -582, -582, -582, 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, -580, -580, -580, -580, -580, -580, -580, -580,
- -580, -580, -580, -580, -580, 0, 0, -580, -580, -580,
- 0, 784, -580, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, -580, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, -580, 0, 0, -580, -580, 0, -107,
- -580, 0, -580, -580, -580, -580, -580, -580, -580, -580,
- -580, -580, 0, 0, -296, 0, -580, -580, -580, 0,
- -580, 0, 0, -580, -580, -580, -580, -296, -296, -296,
- 0, -296, -296, 0, -296, 0, 0, 0, 0, 0,
+ 0, 0, -582, -582, -582, -582, -582, -582, -582, -582,
+ -582, -582, -582, -582, -582, 0, 0, -582, -582, -582,
+ 0, 784, -582, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -582, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -582, 0, 0, -582, -582, 0, -107,
+ -582, 0, -582, -582, -582, -582, -582, -582, -582, -582,
+ -582, -582, 0, 0, -298, 0, -582, -582, -582, 0,
+ -582, 0, 0, -582, -582, -582, -582, -298, -298, -298,
+ 0, -298, -298, 0, -298, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, -296, -296, 0, -296, -296, -296, -296, -296, 0,
+ 0, -298, -298, 0, -298, -298, -298, -298, -298, 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, -296, -296, -296, -296,
- -296, -296, -296, -296, -296, -296, -296, -296, -296, 0,
- 0, -296, -296, -296, 0, 785, -296, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, -296, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, -296, 0, 0,
- -296, -296, 0, -109, -296, 0, -296, -296, -296, -296,
- -296, -296, -296, -296, -296, -296, 0, 0, -296, 0,
- 0, -296, -296, 0, -101, 0, 0, -296, -296, -296,
- -296, -296, -296, -296, 0, -296, -296, 0, -296, 0,
+ 0, 0, 0, 0, 0, 0, -298, -298, -298, -298,
+ -298, -298, -298, -298, -298, -298, -298, -298, -298, 0,
+ 0, -298, -298, -298, 0, 785, -298, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -298, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -298, 0, 0,
+ -298, -298, 0, -109, -298, 0, -298, -298, -298, -298,
+ -298, -298, -298, -298, -298, -298, 0, 0, -298, 0,
+ 0, -298, -298, 0, -101, 0, 0, -298, -298, -298,
+ -298, -298, -298, -298, 0, -298, -298, 0, -298, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, -296, -296, 0, -296, -296,
- -296, -296, -296, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -298, -298, 0, -298, -298,
+ -298, -298, -298, 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,
- -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
- -296, -296, -296, 0, 0, -296, -296, -296, 0, 785,
- -296, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, -296, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, -296, 0, 0, -296, -296, 0, -109, -296, 0,
- -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
- 0, 0, 0, 0, 0, -296, -296, 0, -296, 0,
- 0, -296, -296, -296, -296, 290, 0, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, -603, -603, -603,
- 0, 0, -603, 15, 0, 16, 17, 18, 19, 0,
+ -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
+ -298, -298, -298, 0, 0, -298, -298, -298, 0, 785,
+ -298, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -298, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -298, 0, 0, -298, -298, 0, -109, -298, 0,
+ -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
+ 0, 0, 0, 0, 0, -298, -298, 0, -298, 0,
+ 0, -298, -298, -298, -298, 290, 0, 5, 6, 7,
+ 8, 9, 10, 11, 12, 13, 14, -605, -605, -605,
+ 0, 0, -605, 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, 38,
@@ -2830,12 +2830,12 @@ 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, -603, 0, 0,
- -603, -603, 0, 0, 0, 0, 0, 0, 0, 0,
+ 58, 59, 60, 61, 0, 0, 62, -605, 0, 0,
+ -605, -605, 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, -603, 290,
- -603, 5, 6, 7, 8, 9, 10, 11, 12, 13,
- 14, 0, 0, -603, 0, -603, -603, 15, 0, 16,
+ 0, 0, 0, 0, 0, 0, 0, 0, -605, 290,
+ -605, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 0, 0, -605, 0, -605, -605, 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,
@@ -2845,12 +2845,12 @@ static const yytype_int16 yytable[] =
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, -603, 0, 0, -603, -603, 0, 0, 0, 0,
+ 62, -605, 0, 0, -605, -605, 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, -603, 290, -603, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 0, 0, -603, 0, 0,
- -603, 15, -603, 16, 17, 18, 19, 0, 0, 0,
+ 0, 0, -605, 290, -605, 5, 6, 7, 8, 9,
+ 10, 11, 12, 13, 14, 0, 0, -605, 0, 0,
+ -605, 15, -605, 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, 38, 39, 0,
@@ -2859,12 +2859,12 @@ static const yytype_int16 yytable[] =
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, -603, 0, 0, -603, -603,
+ 60, 61, 0, 0, 62, -605, 0, 0, -605, -605,
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, -603, 290, -603, 5,
+ 0, 0, 0, 0, 0, 0, -605, 290, -605, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14, 0,
- 0, -603, 0, 0, -603, 15, 0, 16, 17, 18,
+ 0, -605, 0, 0, -605, 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,
@@ -2873,11 +2873,11 @@ 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, -603,
- 0, 0, -603, -603, 4, 0, 5, 6, 7, 8,
+ 56, 57, 58, 59, 60, 61, 0, 0, 62, -605,
+ 0, 0, -605, -605, 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,
- -603, 0, -603, 20, 21, 22, 23, 24, 25, 26,
+ -605, 0, -605, 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,
@@ -2885,12 +2885,12 @@ static const yytype_int16 yytable[] =
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, -603, 0, 0, -603,
- -603, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 59, 60, 61, 0, 0, 62, -605, 0, 0, -605,
+ -605, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 63, 64, 65, 0, 0,
- -603, 0, 0, 0, 0, 0, 0, -603, 290, -603,
+ -605, 0, 0, 0, 0, 0, 0, -605, 290, -605,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 0, -603, -603, 0, 0, 0, 15, 0, 16, 17,
+ 0, -605, -605, 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,
@@ -2900,10 +2900,10 @@ 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,
- -603, 0, 0, -603, -603, 290, 0, 5, 6, 7,
+ -605, 0, 0, -605, -605, 290, 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, -603, 0, -603, 20, 21, 22, 23, 24, 25,
+ 0, -605, 0, -605, 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,
@@ -2911,11 +2911,11 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 49, 0, 0, 291, 51, 0,
52, 53, 0, 54, 0, 0, 55, 0, 56, 57,
- 58, 59, 60, 61, 0, 0, 62, -603, 0, 0,
- -603, -603, 290, 0, 5, 6, 7, 8, 9, 10,
+ 58, 59, 60, 61, 0, 0, 62, -605, 0, 0,
+ -605, -605, 290, 0, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 0, 0, 63, 64, 65, 0,
- 15, 0, 16, 17, 18, 19, 0, -603, -603, 0,
- -603, 20, 21, 22, 23, 24, 25, 26, 0, 0,
+ 15, 0, 16, 17, 18, 19, 0, -605, -605, 0,
+ -605, 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,
@@ -2923,10 +2923,10 @@ 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, -603, 0, 0, -603, -603, 290,
+ 61, 0, 0, 62, -605, 0, 0, -605, -605, 290,
0, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 0, 0, 63, 64, 65, 0, 15, 0, 16,
- 17, 18, 19, 0, -603, -603, 0, -603, 20, 21,
+ 17, 18, 19, 0, -605, -605, 0, -605, 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,
@@ -2935,11 +2935,11 @@ static const yytype_int16 yytable[] =
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, -603, 0, 0, -603, -603, 0, 0, 0, 0,
+ 62, -605, 0, 0, -605, -605, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 63, 64, 65, 0, 0, -603, 0, 0, 0, 0,
- 0, 0, -603, 290, -603, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 0, 0, -603, 0, 0,
+ 63, 64, 65, 0, 0, -605, 0, 0, 0, 0,
+ 0, 0, -605, 290, -605, 5, 6, 7, 8, 9,
+ 10, 11, 12, 13, 14, 0, 0, -605, 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,
@@ -2949,10 +2949,10 @@ static const yytype_int16 yytable[] =
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, -603, 0, 0, -603, -603,
+ 60, 61, 0, 0, 62, -605, 0, 0, -605, -605,
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, -603, 0, -603, 20,
+ 16, 17, 18, 19, 0, 0, -605, 0, -605, 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,
@@ -3002,20 +3002,6 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 190,
191, 192, 193, 194, 195, 196, 197, 198, 199, 0,
200, 201, 0, 0, 0, 0, 0, 0, 202, 203,
- -573, -573, -573, -573, -573, -573, -573, -573, -573, 0,
- 0, 0, 0, 0, 0, 0, -573, 0, -573, -573,
- -573, -573, 0, -573, 0, 0, 0, -573, -573, -573,
- -573, -573, -573, -573, 0, 0, -573, 0, 0, 0,
- 0, 0, 0, 0, 0, -573, -573, -573, -573, -573,
- -573, -573, -573, -573, 0, -573, -573, -573, 0, 0,
- -573, 0, 0, -573, -573, 0, -573, -573, -573, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, -573, 0, 0,
- -573, -573, 0, -573, -573, 0, -573, -573, -573, -573,
- 0, -573, -573, -573, -573, -573, -573, 0, 0, -573,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, -573,
- -573, -573, 0, -573, 0, 0, 0, 0, 0, -573,
-575, -575, -575, -575, -575, -575, -575, -575, -575, 0,
0, 0, 0, 0, 0, 0, -575, 0, -575, -575,
-575, -575, 0, -575, 0, 0, 0, -575, -575, -575,
@@ -3030,79 +3016,93 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, -575,
-575, -575, 0, -575, 0, 0, 0, 0, 0, -575,
- -574, -574, -574, -574, -574, -574, -574, -574, -574, 0,
- 0, 0, 0, 0, 0, 0, -574, 0, -574, -574,
- -574, -574, 0, -574, 0, 0, 0, -574, -574, -574,
- -574, -574, -574, -574, 0, 0, -574, 0, 0, 0,
- 0, 0, 0, 0, 0, -574, -574, -574, -574, -574,
- -574, -574, -574, -574, 0, -574, -574, -574, 0, 0,
- -574, 0, 0, -574, -574, 0, -574, -574, -574, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, -574, 0, 0,
- -574, -574, 0, -574, -574, 0, -574, -574, -574, -574,
- 0, -574, -574, -574, -574, -574, -574, 0, 0, -574,
- 0, 0, 0, 0, 0, 0, -576, -576, -576, -576,
- -576, -576, -576, -576, -576, 0, 0, 0, 0, -574,
- -574, -574, -576, -574, -576, -576, -576, -576, 0, -574,
- 0, 0, 0, -576, -576, -576, -576, -576, -576, -576,
- 0, 0, -576, 0, 0, 0, 0, 0, 0, 0,
- 0, -576, -576, -576, -576, -576, -576, -576, -576, -576,
- 0, -576, -576, -576, 0, 0, -576, 0, 0, -576,
- -576, 0, -576, -576, -576, 0, 0, 0, 0, 0,
+ -577, -577, -577, -577, -577, -577, -577, -577, -577, 0,
+ 0, 0, 0, 0, 0, 0, -577, 0, -577, -577,
+ -577, -577, 0, -577, 0, 0, 0, -577, -577, -577,
+ -577, -577, -577, -577, 0, 0, -577, 0, 0, 0,
+ 0, 0, 0, 0, 0, -577, -577, -577, -577, -577,
+ -577, -577, -577, -577, 0, -577, -577, -577, 0, 0,
+ -577, 0, 0, -577, -577, 0, -577, -577, -577, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, -576, 815, 0, -576, -576, 0, -576,
- -576, 0, -576, -576, -576, -576, 0, -576, -576, -576,
- -576, -576, -576, 0, 0, -576, 0, 0, 0, 0,
- 0, 0, -107, -577, -577, -577, -577, -577, -577, -577,
- -577, -577, 0, 0, 0, -576, -576, -576, 0, -577,
- 0, -577, -577, -577, -577, -576, 0, 0, 0, 0,
- -577, -577, -577, -577, -577, -577, -577, 0, 0, -577,
- 0, 0, 0, 0, 0, 0, 0, 0, -577, -577,
- -577, -577, -577, -577, -577, -577, -577, 0, -577, -577,
- -577, 0, 0, -577, 0, 0, -577, -577, 0, -577,
- -577, -577, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -577, 0, 0,
+ -577, -577, 0, -577, -577, 0, -577, -577, -577, -577,
+ 0, -577, -577, -577, -577, -577, -577, 0, 0, -577,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- -577, 816, 0, -577, -577, 0, -577, -577, 0, -577,
- -577, -577, -577, 0, -577, -577, -577, -577, -577, -577,
- 0, 0, -577, 0, 0, 0, 0, 0, 0, -109,
- -265, -265, -265, -265, -265, -265, -265, -265, -265, 0,
- 0, 0, -577, -577, -577, 0, -265, 0, -265, -265,
- -265, -265, -577, 0, 0, 0, 0, -265, -265, -265,
- -265, -265, -265, -265, 0, 0, -265, 0, 0, 0,
- 0, 0, 0, 0, 0, -265, -265, -265, -265, -265,
- -265, -265, -265, -265, 0, -265, -265, -265, 0, 0,
- -265, 0, 0, -265, -265, 0, -265, -265, -265, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, -577,
+ -577, -577, 0, -577, 0, 0, 0, 0, 0, -577,
+ -576, -576, -576, -576, -576, -576, -576, -576, -576, 0,
+ 0, 0, 0, 0, 0, 0, -576, 0, -576, -576,
+ -576, -576, 0, -576, 0, 0, 0, -576, -576, -576,
+ -576, -576, -576, -576, 0, 0, -576, 0, 0, 0,
+ 0, 0, 0, 0, 0, -576, -576, -576, -576, -576,
+ -576, -576, -576, -576, 0, -576, -576, -576, 0, 0,
+ -576, 0, 0, -576, -576, 0, -576, -576, -576, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, -265, 0, 0,
- -265, -265, 0, -265, -265, 0, -265, -265, -265, -265,
- 0, -265, -265, -265, -265, -265, -265, 0, 0, -265,
+ 0, 0, 0, 0, 0, 0, 0, -576, 0, 0,
+ -576, -576, 0, -576, -576, 0, -576, -576, -576, -576,
+ 0, -576, -576, -576, -576, -576, -576, 0, 0, -576,
0, 0, 0, 0, 0, 0, -578, -578, -578, -578,
- -578, -578, -578, -578, -578, 0, 0, 0, 0, -265,
- -265, -265, -578, 0, -578, -578, -578, -578, 0, 272,
+ -578, -578, -578, -578, -578, 0, 0, 0, 0, -576,
+ -576, -576, -578, -576, -578, -578, -578, -578, 0, -576,
0, 0, 0, -578, -578, -578, -578, -578, -578, -578,
0, 0, -578, 0, 0, 0, 0, 0, 0, 0,
0, -578, -578, -578, -578, -578, -578, -578, -578, -578,
0, -578, -578, -578, 0, 0, -578, 0, 0, -578,
-578, 0, -578, -578, -578, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, -578, 0, 0, -578, -578, 0, -578,
+ 0, 0, 0, -578, 815, 0, -578, -578, 0, -578,
-578, 0, -578, -578, -578, -578, 0, -578, -578, -578,
-578, -578, -578, 0, 0, -578, 0, 0, 0, 0,
- 0, 0, -579, -579, -579, -579, -579, -579, -579, -579,
- -579, 0, 0, 0, 0, -578, -578, -578, -579, 0,
- -579, -579, -579, -579, 0, -578, 0, 0, 0, -579,
- -579, -579, -579, -579, -579, -579, 0, 0, -579, 0,
- 0, 0, 0, 0, 0, 0, 0, -579, -579, -579,
- -579, -579, -579, -579, -579, -579, 0, -579, -579, -579,
- 0, 0, -579, 0, 0, -579, -579, 0, -579, -579,
- -579, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, -579,
- 0, 0, -579, -579, 0, -579, -579, 0, -579, -579,
- -579, -579, 0, -579, -579, -579, -579, -579, -579, 0,
- 0, -579, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -107, -579, -579, -579, -579, -579, -579, -579,
+ -579, -579, 0, 0, 0, -578, -578, -578, 0, -579,
+ 0, -579, -579, -579, -579, -578, 0, 0, 0, 0,
+ -579, -579, -579, -579, -579, -579, -579, 0, 0, -579,
+ 0, 0, 0, 0, 0, 0, 0, 0, -579, -579,
+ -579, -579, -579, -579, -579, -579, -579, 0, -579, -579,
+ -579, 0, 0, -579, 0, 0, -579, -579, 0, -579,
+ -579, -579, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ -579, 816, 0, -579, -579, 0, -579, -579, 0, -579,
+ -579, -579, -579, 0, -579, -579, -579, -579, -579, -579,
+ 0, 0, -579, 0, 0, 0, 0, 0, 0, -109,
+ -267, -267, -267, -267, -267, -267, -267, -267, -267, 0,
+ 0, 0, -579, -579, -579, 0, -267, 0, -267, -267,
+ -267, -267, -579, 0, 0, 0, 0, -267, -267, -267,
+ -267, -267, -267, -267, 0, 0, -267, 0, 0, 0,
+ 0, 0, 0, 0, 0, -267, -267, -267, -267, -267,
+ -267, -267, -267, -267, 0, -267, -267, -267, 0, 0,
+ -267, 0, 0, -267, -267, 0, -267, -267, -267, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, -579, -579, -579, 0, 0, 0, 0, 0, 0,
- 0, -579, 130, 131, 132, 133, 134, 135, 136, 137,
+ 0, 0, 0, 0, 0, 0, 0, -267, 0, 0,
+ -267, -267, 0, -267, -267, 0, -267, -267, -267, -267,
+ 0, -267, -267, -267, -267, -267, -267, 0, 0, -267,
+ 0, 0, 0, 0, 0, 0, -580, -580, -580, -580,
+ -580, -580, -580, -580, -580, 0, 0, 0, 0, -267,
+ -267, -267, -580, 0, -580, -580, -580, -580, 0, 272,
+ 0, 0, 0, -580, -580, -580, -580, -580, -580, -580,
+ 0, 0, -580, 0, 0, 0, 0, 0, 0, 0,
+ 0, -580, -580, -580, -580, -580, -580, -580, -580, -580,
+ 0, -580, -580, -580, 0, 0, -580, 0, 0, -580,
+ -580, 0, -580, -580, -580, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -580, 0, 0, -580, -580, 0, -580,
+ -580, 0, -580, -580, -580, -580, 0, -580, -580, -580,
+ -580, -580, -580, 0, 0, -580, 0, 0, 0, 0,
+ 0, 0, -581, -581, -581, -581, -581, -581, -581, -581,
+ -581, 0, 0, 0, 0, -580, -580, -580, -581, 0,
+ -581, -581, -581, -581, 0, -580, 0, 0, 0, -581,
+ -581, -581, -581, -581, -581, -581, 0, 0, -581, 0,
+ 0, 0, 0, 0, 0, 0, 0, -581, -581, -581,
+ -581, -581, -581, -581, -581, -581, 0, -581, -581, -581,
+ 0, 0, -581, 0, 0, -581, -581, 0, -581, -581,
+ -581, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, -581,
+ 0, 0, -581, -581, 0, -581, -581, 0, -581, -581,
+ -581, -581, 0, -581, -581, -581, -581, -581, -581, 0,
+ 0, -581, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -581, -581, -581, 0, 0, 0, 0, 0, 0,
+ 0, -581, 130, 131, 132, 133, 134, 135, 136, 137,
138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
148, 149, 150, 151, 152, 153, 0, 0, 0, 154,
155, 156, 230, 231, 232, 233, 161, 162, 163, 0,
@@ -3598,22 +3598,22 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
412, 248, 413, 414, 415, 416, 417, 418, 419, 420,
421, 422, 0, 0, 0, 0, 0, 0, 0, 0,
- -272, 396, 397, 398, 399, 400, 401, 402, 403, 404,
+ -274, 396, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 407, 408, 0, 0, 409, 410, 0, 0,
396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
406, 407, 408, 0, 0, 409, 410, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 412,
0, 413, 414, 415, 416, 417, 418, 419, 420, 421,
- 422, 0, 0, 0, 0, 0, 0, 0, 412, -273,
+ 422, 0, 0, 0, 0, 0, 0, 0, 412, -275,
413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
- 0, 0, 0, 0, 0, 0, 0, 0, -274, 396,
+ 0, 0, 0, 0, 0, 0, 0, 0, -276, 396,
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
407, 408, 0, 0, 409, 410, 0, 0, 396, 397,
398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
408, 0, 0, 409, 410, 0, 0, 0, 411, 0,
0, 0, 0, 0, 0, 0, 0, 412, 0, 413,
414, 415, 416, 417, 418, 419, 420, 421, 422, 0,
- 0, 0, 0, 0, 0, 0, 412, -275, 413, 414,
+ 0, 0, 0, 0, 0, 0, 412, -277, 413, 414,
415, 416, 417, 418, 419, 420, 421, 422, 396, 397,
398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
408, 0, 0, 409, 410, 0, 0, 0, 491, 396,
@@ -4969,43 +4969,43 @@ static const yytype_int16 yyr1[] =
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
- 188, 188, 188, 188, 188, 189, 189, 189, 189, 190,
- 190, 191, 191, 192, 192, 193, 193, 193, 193, 193,
- 194, 194, 194, 194, 194, 196, 195, 197, 198, 198,
- 199, 199, 200, 200, 200, 200, 201, 201, 201, 202,
- 202, 202, 202, 202, 202, 202, 202, 202, 203, 202,
- 204, 205, 202, 206, 202, 202, 202, 202, 202, 202,
- 202, 202, 202, 202, 202, 202, 202, 207, 208, 202,
- 202, 202, 209, 210, 202, 211, 212, 202, 202, 202,
- 213, 214, 202, 215, 202, 216, 217, 202, 218, 202,
- 202, 202, 202, 202, 202, 202, 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, 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, 278, 278, 279, 280,
- 280, 281, 281, 282, 282, 283, 283, 284, 284, 285,
- 285, 286, 286, 286, 286, 287, 287, 288, 288, 288,
+ 188, 188, 188, 188, 188, 188, 188, 189, 189, 189,
+ 189, 190, 190, 191, 191, 192, 192, 193, 193, 193,
+ 193, 193, 194, 194, 194, 194, 194, 196, 195, 197,
+ 198, 198, 199, 199, 200, 200, 200, 200, 201, 201,
+ 201, 202, 202, 202, 202, 202, 202, 202, 202, 202,
+ 203, 202, 204, 205, 202, 206, 202, 202, 202, 202,
+ 202, 202, 202, 202, 202, 202, 202, 202, 202, 207,
+ 208, 202, 202, 202, 209, 210, 202, 211, 212, 202,
+ 202, 202, 213, 214, 202, 215, 202, 216, 217, 202,
+ 218, 202, 202, 202, 202, 202, 202, 202, 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, 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, 278, 278,
+ 279, 280, 280, 281, 281, 282, 282, 283, 283, 284,
+ 284, 285, 285, 286, 286, 286, 286, 287, 287, 288,
288, 288, 288, 288, 288, 288, 288, 288, 288, 288,
- 288, 288, 289, 289, 289, 289, 289, 290, 290, 291,
- 292, 291, 293, 293, 294, 295, 296, 297, 297, 298,
- 298, 299, 299, 300, 300, 301, 301, 302, 303, 303,
- 304, 305, 304, 306, 306, 307, 307, 308, 308, 309,
- 309, 309, 309, 310, 310, 310, 311, 311, 311, 311,
- 312, 312, 312, 313, 313, 314, 314, 315, 315, 316,
- 316, 317, 317, 318, 319, 319, 319, 320, 320, 320,
- 321, 322, 322, 323
+ 288, 288, 288, 288, 289, 289, 289, 289, 289, 290,
+ 290, 291, 292, 291, 293, 293, 294, 295, 296, 297,
+ 297, 298, 298, 299, 299, 300, 300, 301, 301, 302,
+ 303, 303, 304, 305, 304, 306, 306, 307, 307, 308,
+ 308, 309, 309, 309, 309, 310, 310, 310, 311, 311,
+ 311, 311, 312, 312, 312, 313, 313, 314, 314, 315,
+ 315, 316, 316, 317, 317, 318, 319, 319, 319, 320,
+ 320, 320, 321, 322, 322, 323
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -5031,47 +5031,47 @@ 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,
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,
- 4, 6, 4, 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,
- 4, 4, 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,
+ 6, 5, 5, 5, 5, 4, 3, 3, 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, 4, 6, 4, 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, 4, 4, 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, 1, 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, 1, 1, 0,
- 1, 0, 1, 2, 0, 1, 1, 1, 1, 1,
- 1, 1, 2, 0
+ 1, 1, 1, 0, 0, 4, 3, 3, 1, 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, 1,
+ 1, 0, 1, 0, 1, 2, 0, 1, 1, 1,
+ 1, 1, 1, 1, 2, 0
};
@@ -6951,7 +6951,7 @@ yyreduce:
case 208:
#line 2194 "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 6957 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6959,7 +6959,7 @@ yyreduce:
case 209:
#line 2198 "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 6965 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6967,7 +6967,7 @@ yyreduce:
case 210:
#line 2202 "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 6973 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6975,7 +6975,7 @@ yyreduce:
case 211:
#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 6981 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6983,7 +6983,7 @@ yyreduce:
case 212:
#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 6989 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6991,7 +6991,7 @@ yyreduce:
case 213:
#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 6997 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -6999,7 +6999,7 @@ yyreduce:
case 214:
#line 2218 "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 7005 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7007,7 +7007,7 @@ yyreduce:
case 215:
#line 2222 "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 7013 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7015,7 +7015,7 @@ yyreduce:
case 216:
#line 2226 "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 7021 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7023,7 +7023,7 @@ yyreduce:
case 217:
#line 2230 "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 7029 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7031,7 +7031,7 @@ yyreduce:
case 218:
#line 2234 "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 7037 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7039,7 +7039,7 @@ yyreduce:
case 219:
#line 2238 "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 7045 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7047,7 +7047,7 @@ yyreduce:
case 220:
#line 2242 "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 7053 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7055,7 +7055,7 @@ yyreduce:
case 221:
#line 2246 "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 7061 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7063,7 +7063,7 @@ yyreduce:
case 222:
#line 2250 "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 7069 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7071,7 +7071,7 @@ yyreduce:
case 223:
#line 2254 "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 7077 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7079,7 +7079,7 @@ yyreduce:
case 224:
#line 2258 "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 7085 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7087,7 +7087,7 @@ yyreduce:
case 225:
#line 2262 "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 7093 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7095,7 +7095,7 @@ yyreduce:
case 226:
#line 2266 "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 7101 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7103,7 +7103,7 @@ yyreduce:
case 227:
#line 2270 "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 7109 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7111,7 +7111,7 @@ yyreduce:
case 228:
#line 2274 "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 7117 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7119,7 +7119,7 @@ yyreduce:
case 229:
#line 2278 "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 7125 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7127,7 +7127,7 @@ yyreduce:
case 230:
#line 2282 "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 7133 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7135,7 +7135,7 @@ yyreduce:
case 231:
#line 2286 "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 7141 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7143,7 +7143,7 @@ yyreduce:
case 232:
#line 2290 "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 7149 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7151,7 +7151,7 @@ yyreduce:
case 233:
#line 2294 "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 7157 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7159,7 +7159,7 @@ yyreduce:
case 234:
#line 2298 "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 7165 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7167,7 +7167,7 @@ yyreduce:
case 235:
#line 2302 "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 7173 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7175,7 +7175,7 @@ yyreduce:
case 236:
#line 2306 "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 7181 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7183,7 +7183,7 @@ yyreduce:
case 237:
#line 2310 "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 7189 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7191,7 +7191,7 @@ yyreduce:
case 238:
#line 2314 "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 7197 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7199,7 +7199,7 @@ yyreduce:
case 239:
#line 2318 "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 7205 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7207,17 +7207,33 @@ yyreduce:
case 240:
#line 2322 "mrbgems/mruby-compiler/core/parse.y"
{
+ (yyval.nd) = new_if(p, cond((yyvsp[-5].nd)), (yyvsp[-3].nd), (yyvsp[0].nd));
+ }
+#line 7213 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
+ case 241:
+#line 2326 "mrbgems/mruby-compiler/core/parse.y"
+ {
+ (yyval.nd) = new_if(p, cond((yyvsp[-5].nd)), (yyvsp[-3].nd), (yyvsp[0].nd));
+ }
+#line 7221 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
+ case 242:
+#line 2330 "mrbgems/mruby-compiler/core/parse.y"
+ {
(yyval.nd) = (yyvsp[-3].nd);
void_expr_error(p, (yyvsp[0].nd));
defn_setup(p, (yyval.nd), (yyvsp[-2].nd), (yyvsp[0].nd));
nvars_unnest(p);
p->in_def--;
}
-#line 7217 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7233 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 241:
-#line 2330 "mrbgems/mruby-compiler/core/parse.y"
+ case 243:
+#line 2338 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-5].nd);
void_expr_error(p, (yyvsp[-2].nd));
@@ -7226,11 +7242,11 @@ yyreduce:
nvars_unnest(p);
p->in_def--;
}
-#line 7230 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7246 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 242:
-#line 2339 "mrbgems/mruby-compiler/core/parse.y"
+ case 244:
+#line 2347 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-3].nd);
void_expr_error(p, (yyvsp[0].nd));
@@ -7239,11 +7255,11 @@ yyreduce:
p->in_def--;
p->in_single--;
}
-#line 7243 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7259 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 243:
-#line 2348 "mrbgems/mruby-compiler/core/parse.y"
+ case 245:
+#line 2356 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-5].nd);
void_expr_error(p, (yyvsp[-2].nd));
@@ -7253,71 +7269,71 @@ yyreduce:
p->in_def--;
p->in_single--;
}
-#line 7257 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7273 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 244:
-#line 2358 "mrbgems/mruby-compiler/core/parse.y"
+ case 246:
+#line 2366 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 7265 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7281 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 246:
-#line 2365 "mrbgems/mruby-compiler/core/parse.y"
+ case 248:
+#line 2373 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-1].nd);
NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
}
-#line 7274 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7290 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 247:
-#line 2370 "mrbgems/mruby-compiler/core/parse.y"
+ case 249:
+#line 2378 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = push((yyvsp[-3].nd), new_kw_hash(p, (yyvsp[-1].nd)));
}
-#line 7282 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7298 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 248:
-#line 2374 "mrbgems/mruby-compiler/core/parse.y"
+ case 250:
+#line 2382 "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 7291 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7307 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 249:
-#line 2381 "mrbgems/mruby-compiler/core/parse.y"
+ case 251:
+#line 2389 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 7299 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7315 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 250:
-#line 2385 "mrbgems/mruby-compiler/core/parse.y"
+ case 252:
+#line 2393 "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 7309 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7325 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 251:
-#line 2393 "mrbgems/mruby-compiler/core/parse.y"
+ case 253:
+#line 2401 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 7317 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7333 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 252:
-#line 2397 "mrbgems/mruby-compiler/core/parse.y"
+ case 254:
+#line 2405 "mrbgems/mruby-compiler/core/parse.y"
{
#if 1
mrb_sym r = MRB_QSYM(mul);
@@ -7341,273 +7357,257 @@ yyreduce:
(yyval.nd) = 0;
}
}
-#line 7345 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7361 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 257:
-#line 2429 "mrbgems/mruby-compiler/core/parse.y"
+ case 259:
+#line 2437 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons((yyvsp[-1].nd),0);
NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
}
-#line 7354 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7370 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 258:
-#line 2434 "mrbgems/mruby-compiler/core/parse.y"
+ case 260:
+#line 2442 "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 7363 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7379 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 259:
-#line 2439 "mrbgems/mruby-compiler/core/parse.y"
+ case 261:
+#line 2447 "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 7372 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7388 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 260:
-#line 2446 "mrbgems/mruby-compiler/core/parse.y"
+ case 262:
+#line 2454 "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 7382 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7398 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 261:
-#line 2452 "mrbgems/mruby-compiler/core/parse.y"
+ case 263:
+#line 2460 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons((yyvsp[-1].nd), (yyvsp[0].nd));
NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
}
-#line 7391 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7407 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 262:
-#line 2457 "mrbgems/mruby-compiler/core/parse.y"
+ case 264:
+#line 2465 "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 7400 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7416 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 263:
-#line 2462 "mrbgems/mruby-compiler/core/parse.y"
+ case 265:
+#line 2470 "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 7409 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7425 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 264:
-#line 2467 "mrbgems/mruby-compiler/core/parse.y"
+ case 266:
+#line 2475 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons(0, (yyvsp[0].nd));
NODE_LINENO((yyval.nd), (yyvsp[0].nd));
}
-#line 7418 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7434 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 265:
-#line 2473 "mrbgems/mruby-compiler/core/parse.y"
+ case 267:
+#line 2481 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.stack) = p->cmdarg_stack;
CMDARG_PUSH(1);
}
-#line 7427 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7443 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 266:
-#line 2478 "mrbgems/mruby-compiler/core/parse.y"
+ case 268:
+#line 2486 "mrbgems/mruby-compiler/core/parse.y"
{
p->cmdarg_stack = (yyvsp[-1].stack);
(yyval.nd) = (yyvsp[0].nd);
}
-#line 7436 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7452 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 267:
-#line 2485 "mrbgems/mruby-compiler/core/parse.y"
+ case 269:
+#line 2493 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_block_arg(p, (yyvsp[0].nd));
}
-#line 7444 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7460 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 268:
-#line 2491 "mrbgems/mruby-compiler/core/parse.y"
+ case 270:
+#line 2499 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 7452 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7468 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 269:
-#line 2495 "mrbgems/mruby-compiler/core/parse.y"
+ case 271:
+#line 2503 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = 0;
}
-#line 7460 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7476 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 272:
-#line 2505 "mrbgems/mruby-compiler/core/parse.y"
+ case 274:
+#line 2513 "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 7470 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7486 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 273:
-#line 2511 "mrbgems/mruby-compiler/core/parse.y"
+ case 275:
+#line 2519 "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 7480 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7496 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 274:
-#line 2517 "mrbgems/mruby-compiler/core/parse.y"
+ case 276:
+#line 2525 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 7489 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7505 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 275:
-#line 2522 "mrbgems/mruby-compiler/core/parse.y"
+ case 277:
+#line 2530 "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 7498 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7514 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 276:
-#line 2529 "mrbgems/mruby-compiler/core/parse.y"
+ case 278:
+#line 2537 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 7507 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7523 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 277:
-#line 2534 "mrbgems/mruby-compiler/core/parse.y"
+ case 279:
+#line 2542 "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 7516 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7532 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 278:
-#line 2539 "mrbgems/mruby-compiler/core/parse.y"
+ case 280:
+#line 2547 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = list1(new_splat(p, (yyvsp[0].nd)));
}
-#line 7525 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7541 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 286:
-#line 2553 "mrbgems/mruby-compiler/core/parse.y"
+ case 288:
+#line 2561 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_nvar(p, (yyvsp[0].num));
}
-#line 7533 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7549 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 287:
-#line 2557 "mrbgems/mruby-compiler/core/parse.y"
+ case 289:
+#line 2565 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_fcall(p, (yyvsp[0].id), 0);
}
-#line 7541 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7557 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 288:
-#line 2561 "mrbgems/mruby-compiler/core/parse.y"
+ case 290:
+#line 2569 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.stack) = p->cmdarg_stack;
p->cmdarg_stack = 0;
}
-#line 7550 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7566 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 289:
-#line 2567 "mrbgems/mruby-compiler/core/parse.y"
+ case 291:
+#line 2575 "mrbgems/mruby-compiler/core/parse.y"
{
p->cmdarg_stack = (yyvsp[-2].stack);
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 7559 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7575 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 290:
-#line 2572 "mrbgems/mruby-compiler/core/parse.y"
+ case 292:
+#line 2580 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.stack) = p->cmdarg_stack;
p->cmdarg_stack = 0;
}
-#line 7568 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7584 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 291:
-#line 2576 "mrbgems/mruby-compiler/core/parse.y"
+ case 293:
+#line 2584 "mrbgems/mruby-compiler/core/parse.y"
{p->lstate = EXPR_ENDARG;}
-#line 7574 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7590 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 292:
-#line 2577 "mrbgems/mruby-compiler/core/parse.y"
+ case 294:
+#line 2585 "mrbgems/mruby-compiler/core/parse.y"
{
p->cmdarg_stack = (yyvsp[-3].stack);
(yyval.nd) = (yyvsp[-2].nd);
}
-#line 7583 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 293:
-#line 2581 "mrbgems/mruby-compiler/core/parse.y"
- {p->lstate = EXPR_ENDARG;}
-#line 7589 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 294:
-#line 2582 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_nil(p);
- }
-#line 7597 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7599 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 295:
-#line 2586 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-1].nd);
- }
+#line 2589 "mrbgems/mruby-compiler/core/parse.y"
+ {p->lstate = EXPR_ENDARG;}
#line 7605 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 296:
#line 2590 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id));
+ (yyval.nd) = new_nil(p);
}
#line 7613 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7615,7 +7615,7 @@ yyreduce:
case 297:
#line 2594 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_colon3(p, (yyvsp[0].id));
+ (yyval.nd) = (yyvsp[-1].nd);
}
#line 7621 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7623,33 +7623,33 @@ yyreduce:
case 298:
#line 2598 "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 7630 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7629 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 299:
-#line 2603 "mrbgems/mruby-compiler/core/parse.y"
+#line 2602 "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 7639 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7637 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 300:
-#line 2608 "mrbgems/mruby-compiler/core/parse.y"
+#line 2606 "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 7647 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7646 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 301:
-#line 2612 "mrbgems/mruby-compiler/core/parse.y"
+#line 2611 "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 7655 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7657,7 +7657,7 @@ yyreduce:
case 302:
#line 2616 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_uni_op(p, cond((yyvsp[-1].nd)), "!");
+ (yyval.nd) = new_return(p, 0);
}
#line 7663 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7665,7 +7665,7 @@ yyreduce:
case 303:
#line 2620 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = call_uni_op(p, new_nil(p), "!");
+ (yyval.nd) = new_yield(p, (yyvsp[0].nd));
}
#line 7671 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7673,41 +7673,57 @@ yyreduce:
case 304:
#line 2624 "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 7679 "mrbgems/mruby-compiler/core/y.tab.c"
break;
+ case 305:
+#line 2628 "mrbgems/mruby-compiler/core/parse.y"
+ {
+ (yyval.nd) = call_uni_op(p, new_nil(p), "!");
+ }
+#line 7687 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
case 306:
-#line 2629 "mrbgems/mruby-compiler/core/parse.y"
+#line 2632 "mrbgems/mruby-compiler/core/parse.y"
+ {
+ (yyval.nd) = new_fcall(p, (yyvsp[-1].id), cons(0, (yyvsp[0].nd)));
+ }
+#line 7695 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
+ case 308:
+#line 2637 "mrbgems/mruby-compiler/core/parse.y"
{
call_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd));
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 7688 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7704 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 307:
-#line 2634 "mrbgems/mruby-compiler/core/parse.y"
+ case 309:
+#line 2642 "mrbgems/mruby-compiler/core/parse.y"
{
local_nest(p);
(yyval.num) = p->lpar_beg;
p->lpar_beg = ++p->paren_nest;
}
-#line 7698 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7714 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 308:
-#line 2640 "mrbgems/mruby-compiler/core/parse.y"
+ case 310:
+#line 2648 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.stack) = p->cmdarg_stack;
p->cmdarg_stack = 0;
}
-#line 7707 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7723 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 309:
-#line 2645 "mrbgems/mruby-compiler/core/parse.y"
+ case 311:
+#line 2653 "mrbgems/mruby-compiler/core/parse.y"
{
p->lpar_beg = (yyvsp[-3].num);
(yyval.nd) = new_lambda(p, (yyvsp[-2].nd), (yyvsp[0].nd));
@@ -7715,149 +7731,149 @@ yyreduce:
p->cmdarg_stack = (yyvsp[-1].stack);
CMDARG_LEXPOP();
}
-#line 7719 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7735 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 310:
-#line 2656 "mrbgems/mruby-compiler/core/parse.y"
+ case 312:
+#line 2664 "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 7728 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7744 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 311:
-#line 2664 "mrbgems/mruby-compiler/core/parse.y"
+ case 313:
+#line 2672 "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 7737 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7753 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 312:
-#line 2668 "mrbgems/mruby-compiler/core/parse.y"
+ case 314:
+#line 2676 "mrbgems/mruby-compiler/core/parse.y"
{COND_PUSH(1);}
-#line 7743 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7759 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 313:
-#line 2668 "mrbgems/mruby-compiler/core/parse.y"
+ case 315:
+#line 2676 "mrbgems/mruby-compiler/core/parse.y"
{COND_POP();}
-#line 7749 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7765 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 314:
-#line 2671 "mrbgems/mruby-compiler/core/parse.y"
+ case 316:
+#line 2679 "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 7758 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7774 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 315:
-#line 2675 "mrbgems/mruby-compiler/core/parse.y"
+ case 317:
+#line 2683 "mrbgems/mruby-compiler/core/parse.y"
{COND_PUSH(1);}
-#line 7764 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7780 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 316:
-#line 2675 "mrbgems/mruby-compiler/core/parse.y"
+ case 318:
+#line 2683 "mrbgems/mruby-compiler/core/parse.y"
{COND_POP();}
-#line 7770 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7786 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 317:
-#line 2678 "mrbgems/mruby-compiler/core/parse.y"
+ case 319:
+#line 2686 "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 7779 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7795 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 318:
-#line 2685 "mrbgems/mruby-compiler/core/parse.y"
+ case 320:
+#line 2693 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_case(p, (yyvsp[-3].nd), (yyvsp[-1].nd));
}
-#line 7787 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7803 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 319:
-#line 2689 "mrbgems/mruby-compiler/core/parse.y"
+ case 321:
+#line 2697 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_case(p, 0, (yyvsp[-1].nd));
}
-#line 7795 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7811 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 320:
-#line 2693 "mrbgems/mruby-compiler/core/parse.y"
+ case 322:
+#line 2701 "mrbgems/mruby-compiler/core/parse.y"
{COND_PUSH(1);}
-#line 7801 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7817 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 321:
-#line 2695 "mrbgems/mruby-compiler/core/parse.y"
+ case 323:
+#line 2703 "mrbgems/mruby-compiler/core/parse.y"
{COND_POP();}
-#line 7807 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7823 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 322:
-#line 2698 "mrbgems/mruby-compiler/core/parse.y"
+ case 324:
+#line 2706 "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 7816 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7832 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 323:
-#line 2704 "mrbgems/mruby-compiler/core/parse.y"
+ case 325:
+#line 2712 "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 7827 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7843 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 324:
-#line 2712 "mrbgems/mruby-compiler/core/parse.y"
+ case 326:
+#line 2720 "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 7838 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7854 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 325:
-#line 2720 "mrbgems/mruby-compiler/core/parse.y"
+ case 327:
+#line 2728 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.num) = p->in_def;
p->in_def = 0;
}
-#line 7847 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7863 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 326:
-#line 2725 "mrbgems/mruby-compiler/core/parse.y"
+ case 328:
+#line 2733 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons(local_switch(p), nint(p->in_single));
nvars_block(p);
p->in_single = 0;
}
-#line 7857 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7873 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 327:
-#line 2732 "mrbgems/mruby-compiler/core/parse.y"
+ case 329:
+#line 2740 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_sclass(p, (yyvsp[-5].nd), (yyvsp[-1].nd));
SET_LINENO((yyval.nd), (yyvsp[-7].num));
@@ -7866,44 +7882,44 @@ yyreduce:
p->in_def = (yyvsp[-4].num);
p->in_single = intn((yyvsp[-2].nd)->cdr);
}
-#line 7870 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7886 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 328:
-#line 2742 "mrbgems/mruby-compiler/core/parse.y"
+ case 330:
+#line 2750 "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 7881 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7897 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 329:
-#line 2750 "mrbgems/mruby-compiler/core/parse.y"
+ case 331:
+#line 2758 "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 7892 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7908 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 330:
-#line 2760 "mrbgems/mruby-compiler/core/parse.y"
+ case 332:
+#line 2768 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-3].nd);
defn_setup(p, (yyval.nd), (yyvsp[-2].nd), (yyvsp[-1].nd));
nvars_unnest(p);
p->in_def--;
}
-#line 7903 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7919 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 331:
-#line 2770 "mrbgems/mruby-compiler/core/parse.y"
+ case 333:
+#line 2778 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-3].nd);
defs_setup(p, (yyval.nd), (yyvsp[-2].nd), (yyvsp[-1].nd));
@@ -7911,29 +7927,13 @@ yyreduce:
p->in_def--;
p->in_single--;
}
-#line 7915 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 332:
-#line 2778 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_break(p, 0);
- }
-#line 7923 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 333:
-#line 2782 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_next(p, 0);
- }
#line 7931 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 334:
#line 2786 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_redo(p);
+ (yyval.nd) = new_break(p, 0);
}
#line 7939 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7941,56 +7941,56 @@ yyreduce:
case 335:
#line 2790 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_retry(p);
+ (yyval.nd) = new_next(p, 0);
}
#line 7947 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 336:
-#line 2796 "mrbgems/mruby-compiler/core/parse.y"
+#line 2794 "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 7956 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7955 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 343:
-#line 2815 "mrbgems/mruby-compiler/core/parse.y"
+ case 337:
+#line 2798 "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 7964 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7963 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 345:
-#line 2822 "mrbgems/mruby-compiler/core/parse.y"
+ case 338:
+#line 2804 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
+ if (!(yyval.nd)) (yyval.nd) = new_nil(p);
}
#line 7972 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 346:
-#line 2828 "mrbgems/mruby-compiler/core/parse.y"
+ case 345:
+#line 2823 "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 7980 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 348:
-#line 2835 "mrbgems/mruby-compiler/core/parse.y"
+ case 347:
+#line 2830 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = list3((yyvsp[0].nd),0,0);
+ (yyval.nd) = (yyvsp[0].nd);
}
#line 7988 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 349:
-#line 2839 "mrbgems/mruby-compiler/core/parse.y"
+ case 348:
+#line 2836 "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 7996 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -7998,7 +7998,7 @@ yyreduce:
case 350:
#line 2843 "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 8004 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8006,24 +8006,24 @@ yyreduce:
case 351:
#line 2847 "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 8013 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8012 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 352:
-#line 2852 "mrbgems/mruby-compiler/core/parse.y"
+#line 2851 "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 8021 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8020 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 353:
-#line 2856 "mrbgems/mruby-compiler/core/parse.y"
+#line 2855 "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 8029 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8031,7 +8031,7 @@ yyreduce:
case 354:
#line 2860 "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 8037 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8039,40 +8039,40 @@ yyreduce:
case 355:
#line 2864 "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 8046 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8045 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 356:
-#line 2869 "mrbgems/mruby-compiler/core/parse.y"
+#line 2868 "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 8054 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8053 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 357:
-#line 2873 "mrbgems/mruby-compiler/core/parse.y"
+#line 2872 "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 8062 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 358:
-#line 2879 "mrbgems/mruby-compiler/core/parse.y"
+#line 2877 "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 8070 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 359:
-#line 2883 "mrbgems/mruby-compiler/core/parse.y"
+#line 2881 "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 8078 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8080,7 +8080,7 @@ yyreduce:
case 360:
#line 2887 "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 8086 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8088,39 +8088,39 @@ yyreduce:
case 361:
#line 2891 "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 8094 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 362:
-#line 2897 "mrbgems/mruby-compiler/core/parse.y"
+#line 2895 "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 8102 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 363:
-#line 2901 "mrbgems/mruby-compiler/core/parse.y"
+#line 2899 "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 8110 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 364:
-#line 2907 "mrbgems/mruby-compiler/core/parse.y"
+#line 2905 "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 8118 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 365:
-#line 2911 "mrbgems/mruby-compiler/core/parse.y"
+#line 2909 "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 8126 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8128,7 +8128,7 @@ yyreduce:
case 366:
#line 2915 "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 8134 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8136,7 +8136,7 @@ yyreduce:
case 367:
#line 2919 "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 8142 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8144,7 +8144,7 @@ yyreduce:
case 368:
#line 2923 "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 8150 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8152,7 +8152,7 @@ yyreduce:
case 369:
#line 2927 "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 8158 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8160,7 +8160,7 @@ yyreduce:
case 370:
#line 2931 "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 8166 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8168,7 +8168,7 @@ yyreduce:
case 371:
#line 2935 "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 8174 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8176,7 +8176,7 @@ yyreduce:
case 372:
#line 2939 "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 8182 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8184,7 +8184,7 @@ yyreduce:
case 373:
#line 2943 "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 8190 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8192,7 +8192,7 @@ yyreduce:
case 374:
#line 2947 "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 8198 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8200,7 +8200,7 @@ yyreduce:
case 375:
#line 2951 "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 8206 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8208,7 +8208,7 @@ yyreduce:
case 376:
#line 2955 "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 8214 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8216,7 +8216,7 @@ yyreduce:
case 377:
#line 2959 "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 8222 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8224,138 +8224,154 @@ yyreduce:
case 378:
#line 2963 "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 8230 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 379:
-#line 2969 "mrbgems/mruby-compiler/core/parse.y"
+#line 2967 "mrbgems/mruby-compiler/core/parse.y"
+ {
+ (yyval.nd) = new_args(p, 0, 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
+ }
+#line 8238 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
+ case 380:
+#line 2971 "mrbgems/mruby-compiler/core/parse.y"
+ {
+ (yyval.nd) = new_args(p, 0, 0, 0, 0, (yyvsp[0].nd));
+ }
+#line 8246 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
+ case 381:
+#line 2977 "mrbgems/mruby-compiler/core/parse.y"
{
local_add_blk(p, 0);
(yyval.nd) = 0;
}
-#line 8239 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8255 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 380:
-#line 2974 "mrbgems/mruby-compiler/core/parse.y"
+ case 382:
+#line 2982 "mrbgems/mruby-compiler/core/parse.y"
{
p->cmd_start = TRUE;
(yyval.nd) = (yyvsp[0].nd);
}
-#line 8248 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8264 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 381:
-#line 2980 "mrbgems/mruby-compiler/core/parse.y"
+ case 383:
+#line 2988 "mrbgems/mruby-compiler/core/parse.y"
{local_add_blk(p, 0);}
-#line 8254 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8270 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 382:
-#line 2981 "mrbgems/mruby-compiler/core/parse.y"
+ case 384:
+#line 2989 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = 0;
}
-#line 8262 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8278 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 383:
-#line 2985 "mrbgems/mruby-compiler/core/parse.y"
+ case 385:
+#line 2993 "mrbgems/mruby-compiler/core/parse.y"
{
local_add_blk(p, 0);
(yyval.nd) = 0;
}
-#line 8271 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8287 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 384:
-#line 2990 "mrbgems/mruby-compiler/core/parse.y"
+ case 386:
+#line 2998 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-2].nd);
}
-#line 8279 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8295 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 385:
-#line 2997 "mrbgems/mruby-compiler/core/parse.y"
+ case 387:
+#line 3005 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = 0;
}
-#line 8287 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8303 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 386:
-#line 3001 "mrbgems/mruby-compiler/core/parse.y"
+ case 388:
+#line 3009 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = 0;
}
-#line 8295 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8311 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 389:
-#line 3011 "mrbgems/mruby-compiler/core/parse.y"
+ case 391:
+#line 3019 "mrbgems/mruby-compiler/core/parse.y"
{
local_add_f(p, (yyvsp[0].id));
new_bv(p, (yyvsp[0].id));
}
-#line 8304 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8320 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 391:
-#line 3019 "mrbgems/mruby-compiler/core/parse.y"
+ case 393:
+#line 3027 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-2].nd);
}
-#line 8312 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8328 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 392:
-#line 3023 "mrbgems/mruby-compiler/core/parse.y"
+ case 394:
+#line 3031 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 8320 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8336 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 393:
-#line 3029 "mrbgems/mruby-compiler/core/parse.y"
+ case 395:
+#line 3037 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 8328 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8344 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 394:
-#line 3033 "mrbgems/mruby-compiler/core/parse.y"
+ case 396:
+#line 3041 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 8336 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8352 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 395:
-#line 3039 "mrbgems/mruby-compiler/core/parse.y"
+ case 397:
+#line 3047 "mrbgems/mruby-compiler/core/parse.y"
{
local_nest(p);
nvars_nest(p);
}
-#line 8345 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8361 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 396:
-#line 3046 "mrbgems/mruby-compiler/core/parse.y"
+ case 398:
+#line 3054 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_block(p,(yyvsp[-2].nd),(yyvsp[-1].nd));
local_unnest(p);
nvars_unnest(p);
}
-#line 8355 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8371 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 397:
-#line 3054 "mrbgems/mruby-compiler/core/parse.y"
+ case 399:
+#line 3062 "mrbgems/mruby-compiler/core/parse.y"
{
if ((yyvsp[-1].nd)->car == (node*)NODE_YIELD) {
yyerror(p, "block given to yield");
@@ -8365,55 +8381,39 @@ yyreduce:
}
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 8369 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8385 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 398:
-#line 3064 "mrbgems/mruby-compiler/core/parse.y"
+ case 400:
+#line 3072 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num));
}
-#line 8377 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8393 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 399:
-#line 3068 "mrbgems/mruby-compiler/core/parse.y"
+ case 401:
+#line 3076 "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 8386 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8402 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 400:
-#line 3073 "mrbgems/mruby-compiler/core/parse.y"
+ case 402:
+#line 3081 "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 8395 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 401:
-#line 3080 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_fcall(p, (yyvsp[-1].id), (yyvsp[0].nd));
- }
-#line 8403 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 402:
-#line 3084 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num));
- }
#line 8411 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 403:
#line 3088 "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 8419 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8421,7 +8421,7 @@ yyreduce:
case 404:
#line 3092 "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 8427 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8429,7 +8429,7 @@ yyreduce:
case 405:
#line 3096 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_call(p, (yyvsp[-2].nd), MRB_SYM(call), (yyvsp[0].nd), (yyvsp[-1].num));
+ (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), tCOLON2);
}
#line 8435 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8437,7 +8437,7 @@ yyreduce:
case 406:
#line 3100 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_call(p, (yyvsp[-2].nd), MRB_SYM(call), (yyvsp[0].nd), tCOLON2);
+ (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2);
}
#line 8443 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8445,7 +8445,7 @@ yyreduce:
case 407:
#line 3104 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_super(p, (yyvsp[0].nd));
+ (yyval.nd) = new_call(p, (yyvsp[-2].nd), MRB_SYM(call), (yyvsp[0].nd), (yyvsp[-1].num));
}
#line 8451 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8453,7 +8453,7 @@ yyreduce:
case 408:
#line 3108 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_zsuper(p);
+ (yyval.nd) = new_call(p, (yyvsp[-2].nd), MRB_SYM(call), (yyvsp[0].nd), tCOLON2);
}
#line 8459 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8461,63 +8461,79 @@ yyreduce:
case 409:
#line 3112 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_call(p, (yyvsp[-3].nd), MRB_QSYM(aref), (yyvsp[-1].nd), '.');
+ (yyval.nd) = new_super(p, (yyvsp[0].nd));
}
#line 8467 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 410:
-#line 3118 "mrbgems/mruby-compiler/core/parse.y"
+#line 3116 "mrbgems/mruby-compiler/core/parse.y"
+ {
+ (yyval.nd) = new_zsuper(p);
+ }
+#line 8475 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
+ case 411:
+#line 3120 "mrbgems/mruby-compiler/core/parse.y"
+ {
+ (yyval.nd) = new_call(p, (yyvsp[-3].nd), MRB_QSYM(aref), (yyvsp[-1].nd), '.');
+ }
+#line 8483 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
+ case 412:
+#line 3126 "mrbgems/mruby-compiler/core/parse.y"
{
local_nest(p);
nvars_nest(p);
(yyval.num) = p->lineno;
}
-#line 8477 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8493 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 411:
-#line 3125 "mrbgems/mruby-compiler/core/parse.y"
+ case 413:
+#line 3133 "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 8488 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8504 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 412:
-#line 3132 "mrbgems/mruby-compiler/core/parse.y"
+ case 414:
+#line 3140 "mrbgems/mruby-compiler/core/parse.y"
{
local_nest(p);
nvars_nest(p);
(yyval.num) = p->lineno;
}
-#line 8498 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8514 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 413:
-#line 3139 "mrbgems/mruby-compiler/core/parse.y"
+ case 415:
+#line 3147 "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 8509 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8525 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 414:
-#line 3150 "mrbgems/mruby-compiler/core/parse.y"
+ case 416:
+#line 3158 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons(cons((yyvsp[-3].nd), (yyvsp[-1].nd)), (yyvsp[0].nd));
}
-#line 8517 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8533 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 415:
-#line 3156 "mrbgems/mruby-compiler/core/parse.y"
+ case 417:
+#line 3164 "mrbgems/mruby-compiler/core/parse.y"
{
if ((yyvsp[0].nd)) {
(yyval.nd) = cons(cons(0, (yyvsp[0].nd)), 0);
@@ -8526,297 +8542,281 @@ yyreduce:
(yyval.nd) = 0;
}
}
-#line 8530 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8546 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 417:
-#line 3170 "mrbgems/mruby-compiler/core/parse.y"
+ case 419:
+#line 3178 "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 8539 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8555 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 419:
-#line 3178 "mrbgems/mruby-compiler/core/parse.y"
+ case 421:
+#line 3186 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1((yyvsp[0].nd));
}
-#line 8547 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8563 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 422:
-#line 3186 "mrbgems/mruby-compiler/core/parse.y"
+ case 424:
+#line 3194 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 8555 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8571 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 424:
-#line 3193 "mrbgems/mruby-compiler/core/parse.y"
+ case 426:
+#line 3201 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 8563 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8579 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 431:
-#line 3207 "mrbgems/mruby-compiler/core/parse.y"
+ case 433:
+#line 3215 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = concat_string(p, (yyvsp[-1].nd), (yyvsp[0].nd));
}
-#line 8571 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8587 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 434:
-#line 3215 "mrbgems/mruby-compiler/core/parse.y"
+ case 436:
+#line 3223 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 8579 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8595 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 435:
-#line 3219 "mrbgems/mruby-compiler/core/parse.y"
+ case 437:
+#line 3227 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_dstr(p, push((yyvsp[-1].nd), (yyvsp[0].nd)));
}
-#line 8587 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8603 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 437:
-#line 3226 "mrbgems/mruby-compiler/core/parse.y"
+ case 439:
+#line 3234 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = append((yyvsp[-1].nd), (yyvsp[0].nd));
}
-#line 8595 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8611 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 438:
-#line 3232 "mrbgems/mruby-compiler/core/parse.y"
+ case 440:
+#line 3240 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1((yyvsp[0].nd));
}
-#line 8603 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8619 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 439:
-#line 3236 "mrbgems/mruby-compiler/core/parse.y"
+ case 441:
+#line 3244 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = p->lex_strterm;
p->lex_strterm = NULL;
}
-#line 8612 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8628 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 440:
-#line 3242 "mrbgems/mruby-compiler/core/parse.y"
+ case 442:
+#line 3250 "mrbgems/mruby-compiler/core/parse.y"
{
p->lex_strterm = (yyvsp[-2].nd);
(yyval.nd) = list2((yyvsp[-3].nd), (yyvsp[-1].nd));
}
-#line 8621 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8637 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 441:
-#line 3247 "mrbgems/mruby-compiler/core/parse.y"
+ case 443:
+#line 3255 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1(new_literal_delim(p));
}
-#line 8629 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8645 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 442:
-#line 3251 "mrbgems/mruby-compiler/core/parse.y"
+ case 444:
+#line 3259 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1(new_literal_delim(p));
}
-#line 8637 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8653 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 443:
-#line 3257 "mrbgems/mruby-compiler/core/parse.y"
+ case 445:
+#line 3265 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 8645 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8661 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 444:
-#line 3261 "mrbgems/mruby-compiler/core/parse.y"
+ case 446:
+#line 3269 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_dxstr(p, push((yyvsp[-1].nd), (yyvsp[0].nd)));
}
-#line 8653 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8669 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 445:
-#line 3267 "mrbgems/mruby-compiler/core/parse.y"
+ case 447:
+#line 3275 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 8661 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8677 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 446:
-#line 3271 "mrbgems/mruby-compiler/core/parse.y"
+ case 448:
+#line 3279 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_dregx(p, (yyvsp[-1].nd), (yyvsp[0].nd));
}
-#line 8669 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8685 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 450:
-#line 3284 "mrbgems/mruby-compiler/core/parse.y"
+ case 452:
+#line 3292 "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 8679 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8695 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 451:
-#line 3290 "mrbgems/mruby-compiler/core/parse.y"
+ case 453:
+#line 3298 "mrbgems/mruby-compiler/core/parse.y"
{
heredoc_end(p);
}
-#line 8687 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8703 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 454:
-#line 3300 "mrbgems/mruby-compiler/core/parse.y"
+ case 456:
+#line 3308 "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 8697 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8713 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 455:
-#line 3306 "mrbgems/mruby-compiler/core/parse.y"
+ case 457:
+#line 3314 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = p->lex_strterm;
p->lex_strterm = NULL;
}
-#line 8706 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8722 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 456:
-#line 3312 "mrbgems/mruby-compiler/core/parse.y"
+ case 458:
+#line 3320 "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 8716 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8732 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 457:
-#line 3320 "mrbgems/mruby-compiler/core/parse.y"
+ case 459:
+#line 3328 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_words(p, list1((yyvsp[0].nd)));
}
-#line 8724 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8740 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 458:
-#line 3324 "mrbgems/mruby-compiler/core/parse.y"
+ case 460:
+#line 3332 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_words(p, push((yyvsp[-1].nd), (yyvsp[0].nd)));
}
-#line 8732 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8748 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 459:
-#line 3331 "mrbgems/mruby-compiler/core/parse.y"
+ case 461:
+#line 3339 "mrbgems/mruby-compiler/core/parse.y"
{
p->lstate = EXPR_ENDARG;
(yyval.nd) = new_sym(p, (yyvsp[0].id));
}
-#line 8741 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8757 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 460:
-#line 3336 "mrbgems/mruby-compiler/core/parse.y"
+ case 462:
+#line 3344 "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 8750 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 461:
-#line 3343 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.id) = (yyvsp[0].id);
- }
-#line 8758 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 466:
-#line 3353 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.id) = new_strsym(p, (yyvsp[0].nd));
- }
#line 8766 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 467:
-#line 3357 "mrbgems/mruby-compiler/core/parse.y"
+ case 463:
+#line 3351 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.id) = new_strsym(p, (yyvsp[0].nd));
+ (yyval.id) = (yyvsp[0].id);
}
#line 8774 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 468:
-#line 3363 "mrbgems/mruby-compiler/core/parse.y"
+#line 3361 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_symbols(p, list1((yyvsp[0].nd)));
+ (yyval.id) = new_strsym(p, (yyvsp[0].nd));
}
#line 8782 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 469:
-#line 3367 "mrbgems/mruby-compiler/core/parse.y"
+#line 3365 "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 8790 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 472:
-#line 3375 "mrbgems/mruby-compiler/core/parse.y"
+ case 470:
+#line 3371 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = negate_lit(p, (yyvsp[0].nd));
+ (yyval.nd) = new_symbols(p, list1((yyvsp[0].nd)));
}
#line 8798 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 473:
-#line 3379 "mrbgems/mruby-compiler/core/parse.y"
+ case 471:
+#line 3375 "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 8806 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 474:
-#line 3385 "mrbgems/mruby-compiler/core/parse.y"
+#line 3383 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_lvar(p, (yyvsp[0].id));
+ (yyval.nd) = negate_lit(p, (yyvsp[0].nd));
}
#line 8814 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 475:
-#line 3389 "mrbgems/mruby-compiler/core/parse.y"
+#line 3387 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_ivar(p, (yyvsp[0].id));
+ (yyval.nd) = negate_lit(p, (yyvsp[0].nd));
}
#line 8822 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8824,7 +8824,7 @@ yyreduce:
case 476:
#line 3393 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_gvar(p, (yyvsp[0].id));
+ (yyval.nd) = new_lvar(p, (yyvsp[0].id));
}
#line 8830 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8832,7 +8832,7 @@ yyreduce:
case 477:
#line 3397 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_cvar(p, (yyvsp[0].id));
+ (yyval.nd) = new_ivar(p, (yyvsp[0].id));
}
#line 8838 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8840,39 +8840,39 @@ yyreduce:
case 478:
#line 3401 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_const(p, (yyvsp[0].id));
+ (yyval.nd) = new_gvar(p, (yyvsp[0].id));
}
#line 8846 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 479:
-#line 3407 "mrbgems/mruby-compiler/core/parse.y"
+#line 3405 "mrbgems/mruby-compiler/core/parse.y"
{
- assignable(p, (yyvsp[0].nd));
+ (yyval.nd) = new_cvar(p, (yyvsp[0].id));
}
#line 8854 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 480:
-#line 3411 "mrbgems/mruby-compiler/core/parse.y"
+#line 3409 "mrbgems/mruby-compiler/core/parse.y"
{
- yyerror(p, "can't assign to numbered parameter");
+ (yyval.nd) = new_const(p, (yyvsp[0].id));
}
#line 8862 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 481:
-#line 3417 "mrbgems/mruby-compiler/core/parse.y"
+#line 3415 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = var_reference(p, (yyvsp[0].nd));
+ assignable(p, (yyvsp[0].nd));
}
#line 8870 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 482:
-#line 3421 "mrbgems/mruby-compiler/core/parse.y"
+#line 3419 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_nil(p);
+ yyerror(p, "can't assign to numbered parameter");
}
#line 8878 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8880,7 +8880,7 @@ yyreduce:
case 483:
#line 3425 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_self(p);
+ (yyval.nd) = var_reference(p, (yyvsp[0].nd));
}
#line 8886 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8888,7 +8888,7 @@ yyreduce:
case 484:
#line 3429 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_true(p);
+ (yyval.nd) = new_nil(p);
}
#line 8894 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8896,7 +8896,7 @@ yyreduce:
case 485:
#line 3433 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_false(p);
+ (yyval.nd) = new_self(p);
}
#line 8902 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -8904,28 +8904,44 @@ yyreduce:
case 486:
#line 3437 "mrbgems/mruby-compiler/core/parse.y"
{
+ (yyval.nd) = new_true(p);
+ }
+#line 8910 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
+ case 487:
+#line 3441 "mrbgems/mruby-compiler/core/parse.y"
+ {
+ (yyval.nd) = new_false(p);
+ }
+#line 8918 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
+ case 488:
+#line 3445 "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 8914 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8930 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 487:
-#line 3445 "mrbgems/mruby-compiler/core/parse.y"
+ case 489:
+#line 3453 "mrbgems/mruby-compiler/core/parse.y"
{
char buf[16];
dump_int(p->lineno, buf);
(yyval.nd) = new_int(p, buf, 10, 0);
}
-#line 8925 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8941 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 488:
-#line 3452 "mrbgems/mruby-compiler/core/parse.y"
+ case 490:
+#line 3460 "mrbgems/mruby-compiler/core/parse.y"
{
#ifdef MRB_UTF8_STRING
const char *enc = "UTF-8";
@@ -8934,46 +8950,46 @@ yyreduce:
#endif
(yyval.nd) = new_str(p, enc, strlen(enc));
}
-#line 8938 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8954 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 491:
-#line 3467 "mrbgems/mruby-compiler/core/parse.y"
+ case 493:
+#line 3475 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = 0;
}
-#line 8946 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8962 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 492:
-#line 3471 "mrbgems/mruby-compiler/core/parse.y"
+ case 494:
+#line 3479 "mrbgems/mruby-compiler/core/parse.y"
{
p->lstate = EXPR_BEG;
p->cmd_start = TRUE;
}
-#line 8955 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8971 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 493:
-#line 3476 "mrbgems/mruby-compiler/core/parse.y"
+ case 495:
+#line 3484 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 8963 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8979 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 494:
-#line 3487 "mrbgems/mruby-compiler/core/parse.y"
+ case 496:
+#line 3495 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-1].nd);
p->lstate = EXPR_BEG;
p->cmd_start = TRUE;
}
-#line 8973 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8989 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 495:
-#line 3493 "mrbgems/mruby-compiler/core/parse.y"
+ case 497:
+#line 3501 "mrbgems/mruby-compiler/core/parse.y"
{
#if 1
/* til real keyword args implemented */
@@ -8991,80 +9007,64 @@ yyreduce:
new_args_tail(p, 0, new_kw_rest_args(p, nsym(k)), b));
#endif
}
-#line 8995 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 497:
-#line 3514 "mrbgems/mruby-compiler/core/parse.y"
- {
- (yyval.nd) = (yyvsp[-1].nd);
- }
-#line 9003 "mrbgems/mruby-compiler/core/y.tab.c"
- break;
-
- case 498:
-#line 3520 "mrbgems/mruby-compiler/core/parse.y"
- {
- local_nest(p);
- }
#line 9011 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 499:
-#line 3526 "mrbgems/mruby-compiler/core/parse.y"
+#line 3522 "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 9021 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9019 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 500:
-#line 3532 "mrbgems/mruby-compiler/core/parse.y"
+#line 3528 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_kw_arg(p, (yyvsp[0].id), 0);
- local_unnest(p);
+ local_nest(p);
}
-#line 9030 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9027 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 501:
-#line 3539 "mrbgems/mruby-compiler/core/parse.y"
+#line 3534 "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 9039 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9037 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 502:
-#line 3544 "mrbgems/mruby-compiler/core/parse.y"
+#line 3540 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_kw_arg(p, (yyvsp[0].id), 0);
local_unnest(p);
}
-#line 9048 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9046 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 503:
-#line 3551 "mrbgems/mruby-compiler/core/parse.y"
+#line 3547 "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 9056 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9055 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 504:
-#line 3555 "mrbgems/mruby-compiler/core/parse.y"
+#line 3552 "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 9064 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 505:
-#line 3561 "mrbgems/mruby-compiler/core/parse.y"
+#line 3559 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1((yyvsp[0].nd));
}
@@ -9072,41 +9072,41 @@ yyreduce:
break;
case 506:
-#line 3565 "mrbgems/mruby-compiler/core/parse.y"
+#line 3563 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
}
#line 9080 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 509:
-#line 3575 "mrbgems/mruby-compiler/core/parse.y"
+ case 507:
+#line 3569 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_kw_rest_args(p, nsym((yyvsp[0].id)));
+ (yyval.nd) = list1((yyvsp[0].nd));
}
#line 9088 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 510:
-#line 3579 "mrbgems/mruby-compiler/core/parse.y"
+ case 508:
+#line 3573 "mrbgems/mruby-compiler/core/parse.y"
{
- (yyval.nd) = new_kw_rest_args(p, 0);
+ (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
}
#line 9096 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 511:
-#line 3585 "mrbgems/mruby-compiler/core/parse.y"
+#line 3583 "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 9104 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 512:
-#line 3589 "mrbgems/mruby-compiler/core/parse.y"
+#line 3587 "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 9112 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -9114,7 +9114,7 @@ yyreduce:
case 513:
#line 3593 "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 9120 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -9122,39 +9122,39 @@ yyreduce:
case 514:
#line 3597 "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 9128 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 515:
-#line 3603 "mrbgems/mruby-compiler/core/parse.y"
+#line 3601 "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 9136 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 516:
-#line 3607 "mrbgems/mruby-compiler/core/parse.y"
+#line 3605 "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 9144 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 517:
-#line 3613 "mrbgems/mruby-compiler/core/parse.y"
+#line 3611 "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 9152 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 518:
-#line 3617 "mrbgems/mruby-compiler/core/parse.y"
+#line 3615 "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 9160 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -9162,7 +9162,7 @@ yyreduce:
case 519:
#line 3621 "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 9168 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -9170,7 +9170,7 @@ yyreduce:
case 520:
#line 3625 "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 9176 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -9178,7 +9178,7 @@ yyreduce:
case 521:
#line 3629 "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 9184 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -9186,7 +9186,7 @@ yyreduce:
case 522:
#line 3633 "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 9192 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -9194,7 +9194,7 @@ yyreduce:
case 523:
#line 3637 "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 9200 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -9202,7 +9202,7 @@ yyreduce:
case 524:
#line 3641 "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 9208 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -9210,7 +9210,7 @@ yyreduce:
case 525:
#line 3645 "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 9216 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -9218,7 +9218,7 @@ yyreduce:
case 526:
#line 3649 "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 9224 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -9226,7 +9226,7 @@ yyreduce:
case 527:
#line 3653 "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 9232 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -9234,7 +9234,7 @@ yyreduce:
case 528:
#line 3657 "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 9240 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -9242,7 +9242,7 @@ yyreduce:
case 529:
#line 3661 "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 9248 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -9250,7 +9250,7 @@ yyreduce:
case 530:
#line 3665 "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 9256 "mrbgems/mruby-compiler/core/y.tab.c"
break;
@@ -9258,237 +9258,253 @@ yyreduce:
case 531:
#line 3669 "mrbgems/mruby-compiler/core/parse.y"
{
+ (yyval.nd) = new_args(p, 0, 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
+ }
+#line 9264 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
+ case 532:
+#line 3673 "mrbgems/mruby-compiler/core/parse.y"
+ {
+ (yyval.nd) = new_args(p, 0, 0, 0, 0, (yyvsp[0].nd));
+ }
+#line 9272 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
+ case 533:
+#line 3677 "mrbgems/mruby-compiler/core/parse.y"
+ {
local_add_f(p, MRB_QSYM(and));
(yyval.nd) = new_args(p, 0, 0, 0, 0, 0);
}
-#line 9265 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9281 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 532:
-#line 3676 "mrbgems/mruby-compiler/core/parse.y"
+ case 534:
+#line 3684 "mrbgems/mruby-compiler/core/parse.y"
{
yyerror(p, "formal argument cannot be a constant");
(yyval.nd) = 0;
}
-#line 9274 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9290 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 533:
-#line 3681 "mrbgems/mruby-compiler/core/parse.y"
+ case 535:
+#line 3689 "mrbgems/mruby-compiler/core/parse.y"
{
yyerror(p, "formal argument cannot be an instance variable");
(yyval.nd) = 0;
}
-#line 9283 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9299 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 534:
-#line 3686 "mrbgems/mruby-compiler/core/parse.y"
+ case 536:
+#line 3694 "mrbgems/mruby-compiler/core/parse.y"
{
yyerror(p, "formal argument cannot be a global variable");
(yyval.nd) = 0;
}
-#line 9292 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9308 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 535:
-#line 3691 "mrbgems/mruby-compiler/core/parse.y"
+ case 537:
+#line 3699 "mrbgems/mruby-compiler/core/parse.y"
{
yyerror(p, "formal argument cannot be a class variable");
(yyval.nd) = 0;
}
-#line 9301 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9317 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 536:
-#line 3696 "mrbgems/mruby-compiler/core/parse.y"
+ case 538:
+#line 3704 "mrbgems/mruby-compiler/core/parse.y"
{
yyerror(p, "formal argument cannot be a numbered parameter");
(yyval.nd) = 0;
}
-#line 9310 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9326 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 537:
-#line 3703 "mrbgems/mruby-compiler/core/parse.y"
+ case 539:
+#line 3711 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.id) = 0;
}
-#line 9318 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9334 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 538:
-#line 3707 "mrbgems/mruby-compiler/core/parse.y"
+ case 540:
+#line 3715 "mrbgems/mruby-compiler/core/parse.y"
{
local_add_f(p, (yyvsp[0].id));
(yyval.id) = (yyvsp[0].id);
}
-#line 9327 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9343 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 539:
-#line 3714 "mrbgems/mruby-compiler/core/parse.y"
+ case 541:
+#line 3722 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_arg(p, (yyvsp[0].id));
}
-#line 9335 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9351 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 540:
-#line 3718 "mrbgems/mruby-compiler/core/parse.y"
+ case 542:
+#line 3726 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = local_switch(p);
}
-#line 9343 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9359 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 541:
-#line 3722 "mrbgems/mruby-compiler/core/parse.y"
+ case 543:
+#line 3730 "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 9353 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9369 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 542:
-#line 3730 "mrbgems/mruby-compiler/core/parse.y"
+ case 544:
+#line 3738 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1((yyvsp[0].nd));
}
-#line 9361 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9377 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 543:
-#line 3734 "mrbgems/mruby-compiler/core/parse.y"
+ case 545:
+#line 3742 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 9369 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9385 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 544:
-#line 3740 "mrbgems/mruby-compiler/core/parse.y"
+ case 546:
+#line 3748 "mrbgems/mruby-compiler/core/parse.y"
{
local_add_f(p, (yyvsp[-1].id));
local_nest(p);
(yyval.id) = (yyvsp[-1].id);
}
-#line 9379 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9395 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 545:
-#line 3748 "mrbgems/mruby-compiler/core/parse.y"
+ case 547:
+#line 3756 "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 9389 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9405 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 546:
-#line 3756 "mrbgems/mruby-compiler/core/parse.y"
+ case 548:
+#line 3764 "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 9399 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9415 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 547:
-#line 3764 "mrbgems/mruby-compiler/core/parse.y"
+ case 549:
+#line 3772 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1((yyvsp[0].nd));
}
-#line 9407 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9423 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 548:
-#line 3768 "mrbgems/mruby-compiler/core/parse.y"
+ case 550:
+#line 3776 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 9415 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9431 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 549:
-#line 3774 "mrbgems/mruby-compiler/core/parse.y"
+ case 551:
+#line 3782 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1((yyvsp[0].nd));
}
-#line 9423 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9439 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 550:
-#line 3778 "mrbgems/mruby-compiler/core/parse.y"
+ case 552:
+#line 3786 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 9431 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9447 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 553:
-#line 3788 "mrbgems/mruby-compiler/core/parse.y"
+ case 555:
+#line 3796 "mrbgems/mruby-compiler/core/parse.y"
{
local_add_f(p, (yyvsp[0].id));
(yyval.id) = (yyvsp[0].id);
}
-#line 9440 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9456 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 554:
-#line 3793 "mrbgems/mruby-compiler/core/parse.y"
+ case 556:
+#line 3801 "mrbgems/mruby-compiler/core/parse.y"
{
local_add_f(p, MRB_QSYM(mul));
(yyval.id) = -1;
}
-#line 9449 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9465 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 557:
-#line 3804 "mrbgems/mruby-compiler/core/parse.y"
+ case 559:
+#line 3812 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.id) = (yyvsp[0].id);
}
-#line 9457 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9473 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 558:
-#line 3810 "mrbgems/mruby-compiler/core/parse.y"
+ case 560:
+#line 3818 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.id) = (yyvsp[0].id);
}
-#line 9465 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9481 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 559:
-#line 3814 "mrbgems/mruby-compiler/core/parse.y"
+ case 561:
+#line 3822 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.id) = 0;
}
-#line 9473 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9489 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 560:
-#line 3820 "mrbgems/mruby-compiler/core/parse.y"
+ case 562:
+#line 3828 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
if (!(yyval.nd)) (yyval.nd) = new_nil(p);
}
-#line 9482 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9498 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 561:
-#line 3824 "mrbgems/mruby-compiler/core/parse.y"
+ case 563:
+#line 3832 "mrbgems/mruby-compiler/core/parse.y"
{p->lstate = EXPR_BEG;}
-#line 9488 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9504 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 562:
-#line 3825 "mrbgems/mruby-compiler/core/parse.y"
+ case 564:
+#line 3833 "mrbgems/mruby-compiler/core/parse.y"
{
if ((yyvsp[-1].nd) == 0) {
yyerror(p, "can't define singleton method for ().");
@@ -9511,55 +9527,55 @@ yyreduce:
}
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 9515 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9531 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 564:
-#line 3851 "mrbgems/mruby-compiler/core/parse.y"
+ case 566:
+#line 3859 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 9523 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9539 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 565:
-#line 3857 "mrbgems/mruby-compiler/core/parse.y"
+ case 567:
+#line 3865 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1((yyvsp[0].nd));
NODE_LINENO((yyval.nd), (yyvsp[0].nd));
}
-#line 9532 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9548 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 566:
-#line 3862 "mrbgems/mruby-compiler/core/parse.y"
+ case 568:
+#line 3870 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 9540 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9556 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 569:
-#line 3872 "mrbgems/mruby-compiler/core/parse.y"
+ case 571:
+#line 3880 "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 9550 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9566 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 570:
-#line 3878 "mrbgems/mruby-compiler/core/parse.y"
+ case 572:
+#line 3886 "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 9559 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9575 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 571:
-#line 3883 "mrbgems/mruby-compiler/core/parse.y"
+ case 573:
+#line 3891 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
if ((yyvsp[-2].nd)->car == (node*)NODE_DSTR) {
@@ -9569,67 +9585,67 @@ yyreduce:
(yyval.nd) = cons(new_sym(p, new_strsym(p, (yyvsp[-2].nd))), (yyvsp[0].nd));
}
}
-#line 9573 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9589 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 572:
-#line 3893 "mrbgems/mruby-compiler/core/parse.y"
+ case 574:
+#line 3901 "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 9582 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9598 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 585:
-#line 3920 "mrbgems/mruby-compiler/core/parse.y"
+ case 587:
+#line 3928 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.num) = '.';
}
-#line 9590 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9606 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 586:
-#line 3924 "mrbgems/mruby-compiler/core/parse.y"
+ case 588:
+#line 3932 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.num) = 0;
}
-#line 9598 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9614 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 588:
-#line 3931 "mrbgems/mruby-compiler/core/parse.y"
+ case 590:
+#line 3939 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.num) = tCOLON2;
}
-#line 9606 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9622 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 597:
-#line 3952 "mrbgems/mruby-compiler/core/parse.y"
+ case 599:
+#line 3960 "mrbgems/mruby-compiler/core/parse.y"
{yyerrok;}
-#line 9612 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9628 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 600:
-#line 3958 "mrbgems/mruby-compiler/core/parse.y"
+ case 602:
+#line 3966 "mrbgems/mruby-compiler/core/parse.y"
{
p->lineno += (yyvsp[0].num);
p->column = 0;
}
-#line 9621 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9637 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 603:
-#line 3969 "mrbgems/mruby-compiler/core/parse.y"
+ case 605:
+#line 3977 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = 0;
}
-#line 9629 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9645 "mrbgems/mruby-compiler/core/y.tab.c"
break;
-#line 9633 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9649 "mrbgems/mruby-compiler/core/y.tab.c"
default: break;
}
@@ -9861,7 +9877,7 @@ yyreturn:
#endif
return yyresult;
}
-#line 3973 "mrbgems/mruby-compiler/core/parse.y"
+#line 3981 "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 fadddc343..018bd7094 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?(Integer)
@@ -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 0f2cc6119..a5651cdd9 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_integer_p(beg)) {
beg_f = (mrb_float)mrb_integer(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_integer_p(beg) && mrb_integer_p(end)) {
diff --git a/mrbgems/mruby-range-ext/test/range.rb b/mrbgems/mruby-range-ext/test/range.rb
index 3e9b850b2..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,6 +112,7 @@ 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
@@ -108,12 +127,16 @@ assert('Range#min') do
# 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).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 2e076f485..7544ac8f4 100644
--- a/mrbgems/mruby-string-ext/mrblib/string.rb
+++ b/mrbgems/mruby-string-ext/mrblib/string.rb
@@ -443,4 +443,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
diff --git a/mrblib/range.rb b/mrblib/range.rb
index 9f94f35d1..36886d50c 100644
--- a/mrblib/range.rb
+++ b/mrblib/range.rb
@@ -12,8 +12,25 @@ class Range
def each(&block)
return to_enum :each unless block
- val = self.first
- last = self.last
+ val = self.begin
+ last = self.end
+
+ if val.kind_of?(Fixnum) && last.nil?
+ i = val
+ while true
+ block.call(i)
+ i += 1
+ end
+ return self
+ end
+
+ if val.kind_of?(String) && last.nil?
+ if val.respond_to? :__upto_endless
+ return val.__upto_endless(&block)
+ else
+ str_each = true
+ end
+ end
if val.kind_of?(Integer) && last.kind_of?(Integer) # fixnums are special
lim = last
@@ -56,6 +73,11 @@ class Range
h += 1 if self.exclude_end?
h
end
+
+ def to_a
+ raise RangeError, "cannot convert endless range to an array" if self.last.nil?
+ super
+ end
end
##
diff --git a/src/range.c b/src/range.c
index c06a8a00b..08edf424e 100644
--- a/src/range.c
+++ b/src/range.c
@@ -32,6 +32,8 @@ r_check(mrb_state *mrb, mrb_value a, mrb_value b)
return;
}
+ if (mrb_nil_p(b)) return;
+
n = mrb_cmp(mrb, a, b);
if (n == -2) { /* can not be compared */
mrb_raise(mrb, E_ARGUMENT_ERROR, "bad value for range");
@@ -212,15 +214,19 @@ range_include(mrb_state *mrb, mrb_value range)
mrb_value val = mrb_get_arg1(mrb);
struct RRange *r = mrb_range_ptr(mrb, range);
mrb_value beg, end;
- mrb_bool include_p;
beg = RANGE_BEG(r);
end = RANGE_END(r);
- include_p = r_le(mrb, beg, val) && /* beg <= val */
- (RANGE_EXCL(r) ? r_gt(mrb, end, val) /* end > val */
- : r_ge(mrb, end, val)); /* end >= val */
-
- return mrb_bool_value(include_p);
+ if (r_le(mrb, beg, val)) { /* beg <= val */
+ if (mrb_nil_p(end)) {
+ return mrb_true_value();
+ }
+ if (RANGE_EXCL(r) ? r_gt(mrb, end, val) /* end > val */
+ : r_ge(mrb, end, val)) { /* end >= val */
+ return mrb_true_value();
+ }
+ }
+ return mrb_false_value();
}
/* 15.2.14.4.12(x) */
@@ -261,10 +267,10 @@ range_inspect(mrb_state *mrb, mrb_value range)
struct RRange *r = mrb_range_ptr(mrb, range);
str = mrb_inspect(mrb, RANGE_BEG(r));
- str2 = mrb_inspect(mrb, RANGE_END(r));
+ if (!mrb_nil_p(RANGE_END(r))) str2 = mrb_inspect(mrb, RANGE_END(r));
str = mrb_str_dup(mrb, str);
mrb_str_cat(mrb, str, "...", RANGE_EXCL(r) ? 3 : 2);
- mrb_str_cat_str(mrb, str, str2);
+ if (!mrb_nil_p(RANGE_END(r))) mrb_str_cat_str(mrb, str, str2);
return str;
}
@@ -381,13 +387,15 @@ MRB_API enum mrb_range_beg_len
mrb_range_beg_len(mrb_state *mrb, mrb_value range, mrb_int *begp, mrb_int *lenp, mrb_int len, mrb_bool trunc)
{
mrb_int beg, end;
+ mrb_bool excl;
struct RRange *r;
if (!mrb_range_p(range)) return MRB_RANGE_TYPE_MISMATCH;
r = mrb_range_ptr(mrb, range);
beg = mrb_int(mrb, RANGE_BEG(r));
- end = mrb_int(mrb, RANGE_END(r));
+ end = mrb_nil_p(RANGE_END(r)) ? -1 : mrb_int(mrb, RANGE_END(r));
+ excl = mrb_nil_p(RANGE_END(r)) ? 0 : RANGE_EXCL(r);
if (beg < 0) {
beg += len;
@@ -400,7 +408,7 @@ mrb_range_beg_len(mrb_state *mrb, mrb_value range, mrb_int *begp, mrb_int *lenp,
}
if (end < 0) end += len;
- if (!RANGE_EXCL(r) && (!trunc || end < len)) end++; /* include end point */
+ if (!excl && (!trunc || end < len)) end++; /* include end point */
len = end - beg;
if (len < 0) len = 0;
diff --git a/test/t/array.rb b/test/t/array.rb
index 2982cab01..b3952e5a5 100644
--- a/test/t/array.rb
+++ b/test/t/array.rb
@@ -57,6 +57,7 @@ assert('Array#[]', '15.2.12.5.4') do
a = [ "a", "b", "c", "d", "e" ]
assert_equal(["b", "c"], a[1,2])
assert_equal(["b", "c", "d"], a[1..-2])
+ assert_equal(["b", "c", "d", "e"], a[1..])
skip unless Object.const_defined?(:Float)
assert_equal("b", a[1.1])
end
@@ -92,6 +93,10 @@ assert('Array#[]=', '15.2.12.5.5') do
a[2...4] = 6
assert_equal([1,2,6,5], a)
+ a = [1,2,3,4,5]
+ a[2...] = 6
+ assert_equal([1,2,6], a)
+
# passing self (#3274)
a = [1,2,3]
a[1,0] = a
diff --git a/test/t/range.rb b/test/t/range.rb
index 106c2866e..13843ff08 100644
--- a/test/t/range.rb
+++ b/test/t/range.rb
@@ -8,19 +8,30 @@ end
assert('Range#==', '15.2.14.4.1') do
assert_true (1..10) == (1..10)
assert_false (1..10) == (1..100)
+ assert_false (1..10) == (1..)
+
+ assert_true (1..) == (1..nil)
+ assert_true (1..) == (1..)
+ assert_false (1..) == (1...)
+
skip unless Object.const_defined?(:Float)
assert_true (1..10) == Range.new(1.0, 10.0)
+
end
assert('Range#===', '15.2.14.4.2') do
a = (1..10)
+ b = (1..)
assert_true a === 5
assert_false a === 20
+ assert_true b === 20
+ assert_false b === 0
end
assert('Range#begin', '15.2.14.4.3') do
assert_equal 1, (1..10).begin
+ assert_equal 1, (1..).begin
end
assert('Range#each', '15.2.14.4.4') do
@@ -28,27 +39,38 @@ assert('Range#each', '15.2.14.4.4') do
b = 0
a.each {|i| b += i}
assert_equal 6, b
+ c = []
+ (1..).each { |i| c << i; break if c.size == 10 }
+ assert_equal [1, 2, 3, 4, 5, 6, 7, 8 ,9, 10], c
end
assert('Range#end', '15.2.14.4.5') do
assert_equal 10, (1..10).end
+ assert_nil (1..).end
end
assert('Range#exclude_end?', '15.2.14.4.6') do
assert_true (1...10).exclude_end?
assert_false (1..10).exclude_end?
+ assert_true (1...).exclude_end?
+ assert_false (1..).exclude_end?
end
assert('Range#first', '15.2.14.4.7') do
assert_equal 1, (1..10).first
+ assert_equal 1, (1..).first
end
assert('Range#include?', '15.2.14.4.8') do
assert_true (1..10).include?(10)
assert_false (1..10).include?(11)
+ assert_true (1..).include?(10)
+ assert_false (1..).include?(0)
assert_true (1...10).include?(9)
assert_false (1...10).include?(10)
+ assert_true (1...).include?(10)
+ assert_false (1...).include?(0)
end
assert('Range#initialize', '15.2.14.4.9') do
@@ -61,17 +83,29 @@ assert('Range#initialize', '15.2.14.4.9') do
assert_false b.exclude_end?
assert_raise(NameError) { (0..1).__send__(:initialize, 1, 3) }
+
+ c = Range.new(1, nil, true)
+ d = Range.new(1, nil, false)
+
+ assert_equal (1...nil), c
+ assert_true c.exclude_end?
+ assert_equal (1..nil), d
+ assert_false d.exclude_end?
end
assert('Range#last', '15.2.14.4.10') do
assert_equal 10, (1..10).last
+ assert_nil (1..).last
end
assert('Range#member?', '15.2.14.4.11') do
a = (1..10)
+ b = (1..)
assert_true a.member?(5)
assert_false a.member?(20)
+ assert_true b.member?(20)
+ assert_false b.member?(0)
end
assert('Range#to_s', '15.2.14.4.12') do
@@ -79,6 +113,10 @@ assert('Range#to_s', '15.2.14.4.12') do
assert_equal "0...1", (0...1).to_s
assert_equal "a..b", ("a".."b").to_s
assert_equal "a...b", ("a"..."b").to_s
+ assert_equal "0..", (0..).to_s
+ assert_equal "0...", (0...).to_s
+ assert_equal "a..", ("a"..).to_s
+ assert_equal "a...", ("a"...).to_s
end
assert('Range#inspect', '15.2.14.4.13') do
@@ -86,19 +124,36 @@ assert('Range#inspect', '15.2.14.4.13') do
assert_equal "0...1", (0...1).inspect
assert_equal "\"a\"..\"b\"", ("a".."b").inspect
assert_equal "\"a\"...\"b\"", ("a"..."b").inspect
+ assert_equal "0..", (0..).inspect
+ assert_equal "0...", (0...).inspect
+ assert_equal "\"a\"..", ("a"..).inspect
+ assert_equal "\"a\"...", ("a"...).inspect
end
assert('Range#eql?', '15.2.14.4.14') do
assert_true (1..10).eql? (1..10)
assert_false (1..10).eql? (1..100)
- assert_false (1..10).eql? (Range.new(1.0, 10.0))
assert_false (1..10).eql? "1..10"
+ assert_true (1..).eql? (1..)
+ assert_false (1..).eql? (2..)
+ assert_false (1..).eql? "1.."
+ skip unless Object.const_defined?(:Float)
+ assert_false (1..10).eql? (Range.new(1.0, 10.0))
+ assert_false (1..).eql? (Range.new(1.0, nil))
end
assert('Range#initialize_copy', '15.2.14.4.15') do
assert_raise(NameError) { (0..1).__send__(:initialize_copy, 1..3) }
end
+assert('Range#hash', '15.3.1.3.15') do
+ assert_kind_of(Integer, (1..10).hash)
+ assert_equal (1..10).hash, (1..10).hash
+ assert_not_equal (1..10).hash, (1...10).hash
+ assert_equal (1..).hash, (1..).hash
+ assert_not_equal (1..).hash, (1...).hash
+end
+
assert('Range#dup') do
r = (1..3).dup
assert_equal 1, r.begin
@@ -109,4 +164,15 @@ assert('Range#dup') do
assert_equal "a", r.begin
assert_equal "z", r.end
assert_true r.exclude_end?
+
+ r = (1..).dup
+ assert_equal 1, r.begin
+ assert_nil r.end
+ assert_false r.exclude_end?
+end
+
+assert('Range#to_a') do
+ assert_equal([1, 2, 3, 4, 5], (1..5).to_a)
+ assert_equal([1, 2, 3, 4], (1...5).to_a)
+ assert_raise(RangeError) { (1..).to_a }
end
diff --git a/test/t/string.rb b/test/t/string.rb
index 2bb988810..c1511de63 100644
--- a/test/t/string.rb
+++ b/test/t/string.rb
@@ -90,6 +90,7 @@ assert('String#[] with Range') do
h1 = 'abc'[3..4]
i1 = 'abc'[4..5]
j1 = 'abcdefghijklmnopqrstuvwxyz'[1..3]
+ k1 = 'abcdefghijklmnopqrstuvwxyz'[-3..]
a2 = 'abc'[1...0]
b2 = 'abc'[1...1]
c2 = 'abc'[1...2]
@@ -100,6 +101,7 @@ assert('String#[] with Range') do
h2 = 'abc'[3...4]
i2 = 'abc'[4...5]
j2 = 'abcdefghijklmnopqrstuvwxyz'[1...3]
+ k2 = 'abcdefghijklmnopqrstuvwxyz'[-3...]
assert_equal '', a1
assert_equal 'b', b1
@@ -111,6 +113,7 @@ assert('String#[] with Range') do
assert_equal '', h1
assert_nil i2
assert_equal 'bcd', j1
+ assert_equal 'xyz', k1
assert_equal '', a2
assert_equal '', b2
assert_equal 'b', c2
@@ -121,6 +124,7 @@ assert('String#[] with Range') do
assert_equal '', h2
assert_nil i2
assert_equal 'bc', j2
+ assert_equal 'xyz', k2
end
assert('String#[]=') do