From 14e98c60c32ec65598de792f7ea5b539bf827462 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 Mar 2026 14:57:23 +0000 Subject: [PATCH 01/27] build(deps): bump the pre-commit-hooks group across 1 directory with 8 updates Bumps the pre-commit-hooks group with 8 updates in the / directory: | Package | From | To | | --- | --- | --- | | [https://github.com/gitleaks/gitleaks](https://github.com/gitleaks/gitleaks) | `v8.30.0` | `8.30.1` | | [https://github.com/oxipng/oxipng](https://github.com/oxipng/oxipng) | `v10.0.0` | `10.1.0` | | [https://github.com/Lucas-C/pre-commit-hooks](https://github.com/Lucas-C/pre-commit-hooks) | `v1.5.5` | `1.5.6` | | [https://github.com/rhysd/actionlint](https://github.com/rhysd/actionlint) | `v1.7.9` | `1.7.11` | | [https://github.com/codespell-project/codespell](https://github.com/codespell-project/codespell) | `v2.4.1` | `2.4.2` | | [https://github.com/igorshubovych/markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli) | `v0.46.0` | `0.48.0` | | [https://github.com/rubocop/rubocop](https://github.com/rubocop/rubocop) | `v1.81.7` | `1.85.1` | | [https://github.com/adrienverge/yamllint](https://github.com/adrienverge/yamllint) | `v1.37.1` | `1.38.0` | Updates `https://github.com/gitleaks/gitleaks` from v8.30.0 to 8.30.1 - [Release notes](https://github.com/gitleaks/gitleaks/releases) - [Commits](https://github.com/gitleaks/gitleaks/compare/v8.30.0...v8.30.1) Updates `https://github.com/oxipng/oxipng` from v10.0.0 to 10.1.0 - [Release notes](https://github.com/oxipng/oxipng/releases) - [Changelog](https://github.com/oxipng/oxipng/blob/master/CHANGELOG.md) - [Commits](https://github.com/oxipng/oxipng/compare/v10.0.0...v10.1.0) Updates `https://github.com/Lucas-C/pre-commit-hooks` from v1.5.5 to 1.5.6 - [Release notes](https://github.com/Lucas-C/pre-commit-hooks/releases) - [Commits](https://github.com/Lucas-C/pre-commit-hooks/compare/v1.5.5...v1.5.6) Updates `https://github.com/rhysd/actionlint` from v1.7.9 to 1.7.11 - [Release notes](https://github.com/rhysd/actionlint/releases) - [Changelog](https://github.com/rhysd/actionlint/blob/main/CHANGELOG.md) - [Commits](https://github.com/rhysd/actionlint/compare/v1.7.9...v1.7.11) Updates `https://github.com/codespell-project/codespell` from v2.4.1 to 2.4.2 - [Release notes](https://github.com/codespell-project/codespell/releases) - [Commits](https://github.com/codespell-project/codespell/compare/v2.4.1...v2.4.2) Updates `https://github.com/igorshubovych/markdownlint-cli` from v0.46.0 to 0.48.0 - [Release notes](https://github.com/igorshubovych/markdownlint-cli/releases) - [Commits](https://github.com/igorshubovych/markdownlint-cli/compare/v0.46.0...v0.48.0) Updates `https://github.com/rubocop/rubocop` from v1.81.7 to 1.85.1 - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.81.7...v1.85.1) Updates `https://github.com/adrienverge/yamllint` from v1.37.1 to 1.38.0 - [Release notes](https://github.com/adrienverge/yamllint/releases) - [Changelog](https://github.com/adrienverge/yamllint/blob/master/CHANGELOG.rst) - [Commits](https://github.com/adrienverge/yamllint/compare/v1.37.1...v1.38.0) --- updated-dependencies: - dependency-name: https://github.com/gitleaks/gitleaks dependency-version: 8.30.1 dependency-type: direct:production dependency-group: pre-commit-hooks - dependency-name: https://github.com/oxipng/oxipng dependency-version: 10.1.0 dependency-type: direct:production dependency-group: pre-commit-hooks - dependency-name: https://github.com/Lucas-C/pre-commit-hooks dependency-version: 1.5.6 dependency-type: direct:production dependency-group: pre-commit-hooks - dependency-name: https://github.com/rhysd/actionlint dependency-version: 1.7.11 dependency-type: direct:production dependency-group: pre-commit-hooks - dependency-name: https://github.com/codespell-project/codespell dependency-version: 2.4.2 dependency-type: direct:production dependency-group: pre-commit-hooks - dependency-name: https://github.com/igorshubovych/markdownlint-cli dependency-version: 0.48.0 dependency-type: direct:production dependency-group: pre-commit-hooks - dependency-name: https://github.com/rubocop/rubocop dependency-version: 1.85.1 dependency-type: direct:production dependency-group: pre-commit-hooks - dependency-name: https://github.com/adrienverge/yamllint dependency-version: 1.38.0 dependency-type: direct:production dependency-group: pre-commit-hooks ... Signed-off-by: dependabot[bot] --- .pre-commit-config.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index afbeaf532..4ef1033cf 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -35,13 +35,13 @@ repos: track and have security implications. Please remove the zip file from the repository. files: \.zip$ - repo: https://github.com/gitleaks/gitleaks - rev: v8.30.0 + rev: v8.30.1 hooks: - id: gitleaks name: run gitleaks description: detect hardcoded secrets with gitleaks - repo: https://github.com/oxipng/oxipng - rev: v10.0.0 + rev: v10.1.0 hooks: - id: oxipng name: run oxipng @@ -73,7 +73,7 @@ repos: - id: mixed-line-ending - id: trailing-whitespace - repo: https://github.com/Lucas-C/pre-commit-hooks - rev: v1.5.5 + rev: v1.5.6 hooks: - id: forbid-tabs name: run no-tabs checker @@ -85,19 +85,19 @@ repos: args: [--whitespaces-count, "2"] exclude: Makefile$ - repo: https://github.com/rhysd/actionlint - rev: v1.7.9 + rev: v1.7.11 hooks: - id: actionlint name: run actionlint description: lint GitHub Actions workflow files - repo: https://github.com/codespell-project/codespell - rev: v2.4.1 + rev: v2.4.2 hooks: - id: codespell name: run codespell description: check spelling with codespell - repo: https://github.com/igorshubovych/markdownlint-cli - rev: v0.46.0 + rev: v0.48.0 hooks: - id: markdownlint name: run markdownlint @@ -106,7 +106,7 @@ repos: types: [markdown] files: \.md$ - repo: https://github.com/rubocop/rubocop - rev: v1.81.7 + rev: v1.85.1 hooks: - id: rubocop name: run rubocop @@ -120,7 +120,7 @@ repos: name: run shellcheck description: check shell scripts with a static analysis tool - repo: https://github.com/adrienverge/yamllint - rev: v1.37.1 + rev: v1.38.0 hooks: - id: yamllint name: run yamllint From 000acedc355e3a835dba634caed5f650700ce928 Mon Sep 17 00:00:00 2001 From: dearblue Date: Tue, 10 Mar 2026 21:54:52 +0900 Subject: [PATCH 02/27] Prevent full recompilation without changes to presym file Commit b9a1a1fb2389e5b36dd0f0d9a6f95818f7f30af5 is a revert of commit 8df9a22a85afdfdf01b0a8a2f5fbaf299f29738c, differing only in the comment. This means the issue from https://github.com/mruby/mruby/issues/6721 has reappeared. The cause of https://github.com/mruby/mruby/issues/6721, as stated in the commit message for commit 8df9a22a85afdfdf01b0a8a2f5fbaf299f29738c, is that each ".o" file has an indirect dependency on all ".pi" files through the presym file. This patch therefore adds a proxy-like task `gensym:update:#{build.name}` between tasks. Its purpose is to hide the direct dependency from ".o" files to the presym file from the rake system. --- tasks/presym.rake | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/tasks/presym.rake b/tasks/presym.rake index 619957e99..7a9262fad 100644 --- a/tasks/presym.rake +++ b/tasks/presym.rake @@ -29,7 +29,7 @@ MRuby.each_target do |build| end end - file presym.list_path => ppps do + presym_task = file presym.list_path => ppps do presyms = presym.scan(ppps) current_presyms = presym.read_list if File.exist?(presym.list_path) if presyms != current_presyms @@ -41,6 +41,21 @@ MRuby.each_target do |build| end end + # Don't directly write dependency tasks in the "task" arguments. + # The rake system tracks dependencies recursively + # (see Rake::Task#all_prerequisite_tasks and #collect_prerequisites). + # Therefore, indirect dependencies from ".o" to ".pi" must be eliminated. + # ref. https://github.com/mruby/mruby/issues/6721 + # This task acts a proxy-like for the "presym.list_path" task. + presym_proxy = task "gensym:update:#{build.name}" do + presym_task.invoke + end + + # Override the "timestamp" method to reflect the presym file. + presym_proxy.define_singleton_method :timestamp do + presym_task.timestamp + end + # Ensure .o files depend on presym headers being generated. # This is critical when a build's .o files are compiled during another # build's presym scanning chain (before :gensym completes), e.g.: @@ -50,7 +65,7 @@ MRuby.each_target do |build| next unless File.extname(prereq) == build.exts.object next unless prereq.start_with?(build_dir) next if mrbc_build_dir && prereq.start_with?(mrbc_build_dir) - file prereq => presym.list_path + file prereq => presym_proxy end task gensym: presym.list_path From 13d9d770fc8c1f511c8a627a70a6d4a850aba2d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20=C5=9Awi=C4=85tkowski?= Date: Wed, 18 Mar 2026 07:34:30 +0100 Subject: [PATCH 03/27] Correctly handle empty hash as default named argument ``` def func(arg: {}) p arg end ``` This used to work in earlier mruby versions, but broke somewhere recently. --- mrbgems/mruby-compiler/core/parse.y | 4 +- mrbgems/mruby-compiler/core/y.tab.c | 2336 +++++++++++++-------------- test/t/syntax.rb | 14 + 3 files changed, 1183 insertions(+), 1171 deletions(-) diff --git a/mrbgems/mruby-compiler/core/parse.y b/mrbgems/mruby-compiler/core/parse.y index fcec6c880..f22fd5f9f 100644 --- a/mrbgems/mruby-compiler/core/parse.y +++ b/mrbgems/mruby-compiler/core/parse.y @@ -4563,13 +4563,13 @@ f_label : tIDENTIFIER tLABEL_TAG { $$ = $1; local_nest(p); - p->lstate = EXPR_ARG; /* make newlines significant after label */ + p->lstate = EXPR_MID; /* make newlines significant after label */ } | tNUMPARAM tLABEL_TAG { $$ = intern_numparam($1); local_nest(p); - p->lstate = EXPR_ARG; /* make newlines significant after label */ + p->lstate = EXPR_MID; /* make newlines significant after label */ } ; diff --git a/mrbgems/mruby-compiler/core/y.tab.c b/mrbgems/mruby-compiler/core/y.tab.c index 9da966203..e37c63c7c 100644 --- a/mrbgems/mruby-compiler/core/y.tab.c +++ b/mrbgems/mruby-compiler/core/y.tab.c @@ -1,4 +1,4 @@ -/* A Bison parser, made by Lrama 0.7.1. */ +/* A Bison parser, made by Lrama 0.7.0. */ /* Bison implementation for Yacc-like parsers in C @@ -2057,7 +2057,7 @@ prohibit_literals(parser_state *p, node *n) /* xxx ----------------------------- */ -#line 2062 "mrbgems/mruby-compiler/core/y.tab.c" +#line 2061 "mrbgems/mruby-compiler/core/y.tab.c" # ifndef YY_CAST # ifdef __cplusplus @@ -2225,11 +2225,10 @@ extern int yydebug; #endif /* Value type. */ - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { -#line 2005 "mrbgems/mruby-compiler/core/parse.y" +#line 2004 "mrbgems/mruby-compiler/core/parse.y" node *nd; mrb_sym id; @@ -2237,7 +2236,7 @@ union YYSTYPE stack_type stack; const struct vtable *vars; -#line 2242 "mrbgems/mruby-compiler/core/y.tab.c" +#line 2240 "mrbgems/mruby-compiler/core/y.tab.c" }; typedef union YYSTYPE YYSTYPE; @@ -2245,7 +2244,6 @@ typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_DECLARED 1 #endif - /* Location type. */ #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED typedef struct YYLTYPE YYLTYPE; @@ -3020,76 +3018,76 @@ static const yytype_uint8 yytranslate[] = /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { - 0, 2179, 2179, 2179, 2189, 2195, 2199, 2203, 2207, 2213, - 2215, 2214, 2228, 2254, 2260, 2264, 2268, 2272, 2278, 2278, - 2282, 2286, 2290, 2294, 2303, 2312, 2316, 2321, 2322, 2326, - 2330, 2334, 2338, 2341, 2345, 2349, 2353, 2357, 2361, 2366, - 2370, 2379, 2388, 2397, 2406, 2413, 2414, 2418, 2421, 2422, - 2426, 2430, 2434, 2438, 2438, 2444, 2444, 2450, 2453, 2463, - 2462, 2477, 2486, 2487, 2490, 2491, 2498, 2497, 2512, 2516, - 2521, 2525, 2530, 2534, 2539, 2543, 2547, 2551, 2555, 2561, - 2565, 2571, 2572, 2578, 2582, 2586, 2590, 2594, 2598, 2602, - 2606, 2610, 2614, 2620, 2621, 2627, 2631, 2637, 2641, 2647, - 2651, 2655, 2659, 2663, 2667, 2673, 2679, 2686, 2690, 2694, - 2698, 2702, 2706, 2712, 2718, 2723, 2729, 2733, 2736, 2740, - 2744, 2751, 2752, 2753, 2754, 2759, 2766, 2767, 2770, 2774, - 2774, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, - 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, - 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, - 2809, 2812, 2812, 2812, 2813, 2813, 2814, 2814, 2814, 2815, - 2815, 2815, 2815, 2816, 2816, 2816, 2817, 2817, 2817, 2818, - 2818, 2818, 2818, 2819, 2819, 2819, 2819, 2820, 2820, 2820, - 2820, 2821, 2821, 2821, 2821, 2822, 2822, 2822, 2822, 2823, - 2823, 2826, 2830, 2834, 2838, 2842, 2846, 2850, 2855, 2860, - 2865, 2869, 2873, 2877, 2881, 2885, 2889, 2893, 2897, 2901, - 2905, 2909, 2913, 2917, 2921, 2925, 2929, 2933, 2937, 2941, - 2945, 2949, 2953, 2957, 2961, 2965, 2969, 2973, 2977, 2981, - 2985, 2989, 2993, 2997, 3001, 3005, 3009, 3013, 3022, 3031, - 3040, 3049, 3055, 3056, 3060, 3064, 3070, 3074, 3081, 3085, - 3094, 3111, 3112, 3115, 3116, 3117, 3121, 3125, 3131, 3136, - 3140, 3144, 3148, 3154, 3154, 3165, 3169, 3175, 3179, 3185, - 3188, 3193, 3197, 3201, 3206, 3210, 3216, 3221, 3225, 3231, - 3232, 3236, 3240, 3241, 3242, 3243, 3244, 3249, 3248, 3260, - 3264, 3259, 3269, 3269, 3273, 3277, 3281, 3285, 3289, 3293, - 3297, 3301, 3305, 3309, 3313, 3314, 3320, 3327, 3319, 3340, - 3348, 3356, 3356, 3356, 3363, 3363, 3363, 3370, 3376, 3380, - 3389, 3398, 3408, 3410, 3407, 3419, 3417, 3435, 3440, 3433, - 3457, 3455, 3471, 3481, 3492, 3496, 3500, 3504, 3510, 3517, - 3518, 3519, 3522, 3523, 3526, 3527, 3535, 3536, 3542, 3546, - 3549, 3553, 3557, 3561, 3566, 3570, 3574, 3578, 3584, 3583, - 3593, 3597, 3601, 3605, 3611, 3616, 3621, 3625, 3629, 3633, - 3637, 3641, 3645, 3649, 3653, 3657, 3661, 3665, 3669, 3673, - 3677, 3683, 3688, 3695, 3695, 3699, 3704, 3710, 3714, 3720, - 3721, 3724, 3729, 3732, 3736, 3742, 3746, 3753, 3752, 3769, - 3774, 3778, 3783, 3790, 3794, 3798, 3802, 3806, 3810, 3814, - 3818, 3822, 3829, 3828, 3843, 3842, 3858, 3866, 3875, 3880, - 3884, 3884, 3889, 3889, 3894, 3894, 3904, 3905, 3909, 3913, - 3917, 3921, 3925, 3930, 3935, 3943, 3947, 3954, 3958, 3964, - 3965, 3971, 3972, 3978, 3979, 3983, 3987, 3991, 3995, 3999, - 4003, 4007, 4008, 4009, 4016, 4020, 4027, 4032, 4037, 4042, - 4047, 4052, 4060, 4064, 4071, 4075, 4083, 4087, 4091, 4098, - 4102, 4109, 4113, 4117, 4124, 4128, 4137, 4142, 4150, 4154, - 4159, 4166, 4172, 4179, 4182, 4186, 4187, 4190, 4194, 4197, - 4201, 4204, 4205, 4206, 4207, 4210, 4211, 4217, 4222, 4227, - 4232, 4238, 4239, 4245, 4251, 4250, 4262, 4266, 4272, 4276, - 4282, 4291, 4302, 4305, 4306, 4309, 4315, 4321, 4322, 4325, - 4332, 4331, 4346, 4350, 4358, 4362, 4374, 4381, 4388, 4389, - 4390, 4391, 4392, 4396, 4402, 4406, 4414, 4415, 4416, 4420, - 4426, 4430, 4434, 4438, 4442, 4448, 4452, 4458, 4462, 4466, - 4470, 4474, 4478, 4482, 4490, 4497, 4503, 4504, 4508, 4512, - 4511, 4528, 4529, 4532, 4538, 4542, 4548, 4549, 4553, 4557, - 4563, 4569, 4577, 4583, 4590, 4596, 4603, 4607, 4613, 4617, - 4623, 4624, 4627, 4631, 4637, 4641, 4645, 4649, 4655, 4659, - 4664, 4669, 4673, 4677, 4681, 4685, 4689, 4693, 4697, 4701, - 4705, 4709, 4713, 4717, 4721, 4726, 4732, 4737, 4742, 4747, - 4752, 4759, 4763, 4770, 4775, 4774, 4786, 4790, 4796, 4804, - 4812, 4820, 4824, 4830, 4834, 4840, 4841, 4844, 4849, 4856, - 4857, 4860, 4864, 4868, 4874, 4878, 4882, 4888, 4894, 4894, - 4901, 4902, 4908, 4912, 4918, 4924, 4929, 4933, 4938, 4943, - 4959, 4964, 4970, 4971, 4972, 4975, 4976, 4977, 4978, 4981, - 4982, 4983, 4986, 4987, 4990, 4994, 5000, 5001, 5007, 5008, - 5011, 5012, 5015, 5018, 5019, 5020, 5023, 5024, 5027, 5032, - 5035, 5036, 5040 + 0, 2178, 2178, 2178, 2188, 2194, 2198, 2202, 2206, 2212, + 2214, 2213, 2227, 2253, 2259, 2263, 2267, 2271, 2277, 2277, + 2281, 2285, 2289, 2293, 2302, 2311, 2315, 2320, 2321, 2325, + 2329, 2333, 2337, 2340, 2344, 2348, 2352, 2356, 2360, 2365, + 2369, 2378, 2387, 2396, 2405, 2412, 2413, 2417, 2420, 2421, + 2425, 2429, 2433, 2437, 2437, 2443, 2443, 2449, 2452, 2462, + 2461, 2476, 2485, 2486, 2489, 2490, 2497, 2496, 2511, 2515, + 2520, 2524, 2529, 2533, 2538, 2542, 2546, 2550, 2554, 2560, + 2564, 2570, 2571, 2577, 2581, 2585, 2589, 2593, 2597, 2601, + 2605, 2609, 2613, 2619, 2620, 2626, 2630, 2636, 2640, 2646, + 2650, 2654, 2658, 2662, 2666, 2672, 2678, 2685, 2689, 2693, + 2697, 2701, 2705, 2711, 2717, 2722, 2728, 2732, 2735, 2739, + 2743, 2750, 2751, 2752, 2753, 2758, 2765, 2766, 2769, 2773, + 2773, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, + 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, + 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, + 2808, 2811, 2811, 2811, 2812, 2812, 2813, 2813, 2813, 2814, + 2814, 2814, 2814, 2815, 2815, 2815, 2816, 2816, 2816, 2817, + 2817, 2817, 2817, 2818, 2818, 2818, 2818, 2819, 2819, 2819, + 2819, 2820, 2820, 2820, 2820, 2821, 2821, 2821, 2821, 2822, + 2822, 2825, 2829, 2833, 2837, 2841, 2845, 2849, 2854, 2859, + 2864, 2868, 2872, 2876, 2880, 2884, 2888, 2892, 2896, 2900, + 2904, 2908, 2912, 2916, 2920, 2924, 2928, 2932, 2936, 2940, + 2944, 2948, 2952, 2956, 2960, 2964, 2968, 2972, 2976, 2980, + 2984, 2988, 2992, 2996, 3000, 3004, 3008, 3012, 3021, 3030, + 3039, 3048, 3054, 3055, 3059, 3063, 3069, 3073, 3080, 3084, + 3093, 3110, 3111, 3114, 3115, 3116, 3120, 3124, 3130, 3135, + 3139, 3143, 3147, 3153, 3153, 3164, 3168, 3174, 3178, 3184, + 3187, 3192, 3196, 3200, 3205, 3209, 3215, 3220, 3224, 3230, + 3231, 3235, 3239, 3240, 3241, 3242, 3243, 3248, 3247, 3259, + 3263, 3258, 3268, 3268, 3272, 3276, 3280, 3284, 3288, 3292, + 3296, 3300, 3304, 3308, 3312, 3313, 3319, 3326, 3318, 3339, + 3347, 3355, 3355, 3355, 3362, 3362, 3362, 3369, 3375, 3379, + 3388, 3397, 3407, 3409, 3406, 3418, 3416, 3434, 3439, 3432, + 3456, 3454, 3470, 3480, 3491, 3495, 3499, 3503, 3509, 3516, + 3517, 3518, 3521, 3522, 3525, 3526, 3534, 3535, 3541, 3545, + 3548, 3552, 3556, 3560, 3565, 3569, 3573, 3577, 3583, 3582, + 3592, 3596, 3600, 3604, 3610, 3615, 3620, 3624, 3628, 3632, + 3636, 3640, 3644, 3648, 3652, 3656, 3660, 3664, 3668, 3672, + 3676, 3682, 3687, 3694, 3694, 3698, 3703, 3709, 3713, 3719, + 3720, 3723, 3728, 3731, 3735, 3741, 3745, 3752, 3751, 3768, + 3773, 3777, 3782, 3789, 3793, 3797, 3801, 3805, 3809, 3813, + 3817, 3821, 3828, 3827, 3842, 3841, 3857, 3865, 3874, 3879, + 3883, 3883, 3888, 3888, 3893, 3893, 3903, 3904, 3908, 3912, + 3916, 3920, 3924, 3929, 3934, 3942, 3946, 3953, 3957, 3963, + 3964, 3970, 3971, 3977, 3978, 3982, 3986, 3990, 3994, 3998, + 4002, 4006, 4007, 4008, 4015, 4019, 4026, 4031, 4036, 4041, + 4046, 4051, 4059, 4063, 4070, 4074, 4082, 4086, 4090, 4097, + 4101, 4108, 4112, 4116, 4123, 4127, 4136, 4141, 4149, 4153, + 4158, 4165, 4171, 4178, 4181, 4185, 4186, 4189, 4193, 4196, + 4200, 4203, 4204, 4205, 4206, 4209, 4210, 4216, 4221, 4226, + 4231, 4237, 4238, 4244, 4250, 4249, 4261, 4265, 4271, 4275, + 4281, 4290, 4301, 4304, 4305, 4308, 4314, 4320, 4321, 4324, + 4331, 4330, 4345, 4349, 4357, 4361, 4373, 4380, 4387, 4388, + 4389, 4390, 4391, 4395, 4401, 4405, 4413, 4414, 4415, 4419, + 4425, 4429, 4433, 4437, 4441, 4447, 4451, 4457, 4461, 4465, + 4469, 4473, 4477, 4481, 4489, 4496, 4502, 4503, 4507, 4511, + 4510, 4527, 4528, 4531, 4537, 4541, 4547, 4548, 4552, 4556, + 4562, 4568, 4576, 4582, 4589, 4595, 4602, 4606, 4612, 4616, + 4622, 4623, 4626, 4630, 4636, 4640, 4644, 4648, 4654, 4658, + 4663, 4668, 4672, 4676, 4680, 4684, 4688, 4692, 4696, 4700, + 4704, 4708, 4712, 4716, 4720, 4725, 4731, 4736, 4741, 4746, + 4751, 4758, 4762, 4769, 4774, 4773, 4785, 4789, 4795, 4803, + 4811, 4819, 4823, 4829, 4833, 4839, 4840, 4843, 4848, 4855, + 4856, 4859, 4863, 4867, 4873, 4877, 4881, 4887, 4893, 4893, + 4900, 4901, 4907, 4911, 4917, 4923, 4928, 4932, 4937, 4942, + 4958, 4963, 4969, 4970, 4971, 4974, 4975, 4976, 4977, 4980, + 4981, 4982, 4985, 4986, 4989, 4993, 4999, 5000, 5006, 5007, + 5010, 5011, 5014, 5017, 5018, 5019, 5022, 5023, 5026, 5031, + 5034, 5035, 5039 }; #endif @@ -7166,7 +7164,7 @@ YYLTYPE yylloc = yyloc_default; -#line 7171 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7168 "mrbgems/mruby-compiler/core/y.tab.c" yylsp[0] = yylloc; goto yysetstate; @@ -7379,84 +7377,84 @@ yyreduce: switch (yyn) { case 2: /* $@1: %empty */ -#line 2179 "mrbgems/mruby-compiler/core/parse.y" +#line 2178 "mrbgems/mruby-compiler/core/parse.y" { p->lstate = EXPR_BEG; if (!p->locals) p->locals = cons(0,0); } -#line 7389 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7386 "mrbgems/mruby-compiler/core/y.tab.c" break; case 3: /* program: $@1 top_compstmt */ -#line 2184 "mrbgems/mruby-compiler/core/parse.y" +#line 2183 "mrbgems/mruby-compiler/core/parse.y" { p->tree = new_scope(p, (yyvsp[0].nd)); } -#line 7397 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7394 "mrbgems/mruby-compiler/core/y.tab.c" break; case 4: /* top_compstmt: top_stmts opt_terms */ -#line 2190 "mrbgems/mruby-compiler/core/parse.y" +#line 2189 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 7405 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7402 "mrbgems/mruby-compiler/core/y.tab.c" break; case 5: /* top_stmts: none */ -#line 2196 "mrbgems/mruby-compiler/core/parse.y" +#line 2195 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_stmts(p, 0); } -#line 7413 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7410 "mrbgems/mruby-compiler/core/y.tab.c" break; case 6: /* top_stmts: top_stmt */ -#line 2200 "mrbgems/mruby-compiler/core/parse.y" +#line 2199 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_stmts(p, (yyvsp[0].nd)); } -#line 7421 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7418 "mrbgems/mruby-compiler/core/y.tab.c" break; case 7: /* top_stmts: top_stmts terms top_stmt */ -#line 2204 "mrbgems/mruby-compiler/core/parse.y" +#line 2203 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = stmts_push(p, (yyvsp[-2].nd), newline_node((yyvsp[0].nd))); } -#line 7429 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7426 "mrbgems/mruby-compiler/core/y.tab.c" break; case 8: /* top_stmts: error top_stmt */ -#line 2208 "mrbgems/mruby-compiler/core/parse.y" +#line 2207 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_stmts(p, 0); } -#line 7437 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7434 "mrbgems/mruby-compiler/core/y.tab.c" break; case 10: /* @2: %empty */ -#line 2215 "mrbgems/mruby-compiler/core/parse.y" +#line 2214 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = local_switch(p); nvars_block(p); } -#line 7446 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7443 "mrbgems/mruby-compiler/core/y.tab.c" break; case 11: /* top_stmt: "'BEGIN'" @2 '{' top_compstmt '}' */ -#line 2220 "mrbgems/mruby-compiler/core/parse.y" +#line 2219 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[-4]), p, "BEGIN not supported"); local_resume(p, (yyvsp[-3].nd)); nvars_unnest(p); (yyval.nd) = 0; } -#line 7457 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7454 "mrbgems/mruby-compiler/core/y.tab.c" break; case 12: /* bodystmt: compstmt opt_rescue opt_else opt_ensure */ -#line 2232 "mrbgems/mruby-compiler/core/parse.y" +#line 2231 "mrbgems/mruby-compiler/core/parse.y" { if ((yyvsp[-2].nd)) { (yyval.nd) = new_rescue(p, (yyvsp[-3].nd), (yyvsp[-2].nd), (yyvsp[-1].nd)); @@ -7477,89 +7475,89 @@ yyreduce: } } } -#line 7482 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7479 "mrbgems/mruby-compiler/core/y.tab.c" break; case 13: /* compstmt: stmts opt_terms */ -#line 2255 "mrbgems/mruby-compiler/core/parse.y" +#line 2254 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 7490 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7487 "mrbgems/mruby-compiler/core/y.tab.c" break; case 14: /* stmts: none */ -#line 2261 "mrbgems/mruby-compiler/core/parse.y" +#line 2260 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_stmts(p, 0); } -#line 7498 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7495 "mrbgems/mruby-compiler/core/y.tab.c" break; case 15: /* stmts: stmt */ -#line 2265 "mrbgems/mruby-compiler/core/parse.y" +#line 2264 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_stmts(p, (yyvsp[0].nd)); } -#line 7506 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7503 "mrbgems/mruby-compiler/core/y.tab.c" break; case 16: /* stmts: stmts terms stmt */ -#line 2269 "mrbgems/mruby-compiler/core/parse.y" +#line 2268 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = stmts_push(p, (yyvsp[-2].nd), newline_node((yyvsp[0].nd))); } -#line 7514 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7511 "mrbgems/mruby-compiler/core/y.tab.c" break; case 17: /* stmts: error stmt */ -#line 2273 "mrbgems/mruby-compiler/core/parse.y" +#line 2272 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_stmts(p, (yyvsp[0].nd)); } -#line 7522 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7519 "mrbgems/mruby-compiler/core/y.tab.c" break; case 18: /* $@3: %empty */ -#line 2278 "mrbgems/mruby-compiler/core/parse.y" +#line 2277 "mrbgems/mruby-compiler/core/parse.y" {p->lstate = EXPR_FNAME;} -#line 7528 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7525 "mrbgems/mruby-compiler/core/y.tab.c" break; case 19: /* stmt: "'alias'" fsym $@3 fsym */ -#line 2279 "mrbgems/mruby-compiler/core/parse.y" +#line 2278 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_alias(p, (yyvsp[-2].id), (yyvsp[0].id)); } -#line 7536 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7533 "mrbgems/mruby-compiler/core/y.tab.c" break; case 20: /* stmt: "'undef'" undef_list */ -#line 2283 "mrbgems/mruby-compiler/core/parse.y" +#line 2282 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_undef(p, (yyvsp[0].nd)); } -#line 7544 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7541 "mrbgems/mruby-compiler/core/y.tab.c" break; case 21: /* stmt: stmt "'if' modifier" expr_value */ -#line 2287 "mrbgems/mruby-compiler/core/parse.y" +#line 2286 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_if(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd), 0); } -#line 7552 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7549 "mrbgems/mruby-compiler/core/y.tab.c" break; case 22: /* stmt: stmt "'unless' modifier" expr_value */ -#line 2291 "mrbgems/mruby-compiler/core/parse.y" +#line 2290 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_if(p, cond((yyvsp[0].nd)), 0, (yyvsp[-2].nd)); } -#line 7560 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7557 "mrbgems/mruby-compiler/core/y.tab.c" break; case 23: /* stmt: stmt "'while' modifier" expr_value */ -#line 2295 "mrbgems/mruby-compiler/core/parse.y" +#line 2294 "mrbgems/mruby-compiler/core/parse.y" { if ((yyvsp[-2].nd) && node_type_p((yyvsp[-2].nd), NODE_BEGIN)) { (yyval.nd) = new_while_mod(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd)); @@ -7568,11 +7566,11 @@ yyreduce: (yyval.nd) = new_while(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd)); } } -#line 7573 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7570 "mrbgems/mruby-compiler/core/y.tab.c" break; case 24: /* stmt: stmt "'until' modifier" expr_value */ -#line 2304 "mrbgems/mruby-compiler/core/parse.y" +#line 2303 "mrbgems/mruby-compiler/core/parse.y" { if ((yyvsp[-2].nd) && node_type_p((yyvsp[-2].nd), NODE_BEGIN)) { (yyval.nd) = new_until_mod(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd)); @@ -7581,117 +7579,117 @@ yyreduce: (yyval.nd) = new_until(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd)); } } -#line 7586 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7583 "mrbgems/mruby-compiler/core/y.tab.c" break; case 25: /* stmt: stmt "'rescue' modifier" stmt */ -#line 2313 "mrbgems/mruby-compiler/core/parse.y" +#line 2312 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7594 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7591 "mrbgems/mruby-compiler/core/y.tab.c" break; case 26: /* stmt: "'END'" '{' compstmt '}' */ -#line 2317 "mrbgems/mruby-compiler/core/parse.y" +#line 2316 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[-3]), p, "END not supported"); (yyval.nd) = new_postexe(p, (yyvsp[-1].nd)); } -#line 7603 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7600 "mrbgems/mruby-compiler/core/y.tab.c" break; case 28: /* stmt: mlhs '=' command_call */ -#line 2323 "mrbgems/mruby-compiler/core/parse.y" +#line 2322 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_masgn(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7611 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7608 "mrbgems/mruby-compiler/core/y.tab.c" break; case 29: /* stmt: lhs '=' mrhs */ -#line 2327 "mrbgems/mruby-compiler/core/parse.y" +#line 2326 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_asgn(p, (yyvsp[-2].nd), new_array(p, (yyvsp[0].nd))); } -#line 7619 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7616 "mrbgems/mruby-compiler/core/y.tab.c" break; case 30: /* stmt: mlhs '=' arg */ -#line 2331 "mrbgems/mruby-compiler/core/parse.y" +#line 2330 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_masgn(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7627 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7624 "mrbgems/mruby-compiler/core/y.tab.c" break; case 31: /* stmt: mlhs '=' mrhs */ -#line 2335 "mrbgems/mruby-compiler/core/parse.y" +#line 2334 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_masgn(p, (yyvsp[-2].nd), new_array(p, (yyvsp[0].nd))); } -#line 7635 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7632 "mrbgems/mruby-compiler/core/y.tab.c" break; case 33: /* command_asgn: lhs '=' command_rhs */ -#line 2342 "mrbgems/mruby-compiler/core/parse.y" +#line 2341 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_asgn(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7643 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7640 "mrbgems/mruby-compiler/core/y.tab.c" break; case 34: /* command_asgn: var_lhs tOP_ASGN command_rhs */ -#line 2346 "mrbgems/mruby-compiler/core/parse.y" +#line 2345 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, (yyvsp[-2].nd), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 7651 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7648 "mrbgems/mruby-compiler/core/y.tab.c" break; case 35: /* command_asgn: primary_value '[' opt_call_args ']' tOP_ASGN command_rhs */ -#line 2350 "mrbgems/mruby-compiler/core/parse.y" +#line 2349 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-5].nd), intern_op(aref), (yyvsp[-3].nd), '.'), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 7659 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7656 "mrbgems/mruby-compiler/core/y.tab.c" break; case 36: /* command_asgn: primary_value call_op "local variable or method" tOP_ASGN command_rhs */ -#line 2354 "mrbgems/mruby-compiler/core/parse.y" +#line 2353 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, (yyvsp[-3].num)), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 7667 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7664 "mrbgems/mruby-compiler/core/y.tab.c" break; case 37: /* command_asgn: primary_value call_op "constant" tOP_ASGN command_rhs */ -#line 2358 "mrbgems/mruby-compiler/core/parse.y" +#line 2357 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, (yyvsp[-3].num)), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 7675 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7672 "mrbgems/mruby-compiler/core/y.tab.c" break; case 38: /* command_asgn: primary_value "::" "constant" tOP_ASGN command_call */ -#line 2362 "mrbgems/mruby-compiler/core/parse.y" +#line 2361 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[-4]), p, "constant re-assignment"); (yyval.nd) = 0; } -#line 7684 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7681 "mrbgems/mruby-compiler/core/y.tab.c" break; case 39: /* command_asgn: primary_value "::" "local variable or method" tOP_ASGN command_rhs */ -#line 2367 "mrbgems/mruby-compiler/core/parse.y" +#line 2366 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, tCOLON2), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 7692 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7689 "mrbgems/mruby-compiler/core/y.tab.c" break; case 40: /* command_asgn: defn_head f_opt_arglist_paren '=' command */ -#line 2371 "mrbgems/mruby-compiler/core/parse.y" +#line 2370 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-3].nd); endless_method_name(p, (yyvsp[-3].nd)); @@ -7700,11 +7698,11 @@ yyreduce: nvars_unnest(p); p->in_def--; } -#line 7705 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7702 "mrbgems/mruby-compiler/core/y.tab.c" break; case 41: /* command_asgn: defn_head f_opt_arglist_paren '=' command "'rescue' modifier" arg */ -#line 2380 "mrbgems/mruby-compiler/core/parse.y" +#line 2379 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-5].nd); endless_method_name(p, (yyvsp[-5].nd)); @@ -7713,11 +7711,11 @@ yyreduce: nvars_unnest(p); p->in_def--; } -#line 7718 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7715 "mrbgems/mruby-compiler/core/y.tab.c" break; case 42: /* command_asgn: defs_head f_opt_arglist_paren '=' command */ -#line 2389 "mrbgems/mruby-compiler/core/parse.y" +#line 2388 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-3].nd); void_expr_error(p, (yyvsp[0].nd)); @@ -7726,11 +7724,11 @@ yyreduce: p->in_def--; p->in_single--; } -#line 7731 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7728 "mrbgems/mruby-compiler/core/y.tab.c" break; case 43: /* command_asgn: defs_head f_opt_arglist_paren '=' command "'rescue' modifier" arg */ -#line 2398 "mrbgems/mruby-compiler/core/parse.y" +#line 2397 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-5].nd); void_expr_error(p, (yyvsp[-2].nd)); @@ -7739,111 +7737,111 @@ yyreduce: p->in_def--; p->in_single--; } -#line 7744 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7741 "mrbgems/mruby-compiler/core/y.tab.c" break; case 44: /* command_asgn: backref tOP_ASGN command_rhs */ -#line 2407 "mrbgems/mruby-compiler/core/parse.y" +#line 2406 "mrbgems/mruby-compiler/core/parse.y" { backref_error(p, (yyvsp[-2].nd)); (yyval.nd) = new_stmts(p, 0); } -#line 7753 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7750 "mrbgems/mruby-compiler/core/y.tab.c" break; case 46: /* command_rhs: command_call "'rescue' modifier" stmt */ -#line 2415 "mrbgems/mruby-compiler/core/parse.y" +#line 2414 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7761 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7758 "mrbgems/mruby-compiler/core/y.tab.c" break; case 49: /* expr: expr "'and'" expr */ -#line 2423 "mrbgems/mruby-compiler/core/parse.y" +#line 2422 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_and(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7769 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7766 "mrbgems/mruby-compiler/core/y.tab.c" break; case 50: /* expr: expr "'or'" expr */ -#line 2427 "mrbgems/mruby-compiler/core/parse.y" +#line 2426 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_or(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7777 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7774 "mrbgems/mruby-compiler/core/y.tab.c" break; case 51: /* expr: "'not'" opt_nl expr */ -#line 2431 "mrbgems/mruby-compiler/core/parse.y" +#line 2430 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "!"); } -#line 7785 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7782 "mrbgems/mruby-compiler/core/y.tab.c" break; case 52: /* expr: '!' command_call */ -#line 2435 "mrbgems/mruby-compiler/core/parse.y" +#line 2434 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "!"); } -#line 7793 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7790 "mrbgems/mruby-compiler/core/y.tab.c" break; case 53: /* $@4: %empty */ -#line 2438 "mrbgems/mruby-compiler/core/parse.y" +#line 2437 "mrbgems/mruby-compiler/core/parse.y" {p->in_kwarg++;} -#line 7799 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7796 "mrbgems/mruby-compiler/core/y.tab.c" break; case 54: /* expr: arg "=>" $@4 p_expr */ -#line 2439 "mrbgems/mruby-compiler/core/parse.y" +#line 2438 "mrbgems/mruby-compiler/core/parse.y" { /* expr => pattern (raises NoMatchingPatternError on failure) */ p->in_kwarg--; (yyval.nd) = new_match_pat(p, (yyvsp[-3].nd), (yyvsp[0].nd), TRUE); } -#line 7809 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7806 "mrbgems/mruby-compiler/core/y.tab.c" break; case 55: /* $@5: %empty */ -#line 2444 "mrbgems/mruby-compiler/core/parse.y" +#line 2443 "mrbgems/mruby-compiler/core/parse.y" {p->in_kwarg++;} -#line 7815 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7812 "mrbgems/mruby-compiler/core/y.tab.c" break; case 56: /* expr: arg "'in'" $@5 p_expr */ -#line 2445 "mrbgems/mruby-compiler/core/parse.y" +#line 2444 "mrbgems/mruby-compiler/core/parse.y" { /* expr in pattern (returns true/false) */ p->in_kwarg--; (yyval.nd) = new_match_pat(p, (yyvsp[-3].nd), (yyvsp[0].nd), FALSE); } -#line 7825 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7822 "mrbgems/mruby-compiler/core/y.tab.c" break; case 58: /* defn_head: "'def'" fname */ -#line 2454 "mrbgems/mruby-compiler/core/parse.y" +#line 2453 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_def(p, (yyvsp[0].id)); p->cmdarg_stack = 0; p->in_def++; nvars_block(p); } -#line 7836 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7833 "mrbgems/mruby-compiler/core/y.tab.c" break; case 59: /* $@6: %empty */ -#line 2463 "mrbgems/mruby-compiler/core/parse.y" +#line 2462 "mrbgems/mruby-compiler/core/parse.y" { p->lstate = EXPR_FNAME; } -#line 7844 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7841 "mrbgems/mruby-compiler/core/y.tab.c" break; case 60: /* defs_head: "'def'" singleton dot_or_colon $@6 fname */ -#line 2467 "mrbgems/mruby-compiler/core/parse.y" +#line 2466 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_sdef(p, (yyvsp[-3].nd), (yyvsp[0].id)); p->cmdarg_stack = 0; @@ -7852,1054 +7850,1054 @@ yyreduce: nvars_block(p); p->lstate = EXPR_ENDFN; /* force for args */ } -#line 7857 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7854 "mrbgems/mruby-compiler/core/y.tab.c" break; case 61: /* expr_value: expr */ -#line 2478 "mrbgems/mruby-compiler/core/parse.y" +#line 2477 "mrbgems/mruby-compiler/core/parse.y" { if (!(yyvsp[0].nd)) (yyval.nd) = new_nil(p); else { (yyval.nd) = (yyvsp[0].nd); } } -#line 7868 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7865 "mrbgems/mruby-compiler/core/y.tab.c" break; case 65: /* block_command: block_call call_op2 operation2 command_args */ -#line 2492 "mrbgems/mruby-compiler/core/parse.y" +#line 2491 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num)); } -#line 7876 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7873 "mrbgems/mruby-compiler/core/y.tab.c" break; case 66: /* $@7: %empty */ -#line 2498 "mrbgems/mruby-compiler/core/parse.y" +#line 2497 "mrbgems/mruby-compiler/core/parse.y" { local_nest(p); nvars_nest(p); } -#line 7885 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7882 "mrbgems/mruby-compiler/core/y.tab.c" break; case 67: /* cmd_brace_block: "{" $@7 opt_block_param compstmt '}' */ -#line 2505 "mrbgems/mruby-compiler/core/parse.y" +#line 2504 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_block(p, (yyvsp[-2].nd), (yyvsp[-1].nd)); local_unnest(p); nvars_unnest(p); } -#line 7895 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7892 "mrbgems/mruby-compiler/core/y.tab.c" break; case 68: /* command: operation command_args */ -#line 2513 "mrbgems/mruby-compiler/core/parse.y" +#line 2512 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_fcall(p, (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 7903 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7900 "mrbgems/mruby-compiler/core/y.tab.c" break; case 69: /* command: operation command_args cmd_brace_block */ -#line 2517 "mrbgems/mruby-compiler/core/parse.y" +#line 2516 "mrbgems/mruby-compiler/core/parse.y" { args_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd)); (yyval.nd) = new_fcall(p, (yyvsp[-2].id), (yyvsp[-1].nd)); } -#line 7912 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7909 "mrbgems/mruby-compiler/core/y.tab.c" break; case 70: /* command: primary_value call_op operation2 command_args */ -#line 2522 "mrbgems/mruby-compiler/core/parse.y" +#line 2521 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num)); } -#line 7920 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7917 "mrbgems/mruby-compiler/core/y.tab.c" break; case 71: /* command: primary_value call_op operation2 command_args cmd_brace_block */ -#line 2526 "mrbgems/mruby-compiler/core/parse.y" +#line 2525 "mrbgems/mruby-compiler/core/parse.y" { args_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd)); (yyval.nd) = new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), (yyvsp[-1].nd), (yyvsp[-3].num)); } -#line 7929 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7926 "mrbgems/mruby-compiler/core/y.tab.c" break; case 72: /* command: primary_value "::" operation2 command_args */ -#line 2531 "mrbgems/mruby-compiler/core/parse.y" +#line 2530 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), tCOLON2); } -#line 7937 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7934 "mrbgems/mruby-compiler/core/y.tab.c" break; case 73: /* command: primary_value "::" operation2 command_args cmd_brace_block */ -#line 2535 "mrbgems/mruby-compiler/core/parse.y" +#line 2534 "mrbgems/mruby-compiler/core/parse.y" { args_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd)); (yyval.nd) = new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), (yyvsp[-1].nd), tCOLON2); } -#line 7946 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7943 "mrbgems/mruby-compiler/core/y.tab.c" break; case 74: /* command: "'super'" command_args */ -#line 2540 "mrbgems/mruby-compiler/core/parse.y" +#line 2539 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_super(p, (yyvsp[0].nd)); } -#line 7954 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7951 "mrbgems/mruby-compiler/core/y.tab.c" break; case 75: /* command: "'yield'" command_args */ -#line 2544 "mrbgems/mruby-compiler/core/parse.y" +#line 2543 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_yield(p, (yyvsp[0].nd)); } -#line 7962 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7959 "mrbgems/mruby-compiler/core/y.tab.c" break; case 76: /* command: "'return'" call_args */ -#line 2548 "mrbgems/mruby-compiler/core/parse.y" +#line 2547 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_return(p, ret_args(p, (yyvsp[0].nd))); } -#line 7970 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7967 "mrbgems/mruby-compiler/core/y.tab.c" break; case 77: /* command: "'break'" call_args */ -#line 2552 "mrbgems/mruby-compiler/core/parse.y" +#line 2551 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_break(p, ret_args(p, (yyvsp[0].nd))); } -#line 7978 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7975 "mrbgems/mruby-compiler/core/y.tab.c" break; case 78: /* command: "'next'" call_args */ -#line 2556 "mrbgems/mruby-compiler/core/parse.y" +#line 2555 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_next(p, ret_args(p, (yyvsp[0].nd))); } -#line 7986 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7983 "mrbgems/mruby-compiler/core/y.tab.c" break; case 79: /* mlhs: mlhs_basic */ -#line 2562 "mrbgems/mruby-compiler/core/parse.y" +#line 2561 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 7994 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7991 "mrbgems/mruby-compiler/core/y.tab.c" break; case 80: /* mlhs: tLPAREN mlhs_inner rparen */ -#line 2566 "mrbgems/mruby-compiler/core/parse.y" +#line 2565 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 8002 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7999 "mrbgems/mruby-compiler/core/y.tab.c" break; case 82: /* mlhs_inner: tLPAREN mlhs_inner rparen */ -#line 2573 "mrbgems/mruby-compiler/core/parse.y" +#line 2572 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 8010 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8007 "mrbgems/mruby-compiler/core/y.tab.c" break; case 83: /* mlhs_basic: mlhs_list */ -#line 2579 "mrbgems/mruby-compiler/core/parse.y" +#line 2578 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 8018 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8015 "mrbgems/mruby-compiler/core/y.tab.c" break; case 84: /* mlhs_basic: mlhs_list mlhs_item */ -#line 2583 "mrbgems/mruby-compiler/core/parse.y" +#line 2582 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1(push((yyvsp[-1].nd),(yyvsp[0].nd))); } -#line 8026 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8023 "mrbgems/mruby-compiler/core/y.tab.c" break; case 85: /* mlhs_basic: mlhs_list "*" mlhs_node */ -#line 2587 "mrbgems/mruby-compiler/core/parse.y" +#line 2586 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list2((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8034 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8031 "mrbgems/mruby-compiler/core/y.tab.c" break; case 86: /* mlhs_basic: mlhs_list "*" mlhs_node ',' mlhs_post */ -#line 2591 "mrbgems/mruby-compiler/core/parse.y" +#line 2590 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3((yyvsp[-4].nd), (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8042 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8039 "mrbgems/mruby-compiler/core/y.tab.c" break; case 87: /* mlhs_basic: mlhs_list "*" */ -#line 2595 "mrbgems/mruby-compiler/core/parse.y" +#line 2594 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list2((yyvsp[-1].nd), new_nil(p)); } -#line 8050 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8047 "mrbgems/mruby-compiler/core/y.tab.c" break; case 88: /* mlhs_basic: mlhs_list "*" ',' mlhs_post */ -#line 2599 "mrbgems/mruby-compiler/core/parse.y" +#line 2598 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3((yyvsp[-3].nd), new_nil(p), (yyvsp[0].nd)); } -#line 8058 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8055 "mrbgems/mruby-compiler/core/y.tab.c" break; case 89: /* mlhs_basic: "*" mlhs_node */ -#line 2603 "mrbgems/mruby-compiler/core/parse.y" +#line 2602 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list2(0, (yyvsp[0].nd)); } -#line 8066 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8063 "mrbgems/mruby-compiler/core/y.tab.c" break; case 90: /* mlhs_basic: "*" mlhs_node ',' mlhs_post */ -#line 2607 "mrbgems/mruby-compiler/core/parse.y" +#line 2606 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3(0, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8074 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8071 "mrbgems/mruby-compiler/core/y.tab.c" break; case 91: /* mlhs_basic: "*" */ -#line 2611 "mrbgems/mruby-compiler/core/parse.y" +#line 2610 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list2(0, new_nil(p)); } -#line 8082 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8079 "mrbgems/mruby-compiler/core/y.tab.c" break; case 92: /* mlhs_basic: "*" ',' mlhs_post */ -#line 2615 "mrbgems/mruby-compiler/core/parse.y" +#line 2614 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3(0, new_nil(p), (yyvsp[0].nd)); } -#line 8090 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8087 "mrbgems/mruby-compiler/core/y.tab.c" break; case 94: /* mlhs_item: tLPAREN mlhs_inner rparen */ -#line 2622 "mrbgems/mruby-compiler/core/parse.y" +#line 2621 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_masgn(p, (yyvsp[-1].nd), NULL); } -#line 8098 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8095 "mrbgems/mruby-compiler/core/y.tab.c" break; case 95: /* mlhs_list: mlhs_item ',' */ -#line 2628 "mrbgems/mruby-compiler/core/parse.y" +#line 2627 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[-1].nd)); } -#line 8106 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8103 "mrbgems/mruby-compiler/core/y.tab.c" break; case 96: /* mlhs_list: mlhs_list mlhs_item ',' */ -#line 2632 "mrbgems/mruby-compiler/core/parse.y" +#line 2631 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[-1].nd)); } -#line 8114 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8111 "mrbgems/mruby-compiler/core/y.tab.c" break; case 97: /* mlhs_post: mlhs_item */ -#line 2638 "mrbgems/mruby-compiler/core/parse.y" +#line 2637 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 8122 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8119 "mrbgems/mruby-compiler/core/y.tab.c" break; case 98: /* mlhs_post: mlhs_list mlhs_item */ -#line 2642 "mrbgems/mruby-compiler/core/parse.y" +#line 2641 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 8130 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8127 "mrbgems/mruby-compiler/core/y.tab.c" break; case 99: /* mlhs_node: variable */ -#line 2648 "mrbgems/mruby-compiler/core/parse.y" +#line 2647 "mrbgems/mruby-compiler/core/parse.y" { assignable(p, (yyvsp[0].nd)); } -#line 8138 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8135 "mrbgems/mruby-compiler/core/y.tab.c" break; case 100: /* mlhs_node: primary_value '[' opt_call_args ']' */ -#line 2652 "mrbgems/mruby-compiler/core/parse.y" +#line 2651 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.'); } -#line 8146 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8143 "mrbgems/mruby-compiler/core/y.tab.c" break; case 101: /* mlhs_node: primary_value call_op "local variable or method" */ -#line 2656 "mrbgems/mruby-compiler/core/parse.y" +#line 2655 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); } -#line 8154 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8151 "mrbgems/mruby-compiler/core/y.tab.c" break; case 102: /* mlhs_node: primary_value "::" "local variable or method" */ -#line 2660 "mrbgems/mruby-compiler/core/parse.y" +#line 2659 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2); } -#line 8162 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8159 "mrbgems/mruby-compiler/core/y.tab.c" break; case 103: /* mlhs_node: primary_value call_op "constant" */ -#line 2664 "mrbgems/mruby-compiler/core/parse.y" +#line 2663 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); } -#line 8170 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8167 "mrbgems/mruby-compiler/core/y.tab.c" break; case 104: /* mlhs_node: primary_value "::" "constant" */ -#line 2668 "mrbgems/mruby-compiler/core/parse.y" +#line 2667 "mrbgems/mruby-compiler/core/parse.y" { if (p->in_def || p->in_single) yyerror(&(yylsp[-2]), p, "dynamic constant assignment"); (yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id)); } -#line 8180 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8177 "mrbgems/mruby-compiler/core/y.tab.c" break; case 105: /* mlhs_node: tCOLON3 "constant" */ -#line 2674 "mrbgems/mruby-compiler/core/parse.y" +#line 2673 "mrbgems/mruby-compiler/core/parse.y" { if (p->in_def || p->in_single) yyerror(&(yylsp[-1]), p, "dynamic constant assignment"); (yyval.nd) = new_colon3(p, (yyvsp[0].id)); } -#line 8190 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8187 "mrbgems/mruby-compiler/core/y.tab.c" break; case 106: /* mlhs_node: backref */ -#line 2680 "mrbgems/mruby-compiler/core/parse.y" +#line 2679 "mrbgems/mruby-compiler/core/parse.y" { backref_error(p, (yyvsp[0].nd)); (yyval.nd) = 0; } -#line 8199 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8196 "mrbgems/mruby-compiler/core/y.tab.c" break; case 107: /* lhs: variable */ -#line 2687 "mrbgems/mruby-compiler/core/parse.y" +#line 2686 "mrbgems/mruby-compiler/core/parse.y" { assignable(p, (yyvsp[0].nd)); } -#line 8207 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8204 "mrbgems/mruby-compiler/core/y.tab.c" break; case 108: /* lhs: primary_value '[' opt_call_args ']' */ -#line 2691 "mrbgems/mruby-compiler/core/parse.y" +#line 2690 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.'); } -#line 8215 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8212 "mrbgems/mruby-compiler/core/y.tab.c" break; case 109: /* lhs: primary_value call_op "local variable or method" */ -#line 2695 "mrbgems/mruby-compiler/core/parse.y" +#line 2694 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); } -#line 8223 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8220 "mrbgems/mruby-compiler/core/y.tab.c" break; case 110: /* lhs: primary_value "::" "local variable or method" */ -#line 2699 "mrbgems/mruby-compiler/core/parse.y" +#line 2698 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2); } -#line 8231 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8228 "mrbgems/mruby-compiler/core/y.tab.c" break; case 111: /* lhs: primary_value call_op "constant" */ -#line 2703 "mrbgems/mruby-compiler/core/parse.y" +#line 2702 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); } -#line 8239 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8236 "mrbgems/mruby-compiler/core/y.tab.c" break; case 112: /* lhs: primary_value "::" "constant" */ -#line 2707 "mrbgems/mruby-compiler/core/parse.y" +#line 2706 "mrbgems/mruby-compiler/core/parse.y" { if (p->in_def || p->in_single) yyerror(&(yylsp[-2]), p, "dynamic constant assignment"); (yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id)); } -#line 8249 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8246 "mrbgems/mruby-compiler/core/y.tab.c" break; case 113: /* lhs: tCOLON3 "constant" */ -#line 2713 "mrbgems/mruby-compiler/core/parse.y" +#line 2712 "mrbgems/mruby-compiler/core/parse.y" { if (p->in_def || p->in_single) yyerror(&(yylsp[-1]), p, "dynamic constant assignment"); (yyval.nd) = new_colon3(p, (yyvsp[0].id)); } -#line 8259 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8256 "mrbgems/mruby-compiler/core/y.tab.c" break; case 114: /* lhs: backref */ -#line 2719 "mrbgems/mruby-compiler/core/parse.y" +#line 2718 "mrbgems/mruby-compiler/core/parse.y" { backref_error(p, (yyvsp[0].nd)); (yyval.nd) = 0; } -#line 8268 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8265 "mrbgems/mruby-compiler/core/y.tab.c" break; case 115: /* lhs: "numbered parameter" */ -#line 2724 "mrbgems/mruby-compiler/core/parse.y" +#line 2723 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[0]), p, "can't assign to numbered parameter"); } -#line 8276 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8273 "mrbgems/mruby-compiler/core/y.tab.c" break; case 116: /* cname: "local variable or method" */ -#line 2730 "mrbgems/mruby-compiler/core/parse.y" +#line 2729 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[0]), p, "class/module name must be CONSTANT"); } -#line 8284 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8281 "mrbgems/mruby-compiler/core/y.tab.c" break; case 118: /* cpath: tCOLON3 cname */ -#line 2737 "mrbgems/mruby-compiler/core/parse.y" +#line 2736 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(int_to_node(1), sym_to_node((yyvsp[0].id))); } -#line 8292 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8289 "mrbgems/mruby-compiler/core/y.tab.c" break; case 119: /* cpath: cname */ -#line 2741 "mrbgems/mruby-compiler/core/parse.y" +#line 2740 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(int_to_node(0), sym_to_node((yyvsp[0].id))); } -#line 8300 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8297 "mrbgems/mruby-compiler/core/y.tab.c" break; case 120: /* cpath: primary_value "::" cname */ -#line 2745 "mrbgems/mruby-compiler/core/parse.y" +#line 2744 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[-2].nd)); (yyval.nd) = cons((yyvsp[-2].nd), sym_to_node((yyvsp[0].id))); } -#line 8309 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8306 "mrbgems/mruby-compiler/core/y.tab.c" break; case 124: /* fname: op */ -#line 2755 "mrbgems/mruby-compiler/core/parse.y" +#line 2754 "mrbgems/mruby-compiler/core/parse.y" { p->lstate = EXPR_ENDFN; (yyval.id) = (yyvsp[0].id); } -#line 8318 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8315 "mrbgems/mruby-compiler/core/y.tab.c" break; case 125: /* fname: reswords */ -#line 2760 "mrbgems/mruby-compiler/core/parse.y" +#line 2759 "mrbgems/mruby-compiler/core/parse.y" { p->lstate = EXPR_ENDFN; (yyval.id) = (yyvsp[0].id); } -#line 8327 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8324 "mrbgems/mruby-compiler/core/y.tab.c" break; case 128: /* undef_list: fsym */ -#line 2771 "mrbgems/mruby-compiler/core/parse.y" +#line 2770 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(sym_to_node((yyvsp[0].id)), 0); } -#line 8335 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8332 "mrbgems/mruby-compiler/core/y.tab.c" break; case 129: /* $@8: %empty */ -#line 2774 "mrbgems/mruby-compiler/core/parse.y" +#line 2773 "mrbgems/mruby-compiler/core/parse.y" {p->lstate = EXPR_FNAME;} -#line 8341 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8338 "mrbgems/mruby-compiler/core/y.tab.c" break; case 130: /* undef_list: undef_list ',' $@8 fsym */ -#line 2775 "mrbgems/mruby-compiler/core/parse.y" +#line 2774 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-3].nd), sym_to_node((yyvsp[0].id))); } -#line 8349 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8346 "mrbgems/mruby-compiler/core/y.tab.c" break; case 131: /* op: '|' */ -#line 2780 "mrbgems/mruby-compiler/core/parse.y" +#line 2779 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(or); } -#line 8355 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8352 "mrbgems/mruby-compiler/core/y.tab.c" break; case 132: /* op: '^' */ -#line 2781 "mrbgems/mruby-compiler/core/parse.y" +#line 2780 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(xor); } -#line 8361 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8358 "mrbgems/mruby-compiler/core/y.tab.c" break; case 133: /* op: '&' */ -#line 2782 "mrbgems/mruby-compiler/core/parse.y" +#line 2781 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(and); } -#line 8367 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8364 "mrbgems/mruby-compiler/core/y.tab.c" break; case 134: /* op: "<=>" */ -#line 2783 "mrbgems/mruby-compiler/core/parse.y" +#line 2782 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(cmp); } -#line 8373 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8370 "mrbgems/mruby-compiler/core/y.tab.c" break; case 135: /* op: "==" */ -#line 2784 "mrbgems/mruby-compiler/core/parse.y" +#line 2783 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(eq); } -#line 8379 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8376 "mrbgems/mruby-compiler/core/y.tab.c" break; case 136: /* op: "===" */ -#line 2785 "mrbgems/mruby-compiler/core/parse.y" +#line 2784 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(eqq); } -#line 8385 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8382 "mrbgems/mruby-compiler/core/y.tab.c" break; case 137: /* op: "=~" */ -#line 2786 "mrbgems/mruby-compiler/core/parse.y" +#line 2785 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(match); } -#line 8391 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8388 "mrbgems/mruby-compiler/core/y.tab.c" break; case 138: /* op: "!~" */ -#line 2787 "mrbgems/mruby-compiler/core/parse.y" +#line 2786 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(nmatch); } -#line 8397 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8394 "mrbgems/mruby-compiler/core/y.tab.c" break; case 139: /* op: '>' */ -#line 2788 "mrbgems/mruby-compiler/core/parse.y" +#line 2787 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(gt); } -#line 8403 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8400 "mrbgems/mruby-compiler/core/y.tab.c" break; case 140: /* op: ">=" */ -#line 2789 "mrbgems/mruby-compiler/core/parse.y" +#line 2788 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(ge); } -#line 8409 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8406 "mrbgems/mruby-compiler/core/y.tab.c" break; case 141: /* op: '<' */ -#line 2790 "mrbgems/mruby-compiler/core/parse.y" +#line 2789 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(lt); } -#line 8415 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8412 "mrbgems/mruby-compiler/core/y.tab.c" break; case 142: /* op: "<=" */ -#line 2791 "mrbgems/mruby-compiler/core/parse.y" +#line 2790 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(le); } -#line 8421 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8418 "mrbgems/mruby-compiler/core/y.tab.c" break; case 143: /* op: "!=" */ -#line 2792 "mrbgems/mruby-compiler/core/parse.y" +#line 2791 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(neq); } -#line 8427 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8424 "mrbgems/mruby-compiler/core/y.tab.c" break; case 144: /* op: "<<" */ -#line 2793 "mrbgems/mruby-compiler/core/parse.y" +#line 2792 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(lshift); } -#line 8433 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8430 "mrbgems/mruby-compiler/core/y.tab.c" break; case 145: /* op: ">>" */ -#line 2794 "mrbgems/mruby-compiler/core/parse.y" +#line 2793 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(rshift); } -#line 8439 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8436 "mrbgems/mruby-compiler/core/y.tab.c" break; case 146: /* op: '+' */ -#line 2795 "mrbgems/mruby-compiler/core/parse.y" +#line 2794 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(add); } -#line 8445 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8442 "mrbgems/mruby-compiler/core/y.tab.c" break; case 147: /* op: '-' */ -#line 2796 "mrbgems/mruby-compiler/core/parse.y" +#line 2795 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(sub); } -#line 8451 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8448 "mrbgems/mruby-compiler/core/y.tab.c" break; case 148: /* op: '*' */ -#line 2797 "mrbgems/mruby-compiler/core/parse.y" +#line 2796 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(mul); } -#line 8457 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8454 "mrbgems/mruby-compiler/core/y.tab.c" break; case 149: /* op: "*" */ -#line 2798 "mrbgems/mruby-compiler/core/parse.y" +#line 2797 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(mul); } -#line 8463 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8460 "mrbgems/mruby-compiler/core/y.tab.c" break; case 150: /* op: '/' */ -#line 2799 "mrbgems/mruby-compiler/core/parse.y" +#line 2798 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(div); } -#line 8469 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8466 "mrbgems/mruby-compiler/core/y.tab.c" break; case 151: /* op: '%' */ -#line 2800 "mrbgems/mruby-compiler/core/parse.y" +#line 2799 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(mod); } -#line 8475 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8472 "mrbgems/mruby-compiler/core/y.tab.c" break; case 152: /* op: tPOW */ -#line 2801 "mrbgems/mruby-compiler/core/parse.y" +#line 2800 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(pow); } -#line 8481 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8478 "mrbgems/mruby-compiler/core/y.tab.c" break; case 153: /* op: "**" */ -#line 2802 "mrbgems/mruby-compiler/core/parse.y" +#line 2801 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(pow); } -#line 8487 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8484 "mrbgems/mruby-compiler/core/y.tab.c" break; case 154: /* op: '!' */ -#line 2803 "mrbgems/mruby-compiler/core/parse.y" +#line 2802 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(not); } -#line 8493 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8490 "mrbgems/mruby-compiler/core/y.tab.c" break; case 155: /* op: '~' */ -#line 2804 "mrbgems/mruby-compiler/core/parse.y" +#line 2803 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(neg); } -#line 8499 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8496 "mrbgems/mruby-compiler/core/y.tab.c" break; case 156: /* op: "unary plus" */ -#line 2805 "mrbgems/mruby-compiler/core/parse.y" +#line 2804 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(plus); } -#line 8505 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8502 "mrbgems/mruby-compiler/core/y.tab.c" break; case 157: /* op: "unary minus" */ -#line 2806 "mrbgems/mruby-compiler/core/parse.y" +#line 2805 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(minus); } -#line 8511 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8508 "mrbgems/mruby-compiler/core/y.tab.c" break; case 158: /* op: tAREF */ -#line 2807 "mrbgems/mruby-compiler/core/parse.y" +#line 2806 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(aref); } -#line 8517 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8514 "mrbgems/mruby-compiler/core/y.tab.c" break; case 159: /* op: tASET */ -#line 2808 "mrbgems/mruby-compiler/core/parse.y" +#line 2807 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(aset); } -#line 8523 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8520 "mrbgems/mruby-compiler/core/y.tab.c" break; case 160: /* op: '`' */ -#line 2809 "mrbgems/mruby-compiler/core/parse.y" +#line 2808 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(tick); } -#line 8529 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8526 "mrbgems/mruby-compiler/core/y.tab.c" break; case 201: /* arg: lhs '=' arg_rhs */ -#line 2827 "mrbgems/mruby-compiler/core/parse.y" +#line 2826 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_asgn(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8537 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8534 "mrbgems/mruby-compiler/core/y.tab.c" break; case 202: /* arg: var_lhs tOP_ASGN arg_rhs */ -#line 2831 "mrbgems/mruby-compiler/core/parse.y" +#line 2830 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, (yyvsp[-2].nd), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 8545 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8542 "mrbgems/mruby-compiler/core/y.tab.c" break; case 203: /* arg: primary_value '[' opt_call_args ']' tOP_ASGN arg_rhs */ -#line 2835 "mrbgems/mruby-compiler/core/parse.y" +#line 2834 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-5].nd), intern_op(aref), (yyvsp[-3].nd), '.'), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 8553 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8550 "mrbgems/mruby-compiler/core/y.tab.c" break; case 204: /* arg: primary_value call_op "local variable or method" tOP_ASGN arg_rhs */ -#line 2839 "mrbgems/mruby-compiler/core/parse.y" +#line 2838 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, (yyvsp[-3].num)), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 8561 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8558 "mrbgems/mruby-compiler/core/y.tab.c" break; case 205: /* arg: primary_value call_op "constant" tOP_ASGN arg_rhs */ -#line 2843 "mrbgems/mruby-compiler/core/parse.y" +#line 2842 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, (yyvsp[-3].num)), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 8569 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8566 "mrbgems/mruby-compiler/core/y.tab.c" break; case 206: /* arg: primary_value "::" "local variable or method" tOP_ASGN arg_rhs */ -#line 2847 "mrbgems/mruby-compiler/core/parse.y" +#line 2846 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, tCOLON2), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 8577 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8574 "mrbgems/mruby-compiler/core/y.tab.c" break; case 207: /* arg: primary_value "::" "constant" tOP_ASGN arg_rhs */ -#line 2851 "mrbgems/mruby-compiler/core/parse.y" +#line 2850 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[-4]), p, "constant re-assignment"); (yyval.nd) = new_stmts(p, 0); } -#line 8586 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8583 "mrbgems/mruby-compiler/core/y.tab.c" break; case 208: /* arg: tCOLON3 "constant" tOP_ASGN arg_rhs */ -#line 2856 "mrbgems/mruby-compiler/core/parse.y" +#line 2855 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[-3]), p, "constant re-assignment"); (yyval.nd) = new_stmts(p, 0); } -#line 8595 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8592 "mrbgems/mruby-compiler/core/y.tab.c" break; case 209: /* arg: backref tOP_ASGN arg_rhs */ -#line 2861 "mrbgems/mruby-compiler/core/parse.y" +#line 2860 "mrbgems/mruby-compiler/core/parse.y" { backref_error(p, (yyvsp[-2].nd)); (yyval.nd) = new_stmts(p, 0); } -#line 8604 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8601 "mrbgems/mruby-compiler/core/y.tab.c" break; case 210: /* arg: arg ".." arg */ -#line 2866 "mrbgems/mruby-compiler/core/parse.y" +#line 2865 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_dot2(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8612 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8609 "mrbgems/mruby-compiler/core/y.tab.c" break; case 211: /* arg: arg ".." */ -#line 2870 "mrbgems/mruby-compiler/core/parse.y" +#line 2869 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_dot2(p, (yyvsp[-1].nd), new_nil(p)); } -#line 8620 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8617 "mrbgems/mruby-compiler/core/y.tab.c" break; case 212: /* arg: tBDOT2 arg */ -#line 2874 "mrbgems/mruby-compiler/core/parse.y" +#line 2873 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_dot2(p, new_nil(p), (yyvsp[0].nd)); } -#line 8628 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8625 "mrbgems/mruby-compiler/core/y.tab.c" break; case 213: /* arg: arg "..." arg */ -#line 2878 "mrbgems/mruby-compiler/core/parse.y" +#line 2877 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_dot3(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8636 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8633 "mrbgems/mruby-compiler/core/y.tab.c" break; case 214: /* arg: arg "..." */ -#line 2882 "mrbgems/mruby-compiler/core/parse.y" +#line 2881 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_dot3(p, (yyvsp[-1].nd), new_nil(p)); } -#line 8644 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8641 "mrbgems/mruby-compiler/core/y.tab.c" break; case 215: /* arg: tBDOT3 arg */ -#line 2886 "mrbgems/mruby-compiler/core/parse.y" +#line 2885 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_dot3(p, new_nil(p), (yyvsp[0].nd)); } -#line 8652 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8649 "mrbgems/mruby-compiler/core/y.tab.c" break; case 216: /* arg: arg '+' arg */ -#line 2890 "mrbgems/mruby-compiler/core/parse.y" +#line 2889 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "+", (yyvsp[0].nd)); } -#line 8660 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8657 "mrbgems/mruby-compiler/core/y.tab.c" break; case 217: /* arg: arg '-' arg */ -#line 2894 "mrbgems/mruby-compiler/core/parse.y" +#line 2893 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "-", (yyvsp[0].nd)); } -#line 8668 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8665 "mrbgems/mruby-compiler/core/y.tab.c" break; case 218: /* arg: arg '*' arg */ -#line 2898 "mrbgems/mruby-compiler/core/parse.y" +#line 2897 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "*", (yyvsp[0].nd)); } -#line 8676 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8673 "mrbgems/mruby-compiler/core/y.tab.c" break; case 219: /* arg: arg '/' arg */ -#line 2902 "mrbgems/mruby-compiler/core/parse.y" +#line 2901 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "/", (yyvsp[0].nd)); } -#line 8684 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8681 "mrbgems/mruby-compiler/core/y.tab.c" break; case 220: /* arg: arg '%' arg */ -#line 2906 "mrbgems/mruby-compiler/core/parse.y" +#line 2905 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "%", (yyvsp[0].nd)); } -#line 8692 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8689 "mrbgems/mruby-compiler/core/y.tab.c" break; case 221: /* arg: arg tPOW arg */ -#line 2910 "mrbgems/mruby-compiler/core/parse.y" +#line 2909 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd)); } -#line 8700 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8697 "mrbgems/mruby-compiler/core/y.tab.c" break; case 222: /* arg: tUMINUS_NUM "integer literal" tPOW arg */ -#line 2914 "mrbgems/mruby-compiler/core/parse.y" +#line 2913 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_negate(p, call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd))); } -#line 8708 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8705 "mrbgems/mruby-compiler/core/y.tab.c" break; case 223: /* arg: tUMINUS_NUM "float literal" tPOW arg */ -#line 2918 "mrbgems/mruby-compiler/core/parse.y" +#line 2917 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_negate(p, call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd))); } -#line 8716 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8713 "mrbgems/mruby-compiler/core/y.tab.c" break; case 224: /* arg: "unary plus" arg */ -#line 2922 "mrbgems/mruby-compiler/core/parse.y" +#line 2921 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, (yyvsp[0].nd), "+@"); } -#line 8724 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8721 "mrbgems/mruby-compiler/core/y.tab.c" break; case 225: /* arg: "unary minus" arg */ -#line 2926 "mrbgems/mruby-compiler/core/parse.y" +#line 2925 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_negate(p, (yyvsp[0].nd)); } -#line 8732 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8729 "mrbgems/mruby-compiler/core/y.tab.c" break; case 226: /* arg: arg '|' arg */ -#line 2930 "mrbgems/mruby-compiler/core/parse.y" +#line 2929 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "|", (yyvsp[0].nd)); } -#line 8740 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8737 "mrbgems/mruby-compiler/core/y.tab.c" break; case 227: /* arg: arg '^' arg */ -#line 2934 "mrbgems/mruby-compiler/core/parse.y" +#line 2933 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "^", (yyvsp[0].nd)); } -#line 8748 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8745 "mrbgems/mruby-compiler/core/y.tab.c" break; case 228: /* arg: arg '&' arg */ -#line 2938 "mrbgems/mruby-compiler/core/parse.y" +#line 2937 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "&", (yyvsp[0].nd)); } -#line 8756 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8753 "mrbgems/mruby-compiler/core/y.tab.c" break; case 229: /* arg: arg "<=>" arg */ -#line 2942 "mrbgems/mruby-compiler/core/parse.y" +#line 2941 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<=>", (yyvsp[0].nd)); } -#line 8764 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8761 "mrbgems/mruby-compiler/core/y.tab.c" break; case 230: /* arg: arg '>' arg */ -#line 2946 "mrbgems/mruby-compiler/core/parse.y" +#line 2945 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">", (yyvsp[0].nd)); } -#line 8772 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8769 "mrbgems/mruby-compiler/core/y.tab.c" break; case 231: /* arg: arg ">=" arg */ -#line 2950 "mrbgems/mruby-compiler/core/parse.y" +#line 2949 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">=", (yyvsp[0].nd)); } -#line 8780 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8777 "mrbgems/mruby-compiler/core/y.tab.c" break; case 232: /* arg: arg '<' arg */ -#line 2954 "mrbgems/mruby-compiler/core/parse.y" +#line 2953 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<", (yyvsp[0].nd)); } -#line 8788 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8785 "mrbgems/mruby-compiler/core/y.tab.c" break; case 233: /* arg: arg "<=" arg */ -#line 2958 "mrbgems/mruby-compiler/core/parse.y" +#line 2957 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<=", (yyvsp[0].nd)); } -#line 8796 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8793 "mrbgems/mruby-compiler/core/y.tab.c" break; case 234: /* arg: arg "==" arg */ -#line 2962 "mrbgems/mruby-compiler/core/parse.y" +#line 2961 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "==", (yyvsp[0].nd)); } -#line 8804 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8801 "mrbgems/mruby-compiler/core/y.tab.c" break; case 235: /* arg: arg "===" arg */ -#line 2966 "mrbgems/mruby-compiler/core/parse.y" +#line 2965 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "===", (yyvsp[0].nd)); } -#line 8812 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8809 "mrbgems/mruby-compiler/core/y.tab.c" break; case 236: /* arg: arg "!=" arg */ -#line 2970 "mrbgems/mruby-compiler/core/parse.y" +#line 2969 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "!=", (yyvsp[0].nd)); } -#line 8820 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8817 "mrbgems/mruby-compiler/core/y.tab.c" break; case 237: /* arg: arg "=~" arg */ -#line 2974 "mrbgems/mruby-compiler/core/parse.y" +#line 2973 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "=~", (yyvsp[0].nd)); } -#line 8828 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8825 "mrbgems/mruby-compiler/core/y.tab.c" break; case 238: /* arg: arg "!~" arg */ -#line 2978 "mrbgems/mruby-compiler/core/parse.y" +#line 2977 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "!~", (yyvsp[0].nd)); } -#line 8836 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8833 "mrbgems/mruby-compiler/core/y.tab.c" break; case 239: /* arg: '!' arg */ -#line 2982 "mrbgems/mruby-compiler/core/parse.y" +#line 2981 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "!"); } -#line 8844 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8841 "mrbgems/mruby-compiler/core/y.tab.c" break; case 240: /* arg: '~' arg */ -#line 2986 "mrbgems/mruby-compiler/core/parse.y" +#line 2985 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "~"); } -#line 8852 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8849 "mrbgems/mruby-compiler/core/y.tab.c" break; case 241: /* arg: arg "<<" arg */ -#line 2990 "mrbgems/mruby-compiler/core/parse.y" +#line 2989 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<<", (yyvsp[0].nd)); } -#line 8860 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8857 "mrbgems/mruby-compiler/core/y.tab.c" break; case 242: /* arg: arg ">>" arg */ -#line 2994 "mrbgems/mruby-compiler/core/parse.y" +#line 2993 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">>", (yyvsp[0].nd)); } -#line 8868 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8865 "mrbgems/mruby-compiler/core/y.tab.c" break; case 243: /* arg: arg "&&" arg */ -#line 2998 "mrbgems/mruby-compiler/core/parse.y" +#line 2997 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_and(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8876 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8873 "mrbgems/mruby-compiler/core/y.tab.c" break; case 244: /* arg: arg "||" arg */ -#line 3002 "mrbgems/mruby-compiler/core/parse.y" +#line 3001 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_or(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8884 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8881 "mrbgems/mruby-compiler/core/y.tab.c" break; case 245: /* arg: arg '?' arg opt_nl ':' arg */ -#line 3006 "mrbgems/mruby-compiler/core/parse.y" +#line 3005 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_if(p, cond((yyvsp[-5].nd)), (yyvsp[-3].nd), (yyvsp[0].nd)); } -#line 8892 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8889 "mrbgems/mruby-compiler/core/y.tab.c" break; case 246: /* arg: arg '?' arg opt_nl "label" arg */ -#line 3010 "mrbgems/mruby-compiler/core/parse.y" +#line 3009 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_if(p, cond((yyvsp[-5].nd)), (yyvsp[-3].nd), (yyvsp[0].nd)); } -#line 8900 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8897 "mrbgems/mruby-compiler/core/y.tab.c" break; case 247: /* arg: defn_head f_opt_arglist_paren '=' arg */ -#line 3014 "mrbgems/mruby-compiler/core/parse.y" +#line 3013 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-3].nd); endless_method_name(p, (yyvsp[-3].nd)); @@ -8908,11 +8906,11 @@ yyreduce: nvars_unnest(p); p->in_def--; } -#line 8913 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8910 "mrbgems/mruby-compiler/core/y.tab.c" break; case 248: /* arg: defn_head f_opt_arglist_paren '=' arg "'rescue' modifier" arg */ -#line 3023 "mrbgems/mruby-compiler/core/parse.y" +#line 3022 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-5].nd); endless_method_name(p, (yyvsp[-5].nd)); @@ -8921,11 +8919,11 @@ yyreduce: nvars_unnest(p); p->in_def--; } -#line 8926 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8923 "mrbgems/mruby-compiler/core/y.tab.c" break; case 249: /* arg: defs_head f_opt_arglist_paren '=' arg */ -#line 3032 "mrbgems/mruby-compiler/core/parse.y" +#line 3031 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-3].nd); void_expr_error(p, (yyvsp[0].nd)); @@ -8934,11 +8932,11 @@ yyreduce: p->in_def--; p->in_single--; } -#line 8939 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8936 "mrbgems/mruby-compiler/core/y.tab.c" break; case 250: /* arg: defs_head f_opt_arglist_paren '=' arg "'rescue' modifier" arg */ -#line 3041 "mrbgems/mruby-compiler/core/parse.y" +#line 3040 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-5].nd); void_expr_error(p, (yyvsp[-2].nd)); @@ -8947,68 +8945,68 @@ yyreduce: p->in_def--; p->in_single--; } -#line 8952 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8949 "mrbgems/mruby-compiler/core/y.tab.c" break; case 251: /* arg: primary */ -#line 3050 "mrbgems/mruby-compiler/core/parse.y" +#line 3049 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 8960 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8957 "mrbgems/mruby-compiler/core/y.tab.c" break; case 253: /* aref_args: args trailer */ -#line 3057 "mrbgems/mruby-compiler/core/parse.y" +#line 3056 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 8968 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8965 "mrbgems/mruby-compiler/core/y.tab.c" break; case 254: /* aref_args: args comma assocs trailer */ -#line 3061 "mrbgems/mruby-compiler/core/parse.y" +#line 3060 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-3].nd), new_hash(p, (yyvsp[-1].nd))); } -#line 8976 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8973 "mrbgems/mruby-compiler/core/y.tab.c" break; case 255: /* aref_args: assocs trailer */ -#line 3065 "mrbgems/mruby-compiler/core/parse.y" +#line 3064 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(new_hash(p, (yyvsp[-1].nd)), 0); } -#line 8984 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8981 "mrbgems/mruby-compiler/core/y.tab.c" break; case 256: /* arg_rhs: arg */ -#line 3071 "mrbgems/mruby-compiler/core/parse.y" +#line 3070 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 8992 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8989 "mrbgems/mruby-compiler/core/y.tab.c" break; case 257: /* arg_rhs: arg "'rescue' modifier" arg */ -#line 3075 "mrbgems/mruby-compiler/core/parse.y" +#line 3074 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[-2].nd)); (yyval.nd) = new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 9001 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8998 "mrbgems/mruby-compiler/core/y.tab.c" break; case 258: /* paren_args: '(' opt_call_args ')' */ -#line 3082 "mrbgems/mruby-compiler/core/parse.y" +#line 3081 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 9009 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9006 "mrbgems/mruby-compiler/core/y.tab.c" break; case 259: /* paren_args: '(' args comma tBDOT3 rparen */ -#line 3086 "mrbgems/mruby-compiler/core/parse.y" +#line 3085 "mrbgems/mruby-compiler/core/parse.y" { mrb_sym r = intern_op(mul); mrb_sym k = intern_op(pow); @@ -9017,11 +9015,11 @@ yyreduce: list1(cons(new_kw_rest_args(p, 0), new_lvar(p, k))), new_block_arg(p, new_lvar(p, b))); } -#line 9022 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9019 "mrbgems/mruby-compiler/core/y.tab.c" break; case 260: /* paren_args: '(' tBDOT3 rparen */ -#line 3095 "mrbgems/mruby-compiler/core/parse.y" +#line 3094 "mrbgems/mruby-compiler/core/parse.y" { mrb_sym r = intern_op(mul); mrb_sym k = intern_op(pow); @@ -9036,390 +9034,390 @@ yyreduce: (yyval.nd) = 0; } } -#line 9041 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9038 "mrbgems/mruby-compiler/core/y.tab.c" break; case 265: /* opt_call_args: args comma */ -#line 3118 "mrbgems/mruby-compiler/core/parse.y" +#line 3117 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_callargs(p,(yyvsp[-1].nd),0,0); } -#line 9049 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9046 "mrbgems/mruby-compiler/core/y.tab.c" break; case 266: /* opt_call_args: args comma assocs comma */ -#line 3122 "mrbgems/mruby-compiler/core/parse.y" +#line 3121 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_callargs(p,(yyvsp[-3].nd),(yyvsp[-1].nd),0); } -#line 9057 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9054 "mrbgems/mruby-compiler/core/y.tab.c" break; case 267: /* opt_call_args: assocs comma */ -#line 3126 "mrbgems/mruby-compiler/core/parse.y" +#line 3125 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_callargs(p,0,(yyvsp[-1].nd),0); } -#line 9065 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9062 "mrbgems/mruby-compiler/core/y.tab.c" break; case 268: /* call_args: command */ -#line 3132 "mrbgems/mruby-compiler/core/parse.y" +#line 3131 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = new_callargs(p, list1((yyvsp[0].nd)), 0, 0); } -#line 9074 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9071 "mrbgems/mruby-compiler/core/y.tab.c" break; case 269: /* call_args: args opt_block_arg */ -#line 3137 "mrbgems/mruby-compiler/core/parse.y" +#line 3136 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_callargs(p, (yyvsp[-1].nd), 0, (yyvsp[0].nd)); } -#line 9082 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9079 "mrbgems/mruby-compiler/core/y.tab.c" break; case 270: /* call_args: assocs opt_block_arg */ -#line 3141 "mrbgems/mruby-compiler/core/parse.y" +#line 3140 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_callargs(p, 0, (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9090 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9087 "mrbgems/mruby-compiler/core/y.tab.c" break; case 271: /* call_args: args comma assocs opt_block_arg */ -#line 3145 "mrbgems/mruby-compiler/core/parse.y" +#line 3144 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_callargs(p, (yyvsp[-3].nd), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9098 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9095 "mrbgems/mruby-compiler/core/y.tab.c" break; case 272: /* call_args: block_arg */ -#line 3149 "mrbgems/mruby-compiler/core/parse.y" +#line 3148 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_callargs(p, 0, 0, (yyvsp[0].nd)); } -#line 9106 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9103 "mrbgems/mruby-compiler/core/y.tab.c" break; case 273: /* @9: %empty */ -#line 3154 "mrbgems/mruby-compiler/core/parse.y" +#line 3153 "mrbgems/mruby-compiler/core/parse.y" { (yyval.stack) = p->cmdarg_stack; CMDARG_PUSH(1); } -#line 9115 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9112 "mrbgems/mruby-compiler/core/y.tab.c" break; case 274: /* command_args: @9 call_args */ -#line 3159 "mrbgems/mruby-compiler/core/parse.y" +#line 3158 "mrbgems/mruby-compiler/core/parse.y" { p->cmdarg_stack = (yyvsp[-1].stack); (yyval.nd) = (yyvsp[0].nd); } -#line 9124 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9121 "mrbgems/mruby-compiler/core/y.tab.c" break; case 275: /* block_arg: "&" arg */ -#line 3166 "mrbgems/mruby-compiler/core/parse.y" +#line 3165 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_block_arg(p, (yyvsp[0].nd)); } -#line 9132 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9129 "mrbgems/mruby-compiler/core/y.tab.c" break; case 276: /* block_arg: "&" */ -#line 3170 "mrbgems/mruby-compiler/core/parse.y" +#line 3169 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_block_arg(p, 0); } -#line 9140 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9137 "mrbgems/mruby-compiler/core/y.tab.c" break; case 277: /* opt_block_arg: comma block_arg */ -#line 3176 "mrbgems/mruby-compiler/core/parse.y" +#line 3175 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 9148 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9145 "mrbgems/mruby-compiler/core/y.tab.c" break; case 278: /* opt_block_arg: none */ -#line 3180 "mrbgems/mruby-compiler/core/parse.y" +#line 3179 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = 0; } -#line 9156 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9153 "mrbgems/mruby-compiler/core/y.tab.c" break; case 280: /* args: arg */ -#line 3189 "mrbgems/mruby-compiler/core/parse.y" +#line 3188 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = list1((yyvsp[0].nd)); } -#line 9165 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9162 "mrbgems/mruby-compiler/core/y.tab.c" break; case 281: /* args: "*" */ -#line 3194 "mrbgems/mruby-compiler/core/parse.y" +#line 3193 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1(new_splat(p, new_lvar(p, intern_op(mul)))); } -#line 9173 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9170 "mrbgems/mruby-compiler/core/y.tab.c" break; case 282: /* args: "*" arg */ -#line 3198 "mrbgems/mruby-compiler/core/parse.y" +#line 3197 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1(new_splat(p, (yyvsp[0].nd))); } -#line 9181 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9178 "mrbgems/mruby-compiler/core/y.tab.c" break; case 283: /* args: args comma arg */ -#line 3202 "mrbgems/mruby-compiler/core/parse.y" +#line 3201 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 9190 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9187 "mrbgems/mruby-compiler/core/y.tab.c" break; case 284: /* args: args comma "*" */ -#line 3207 "mrbgems/mruby-compiler/core/parse.y" +#line 3206 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), new_splat(p, new_lvar(p, intern_op(mul)))); } -#line 9198 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9195 "mrbgems/mruby-compiler/core/y.tab.c" break; case 285: /* args: args comma "*" arg */ -#line 3211 "mrbgems/mruby-compiler/core/parse.y" +#line 3210 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-3].nd), new_splat(p, (yyvsp[0].nd))); } -#line 9206 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9203 "mrbgems/mruby-compiler/core/y.tab.c" break; case 286: /* mrhs: args comma arg */ -#line 3217 "mrbgems/mruby-compiler/core/parse.y" +#line 3216 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 9215 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9212 "mrbgems/mruby-compiler/core/y.tab.c" break; case 287: /* mrhs: args comma "*" arg */ -#line 3222 "mrbgems/mruby-compiler/core/parse.y" +#line 3221 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-3].nd), new_splat(p, (yyvsp[0].nd))); } -#line 9223 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9220 "mrbgems/mruby-compiler/core/y.tab.c" break; case 288: /* mrhs: "*" arg */ -#line 3226 "mrbgems/mruby-compiler/core/parse.y" +#line 3225 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1(new_splat(p, (yyvsp[0].nd))); } -#line 9231 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9228 "mrbgems/mruby-compiler/core/y.tab.c" break; case 290: /* primary: string */ -#line 3233 "mrbgems/mruby-compiler/core/parse.y" +#line 3232 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_str(p, (yyvsp[0].nd)); } -#line 9239 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9236 "mrbgems/mruby-compiler/core/y.tab.c" break; case 291: /* primary: xstring */ -#line 3237 "mrbgems/mruby-compiler/core/parse.y" +#line 3236 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_xstr(p, (yyvsp[0].nd)); } -#line 9247 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9244 "mrbgems/mruby-compiler/core/y.tab.c" break; case 296: /* primary: "method" */ -#line 3245 "mrbgems/mruby-compiler/core/parse.y" +#line 3244 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_fcall(p, (yyvsp[0].id), 0); } -#line 9255 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9252 "mrbgems/mruby-compiler/core/y.tab.c" break; case 297: /* @10: %empty */ -#line 3249 "mrbgems/mruby-compiler/core/parse.y" +#line 3248 "mrbgems/mruby-compiler/core/parse.y" { (yyval.stack) = p->cmdarg_stack; p->cmdarg_stack = 0; } -#line 9264 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9261 "mrbgems/mruby-compiler/core/y.tab.c" break; case 298: /* primary: "'begin'" @10 bodystmt "'end'" */ -#line 3255 "mrbgems/mruby-compiler/core/parse.y" +#line 3254 "mrbgems/mruby-compiler/core/parse.y" { p->cmdarg_stack = (yyvsp[-2].stack); (yyval.nd) = new_begin(p, (yyvsp[-1].nd)); } -#line 9273 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9270 "mrbgems/mruby-compiler/core/y.tab.c" break; case 299: /* @11: %empty */ -#line 3260 "mrbgems/mruby-compiler/core/parse.y" +#line 3259 "mrbgems/mruby-compiler/core/parse.y" { (yyval.stack) = p->cmdarg_stack; p->cmdarg_stack = 0; } -#line 9282 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9279 "mrbgems/mruby-compiler/core/y.tab.c" break; case 300: /* $@12: %empty */ -#line 3264 "mrbgems/mruby-compiler/core/parse.y" +#line 3263 "mrbgems/mruby-compiler/core/parse.y" {p->lstate = EXPR_ENDARG;} -#line 9288 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9285 "mrbgems/mruby-compiler/core/y.tab.c" break; case 301: /* primary: "(" @11 stmt $@12 rparen */ -#line 3265 "mrbgems/mruby-compiler/core/parse.y" +#line 3264 "mrbgems/mruby-compiler/core/parse.y" { p->cmdarg_stack = (yyvsp[-3].stack); (yyval.nd) = (yyvsp[-2].nd); } -#line 9297 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9294 "mrbgems/mruby-compiler/core/y.tab.c" break; case 302: /* $@13: %empty */ -#line 3269 "mrbgems/mruby-compiler/core/parse.y" +#line 3268 "mrbgems/mruby-compiler/core/parse.y" {p->lstate = EXPR_ENDARG;} -#line 9303 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9300 "mrbgems/mruby-compiler/core/y.tab.c" break; case 303: /* primary: "(" $@13 rparen */ -#line 3270 "mrbgems/mruby-compiler/core/parse.y" +#line 3269 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_nil(p); } -#line 9311 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9308 "mrbgems/mruby-compiler/core/y.tab.c" break; case 304: /* primary: tLPAREN compstmt ')' */ -#line 3274 "mrbgems/mruby-compiler/core/parse.y" +#line 3273 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 9319 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9316 "mrbgems/mruby-compiler/core/y.tab.c" break; case 305: /* primary: primary_value "::" "constant" */ -#line 3278 "mrbgems/mruby-compiler/core/parse.y" +#line 3277 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id)); } -#line 9327 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9324 "mrbgems/mruby-compiler/core/y.tab.c" break; case 306: /* primary: tCOLON3 "constant" */ -#line 3282 "mrbgems/mruby-compiler/core/parse.y" +#line 3281 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_colon3(p, (yyvsp[0].id)); } -#line 9335 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9332 "mrbgems/mruby-compiler/core/y.tab.c" break; case 307: /* primary: "[" aref_args ']' */ -#line 3286 "mrbgems/mruby-compiler/core/parse.y" +#line 3285 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_array(p, (yyvsp[-1].nd)); } -#line 9343 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9340 "mrbgems/mruby-compiler/core/y.tab.c" break; case 308: /* primary: tLBRACE assoc_list '}' */ -#line 3290 "mrbgems/mruby-compiler/core/parse.y" +#line 3289 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_hash(p, (yyvsp[-1].nd)); } -#line 9351 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9348 "mrbgems/mruby-compiler/core/y.tab.c" break; case 309: /* primary: "'return'" */ -#line 3294 "mrbgems/mruby-compiler/core/parse.y" +#line 3293 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_return(p, 0); } -#line 9359 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9356 "mrbgems/mruby-compiler/core/y.tab.c" break; case 310: /* primary: "'yield'" opt_paren_args */ -#line 3298 "mrbgems/mruby-compiler/core/parse.y" +#line 3297 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_yield(p, (yyvsp[0].nd)); } -#line 9367 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9364 "mrbgems/mruby-compiler/core/y.tab.c" break; case 311: /* primary: "'not'" '(' expr rparen */ -#line 3302 "mrbgems/mruby-compiler/core/parse.y" +#line 3301 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, cond((yyvsp[-1].nd)), "!"); } -#line 9375 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9372 "mrbgems/mruby-compiler/core/y.tab.c" break; case 312: /* primary: "'not'" '(' rparen */ -#line 3306 "mrbgems/mruby-compiler/core/parse.y" +#line 3305 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = call_uni_op(p, new_nil(p), "!"); } -#line 9383 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9380 "mrbgems/mruby-compiler/core/y.tab.c" break; case 313: /* primary: operation brace_block */ -#line 3310 "mrbgems/mruby-compiler/core/parse.y" +#line 3309 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_fcall(p, (yyvsp[-1].id), new_callargs(p, 0, 0, (yyvsp[0].nd))); } -#line 9391 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9388 "mrbgems/mruby-compiler/core/y.tab.c" break; case 315: /* primary: method_call brace_block */ -#line 3315 "mrbgems/mruby-compiler/core/parse.y" +#line 3314 "mrbgems/mruby-compiler/core/parse.y" { call_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd)); (yyval.nd) = (yyvsp[-1].nd); } -#line 9400 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9397 "mrbgems/mruby-compiler/core/y.tab.c" break; case 316: /* @14: %empty */ -#line 3320 "mrbgems/mruby-compiler/core/parse.y" +#line 3319 "mrbgems/mruby-compiler/core/parse.y" { local_nest(p); nvars_nest(p); (yyval.num) = p->lpar_beg; p->lpar_beg = ++p->paren_nest; } -#line 9411 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9408 "mrbgems/mruby-compiler/core/y.tab.c" break; case 317: /* @15: %empty */ -#line 3327 "mrbgems/mruby-compiler/core/parse.y" +#line 3326 "mrbgems/mruby-compiler/core/parse.y" { (yyval.stack) = p->cmdarg_stack; p->cmdarg_stack = 0; } -#line 9420 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9417 "mrbgems/mruby-compiler/core/y.tab.c" break; case 318: /* primary: "->" @14 f_larglist @15 lambda_body */ -#line 3332 "mrbgems/mruby-compiler/core/parse.y" +#line 3331 "mrbgems/mruby-compiler/core/parse.y" { p->lpar_beg = (yyvsp[-3].num); (yyval.nd) = new_lambda(p, (yyvsp[-2].nd), (yyvsp[0].nd)); @@ -9428,176 +9426,176 @@ yyreduce: p->cmdarg_stack = (yyvsp[-1].stack); CMDARG_LEXPOP(); } -#line 9433 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9430 "mrbgems/mruby-compiler/core/y.tab.c" break; case 319: /* primary: "'if'" expr_value then compstmt if_tail "'end'" */ -#line 3344 "mrbgems/mruby-compiler/core/parse.y" +#line 3343 "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 9442 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9439 "mrbgems/mruby-compiler/core/y.tab.c" break; case 320: /* primary: "'unless'" expr_value then compstmt opt_else "'end'" */ -#line 3352 "mrbgems/mruby-compiler/core/parse.y" +#line 3351 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_if(p, cond((yyvsp[-4].nd)), (yyvsp[-1].nd), (yyvsp[-2].nd)); SET_LINENO((yyval.nd), (yyvsp[-5].num)); } -#line 9451 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9448 "mrbgems/mruby-compiler/core/y.tab.c" break; case 321: /* $@16: %empty */ -#line 3356 "mrbgems/mruby-compiler/core/parse.y" +#line 3355 "mrbgems/mruby-compiler/core/parse.y" {COND_PUSH(1);} -#line 9457 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9454 "mrbgems/mruby-compiler/core/y.tab.c" break; case 322: /* $@17: %empty */ -#line 3356 "mrbgems/mruby-compiler/core/parse.y" +#line 3355 "mrbgems/mruby-compiler/core/parse.y" {COND_POP();} -#line 9463 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9460 "mrbgems/mruby-compiler/core/y.tab.c" break; case 323: /* primary: "'while'" $@16 expr_value do $@17 compstmt "'end'" */ -#line 3359 "mrbgems/mruby-compiler/core/parse.y" +#line 3358 "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 9472 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9469 "mrbgems/mruby-compiler/core/y.tab.c" break; case 324: /* $@18: %empty */ -#line 3363 "mrbgems/mruby-compiler/core/parse.y" +#line 3362 "mrbgems/mruby-compiler/core/parse.y" {COND_PUSH(1);} -#line 9478 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9475 "mrbgems/mruby-compiler/core/y.tab.c" break; case 325: /* $@19: %empty */ -#line 3363 "mrbgems/mruby-compiler/core/parse.y" +#line 3362 "mrbgems/mruby-compiler/core/parse.y" {COND_POP();} -#line 9484 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9481 "mrbgems/mruby-compiler/core/y.tab.c" break; case 326: /* primary: "'until'" $@18 expr_value do $@19 compstmt "'end'" */ -#line 3366 "mrbgems/mruby-compiler/core/parse.y" +#line 3365 "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 9493 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9490 "mrbgems/mruby-compiler/core/y.tab.c" break; case 327: /* primary: "'case'" expr_value opt_terms case_body "'end'" */ -#line 3373 "mrbgems/mruby-compiler/core/parse.y" +#line 3372 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_case(p, (yyvsp[-3].nd), (yyvsp[-1].nd)); } -#line 9501 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9498 "mrbgems/mruby-compiler/core/y.tab.c" break; case 328: /* primary: "'case'" opt_terms case_body "'end'" */ -#line 3377 "mrbgems/mruby-compiler/core/parse.y" +#line 3376 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_case(p, 0, (yyvsp[-1].nd)); } -#line 9509 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9506 "mrbgems/mruby-compiler/core/y.tab.c" break; case 329: /* primary: "'case'" expr_value opt_terms "'in'" p_expr then compstmt in_clauses "'end'" */ -#line 3385 "mrbgems/mruby-compiler/core/parse.y" +#line 3384 "mrbgems/mruby-compiler/core/parse.y" { node *in_clause = new_in(p, (yyvsp[-4].nd), NULL, (yyvsp[-2].nd), FALSE); (yyval.nd) = new_case_match(p, (yyvsp[-7].nd), cons(in_clause, (yyvsp[-1].nd))); } -#line 9518 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9515 "mrbgems/mruby-compiler/core/y.tab.c" break; case 330: /* primary: "'case'" expr_value opt_terms "'in'" p_expr "'if' modifier" expr_value then compstmt in_clauses "'end'" */ -#line 3394 "mrbgems/mruby-compiler/core/parse.y" +#line 3393 "mrbgems/mruby-compiler/core/parse.y" { node *in_clause = new_in(p, (yyvsp[-6].nd), (yyvsp[-4].nd), (yyvsp[-2].nd), FALSE); (yyval.nd) = new_case_match(p, (yyvsp[-9].nd), cons(in_clause, (yyvsp[-1].nd))); } -#line 9527 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9524 "mrbgems/mruby-compiler/core/y.tab.c" break; case 331: /* primary: "'case'" expr_value opt_terms "'in'" p_expr "'unless' modifier" expr_value then compstmt in_clauses "'end'" */ -#line 3403 "mrbgems/mruby-compiler/core/parse.y" +#line 3402 "mrbgems/mruby-compiler/core/parse.y" { node *in_clause = new_in(p, (yyvsp[-6].nd), (yyvsp[-4].nd), (yyvsp[-2].nd), TRUE); (yyval.nd) = new_case_match(p, (yyvsp[-9].nd), cons(in_clause, (yyvsp[-1].nd))); } -#line 9536 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9533 "mrbgems/mruby-compiler/core/y.tab.c" break; case 332: /* $@20: %empty */ -#line 3408 "mrbgems/mruby-compiler/core/parse.y" +#line 3407 "mrbgems/mruby-compiler/core/parse.y" {COND_PUSH(1);} -#line 9542 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9539 "mrbgems/mruby-compiler/core/y.tab.c" break; case 333: /* $@21: %empty */ -#line 3410 "mrbgems/mruby-compiler/core/parse.y" +#line 3409 "mrbgems/mruby-compiler/core/parse.y" {COND_POP();} -#line 9548 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9545 "mrbgems/mruby-compiler/core/y.tab.c" break; case 334: /* primary: "'for'" for_var "'in'" $@20 expr_value do $@21 compstmt "'end'" */ -#line 3413 "mrbgems/mruby-compiler/core/parse.y" +#line 3412 "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 9557 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9554 "mrbgems/mruby-compiler/core/y.tab.c" break; case 335: /* @22: %empty */ -#line 3419 "mrbgems/mruby-compiler/core/parse.y" +#line 3418 "mrbgems/mruby-compiler/core/parse.y" { if (p->in_def || p->in_single) yyerror(&(yylsp[-2]), p, "class definition in method body"); (yyval.nd) = local_switch(p); nvars_block(p); } -#line 9568 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9565 "mrbgems/mruby-compiler/core/y.tab.c" break; case 336: /* primary: "'class'" cpath superclass @22 bodystmt "'end'" */ -#line 3427 "mrbgems/mruby-compiler/core/parse.y" +#line 3426 "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 9579 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9576 "mrbgems/mruby-compiler/core/y.tab.c" break; case 337: /* @23: %empty */ -#line 3435 "mrbgems/mruby-compiler/core/parse.y" +#line 3434 "mrbgems/mruby-compiler/core/parse.y" { (yyval.num) = p->in_def; p->in_def = 0; } -#line 9588 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9585 "mrbgems/mruby-compiler/core/y.tab.c" break; case 338: /* @24: %empty */ -#line 3440 "mrbgems/mruby-compiler/core/parse.y" +#line 3439 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(local_switch(p), int_to_node(p->in_single)); nvars_block(p); p->in_single = 0; } -#line 9598 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9595 "mrbgems/mruby-compiler/core/y.tab.c" break; case 339: /* primary: "'class'" "<<" expr @23 term @24 bodystmt "'end'" */ -#line 3447 "mrbgems/mruby-compiler/core/parse.y" +#line 3446 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_sclass(p, (yyvsp[-5].nd), (yyvsp[-1].nd)); SET_LINENO((yyval.nd), (yyvsp[-7].num)); @@ -9606,44 +9604,44 @@ yyreduce: p->in_def = (yyvsp[-4].num); p->in_single = node_to_int((yyvsp[-2].nd)->cdr); } -#line 9611 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9608 "mrbgems/mruby-compiler/core/y.tab.c" break; case 340: /* @25: %empty */ -#line 3457 "mrbgems/mruby-compiler/core/parse.y" +#line 3456 "mrbgems/mruby-compiler/core/parse.y" { if (p->in_def || p->in_single) yyerror(&(yylsp[-1]), p, "module definition in method body"); (yyval.nd) = local_switch(p); nvars_block(p); } -#line 9622 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9619 "mrbgems/mruby-compiler/core/y.tab.c" break; case 341: /* primary: "'module'" cpath @25 bodystmt "'end'" */ -#line 3465 "mrbgems/mruby-compiler/core/parse.y" +#line 3464 "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 9633 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9630 "mrbgems/mruby-compiler/core/y.tab.c" break; case 342: /* primary: defn_head f_arglist bodystmt "'end'" */ -#line 3475 "mrbgems/mruby-compiler/core/parse.y" +#line 3474 "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 9644 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9641 "mrbgems/mruby-compiler/core/y.tab.c" break; case 343: /* primary: defs_head f_arglist bodystmt "'end'" */ -#line 3485 "mrbgems/mruby-compiler/core/parse.y" +#line 3484 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-3].nd); defn_setup(p, (yyval.nd), (yyvsp[-2].nd), (yyvsp[-1].nd)); @@ -9651,610 +9649,610 @@ yyreduce: p->in_def--; p->in_single--; } -#line 9656 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9653 "mrbgems/mruby-compiler/core/y.tab.c" break; case 344: /* primary: "'break'" */ -#line 3493 "mrbgems/mruby-compiler/core/parse.y" +#line 3492 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_break(p, 0); } -#line 9664 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9661 "mrbgems/mruby-compiler/core/y.tab.c" break; case 345: /* primary: "'next'" */ -#line 3497 "mrbgems/mruby-compiler/core/parse.y" +#line 3496 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_next(p, 0); } -#line 9672 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9669 "mrbgems/mruby-compiler/core/y.tab.c" break; case 346: /* primary: "'redo'" */ -#line 3501 "mrbgems/mruby-compiler/core/parse.y" +#line 3500 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_redo(p); } -#line 9680 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9677 "mrbgems/mruby-compiler/core/y.tab.c" break; case 347: /* primary: "'retry'" */ -#line 3505 "mrbgems/mruby-compiler/core/parse.y" +#line 3504 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_retry(p); } -#line 9688 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9685 "mrbgems/mruby-compiler/core/y.tab.c" break; case 348: /* primary_value: primary */ -#line 3511 "mrbgems/mruby-compiler/core/parse.y" +#line 3510 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); if (!(yyval.nd)) (yyval.nd) = new_nil(p); } -#line 9697 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9694 "mrbgems/mruby-compiler/core/y.tab.c" break; case 355: /* if_tail: "'elsif'" expr_value then compstmt if_tail */ -#line 3530 "mrbgems/mruby-compiler/core/parse.y" +#line 3529 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_if(p, cond((yyvsp[-3].nd)), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9705 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9702 "mrbgems/mruby-compiler/core/y.tab.c" break; case 357: /* opt_else: "'else'" compstmt */ -#line 3537 "mrbgems/mruby-compiler/core/parse.y" +#line 3536 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 9713 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9710 "mrbgems/mruby-compiler/core/y.tab.c" break; case 358: /* for_var: lhs */ -#line 3543 "mrbgems/mruby-compiler/core/parse.y" +#line 3542 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1(list1((yyvsp[0].nd))); } -#line 9721 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9718 "mrbgems/mruby-compiler/core/y.tab.c" break; case 360: /* f_margs: f_arg */ -#line 3550 "mrbgems/mruby-compiler/core/parse.y" +#line 3549 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3((yyvsp[0].nd),0,0); } -#line 9729 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9726 "mrbgems/mruby-compiler/core/y.tab.c" break; case 361: /* f_margs: f_arg ',' "*" f_norm_arg */ -#line 3554 "mrbgems/mruby-compiler/core/parse.y" +#line 3553 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3((yyvsp[-3].nd), new_lvar(p, (yyvsp[0].id)), 0); } -#line 9737 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9734 "mrbgems/mruby-compiler/core/y.tab.c" break; case 362: /* f_margs: f_arg ',' "*" f_norm_arg ',' f_arg */ -#line 3558 "mrbgems/mruby-compiler/core/parse.y" +#line 3557 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3((yyvsp[-5].nd), new_lvar(p, (yyvsp[-2].id)), (yyvsp[0].nd)); } -#line 9745 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9742 "mrbgems/mruby-compiler/core/y.tab.c" break; case 363: /* f_margs: f_arg ',' "*" */ -#line 3562 "mrbgems/mruby-compiler/core/parse.y" +#line 3561 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, intern_op(mul)); (yyval.nd) = list3((yyvsp[-2].nd), int_to_node(-1), 0); } -#line 9754 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9751 "mrbgems/mruby-compiler/core/y.tab.c" break; case 364: /* f_margs: f_arg ',' "*" ',' f_arg */ -#line 3567 "mrbgems/mruby-compiler/core/parse.y" +#line 3566 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3((yyvsp[-4].nd), int_to_node(-1), (yyvsp[0].nd)); } -#line 9762 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9759 "mrbgems/mruby-compiler/core/y.tab.c" break; case 365: /* f_margs: "*" f_norm_arg */ -#line 3571 "mrbgems/mruby-compiler/core/parse.y" +#line 3570 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3(0, new_lvar(p, (yyvsp[0].id)), 0); } -#line 9770 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9767 "mrbgems/mruby-compiler/core/y.tab.c" break; case 366: /* f_margs: "*" f_norm_arg ',' f_arg */ -#line 3575 "mrbgems/mruby-compiler/core/parse.y" +#line 3574 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3(0, new_lvar(p, (yyvsp[-2].id)), (yyvsp[0].nd)); } -#line 9778 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9775 "mrbgems/mruby-compiler/core/y.tab.c" break; case 367: /* f_margs: "*" */ -#line 3579 "mrbgems/mruby-compiler/core/parse.y" +#line 3578 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, intern_op(mul)); (yyval.nd) = list3(0, int_to_node(-1), 0); } -#line 9787 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9784 "mrbgems/mruby-compiler/core/y.tab.c" break; case 368: /* $@26: %empty */ -#line 3584 "mrbgems/mruby-compiler/core/parse.y" +#line 3583 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, intern_op(mul)); } -#line 9795 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9792 "mrbgems/mruby-compiler/core/y.tab.c" break; case 369: /* f_margs: "*" ',' $@26 f_arg */ -#line 3588 "mrbgems/mruby-compiler/core/parse.y" +#line 3587 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list3(0, int_to_node(-1), (yyvsp[0].nd)); } -#line 9803 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9800 "mrbgems/mruby-compiler/core/y.tab.c" break; case 370: /* block_args_tail: f_block_kwarg ',' f_kwrest opt_f_block_arg */ -#line 3594 "mrbgems/mruby-compiler/core/parse.y" +#line 3593 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].id)); } -#line 9811 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9808 "mrbgems/mruby-compiler/core/y.tab.c" break; case 371: /* block_args_tail: f_block_kwarg opt_f_block_arg */ -#line 3598 "mrbgems/mruby-compiler/core/parse.y" +#line 3597 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, (yyvsp[-1].nd), 0, (yyvsp[0].id)); } -#line 9819 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9816 "mrbgems/mruby-compiler/core/y.tab.c" break; case 372: /* block_args_tail: f_kwrest opt_f_block_arg */ -#line 3602 "mrbgems/mruby-compiler/core/parse.y" +#line 3601 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, 0, (yyvsp[-1].id), (yyvsp[0].id)); } -#line 9827 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9824 "mrbgems/mruby-compiler/core/y.tab.c" break; case 373: /* block_args_tail: f_block_arg */ -#line 3606 "mrbgems/mruby-compiler/core/parse.y" +#line 3605 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, 0, 0, (yyvsp[0].id)); } -#line 9835 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9832 "mrbgems/mruby-compiler/core/y.tab.c" break; case 374: /* opt_block_args_tail: ',' block_args_tail */ -#line 3612 "mrbgems/mruby-compiler/core/parse.y" +#line 3611 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 9843 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9840 "mrbgems/mruby-compiler/core/y.tab.c" break; case 375: /* opt_block_args_tail: %empty */ -#line 3616 "mrbgems/mruby-compiler/core/parse.y" +#line 3615 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, 0, 0, 0); } -#line 9851 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9848 "mrbgems/mruby-compiler/core/y.tab.c" break; case 376: /* block_param: f_arg ',' f_block_optarg ',' f_rest_arg opt_block_args_tail */ -#line 3622 "mrbgems/mruby-compiler/core/parse.y" +#line 3621 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 9859 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9856 "mrbgems/mruby-compiler/core/y.tab.c" break; case 377: /* block_param: f_arg ',' f_block_optarg ',' f_rest_arg ',' f_arg opt_block_args_tail */ -#line 3626 "mrbgems/mruby-compiler/core/parse.y" +#line 3625 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-7].nd), (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9867 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9864 "mrbgems/mruby-compiler/core/y.tab.c" break; case 378: /* block_param: f_arg ',' f_block_optarg opt_block_args_tail */ -#line 3630 "mrbgems/mruby-compiler/core/parse.y" +#line 3629 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-3].nd), (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd)); } -#line 9875 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9872 "mrbgems/mruby-compiler/core/y.tab.c" break; case 379: /* block_param: f_arg ',' f_block_optarg ',' f_arg opt_block_args_tail */ -#line 3634 "mrbgems/mruby-compiler/core/parse.y" +#line 3633 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9883 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9880 "mrbgems/mruby-compiler/core/y.tab.c" break; case 380: /* block_param: f_arg ',' f_rest_arg opt_block_args_tail */ -#line 3638 "mrbgems/mruby-compiler/core/parse.y" +#line 3637 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-3].nd), 0, (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 9891 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9888 "mrbgems/mruby-compiler/core/y.tab.c" break; case 381: /* block_param: f_arg ',' opt_block_args_tail */ -#line 3642 "mrbgems/mruby-compiler/core/parse.y" +#line 3641 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-2].nd), 0, 0, 0, (yyvsp[0].nd)); } -#line 9899 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9896 "mrbgems/mruby-compiler/core/y.tab.c" break; case 382: /* block_param: f_arg ',' f_rest_arg ',' f_arg opt_block_args_tail */ -#line 3646 "mrbgems/mruby-compiler/core/parse.y" +#line 3645 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-5].nd), 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9907 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9904 "mrbgems/mruby-compiler/core/y.tab.c" break; case 383: /* block_param: f_arg opt_block_args_tail */ -#line 3650 "mrbgems/mruby-compiler/core/parse.y" +#line 3649 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-1].nd), 0, 0, 0, (yyvsp[0].nd)); } -#line 9915 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9912 "mrbgems/mruby-compiler/core/y.tab.c" break; case 384: /* block_param: f_block_optarg ',' f_rest_arg opt_block_args_tail */ -#line 3654 "mrbgems/mruby-compiler/core/parse.y" +#line 3653 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 9923 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9920 "mrbgems/mruby-compiler/core/y.tab.c" break; case 385: /* block_param: f_block_optarg ',' f_rest_arg ',' f_arg opt_block_args_tail */ -#line 3658 "mrbgems/mruby-compiler/core/parse.y" +#line 3657 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9931 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9928 "mrbgems/mruby-compiler/core/y.tab.c" break; case 386: /* block_param: f_block_optarg opt_block_args_tail */ -#line 3662 "mrbgems/mruby-compiler/core/parse.y" +#line 3661 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd)); } -#line 9939 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9936 "mrbgems/mruby-compiler/core/y.tab.c" break; case 387: /* block_param: f_block_optarg ',' f_arg opt_block_args_tail */ -#line 3666 "mrbgems/mruby-compiler/core/parse.y" +#line 3665 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9947 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9944 "mrbgems/mruby-compiler/core/y.tab.c" break; case 388: /* block_param: f_rest_arg opt_block_args_tail */ -#line 3670 "mrbgems/mruby-compiler/core/parse.y" +#line 3669 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, 0, (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 9955 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9952 "mrbgems/mruby-compiler/core/y.tab.c" break; case 389: /* block_param: f_rest_arg ',' f_arg opt_block_args_tail */ -#line 3674 "mrbgems/mruby-compiler/core/parse.y" +#line 3673 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9963 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9960 "mrbgems/mruby-compiler/core/y.tab.c" break; case 390: /* block_param: block_args_tail */ -#line 3678 "mrbgems/mruby-compiler/core/parse.y" +#line 3677 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, 0, 0, 0, (yyvsp[0].nd)); } -#line 9971 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9968 "mrbgems/mruby-compiler/core/y.tab.c" break; case 391: /* opt_block_param: none */ -#line 3684 "mrbgems/mruby-compiler/core/parse.y" +#line 3683 "mrbgems/mruby-compiler/core/parse.y" { local_add_blk(p); (yyval.nd) = 0; } -#line 9980 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9977 "mrbgems/mruby-compiler/core/y.tab.c" break; case 392: /* opt_block_param: block_param_def */ -#line 3689 "mrbgems/mruby-compiler/core/parse.y" +#line 3688 "mrbgems/mruby-compiler/core/parse.y" { p->cmd_start = TRUE; (yyval.nd) = (yyvsp[0].nd); } -#line 9989 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9986 "mrbgems/mruby-compiler/core/y.tab.c" break; case 393: /* $@27: %empty */ -#line 3695 "mrbgems/mruby-compiler/core/parse.y" +#line 3694 "mrbgems/mruby-compiler/core/parse.y" {local_add_blk(p);} -#line 9995 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9992 "mrbgems/mruby-compiler/core/y.tab.c" break; case 394: /* block_param_def: '|' $@27 opt_bv_decl '|' */ -#line 3696 "mrbgems/mruby-compiler/core/parse.y" +#line 3695 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = 0; } -#line 10003 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10000 "mrbgems/mruby-compiler/core/y.tab.c" break; case 395: /* block_param_def: "||" */ -#line 3700 "mrbgems/mruby-compiler/core/parse.y" +#line 3699 "mrbgems/mruby-compiler/core/parse.y" { local_add_blk(p); (yyval.nd) = 0; } -#line 10012 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10009 "mrbgems/mruby-compiler/core/y.tab.c" break; case 396: /* block_param_def: '|' block_param opt_bv_decl '|' */ -#line 3705 "mrbgems/mruby-compiler/core/parse.y" +#line 3704 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-2].nd); } -#line 10020 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10017 "mrbgems/mruby-compiler/core/y.tab.c" break; case 397: /* opt_bv_decl: opt_nl */ -#line 3711 "mrbgems/mruby-compiler/core/parse.y" +#line 3710 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = 0; } -#line 10028 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10025 "mrbgems/mruby-compiler/core/y.tab.c" break; case 398: /* opt_bv_decl: opt_nl ';' bv_decls opt_nl */ -#line 3715 "mrbgems/mruby-compiler/core/parse.y" +#line 3714 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = 0; } -#line 10036 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10033 "mrbgems/mruby-compiler/core/y.tab.c" break; case 401: /* bvar: "local variable or method" */ -#line 3725 "mrbgems/mruby-compiler/core/parse.y" +#line 3724 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, (yyvsp[0].id)); new_bv(p, (yyvsp[0].id)); } -#line 10045 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10042 "mrbgems/mruby-compiler/core/y.tab.c" break; case 403: /* f_larglist: '(' f_args opt_bv_decl ')' */ -#line 3733 "mrbgems/mruby-compiler/core/parse.y" +#line 3732 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-2].nd); } -#line 10053 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10050 "mrbgems/mruby-compiler/core/y.tab.c" break; case 404: /* f_larglist: f_args */ -#line 3737 "mrbgems/mruby-compiler/core/parse.y" +#line 3736 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 10061 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10058 "mrbgems/mruby-compiler/core/y.tab.c" break; case 405: /* lambda_body: tLAMBEG compstmt '}' */ -#line 3743 "mrbgems/mruby-compiler/core/parse.y" +#line 3742 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 10069 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10066 "mrbgems/mruby-compiler/core/y.tab.c" break; case 406: /* lambda_body: "'do' for lambda" bodystmt "'end'" */ -#line 3747 "mrbgems/mruby-compiler/core/parse.y" +#line 3746 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 10077 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10074 "mrbgems/mruby-compiler/core/y.tab.c" break; case 407: /* @28: %empty */ -#line 3753 "mrbgems/mruby-compiler/core/parse.y" +#line 3752 "mrbgems/mruby-compiler/core/parse.y" { local_nest(p); nvars_nest(p); (yyval.num) = p->lineno; } -#line 10087 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10084 "mrbgems/mruby-compiler/core/y.tab.c" break; case 408: /* do_block: "'do' for block" @28 opt_block_param bodystmt "'end'" */ -#line 3761 "mrbgems/mruby-compiler/core/parse.y" +#line 3760 "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 10098 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10095 "mrbgems/mruby-compiler/core/y.tab.c" break; case 409: /* block_call: command do_block */ -#line 3770 "mrbgems/mruby-compiler/core/parse.y" +#line 3769 "mrbgems/mruby-compiler/core/parse.y" { call_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd)); (yyval.nd) = (yyvsp[-1].nd); } -#line 10107 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10104 "mrbgems/mruby-compiler/core/y.tab.c" break; case 410: /* block_call: block_call call_op2 operation2 opt_paren_args */ -#line 3775 "mrbgems/mruby-compiler/core/parse.y" +#line 3774 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num)); } -#line 10115 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10112 "mrbgems/mruby-compiler/core/y.tab.c" break; case 411: /* block_call: block_call call_op2 operation2 opt_paren_args brace_block */ -#line 3779 "mrbgems/mruby-compiler/core/parse.y" +#line 3778 "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 10124 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10121 "mrbgems/mruby-compiler/core/y.tab.c" break; case 412: /* block_call: block_call call_op2 operation2 command_args do_block */ -#line 3784 "mrbgems/mruby-compiler/core/parse.y" +#line 3783 "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 10133 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10130 "mrbgems/mruby-compiler/core/y.tab.c" break; case 413: /* method_call: operation paren_args */ -#line 3791 "mrbgems/mruby-compiler/core/parse.y" +#line 3790 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_fcall(p, (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 10141 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10138 "mrbgems/mruby-compiler/core/y.tab.c" break; case 414: /* method_call: primary_value call_op operation2 opt_paren_args */ -#line 3795 "mrbgems/mruby-compiler/core/parse.y" +#line 3794 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num)); } -#line 10149 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10146 "mrbgems/mruby-compiler/core/y.tab.c" break; case 415: /* method_call: primary_value "::" operation2 paren_args */ -#line 3799 "mrbgems/mruby-compiler/core/parse.y" +#line 3798 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), tCOLON2); } -#line 10157 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10154 "mrbgems/mruby-compiler/core/y.tab.c" break; case 416: /* method_call: primary_value "::" operation3 */ -#line 3803 "mrbgems/mruby-compiler/core/parse.y" +#line 3802 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2); } -#line 10165 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10162 "mrbgems/mruby-compiler/core/y.tab.c" break; case 417: /* method_call: primary_value call_op paren_args */ -#line 3807 "mrbgems/mruby-compiler/core/parse.y" +#line 3806 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-2].nd), MRB_SYM(call), (yyvsp[0].nd), (yyvsp[-1].num)); } -#line 10173 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10170 "mrbgems/mruby-compiler/core/y.tab.c" break; case 418: /* method_call: primary_value "::" paren_args */ -#line 3811 "mrbgems/mruby-compiler/core/parse.y" +#line 3810 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-2].nd), MRB_SYM(call), (yyvsp[0].nd), tCOLON2); } -#line 10181 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10178 "mrbgems/mruby-compiler/core/y.tab.c" break; case 419: /* method_call: "'super'" paren_args */ -#line 3815 "mrbgems/mruby-compiler/core/parse.y" +#line 3814 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_super(p, (yyvsp[0].nd)); } -#line 10189 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10186 "mrbgems/mruby-compiler/core/y.tab.c" break; case 420: /* method_call: "'super'" */ -#line 3819 "mrbgems/mruby-compiler/core/parse.y" +#line 3818 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_zsuper(p); } -#line 10197 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10194 "mrbgems/mruby-compiler/core/y.tab.c" break; case 421: /* method_call: primary_value '[' opt_call_args ']' */ -#line 3823 "mrbgems/mruby-compiler/core/parse.y" +#line 3822 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.'); } -#line 10205 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10202 "mrbgems/mruby-compiler/core/y.tab.c" break; case 422: /* @29: %empty */ -#line 3829 "mrbgems/mruby-compiler/core/parse.y" +#line 3828 "mrbgems/mruby-compiler/core/parse.y" { local_nest(p); nvars_nest(p); (yyval.num) = p->lineno; } -#line 10215 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10212 "mrbgems/mruby-compiler/core/y.tab.c" break; case 423: /* brace_block: '{' @29 opt_block_param compstmt '}' */ -#line 3836 "mrbgems/mruby-compiler/core/parse.y" +#line 3835 "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 10226 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10223 "mrbgems/mruby-compiler/core/y.tab.c" break; case 424: /* @30: %empty */ -#line 3843 "mrbgems/mruby-compiler/core/parse.y" +#line 3842 "mrbgems/mruby-compiler/core/parse.y" { local_nest(p); nvars_nest(p); (yyval.num) = p->lineno; } -#line 10236 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10233 "mrbgems/mruby-compiler/core/y.tab.c" break; case 425: /* brace_block: "'do'" @30 opt_block_param bodystmt "'end'" */ -#line 3850 "mrbgems/mruby-compiler/core/parse.y" +#line 3849 "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 10247 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10244 "mrbgems/mruby-compiler/core/y.tab.c" break; case 426: /* case_body: "'when'" args then compstmt cases */ -#line 3861 "mrbgems/mruby-compiler/core/parse.y" +#line 3860 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(cons((yyvsp[-3].nd), (yyvsp[-1].nd)), (yyvsp[0].nd)); } -#line 10255 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10252 "mrbgems/mruby-compiler/core/y.tab.c" break; case 427: /* cases: opt_else */ -#line 3867 "mrbgems/mruby-compiler/core/parse.y" +#line 3866 "mrbgems/mruby-compiler/core/parse.y" { if ((yyvsp[0].nd)) { (yyval.nd) = cons(cons(0, (yyvsp[0].nd)), 0); @@ -10263,622 +10261,622 @@ yyreduce: (yyval.nd) = 0; } } -#line 10268 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10265 "mrbgems/mruby-compiler/core/y.tab.c" break; case 429: /* in_clauses: opt_else */ -#line 3881 "mrbgems/mruby-compiler/core/parse.y" +#line 3880 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd) ? list1(new_in(p, NULL, NULL, (yyvsp[0].nd), FALSE)) : 0; } -#line 10276 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10273 "mrbgems/mruby-compiler/core/y.tab.c" break; case 430: /* $@31: %empty */ -#line 3884 "mrbgems/mruby-compiler/core/parse.y" +#line 3883 "mrbgems/mruby-compiler/core/parse.y" {p->in_kwarg--;} -#line 10282 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10279 "mrbgems/mruby-compiler/core/y.tab.c" break; case 431: /* in_clauses: "'in'" p_expr $@31 then compstmt in_clauses */ -#line 3885 "mrbgems/mruby-compiler/core/parse.y" +#line 3884 "mrbgems/mruby-compiler/core/parse.y" { node *in_clause = new_in(p, (yyvsp[-4].nd), NULL, (yyvsp[-1].nd), FALSE); (yyval.nd) = cons(in_clause, (yyvsp[0].nd)); } -#line 10291 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10288 "mrbgems/mruby-compiler/core/y.tab.c" break; case 432: /* $@32: %empty */ -#line 3889 "mrbgems/mruby-compiler/core/parse.y" +#line 3888 "mrbgems/mruby-compiler/core/parse.y" {p->in_kwarg--;} -#line 10297 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10294 "mrbgems/mruby-compiler/core/y.tab.c" break; case 433: /* in_clauses: "'in'" p_expr $@32 "'if' modifier" expr_value then compstmt in_clauses */ -#line 3890 "mrbgems/mruby-compiler/core/parse.y" +#line 3889 "mrbgems/mruby-compiler/core/parse.y" { node *in_clause = new_in(p, (yyvsp[-6].nd), (yyvsp[-3].nd), (yyvsp[-1].nd), FALSE); (yyval.nd) = cons(in_clause, (yyvsp[0].nd)); } -#line 10306 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10303 "mrbgems/mruby-compiler/core/y.tab.c" break; case 434: /* $@33: %empty */ -#line 3894 "mrbgems/mruby-compiler/core/parse.y" +#line 3893 "mrbgems/mruby-compiler/core/parse.y" {p->in_kwarg--;} -#line 10312 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10309 "mrbgems/mruby-compiler/core/y.tab.c" break; case 435: /* in_clauses: "'in'" p_expr $@33 "'unless' modifier" expr_value then compstmt in_clauses */ -#line 3895 "mrbgems/mruby-compiler/core/parse.y" +#line 3894 "mrbgems/mruby-compiler/core/parse.y" { node *in_clause = new_in(p, (yyvsp[-6].nd), (yyvsp[-3].nd), (yyvsp[-1].nd), TRUE); (yyval.nd) = cons(in_clause, (yyvsp[0].nd)); } -#line 10321 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10318 "mrbgems/mruby-compiler/core/y.tab.c" break; case 437: /* p_expr: p_args_head p_as */ -#line 3906 "mrbgems/mruby-compiler/core/parse.y" +#line 3905 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_array(p, push((yyvsp[-1].nd), (yyvsp[0].nd)), 0, 0); } -#line 10329 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10326 "mrbgems/mruby-compiler/core/y.tab.c" break; case 438: /* p_expr: p_args_head p_rest */ -#line 3910 "mrbgems/mruby-compiler/core/parse.y" +#line 3909 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_array(p, (yyvsp[-1].nd), (yyvsp[0].nd), 0); } -#line 10337 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10334 "mrbgems/mruby-compiler/core/y.tab.c" break; case 439: /* p_expr: p_args_head p_rest ',' p_args_post */ -#line 3914 "mrbgems/mruby-compiler/core/parse.y" +#line 3913 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_array(p, (yyvsp[-3].nd), (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 10345 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10342 "mrbgems/mruby-compiler/core/y.tab.c" break; case 440: /* p_expr: p_rest */ -#line 3918 "mrbgems/mruby-compiler/core/parse.y" +#line 3917 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_array(p, 0, (yyvsp[0].nd), 0); } -#line 10353 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10350 "mrbgems/mruby-compiler/core/y.tab.c" break; case 441: /* p_expr: p_rest ',' p_args_post */ -#line 3922 "mrbgems/mruby-compiler/core/parse.y" +#line 3921 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_array(p, 0, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 10361 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10358 "mrbgems/mruby-compiler/core/y.tab.c" break; case 442: /* p_expr: p_hash_elems */ -#line 3926 "mrbgems/mruby-compiler/core/parse.y" +#line 3925 "mrbgems/mruby-compiler/core/parse.y" { /* Brace-less hash pattern: in a:, b: x */ (yyval.nd) = new_pat_hash(p, (yyvsp[0].nd), 0); } -#line 10370 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10367 "mrbgems/mruby-compiler/core/y.tab.c" break; case 443: /* p_expr: p_hash_elems ',' p_kwrest */ -#line 3931 "mrbgems/mruby-compiler/core/parse.y" +#line 3930 "mrbgems/mruby-compiler/core/parse.y" { /* Brace-less hash pattern with kwrest: in a:, **rest */ (yyval.nd) = new_pat_hash(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 10379 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10376 "mrbgems/mruby-compiler/core/y.tab.c" break; case 444: /* p_expr: p_kwrest */ -#line 3936 "mrbgems/mruby-compiler/core/parse.y" +#line 3935 "mrbgems/mruby-compiler/core/parse.y" { /* Brace-less kwrest only: in **rest */ (yyval.nd) = new_pat_hash(p, 0, (yyvsp[0].nd)); } -#line 10388 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10385 "mrbgems/mruby-compiler/core/y.tab.c" break; case 445: /* p_args_head: p_as ',' */ -#line 3944 "mrbgems/mruby-compiler/core/parse.y" +#line 3943 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[-1].nd)); } -#line 10396 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10393 "mrbgems/mruby-compiler/core/y.tab.c" break; case 446: /* p_args_head: p_args_head p_as ',' */ -#line 3948 "mrbgems/mruby-compiler/core/parse.y" +#line 3947 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[-1].nd)); } -#line 10404 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10401 "mrbgems/mruby-compiler/core/y.tab.c" break; case 447: /* p_args_post: p_as */ -#line 3955 "mrbgems/mruby-compiler/core/parse.y" +#line 3954 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10412 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10409 "mrbgems/mruby-compiler/core/y.tab.c" break; case 448: /* p_args_post: p_args_post ',' p_as */ -#line 3959 "mrbgems/mruby-compiler/core/parse.y" +#line 3958 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 10420 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10417 "mrbgems/mruby-compiler/core/y.tab.c" break; case 450: /* p_as: p_alt "=>" "local variable or method" */ -#line 3966 "mrbgems/mruby-compiler/core/parse.y" +#line 3965 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_as(p, (yyvsp[-2].nd), (yyvsp[0].id)); } -#line 10428 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10425 "mrbgems/mruby-compiler/core/y.tab.c" break; case 452: /* p_alt: p_alt '|' p_value */ -#line 3973 "mrbgems/mruby-compiler/core/parse.y" +#line 3972 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_alt(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 10436 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10433 "mrbgems/mruby-compiler/core/y.tab.c" break; case 454: /* p_value: numeric */ -#line 3980 "mrbgems/mruby-compiler/core/parse.y" +#line 3979 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_value(p, (yyvsp[0].nd)); } -#line 10444 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10441 "mrbgems/mruby-compiler/core/y.tab.c" break; case 455: /* p_value: symbol */ -#line 3984 "mrbgems/mruby-compiler/core/parse.y" +#line 3983 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_value(p, (yyvsp[0].nd)); } -#line 10452 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10449 "mrbgems/mruby-compiler/core/y.tab.c" break; case 456: /* p_value: tSTRING */ -#line 3988 "mrbgems/mruby-compiler/core/parse.y" +#line 3987 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_value(p, new_str(p, list1((yyvsp[0].nd)))); } -#line 10460 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10457 "mrbgems/mruby-compiler/core/y.tab.c" break; case 457: /* p_value: "'nil'" */ -#line 3992 "mrbgems/mruby-compiler/core/parse.y" +#line 3991 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_value(p, new_nil(p)); } -#line 10468 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10465 "mrbgems/mruby-compiler/core/y.tab.c" break; case 458: /* p_value: "'true'" */ -#line 3996 "mrbgems/mruby-compiler/core/parse.y" +#line 3995 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_value(p, new_true(p)); } -#line 10476 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10473 "mrbgems/mruby-compiler/core/y.tab.c" break; case 459: /* p_value: "'false'" */ -#line 4000 "mrbgems/mruby-compiler/core/parse.y" +#line 3999 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_value(p, new_false(p)); } -#line 10484 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10481 "mrbgems/mruby-compiler/core/y.tab.c" break; case 460: /* p_value: p_const */ -#line 4004 "mrbgems/mruby-compiler/core/parse.y" +#line 4003 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_value(p, (yyvsp[0].nd)); } -#line 10492 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10489 "mrbgems/mruby-compiler/core/y.tab.c" break; case 463: /* p_value: '^' "local variable or method" */ -#line 4010 "mrbgems/mruby-compiler/core/parse.y" +#line 4009 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_pin(p, (yyvsp[0].id)); } -#line 10500 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10497 "mrbgems/mruby-compiler/core/y.tab.c" break; case 464: /* p_array: "[" p_array_body ']' */ -#line 4017 "mrbgems/mruby-compiler/core/parse.y" +#line 4016 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 10508 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10505 "mrbgems/mruby-compiler/core/y.tab.c" break; case 465: /* p_array: "[" ']' */ -#line 4021 "mrbgems/mruby-compiler/core/parse.y" +#line 4020 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_array(p, 0, 0, 0); } -#line 10516 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10513 "mrbgems/mruby-compiler/core/y.tab.c" break; case 466: /* p_array_body: p_array_elems */ -#line 4028 "mrbgems/mruby-compiler/core/parse.y" +#line 4027 "mrbgems/mruby-compiler/core/parse.y" { /* Just pre elements, no rest */ (yyval.nd) = new_pat_array(p, (yyvsp[0].nd), 0, 0); } -#line 10525 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10522 "mrbgems/mruby-compiler/core/y.tab.c" break; case 467: /* p_array_body: p_array_elems ',' p_rest */ -#line 4033 "mrbgems/mruby-compiler/core/parse.y" +#line 4032 "mrbgems/mruby-compiler/core/parse.y" { /* Pre elements + rest, no post */ (yyval.nd) = new_pat_array(p, (yyvsp[-2].nd), (yyvsp[0].nd), 0); } -#line 10534 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10531 "mrbgems/mruby-compiler/core/y.tab.c" break; case 468: /* p_array_body: p_array_elems ',' p_rest ',' p_array_elems */ -#line 4038 "mrbgems/mruby-compiler/core/parse.y" +#line 4037 "mrbgems/mruby-compiler/core/parse.y" { /* Pre + rest + post */ (yyval.nd) = new_pat_array(p, (yyvsp[-4].nd), (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 10543 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10540 "mrbgems/mruby-compiler/core/y.tab.c" break; case 469: /* p_array_body: p_rest */ -#line 4043 "mrbgems/mruby-compiler/core/parse.y" +#line 4042 "mrbgems/mruby-compiler/core/parse.y" { /* Just rest, no pre or post */ (yyval.nd) = new_pat_array(p, 0, (yyvsp[0].nd), 0); } -#line 10552 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10549 "mrbgems/mruby-compiler/core/y.tab.c" break; case 470: /* p_array_body: p_rest ',' p_array_elems */ -#line 4048 "mrbgems/mruby-compiler/core/parse.y" +#line 4047 "mrbgems/mruby-compiler/core/parse.y" { /* Rest + post, no pre */ (yyval.nd) = new_pat_array(p, 0, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 10561 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10558 "mrbgems/mruby-compiler/core/y.tab.c" break; case 471: /* p_array_body: p_rest ',' p_array_elems ',' p_rest */ -#line 4053 "mrbgems/mruby-compiler/core/parse.y" +#line 4052 "mrbgems/mruby-compiler/core/parse.y" { /* Find pattern: [*pre, elems, *post] */ (yyval.nd) = new_pat_find(p, (yyvsp[-4].nd), (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 10570 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10567 "mrbgems/mruby-compiler/core/y.tab.c" break; case 472: /* p_array_elems: p_as */ -#line 4061 "mrbgems/mruby-compiler/core/parse.y" +#line 4060 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10578 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10575 "mrbgems/mruby-compiler/core/y.tab.c" break; case 473: /* p_array_elems: p_array_elems ',' p_as */ -#line 4065 "mrbgems/mruby-compiler/core/parse.y" +#line 4064 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 10586 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10583 "mrbgems/mruby-compiler/core/y.tab.c" break; case 474: /* p_rest: "*" "local variable or method" */ -#line 4072 "mrbgems/mruby-compiler/core/parse.y" +#line 4071 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_var(p, (yyvsp[0].id)); } -#line 10594 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10591 "mrbgems/mruby-compiler/core/y.tab.c" break; case 475: /* p_rest: "*" */ -#line 4076 "mrbgems/mruby-compiler/core/parse.y" +#line 4075 "mrbgems/mruby-compiler/core/parse.y" { /* Anonymous rest pattern */ (yyval.nd) = (node*)-1; } -#line 10603 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10600 "mrbgems/mruby-compiler/core/y.tab.c" break; case 476: /* p_const: "constant" */ -#line 4084 "mrbgems/mruby-compiler/core/parse.y" +#line 4083 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_const(p, (yyvsp[0].id)); } -#line 10611 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10608 "mrbgems/mruby-compiler/core/y.tab.c" break; case 477: /* p_const: p_const "::" "constant" */ -#line 4088 "mrbgems/mruby-compiler/core/parse.y" +#line 4087 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id)); } -#line 10619 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10616 "mrbgems/mruby-compiler/core/y.tab.c" break; case 478: /* p_const: tCOLON3 "constant" */ -#line 4092 "mrbgems/mruby-compiler/core/parse.y" +#line 4091 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_colon3(p, (yyvsp[0].id)); } -#line 10627 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10624 "mrbgems/mruby-compiler/core/y.tab.c" break; case 479: /* p_hash: tLBRACE p_hash_body '}' */ -#line 4099 "mrbgems/mruby-compiler/core/parse.y" +#line 4098 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 10635 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10632 "mrbgems/mruby-compiler/core/y.tab.c" break; case 480: /* p_hash: tLBRACE '}' */ -#line 4103 "mrbgems/mruby-compiler/core/parse.y" +#line 4102 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_hash(p, 0, 0); } -#line 10643 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10640 "mrbgems/mruby-compiler/core/y.tab.c" break; case 481: /* p_hash_body: p_hash_elems */ -#line 4110 "mrbgems/mruby-compiler/core/parse.y" +#line 4109 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_hash(p, (yyvsp[0].nd), 0); } -#line 10651 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10648 "mrbgems/mruby-compiler/core/y.tab.c" break; case 482: /* p_hash_body: p_hash_elems ',' p_kwrest */ -#line 4114 "mrbgems/mruby-compiler/core/parse.y" +#line 4113 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_hash(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 10659 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10656 "mrbgems/mruby-compiler/core/y.tab.c" break; case 483: /* p_hash_body: p_kwrest */ -#line 4118 "mrbgems/mruby-compiler/core/parse.y" +#line 4117 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_hash(p, 0, (yyvsp[0].nd)); } -#line 10667 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10664 "mrbgems/mruby-compiler/core/y.tab.c" break; case 484: /* p_hash_elems: p_hash_elem */ -#line 4125 "mrbgems/mruby-compiler/core/parse.y" +#line 4124 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10675 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10672 "mrbgems/mruby-compiler/core/y.tab.c" break; case 485: /* p_hash_elems: p_hash_elems ',' p_hash_elem */ -#line 4129 "mrbgems/mruby-compiler/core/parse.y" +#line 4128 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 10683 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10680 "mrbgems/mruby-compiler/core/y.tab.c" break; case 486: /* p_hash_elem: "local variable or method" "label" p_as */ -#line 4138 "mrbgems/mruby-compiler/core/parse.y" +#line 4137 "mrbgems/mruby-compiler/core/parse.y" { /* {key: pattern} */ (yyval.nd) = cons(new_sym(p, (yyvsp[-2].id)), (yyvsp[0].nd)); } -#line 10692 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10689 "mrbgems/mruby-compiler/core/y.tab.c" break; case 487: /* p_hash_elem: "local variable or method" "label" */ -#line 4143 "mrbgems/mruby-compiler/core/parse.y" +#line 4142 "mrbgems/mruby-compiler/core/parse.y" { /* {key:} shorthand - binds to variable with same name */ (yyval.nd) = cons(new_sym(p, (yyvsp[-1].id)), new_pat_var(p, (yyvsp[-1].id))); } -#line 10701 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10698 "mrbgems/mruby-compiler/core/y.tab.c" break; case 488: /* p_kwrest: "**" "local variable or method" */ -#line 4151 "mrbgems/mruby-compiler/core/parse.y" +#line 4150 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_var(p, (yyvsp[0].id)); } -#line 10709 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10706 "mrbgems/mruby-compiler/core/y.tab.c" break; case 489: /* p_kwrest: "**" "'nil'" */ -#line 4155 "mrbgems/mruby-compiler/core/parse.y" +#line 4154 "mrbgems/mruby-compiler/core/parse.y" { /* **nil - exact match, no extra keys allowed */ (yyval.nd) = (node*)-1; } -#line 10718 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10715 "mrbgems/mruby-compiler/core/y.tab.c" break; case 490: /* p_kwrest: "**" */ -#line 4160 "mrbgems/mruby-compiler/core/parse.y" +#line 4159 "mrbgems/mruby-compiler/core/parse.y" { /* ** - anonymous rest, discards extra keys */ (yyval.nd) = (node*)-2; } -#line 10727 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10724 "mrbgems/mruby-compiler/core/y.tab.c" break; case 491: /* p_var: "local variable or method" */ -#line 4167 "mrbgems/mruby-compiler/core/parse.y" +#line 4166 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_pat_var(p, (yyvsp[0].id)); } -#line 10735 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10732 "mrbgems/mruby-compiler/core/y.tab.c" break; case 492: /* opt_rescue: "'rescue'" exc_list exc_var then compstmt opt_rescue */ -#line 4175 "mrbgems/mruby-compiler/core/parse.y" +#line 4174 "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 10744 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10741 "mrbgems/mruby-compiler/core/y.tab.c" break; case 494: /* exc_list: arg */ -#line 4183 "mrbgems/mruby-compiler/core/parse.y" +#line 4182 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10752 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10749 "mrbgems/mruby-compiler/core/y.tab.c" break; case 497: /* exc_var: "=>" lhs */ -#line 4191 "mrbgems/mruby-compiler/core/parse.y" +#line 4190 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 10760 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10757 "mrbgems/mruby-compiler/core/y.tab.c" break; case 499: /* opt_ensure: "'ensure'" compstmt */ -#line 4198 "mrbgems/mruby-compiler/core/parse.y" +#line 4197 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 10768 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10765 "mrbgems/mruby-compiler/core/y.tab.c" break; case 506: /* string: string string_fragment */ -#line 4212 "mrbgems/mruby-compiler/core/parse.y" +#line 4211 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = append((yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 10776 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10773 "mrbgems/mruby-compiler/core/y.tab.c" break; case 507: /* string_fragment: "character literal" */ -#line 4218 "mrbgems/mruby-compiler/core/parse.y" +#line 4217 "mrbgems/mruby-compiler/core/parse.y" { /* tCHAR is (len . str), wrap as cons list */ (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10785 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10782 "mrbgems/mruby-compiler/core/y.tab.c" break; case 508: /* string_fragment: tSTRING */ -#line 4223 "mrbgems/mruby-compiler/core/parse.y" +#line 4222 "mrbgems/mruby-compiler/core/parse.y" { /* tSTRING is (len . str), wrap as cons list */ (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10794 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10791 "mrbgems/mruby-compiler/core/y.tab.c" break; case 509: /* string_fragment: "string literal" tSTRING */ -#line 4228 "mrbgems/mruby-compiler/core/parse.y" +#line 4227 "mrbgems/mruby-compiler/core/parse.y" { /* $2 is (len . str), wrap as cons list */ (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10803 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10800 "mrbgems/mruby-compiler/core/y.tab.c" break; case 510: /* string_fragment: "string literal" string_rep tSTRING */ -#line 4233 "mrbgems/mruby-compiler/core/parse.y" +#line 4232 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 10811 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10808 "mrbgems/mruby-compiler/core/y.tab.c" break; case 512: /* string_rep: string_rep string_interp */ -#line 4240 "mrbgems/mruby-compiler/core/parse.y" +#line 4239 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = append((yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 10819 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10816 "mrbgems/mruby-compiler/core/y.tab.c" break; case 513: /* string_interp: tSTRING_MID */ -#line 4246 "mrbgems/mruby-compiler/core/parse.y" +#line 4245 "mrbgems/mruby-compiler/core/parse.y" { /* $1 is already in (len . str) format */ (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10828 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10825 "mrbgems/mruby-compiler/core/y.tab.c" break; case 514: /* @34: %empty */ -#line 4251 "mrbgems/mruby-compiler/core/parse.y" +#line 4250 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push_strterm(p); } -#line 10836 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10833 "mrbgems/mruby-compiler/core/y.tab.c" break; case 515: /* string_interp: tSTRING_PART @34 compstmt '}' */ -#line 4256 "mrbgems/mruby-compiler/core/parse.y" +#line 4255 "mrbgems/mruby-compiler/core/parse.y" { pop_strterm(p,(yyvsp[-2].nd)); /* $1 is already in (len . str) format, create (-1 . node) for expression */ node *expr_elem = cons(int_to_node(-1), (yyvsp[-1].nd)); (yyval.nd) = list2((yyvsp[-3].nd), expr_elem); } -#line 10847 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10844 "mrbgems/mruby-compiler/core/y.tab.c" break; case 516: /* string_interp: tLITERAL_DELIM */ -#line 4263 "mrbgems/mruby-compiler/core/parse.y" +#line 4262 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1(new_literal_delim(p)); } -#line 10855 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10852 "mrbgems/mruby-compiler/core/y.tab.c" break; case 517: /* string_interp: tHD_LITERAL_DELIM heredoc_bodies */ -#line 4267 "mrbgems/mruby-compiler/core/parse.y" +#line 4266 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1(new_literal_delim(p)); } -#line 10863 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10860 "mrbgems/mruby-compiler/core/y.tab.c" break; case 518: /* xstring: tXSTRING_BEG tXSTRING */ -#line 4273 "mrbgems/mruby-compiler/core/parse.y" +#line 4272 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons((yyvsp[0].nd), (node*)NULL); } -#line 10871 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10868 "mrbgems/mruby-compiler/core/y.tab.c" break; case 519: /* xstring: tXSTRING_BEG string_rep tXSTRING */ -#line 4277 "mrbgems/mruby-compiler/core/parse.y" +#line 4276 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 10879 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10876 "mrbgems/mruby-compiler/core/y.tab.c" break; case 520: /* regexp: tREGEXP_BEG tREGEXP */ -#line 4283 "mrbgems/mruby-compiler/core/parse.y" +#line 4282 "mrbgems/mruby-compiler/core/parse.y" { node *data = (yyvsp[0].nd); /* ((len . pattern) . (flags . encoding)) */ const char *flags = (const char*)data->cdr->car; @@ -10887,11 +10885,11 @@ yyreduce: node *pattern_list = cons(data->car, (node*)NULL); (yyval.nd) = new_regx(p, pattern_list, flags, encoding); } -#line 10892 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10889 "mrbgems/mruby-compiler/core/y.tab.c" break; case 521: /* regexp: tREGEXP_BEG string_rep tREGEXP */ -#line 4292 "mrbgems/mruby-compiler/core/parse.y" +#line 4291 "mrbgems/mruby-compiler/core/parse.y" { node *data = (yyvsp[0].nd); /* ((len . pattern) . (flags . encoding)) */ const char *flags = (const char*)data->cdr->car; @@ -10900,47 +10898,47 @@ yyreduce: node *complete_list = push((yyvsp[-1].nd), data->car); (yyval.nd) = new_regx(p, complete_list, flags, encoding); } -#line 10905 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10902 "mrbgems/mruby-compiler/core/y.tab.c" break; case 525: /* heredoc_body: tHEREDOC_END */ -#line 4310 "mrbgems/mruby-compiler/core/parse.y" +#line 4309 "mrbgems/mruby-compiler/core/parse.y" { parser_heredoc_info *info = parsing_heredoc_info(p); info->doc = push(info->doc, new_str_empty(p)); heredoc_end(p); } -#line 10915 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10912 "mrbgems/mruby-compiler/core/y.tab.c" break; case 526: /* heredoc_body: heredoc_string_rep tHEREDOC_END */ -#line 4316 "mrbgems/mruby-compiler/core/parse.y" +#line 4315 "mrbgems/mruby-compiler/core/parse.y" { heredoc_end(p); } -#line 10923 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10920 "mrbgems/mruby-compiler/core/y.tab.c" break; case 529: /* heredoc_string_interp: tHD_STRING_MID */ -#line 4326 "mrbgems/mruby-compiler/core/parse.y" +#line 4325 "mrbgems/mruby-compiler/core/parse.y" { parser_heredoc_info *info = parsing_heredoc_info(p); info->doc = push(info->doc, (yyvsp[0].nd)); heredoc_treat_nextline(p); } -#line 10933 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10930 "mrbgems/mruby-compiler/core/y.tab.c" break; case 530: /* @35: %empty */ -#line 4332 "mrbgems/mruby-compiler/core/parse.y" +#line 4331 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push_strterm(p); } -#line 10941 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10938 "mrbgems/mruby-compiler/core/y.tab.c" break; case 531: /* heredoc_string_interp: tHD_STRING_PART @35 compstmt '}' */ -#line 4337 "mrbgems/mruby-compiler/core/parse.y" +#line 4336 "mrbgems/mruby-compiler/core/parse.y" { pop_strterm(p, (yyvsp[-2].nd)); parser_heredoc_info *info = parsing_heredoc_info(p); @@ -10948,37 +10946,37 @@ yyreduce: node *expr_elem = cons(int_to_node(-1), (yyvsp[-1].nd)); info->doc = push(push(info->doc, (yyvsp[-3].nd)), expr_elem); } -#line 10953 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10950 "mrbgems/mruby-compiler/core/y.tab.c" break; case 532: /* words: tWORDS_BEG tSTRING */ -#line 4347 "mrbgems/mruby-compiler/core/parse.y" +#line 4346 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_words(p, list1((yyvsp[0].nd))); } -#line 10961 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10958 "mrbgems/mruby-compiler/core/y.tab.c" break; case 533: /* words: tWORDS_BEG string_rep tSTRING */ -#line 4351 "mrbgems/mruby-compiler/core/parse.y" +#line 4350 "mrbgems/mruby-compiler/core/parse.y" { node *n = (yyvsp[-1].nd); n = push(n, (yyvsp[0].nd)); (yyval.nd) = new_words(p, n); } -#line 10971 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10968 "mrbgems/mruby-compiler/core/y.tab.c" break; case 534: /* symbol: basic_symbol */ -#line 4359 "mrbgems/mruby-compiler/core/parse.y" +#line 4358 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_sym(p, (yyvsp[0].id)); } -#line 10979 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10976 "mrbgems/mruby-compiler/core/y.tab.c" break; case 535: /* symbol: "symbol" "string literal" string_rep tSTRING */ -#line 4363 "mrbgems/mruby-compiler/core/parse.y" +#line 4362 "mrbgems/mruby-compiler/core/parse.y" { node *n = (yyvsp[-1].nd); p->lstate = EXPR_ENDARG; @@ -10990,183 +10988,183 @@ yyreduce: } (yyval.nd) = new_dsym(p, n); } -#line 10995 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10992 "mrbgems/mruby-compiler/core/y.tab.c" break; case 536: /* symbol: "symbol" "numbered parameter" */ -#line 4375 "mrbgems/mruby-compiler/core/parse.y" +#line 4374 "mrbgems/mruby-compiler/core/parse.y" { mrb_sym sym = intern_numparam((yyvsp[0].num)); (yyval.nd) = new_sym(p, sym); } -#line 11004 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11001 "mrbgems/mruby-compiler/core/y.tab.c" break; case 537: /* basic_symbol: "symbol" sym */ -#line 4382 "mrbgems/mruby-compiler/core/parse.y" +#line 4381 "mrbgems/mruby-compiler/core/parse.y" { p->lstate = EXPR_END; (yyval.id) = (yyvsp[0].id); } -#line 11013 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11010 "mrbgems/mruby-compiler/core/y.tab.c" break; case 542: /* sym: tSTRING */ -#line 4393 "mrbgems/mruby-compiler/core/parse.y" +#line 4392 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = new_strsym(p, (yyvsp[0].nd)); } -#line 11021 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11018 "mrbgems/mruby-compiler/core/y.tab.c" break; case 543: /* sym: "string literal" tSTRING */ -#line 4397 "mrbgems/mruby-compiler/core/parse.y" +#line 4396 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = new_strsym(p, (yyvsp[0].nd)); } -#line 11029 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11026 "mrbgems/mruby-compiler/core/y.tab.c" break; case 544: /* symbols: tSYMBOLS_BEG tSTRING */ -#line 4403 "mrbgems/mruby-compiler/core/parse.y" +#line 4402 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_symbols(p, list1((yyvsp[0].nd))); } -#line 11037 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11034 "mrbgems/mruby-compiler/core/y.tab.c" break; case 545: /* symbols: tSYMBOLS_BEG string_rep tSTRING */ -#line 4407 "mrbgems/mruby-compiler/core/parse.y" +#line 4406 "mrbgems/mruby-compiler/core/parse.y" { node *n = (yyvsp[-1].nd); n = push(n, (yyvsp[0].nd)); (yyval.nd) = new_symbols(p, n); } -#line 11047 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11044 "mrbgems/mruby-compiler/core/y.tab.c" break; case 548: /* numeric: tUMINUS_NUM "integer literal" */ -#line 4417 "mrbgems/mruby-compiler/core/parse.y" +#line 4416 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_negate(p, (yyvsp[0].nd)); } -#line 11055 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11052 "mrbgems/mruby-compiler/core/y.tab.c" break; case 549: /* numeric: tUMINUS_NUM "float literal" */ -#line 4421 "mrbgems/mruby-compiler/core/parse.y" +#line 4420 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_negate(p, (yyvsp[0].nd)); } -#line 11063 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11060 "mrbgems/mruby-compiler/core/y.tab.c" break; case 550: /* variable: "local variable or method" */ -#line 4427 "mrbgems/mruby-compiler/core/parse.y" +#line 4426 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_lvar(p, (yyvsp[0].id)); } -#line 11071 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11068 "mrbgems/mruby-compiler/core/y.tab.c" break; case 551: /* variable: "instance variable" */ -#line 4431 "mrbgems/mruby-compiler/core/parse.y" +#line 4430 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_ivar(p, (yyvsp[0].id)); } -#line 11079 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11076 "mrbgems/mruby-compiler/core/y.tab.c" break; case 552: /* variable: "global variable" */ -#line 4435 "mrbgems/mruby-compiler/core/parse.y" +#line 4434 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_gvar(p, (yyvsp[0].id)); } -#line 11087 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11084 "mrbgems/mruby-compiler/core/y.tab.c" break; case 553: /* variable: "class variable" */ -#line 4439 "mrbgems/mruby-compiler/core/parse.y" +#line 4438 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_cvar(p, (yyvsp[0].id)); } -#line 11095 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11092 "mrbgems/mruby-compiler/core/y.tab.c" break; case 554: /* variable: "constant" */ -#line 4443 "mrbgems/mruby-compiler/core/parse.y" +#line 4442 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_const(p, (yyvsp[0].id)); } -#line 11103 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11100 "mrbgems/mruby-compiler/core/y.tab.c" break; case 555: /* var_lhs: variable */ -#line 4449 "mrbgems/mruby-compiler/core/parse.y" +#line 4448 "mrbgems/mruby-compiler/core/parse.y" { assignable(p, (yyvsp[0].nd)); } -#line 11111 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11108 "mrbgems/mruby-compiler/core/y.tab.c" break; case 556: /* var_lhs: "numbered parameter" */ -#line 4453 "mrbgems/mruby-compiler/core/parse.y" +#line 4452 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[0]), p, "can't assign to numbered parameter"); } -#line 11119 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11116 "mrbgems/mruby-compiler/core/y.tab.c" break; case 557: /* var_ref: variable */ -#line 4459 "mrbgems/mruby-compiler/core/parse.y" +#line 4458 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = var_reference(p, (yyvsp[0].nd)); } -#line 11127 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11124 "mrbgems/mruby-compiler/core/y.tab.c" break; case 558: /* var_ref: "numbered parameter" */ -#line 4463 "mrbgems/mruby-compiler/core/parse.y" +#line 4462 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_nvar(p, (yyvsp[0].num)); } -#line 11135 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11132 "mrbgems/mruby-compiler/core/y.tab.c" break; case 559: /* var_ref: "'nil'" */ -#line 4467 "mrbgems/mruby-compiler/core/parse.y" +#line 4466 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_nil(p); } -#line 11143 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11140 "mrbgems/mruby-compiler/core/y.tab.c" break; case 560: /* var_ref: "'self'" */ -#line 4471 "mrbgems/mruby-compiler/core/parse.y" +#line 4470 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_self(p); } -#line 11151 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11148 "mrbgems/mruby-compiler/core/y.tab.c" break; case 561: /* var_ref: "'true'" */ -#line 4475 "mrbgems/mruby-compiler/core/parse.y" +#line 4474 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_true(p); } -#line 11159 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11156 "mrbgems/mruby-compiler/core/y.tab.c" break; case 562: /* var_ref: "'false'" */ -#line 4479 "mrbgems/mruby-compiler/core/parse.y" +#line 4478 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_false(p); } -#line 11167 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11164 "mrbgems/mruby-compiler/core/y.tab.c" break; case 563: /* var_ref: "'__FILE__'" */ -#line 4483 "mrbgems/mruby-compiler/core/parse.y" +#line 4482 "mrbgems/mruby-compiler/core/parse.y" { const char *fn = mrb_sym_name_len(p->mrb, p->filename_sym, NULL); if (!fn) { @@ -11174,714 +11172,714 @@ yyreduce: } (yyval.nd) = new_str(p, cons(cons(int_to_node(strlen(fn)), (node*)fn), (node*)NULL)); } -#line 11179 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11176 "mrbgems/mruby-compiler/core/y.tab.c" break; case 564: /* var_ref: "'__LINE__'" */ -#line 4491 "mrbgems/mruby-compiler/core/parse.y" +#line 4490 "mrbgems/mruby-compiler/core/parse.y" { char buf[16]; dump_int(p->lineno, buf); (yyval.nd) = new_int(p, buf, 10, 0); } -#line 11190 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11187 "mrbgems/mruby-compiler/core/y.tab.c" break; case 565: /* var_ref: "'__ENCODING__'" */ -#line 4498 "mrbgems/mruby-compiler/core/parse.y" +#line 4497 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_fcall(p, MRB_SYM(__ENCODING__), 0); } -#line 11198 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11195 "mrbgems/mruby-compiler/core/y.tab.c" break; case 568: /* superclass: %empty */ -#line 4508 "mrbgems/mruby-compiler/core/parse.y" +#line 4507 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = 0; } -#line 11206 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11203 "mrbgems/mruby-compiler/core/y.tab.c" break; case 569: /* $@36: %empty */ -#line 4512 "mrbgems/mruby-compiler/core/parse.y" +#line 4511 "mrbgems/mruby-compiler/core/parse.y" { p->lstate = EXPR_BEG; p->cmd_start = TRUE; } -#line 11215 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11212 "mrbgems/mruby-compiler/core/y.tab.c" break; case 570: /* superclass: '<' $@36 expr_value term */ -#line 4517 "mrbgems/mruby-compiler/core/parse.y" +#line 4516 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 11223 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11220 "mrbgems/mruby-compiler/core/y.tab.c" break; case 573: /* f_arglist_paren: '(' f_args rparen */ -#line 4533 "mrbgems/mruby-compiler/core/parse.y" +#line 4532 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); p->lstate = EXPR_BEG; p->cmd_start = TRUE; } -#line 11233 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11230 "mrbgems/mruby-compiler/core/y.tab.c" break; case 574: /* f_arglist_paren: '(' f_arg ',' tBDOT3 rparen */ -#line 4539 "mrbgems/mruby-compiler/core/parse.y" +#line 4538 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_dots(p, (yyvsp[-3].nd)); } -#line 11241 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11238 "mrbgems/mruby-compiler/core/y.tab.c" break; case 575: /* f_arglist_paren: '(' tBDOT3 rparen */ -#line 4543 "mrbgems/mruby-compiler/core/parse.y" +#line 4542 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_dots(p, 0); } -#line 11249 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11246 "mrbgems/mruby-compiler/core/y.tab.c" break; case 577: /* f_arglist: f_args term */ -#line 4550 "mrbgems/mruby-compiler/core/parse.y" +#line 4549 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 11257 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11254 "mrbgems/mruby-compiler/core/y.tab.c" break; case 578: /* f_arglist: f_arg ',' tBDOT3 term */ -#line 4554 "mrbgems/mruby-compiler/core/parse.y" +#line 4553 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_dots(p, (yyvsp[-3].nd)); } -#line 11265 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11262 "mrbgems/mruby-compiler/core/y.tab.c" break; case 579: /* f_arglist: "..." term */ -#line 4558 "mrbgems/mruby-compiler/core/parse.y" +#line 4557 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_dots(p, 0); } -#line 11273 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11270 "mrbgems/mruby-compiler/core/y.tab.c" break; case 580: /* f_label: "local variable or method" "label" */ -#line 4564 "mrbgems/mruby-compiler/core/parse.y" +#line 4563 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = (yyvsp[-1].id); local_nest(p); - p->lstate = EXPR_ARG; /* make newlines significant after label */ + p->lstate = EXPR_MID; /* make newlines significant after label */ } -#line 11283 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11280 "mrbgems/mruby-compiler/core/y.tab.c" break; case 581: /* f_label: "numbered parameter" "label" */ -#line 4570 "mrbgems/mruby-compiler/core/parse.y" +#line 4569 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_numparam((yyvsp[-1].num)); local_nest(p); - p->lstate = EXPR_ARG; /* make newlines significant after label */ + p->lstate = EXPR_MID; /* make newlines significant after label */ } -#line 11293 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11290 "mrbgems/mruby-compiler/core/y.tab.c" break; case 582: /* f_kw: f_label arg */ -#line 4578 "mrbgems/mruby-compiler/core/parse.y" +#line 4577 "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 11303 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11300 "mrbgems/mruby-compiler/core/y.tab.c" break; case 583: /* f_kw: f_label */ -#line 4584 "mrbgems/mruby-compiler/core/parse.y" +#line 4583 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_kw_arg(p, (yyvsp[0].id), 0); local_unnest(p); } -#line 11312 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11309 "mrbgems/mruby-compiler/core/y.tab.c" break; case 584: /* f_block_kw: f_label primary_value */ -#line 4591 "mrbgems/mruby-compiler/core/parse.y" +#line 4590 "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 11322 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11319 "mrbgems/mruby-compiler/core/y.tab.c" break; case 585: /* f_block_kw: f_label */ -#line 4597 "mrbgems/mruby-compiler/core/parse.y" +#line 4596 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_kw_arg(p, (yyvsp[0].id), 0); local_unnest(p); } -#line 11331 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11328 "mrbgems/mruby-compiler/core/y.tab.c" break; case 586: /* f_block_kwarg: f_block_kw */ -#line 4604 "mrbgems/mruby-compiler/core/parse.y" +#line 4603 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 11339 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11336 "mrbgems/mruby-compiler/core/y.tab.c" break; case 587: /* f_block_kwarg: f_block_kwarg ',' f_block_kw */ -#line 4608 "mrbgems/mruby-compiler/core/parse.y" +#line 4607 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 11347 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11344 "mrbgems/mruby-compiler/core/y.tab.c" break; case 588: /* f_kwarg: f_kw */ -#line 4614 "mrbgems/mruby-compiler/core/parse.y" +#line 4613 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 11355 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11352 "mrbgems/mruby-compiler/core/y.tab.c" break; case 589: /* f_kwarg: f_kwarg ',' f_kw */ -#line 4618 "mrbgems/mruby-compiler/core/parse.y" +#line 4617 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 11363 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11360 "mrbgems/mruby-compiler/core/y.tab.c" break; case 592: /* f_kwrest: kwrest_mark "local variable or method" */ -#line 4628 "mrbgems/mruby-compiler/core/parse.y" +#line 4627 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = (yyvsp[0].id); } -#line 11371 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11368 "mrbgems/mruby-compiler/core/y.tab.c" break; case 593: /* f_kwrest: kwrest_mark */ -#line 4632 "mrbgems/mruby-compiler/core/parse.y" +#line 4631 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(pow); } -#line 11379 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11376 "mrbgems/mruby-compiler/core/y.tab.c" break; case 594: /* args_tail: f_kwarg ',' f_kwrest opt_f_block_arg */ -#line 4638 "mrbgems/mruby-compiler/core/parse.y" +#line 4637 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].id)); } -#line 11387 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11384 "mrbgems/mruby-compiler/core/y.tab.c" break; case 595: /* args_tail: f_kwarg opt_f_block_arg */ -#line 4642 "mrbgems/mruby-compiler/core/parse.y" +#line 4641 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, (yyvsp[-1].nd), 0, (yyvsp[0].id)); } -#line 11395 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11392 "mrbgems/mruby-compiler/core/y.tab.c" break; case 596: /* args_tail: f_kwrest opt_f_block_arg */ -#line 4646 "mrbgems/mruby-compiler/core/parse.y" +#line 4645 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, 0, (yyvsp[-1].id), (yyvsp[0].id)); } -#line 11403 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11400 "mrbgems/mruby-compiler/core/y.tab.c" break; case 597: /* args_tail: f_block_arg */ -#line 4650 "mrbgems/mruby-compiler/core/parse.y" +#line 4649 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, 0, 0, (yyvsp[0].id)); } -#line 11411 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11408 "mrbgems/mruby-compiler/core/y.tab.c" break; case 598: /* opt_args_tail: ',' args_tail */ -#line 4656 "mrbgems/mruby-compiler/core/parse.y" +#line 4655 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[0].nd); } -#line 11419 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11416 "mrbgems/mruby-compiler/core/y.tab.c" break; case 599: /* opt_args_tail: ',' */ -#line 4660 "mrbgems/mruby-compiler/core/parse.y" +#line 4659 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, 0, 0, 0); } -#line 11427 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11424 "mrbgems/mruby-compiler/core/y.tab.c" break; case 600: /* opt_args_tail: %empty */ -#line 4664 "mrbgems/mruby-compiler/core/parse.y" +#line 4663 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args_tail(p, 0, 0, 0); } -#line 11435 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11432 "mrbgems/mruby-compiler/core/y.tab.c" break; case 601: /* f_args: f_arg ',' f_optarg ',' f_rest_arg opt_args_tail */ -#line 4670 "mrbgems/mruby-compiler/core/parse.y" +#line 4669 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 11443 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11440 "mrbgems/mruby-compiler/core/y.tab.c" break; case 602: /* f_args: f_arg ',' f_optarg ',' f_rest_arg ',' f_arg opt_args_tail */ -#line 4674 "mrbgems/mruby-compiler/core/parse.y" +#line 4673 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-7].nd), (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 11451 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11448 "mrbgems/mruby-compiler/core/y.tab.c" break; case 603: /* f_args: f_arg ',' f_optarg opt_args_tail */ -#line 4678 "mrbgems/mruby-compiler/core/parse.y" +#line 4677 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-3].nd), (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd)); } -#line 11459 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11456 "mrbgems/mruby-compiler/core/y.tab.c" break; case 604: /* f_args: f_arg ',' f_optarg ',' f_arg opt_args_tail */ -#line 4682 "mrbgems/mruby-compiler/core/parse.y" +#line 4681 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 11467 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11464 "mrbgems/mruby-compiler/core/y.tab.c" break; case 605: /* f_args: f_arg ',' f_rest_arg opt_args_tail */ -#line 4686 "mrbgems/mruby-compiler/core/parse.y" +#line 4685 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-3].nd), 0, (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 11475 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11472 "mrbgems/mruby-compiler/core/y.tab.c" break; case 606: /* f_args: f_arg ',' f_rest_arg ',' f_arg opt_args_tail */ -#line 4690 "mrbgems/mruby-compiler/core/parse.y" +#line 4689 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-5].nd), 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 11483 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11480 "mrbgems/mruby-compiler/core/y.tab.c" break; case 607: /* f_args: f_arg opt_args_tail */ -#line 4694 "mrbgems/mruby-compiler/core/parse.y" +#line 4693 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, (yyvsp[-1].nd), 0, 0, 0, (yyvsp[0].nd)); } -#line 11491 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11488 "mrbgems/mruby-compiler/core/y.tab.c" break; case 608: /* f_args: f_optarg ',' f_rest_arg opt_args_tail */ -#line 4698 "mrbgems/mruby-compiler/core/parse.y" +#line 4697 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 11499 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11496 "mrbgems/mruby-compiler/core/y.tab.c" break; case 609: /* f_args: f_optarg ',' f_rest_arg ',' f_arg opt_args_tail */ -#line 4702 "mrbgems/mruby-compiler/core/parse.y" +#line 4701 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 11507 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11504 "mrbgems/mruby-compiler/core/y.tab.c" break; case 610: /* f_args: f_optarg opt_args_tail */ -#line 4706 "mrbgems/mruby-compiler/core/parse.y" +#line 4705 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd)); } -#line 11515 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11512 "mrbgems/mruby-compiler/core/y.tab.c" break; case 611: /* f_args: f_optarg ',' f_arg opt_args_tail */ -#line 4710 "mrbgems/mruby-compiler/core/parse.y" +#line 4709 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 11523 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11520 "mrbgems/mruby-compiler/core/y.tab.c" break; case 612: /* f_args: f_rest_arg opt_args_tail */ -#line 4714 "mrbgems/mruby-compiler/core/parse.y" +#line 4713 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, 0, (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 11531 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11528 "mrbgems/mruby-compiler/core/y.tab.c" break; case 613: /* f_args: f_rest_arg ',' f_arg opt_args_tail */ -#line 4718 "mrbgems/mruby-compiler/core/parse.y" +#line 4717 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 11539 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11536 "mrbgems/mruby-compiler/core/y.tab.c" break; case 614: /* f_args: args_tail */ -#line 4722 "mrbgems/mruby-compiler/core/parse.y" +#line 4721 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_args(p, 0, 0, 0, 0, (yyvsp[0].nd)); } -#line 11547 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11544 "mrbgems/mruby-compiler/core/y.tab.c" break; case 615: /* f_args: %empty */ -#line 4726 "mrbgems/mruby-compiler/core/parse.y" +#line 4725 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, 0); (yyval.nd) = new_args(p, 0, 0, 0, 0, 0); } -#line 11556 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11553 "mrbgems/mruby-compiler/core/y.tab.c" break; case 616: /* f_bad_arg: "constant" */ -#line 4733 "mrbgems/mruby-compiler/core/parse.y" +#line 4732 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[0]), p, "formal argument cannot be a constant"); (yyval.nd) = 0; } -#line 11565 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11562 "mrbgems/mruby-compiler/core/y.tab.c" break; case 617: /* f_bad_arg: "instance variable" */ -#line 4738 "mrbgems/mruby-compiler/core/parse.y" +#line 4737 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[0]), p, "formal argument cannot be an instance variable"); (yyval.nd) = 0; } -#line 11574 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11571 "mrbgems/mruby-compiler/core/y.tab.c" break; case 618: /* f_bad_arg: "global variable" */ -#line 4743 "mrbgems/mruby-compiler/core/parse.y" +#line 4742 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[0]), p, "formal argument cannot be a global variable"); (yyval.nd) = 0; } -#line 11583 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11580 "mrbgems/mruby-compiler/core/y.tab.c" break; case 619: /* f_bad_arg: "class variable" */ -#line 4748 "mrbgems/mruby-compiler/core/parse.y" +#line 4747 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[0]), p, "formal argument cannot be a class variable"); (yyval.nd) = 0; } -#line 11592 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11589 "mrbgems/mruby-compiler/core/y.tab.c" break; case 620: /* f_bad_arg: "numbered parameter" */ -#line 4753 "mrbgems/mruby-compiler/core/parse.y" +#line 4752 "mrbgems/mruby-compiler/core/parse.y" { yyerror(&(yylsp[0]), p, "formal argument cannot be a numbered parameter"); (yyval.nd) = 0; } -#line 11601 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11598 "mrbgems/mruby-compiler/core/y.tab.c" break; case 621: /* f_norm_arg: f_bad_arg */ -#line 4760 "mrbgems/mruby-compiler/core/parse.y" +#line 4759 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = 0; } -#line 11609 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11606 "mrbgems/mruby-compiler/core/y.tab.c" break; case 622: /* f_norm_arg: "local variable or method" */ -#line 4764 "mrbgems/mruby-compiler/core/parse.y" +#line 4763 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, (yyvsp[0].id)); (yyval.id) = (yyvsp[0].id); } -#line 11618 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11615 "mrbgems/mruby-compiler/core/y.tab.c" break; case 623: /* f_arg_item: f_norm_arg */ -#line 4771 "mrbgems/mruby-compiler/core/parse.y" +#line 4770 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_lvar(p, (yyvsp[0].id)); } -#line 11626 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11623 "mrbgems/mruby-compiler/core/y.tab.c" break; case 624: /* @37: %empty */ -#line 4775 "mrbgems/mruby-compiler/core/parse.y" +#line 4774 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = local_switch(p); } -#line 11634 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11631 "mrbgems/mruby-compiler/core/y.tab.c" break; case 625: /* f_arg_item: tLPAREN @37 f_margs rparen */ -#line 4779 "mrbgems/mruby-compiler/core/parse.y" +#line 4778 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = new_marg(p, (yyvsp[-1].nd)); local_resume(p, (yyvsp[-2].nd)); local_add_f(p, 0); } -#line 11644 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11641 "mrbgems/mruby-compiler/core/y.tab.c" break; case 626: /* f_arg: f_arg_item */ -#line 4787 "mrbgems/mruby-compiler/core/parse.y" +#line 4786 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 11652 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11649 "mrbgems/mruby-compiler/core/y.tab.c" break; case 627: /* f_arg: f_arg ',' f_arg_item */ -#line 4791 "mrbgems/mruby-compiler/core/parse.y" +#line 4790 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 11660 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11657 "mrbgems/mruby-compiler/core/y.tab.c" break; case 628: /* f_opt_asgn: "local variable or method" '=' */ -#line 4797 "mrbgems/mruby-compiler/core/parse.y" +#line 4796 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, (yyvsp[-1].id)); local_nest(p); (yyval.id) = (yyvsp[-1].id); } -#line 11670 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11667 "mrbgems/mruby-compiler/core/y.tab.c" break; case 629: /* f_opt: f_opt_asgn arg */ -#line 4805 "mrbgems/mruby-compiler/core/parse.y" +#line 4804 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = cons(sym_to_node((yyvsp[-1].id)), cons((yyvsp[0].nd), locals_node(p))); local_unnest(p); } -#line 11680 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11677 "mrbgems/mruby-compiler/core/y.tab.c" break; case 630: /* f_block_opt: f_opt_asgn primary_value */ -#line 4813 "mrbgems/mruby-compiler/core/parse.y" +#line 4812 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = cons(sym_to_node((yyvsp[-1].id)), cons((yyvsp[0].nd), locals_node(p))); local_unnest(p); } -#line 11690 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11687 "mrbgems/mruby-compiler/core/y.tab.c" break; case 631: /* f_block_optarg: f_block_opt */ -#line 4821 "mrbgems/mruby-compiler/core/parse.y" +#line 4820 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 11698 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11695 "mrbgems/mruby-compiler/core/y.tab.c" break; case 632: /* f_block_optarg: f_block_optarg ',' f_block_opt */ -#line 4825 "mrbgems/mruby-compiler/core/parse.y" +#line 4824 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 11706 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11703 "mrbgems/mruby-compiler/core/y.tab.c" break; case 633: /* f_optarg: f_opt */ -#line 4831 "mrbgems/mruby-compiler/core/parse.y" +#line 4830 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 11714 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11711 "mrbgems/mruby-compiler/core/y.tab.c" break; case 634: /* f_optarg: f_optarg ',' f_opt */ -#line 4835 "mrbgems/mruby-compiler/core/parse.y" +#line 4834 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 11722 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11719 "mrbgems/mruby-compiler/core/y.tab.c" break; case 637: /* f_rest_arg: restarg_mark "local variable or method" */ -#line 4845 "mrbgems/mruby-compiler/core/parse.y" +#line 4844 "mrbgems/mruby-compiler/core/parse.y" { local_add_f(p, (yyvsp[0].id)); (yyval.id) = (yyvsp[0].id); } -#line 11731 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11728 "mrbgems/mruby-compiler/core/y.tab.c" break; case 638: /* f_rest_arg: restarg_mark */ -#line 4850 "mrbgems/mruby-compiler/core/parse.y" +#line 4849 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(mul); local_add_f(p, (yyval.id)); } -#line 11740 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11737 "mrbgems/mruby-compiler/core/y.tab.c" break; case 641: /* f_block_arg: blkarg_mark "local variable or method" */ -#line 4861 "mrbgems/mruby-compiler/core/parse.y" +#line 4860 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = (yyvsp[0].id); } -#line 11748 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11745 "mrbgems/mruby-compiler/core/y.tab.c" break; case 642: /* f_block_arg: blkarg_mark "'nil'" */ -#line 4865 "mrbgems/mruby-compiler/core/parse.y" +#line 4864 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = MRB_SYM(nil); } -#line 11756 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11753 "mrbgems/mruby-compiler/core/y.tab.c" break; case 643: /* f_block_arg: blkarg_mark */ -#line 4869 "mrbgems/mruby-compiler/core/parse.y" +#line 4868 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(and); } -#line 11764 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11761 "mrbgems/mruby-compiler/core/y.tab.c" break; case 644: /* opt_f_block_arg: ',' f_block_arg */ -#line 4875 "mrbgems/mruby-compiler/core/parse.y" +#line 4874 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = (yyvsp[0].id); } -#line 11772 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11769 "mrbgems/mruby-compiler/core/y.tab.c" break; case 645: /* opt_f_block_arg: ',' */ -#line 4879 "mrbgems/mruby-compiler/core/parse.y" +#line 4878 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = 0; } -#line 11780 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11777 "mrbgems/mruby-compiler/core/y.tab.c" break; case 646: /* opt_f_block_arg: none */ -#line 4883 "mrbgems/mruby-compiler/core/parse.y" +#line 4882 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = 0; } -#line 11788 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11785 "mrbgems/mruby-compiler/core/y.tab.c" break; case 647: /* singleton: var_ref */ -#line 4889 "mrbgems/mruby-compiler/core/parse.y" +#line 4888 "mrbgems/mruby-compiler/core/parse.y" { prohibit_literals(p, (yyvsp[0].nd)); (yyval.nd) = (yyvsp[0].nd); if (!(yyval.nd)) (yyval.nd) = new_nil(p); } -#line 11798 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11795 "mrbgems/mruby-compiler/core/y.tab.c" break; case 648: /* $@38: %empty */ -#line 4894 "mrbgems/mruby-compiler/core/parse.y" +#line 4893 "mrbgems/mruby-compiler/core/parse.y" {p->lstate = EXPR_BEG;} -#line 11804 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11801 "mrbgems/mruby-compiler/core/y.tab.c" break; case 649: /* singleton: '(' $@38 expr rparen */ -#line 4895 "mrbgems/mruby-compiler/core/parse.y" +#line 4894 "mrbgems/mruby-compiler/core/parse.y" { prohibit_literals(p, (yyvsp[-1].nd)); (yyval.nd) = (yyvsp[-1].nd); } -#line 11813 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11810 "mrbgems/mruby-compiler/core/y.tab.c" break; case 651: /* assoc_list: assocs trailer */ -#line 4903 "mrbgems/mruby-compiler/core/parse.y" +#line 4902 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = (yyvsp[-1].nd); } -#line 11821 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11818 "mrbgems/mruby-compiler/core/y.tab.c" break; case 652: /* assocs: assoc */ -#line 4909 "mrbgems/mruby-compiler/core/parse.y" +#line 4908 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 11829 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11826 "mrbgems/mruby-compiler/core/y.tab.c" break; case 653: /* assocs: assocs comma assoc */ -#line 4913 "mrbgems/mruby-compiler/core/parse.y" +#line 4912 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 11837 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11834 "mrbgems/mruby-compiler/core/y.tab.c" break; case 654: /* assoc: arg "=>" arg */ -#line 4919 "mrbgems/mruby-compiler/core/parse.y" +#line 4918 "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 11847 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11844 "mrbgems/mruby-compiler/core/y.tab.c" break; case 655: /* assoc: "local variable or method" "label" arg */ -#line 4925 "mrbgems/mruby-compiler/core/parse.y" +#line 4924 "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 11856 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11853 "mrbgems/mruby-compiler/core/y.tab.c" break; case 656: /* assoc: "local variable or method" "label" */ -#line 4930 "mrbgems/mruby-compiler/core/parse.y" +#line 4929 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(new_sym(p, (yyvsp[-1].id)), label_reference(p, (yyvsp[-1].id))); } -#line 11864 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11861 "mrbgems/mruby-compiler/core/y.tab.c" break; case 657: /* assoc: "numbered parameter" "label" */ -#line 4934 "mrbgems/mruby-compiler/core/parse.y" +#line 4933 "mrbgems/mruby-compiler/core/parse.y" { mrb_sym sym = intern_numparam((yyvsp[-1].num)); (yyval.nd) = cons(new_sym(p, sym), label_reference(p, sym)); } -#line 11873 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11870 "mrbgems/mruby-compiler/core/y.tab.c" break; case 658: /* assoc: "numbered parameter" "label" arg */ -#line 4939 "mrbgems/mruby-compiler/core/parse.y" +#line 4938 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = cons(new_sym(p, intern_numparam((yyvsp[-2].num))), (yyvsp[0].nd)); } -#line 11882 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11879 "mrbgems/mruby-compiler/core/y.tab.c" break; case 659: /* assoc: string_fragment "label" arg */ -#line 4944 "mrbgems/mruby-compiler/core/parse.y" +#line 4943 "mrbgems/mruby-compiler/core/parse.y" { void_expr_error(p, (yyvsp[0].nd)); if ((yyvsp[-2].nd)->cdr) { @@ -11897,75 +11895,75 @@ yyreduce: (yyval.nd) = cons(new_sym(p, new_strsym(p, (yyvsp[-2].nd)->car)), (yyvsp[0].nd)); } } -#line 11902 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11899 "mrbgems/mruby-compiler/core/y.tab.c" break; case 660: /* assoc: "**" arg */ -#line 4960 "mrbgems/mruby-compiler/core/parse.y" +#line 4959 "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 11911 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11908 "mrbgems/mruby-compiler/core/y.tab.c" break; case 661: /* assoc: "**" */ -#line 4965 "mrbgems/mruby-compiler/core/parse.y" +#line 4964 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = cons(new_kw_rest_args(p, 0), new_lvar(p, intern_op(pow))); } -#line 11919 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11916 "mrbgems/mruby-compiler/core/y.tab.c" break; case 674: /* call_op: '.' */ -#line 4991 "mrbgems/mruby-compiler/core/parse.y" +#line 4990 "mrbgems/mruby-compiler/core/parse.y" { (yyval.num) = '.'; } -#line 11927 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11924 "mrbgems/mruby-compiler/core/y.tab.c" break; case 675: /* call_op: "&." */ -#line 4995 "mrbgems/mruby-compiler/core/parse.y" +#line 4994 "mrbgems/mruby-compiler/core/parse.y" { (yyval.num) = 0; } -#line 11935 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11932 "mrbgems/mruby-compiler/core/y.tab.c" break; case 677: /* call_op2: "::" */ -#line 5002 "mrbgems/mruby-compiler/core/parse.y" +#line 5001 "mrbgems/mruby-compiler/core/parse.y" { (yyval.num) = tCOLON2; } -#line 11943 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11940 "mrbgems/mruby-compiler/core/y.tab.c" break; case 686: /* term: ';' */ -#line 5023 "mrbgems/mruby-compiler/core/parse.y" +#line 5022 "mrbgems/mruby-compiler/core/parse.y" {yyerrok;} -#line 11949 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11946 "mrbgems/mruby-compiler/core/y.tab.c" break; case 688: /* nl: '\n' */ -#line 5028 "mrbgems/mruby-compiler/core/parse.y" +#line 5027 "mrbgems/mruby-compiler/core/parse.y" { p->lineno += (yyvsp[0].num); p->column = 0; } -#line 11958 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11955 "mrbgems/mruby-compiler/core/y.tab.c" break; case 692: /* none: %empty */ -#line 5040 "mrbgems/mruby-compiler/core/parse.y" +#line 5039 "mrbgems/mruby-compiler/core/parse.y" { (yyval.nd) = 0; } -#line 11966 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11963 "mrbgems/mruby-compiler/core/y.tab.c" break; -#line 11970 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11967 "mrbgems/mruby-compiler/core/y.tab.c" default: break; } @@ -12198,7 +12196,7 @@ yyreturnlab: return yyresult; } -#line 5044 "mrbgems/mruby-compiler/core/parse.y" +#line 5043 "mrbgems/mruby-compiler/core/parse.y" #define pylval (*((YYSTYPE*)(p->ylval))) diff --git a/test/t/syntax.rb b/test/t/syntax.rb index a02ca1d8a..d051bc789 100644 --- a/test/t/syntax.rb +++ b/test/t/syntax.rb @@ -680,6 +680,20 @@ assert 'keyword arguments' do assert_equal [{a: 1}, {b: 2}], m({a: 1}, b: 2) assert_raise(ArgumentError) { m({a: 1}, {b: 2}) } + def m1(a: {}) a end + assert_equal({}, m1) + assert_equal(:abc, m1(a: :abc)) + + def m2(a: +1) a end + assert_equal(1, m2) + + assert_nothing_raised do + def m3 arg: + 123 + end + end + assert_equal(123, m3(arg: 456)) + def m(*, a:) a end assert_equal 1, m(a: 1) assert_equal 3, m(1, 2, a: 3) From 55ef8e17289859590a5533c16cee3b229c1cee2e Mon Sep 17 00:00:00 2001 From: John Bampton Date: Wed, 18 Mar 2026 17:57:05 +1000 Subject: [PATCH 04/27] Update workflows --- .github/workflows/build.yml | 6 ++++++ .github/workflows/codeql-analysis.yml | 2 ++ .github/workflows/coverage.yml | 5 +++++ .github/workflows/ls-lint.yml | 2 ++ .github/workflows/pre-commit-manual.yml | 2 ++ .github/workflows/pre-commit.yml | 2 ++ .github/workflows/release.yml | 2 ++ .github/workflows/super-linter.yml | 1 + 8 files changed, 22 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a0ddc0504..24dda549f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,6 +32,8 @@ jobs: steps: - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" uses: actions/checkout@v6 + with: + persist-credentials: false - name: Ruby version run: ruby -v - name: Compiler version @@ -45,6 +47,8 @@ jobs: steps: - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" uses: actions/checkout@v6 + with: + persist-credentials: false - name: Ruby version run: ruby -v - name: Cache cosmocc @@ -71,6 +75,8 @@ jobs: steps: - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" uses: actions/checkout@v6 + with: + persist-credentials: false - name: Ruby version run: ruby -v - name: Build and test diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 4b9d2e09b..3ba297119 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -19,6 +19,8 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v6 + with: + persist-credentials: false - name: Initialize CodeQL uses: github/codeql-action/init@v4 with: diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 8848e68cc..937e7a1ef 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -2,6 +2,9 @@ name: Coverage on: [push] +permissions: + contents: read + jobs: coverage: name: Coverage @@ -17,6 +20,8 @@ jobs: steps: - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" uses: actions/checkout@v6 + with: + persist-credentials: false - name: Ruby version run: ruby -v - name: Compiler version diff --git a/.github/workflows/ls-lint.yml b/.github/workflows/ls-lint.yml index 3002e2dba..bce70fd5b 100644 --- a/.github/workflows/ls-lint.yml +++ b/.github/workflows/ls-lint.yml @@ -12,6 +12,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 + with: + persist-credentials: false - uses: ls-lint/action@v2.3.1 with: config: .github/linters/.ls-lint.yml diff --git a/.github/workflows/pre-commit-manual.yml b/.github/workflows/pre-commit-manual.yml index d984b2235..0196260a4 100644 --- a/.github/workflows/pre-commit-manual.yml +++ b/.github/workflows/pre-commit-manual.yml @@ -13,6 +13,8 @@ jobs: steps: - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" uses: actions/checkout@v6 + with: + persist-credentials: false - uses: j178/prek-action@v1 with: install-only: true diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 63e3a7e90..c35679fe6 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -13,6 +13,8 @@ jobs: steps: - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" uses: actions/checkout@v6 + with: + persist-credentials: false - uses: j178/prek-action@v1 with: extra-args: --all-files diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c9e22856a..cf849c6df 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,6 +20,8 @@ jobs: steps: - name: "Checkout ${{ github.ref_name }} ( ${{ github.sha }} )" uses: actions/checkout@v6 + with: + persist-credentials: false - name: Builds id: builds run: | diff --git a/.github/workflows/super-linter.yml b/.github/workflows/super-linter.yml index 5dc373e4a..c26bb56f2 100644 --- a/.github/workflows/super-linter.yml +++ b/.github/workflows/super-linter.yml @@ -19,6 +19,7 @@ jobs: with: # Full git history is needed to get a proper list of changed files within `super-linter` fetch-depth: 0 + persist-credentials: false - name: Lint Code Base uses: super-linter/super-linter/slim@v8.5.0 env: From 80d84188fd4b956fcc9cc35be0031dfe88fb6525 Mon Sep 17 00:00:00 2001 From: John Bampton Date: Wed, 18 Mar 2026 17:57:33 +1000 Subject: [PATCH 05/27] pre-commit bump Node.js --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 4ef1033cf..ae6fb7014 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -3,7 +3,7 @@ default_stages: [pre-commit, pre-push] default_language_version: python: python3 - node: 24.11.1 + node: 24.14.0 minimum_pre_commit_version: "3.2.0" exclude: "^tools/lrama/" repos: From 5e9eed2d0c70e77c683043e4f287162cf6e07ffe Mon Sep 17 00:00:00 2001 From: HASUMI Hitoshi Date: Thu, 19 Mar 2026 09:38:36 +0900 Subject: [PATCH 06/27] Fix KHASH_DEFAULT_SIZE to KHASH_INITIAL_SIZE rename inconsistencies Commit 250bf6edd renamed KHASH_DEFAULT_SIZE to KHASH_INITIAL_SIZE but missed updating build_config files and documentation. Also restore the default value in khash.h to 32, consistent with the documented default and the profile hierarchy (MRB_CONSTRAINED_BASELINE_PROFILE reduces it to 16). --- build_config/ArduinoDue.rb | 2 +- build_config/RX630.rb | 2 +- build_config/chipKITMax32.rb | 2 +- doc/guides/mrbconf.md | 6 +++--- include/mrbconf.h | 6 +++--- include/mruby/khash.h | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/build_config/ArduinoDue.rb b/build_config/ArduinoDue.rb index 2ddaf6740..94fdac034 100644 --- a/build_config/ArduinoDue.rb +++ b/build_config/ArduinoDue.rb @@ -30,7 +30,7 @@ MRuby::CrossBuild.new("ArduinoDue") do |conf| #configuration for low memory environment cc.defines << %w(MRB_HEAP_PAGE_SIZE=64) - cc.defines << %w(KHASH_DEFAULT_SIZE=8) + cc.defines << %w(KHASH_INITIAL_SIZE=8) cc.defines << %w(MRB_GC_STRESS) #cc.defines << %w(MRB_NO_STDIO) #if you don't need stdio. #cc.defines << %w(POOL_PAGE_SIZE=1000) #effective only for use with mruby-eval diff --git a/build_config/RX630.rb b/build_config/RX630.rb index c3aab1f8d..0f5f6fd96 100644 --- a/build_config/RX630.rb +++ b/build_config/RX630.rb @@ -16,7 +16,7 @@ MRuby::CrossBuild.new("RX630") do |conf| #configuration for low memory environment cc.defines << %w(MRB_USE_FLOAT32) cc.defines << %w(MRB_HEAP_PAGE_SIZE=64) - cc.defines << %w(KHASH_DEFAULT_SIZE=8) + cc.defines << %w(KHASH_INITIAL_SIZE=8) cc.defines << %w(MRB_GC_STRESS) cc.defines << %w(MRB_NO_STDIO) #if you don't need stdio. #cc.defines << %w(POOL_PAGE_SIZE=1000) #effective only for use with mruby-eval diff --git a/build_config/chipKITMax32.rb b/build_config/chipKITMax32.rb index 466db71d9..cde3edf36 100644 --- a/build_config/chipKITMax32.rb +++ b/build_config/chipKITMax32.rb @@ -27,7 +27,7 @@ MRuby::CrossBuild.new("chipKITMax32") do |conf| #configuration for low memory environment cc.defines << %w(MRB_HEAP_PAGE_SIZE=64) - cc.defines << %w(KHASH_DEFAULT_SIZE=8) + cc.defines << %w(KHASH_INITIAL_SIZE=8) cc.defines << %w(MRB_GC_STRESS) #cc.defines << %w(MRB_NO_STDIO) #if you don't need stdio. #cc.defines << %w(POOL_PAGE_SIZE=1000) #effective only for use with mruby-eval diff --git a/doc/guides/mrbconf.md b/doc/guides/mrbconf.md index e8644e48c..cc438653e 100644 --- a/doc/guides/mrbconf.md +++ b/doc/guides/mrbconf.md @@ -233,10 +233,10 @@ end - Specifies 4th argument(`argc`) max value of `mrb_funcall`. - Raises `ArgumentError` when the `argc` argument is bigger then this value `mrb_funcall`. -`KHASH_DEFAULT_SIZE` +`KHASH_INITIAL_SIZE` - Default value is `32`. -- Specifies default size of khash table bucket. +- Specifies initial size of khash table bucket. - Used in `kh_init_ ## name` function. `MRB_NO_METHOD_CACHE` @@ -272,7 +272,7 @@ deployment targets. Define one of the following: `MRB_CONSTRAINED_BASELINE_PROFILE` - For micro controllers. -- Enables `MRB_NO_METHOD_CACHE`, reduces `KHASH_DEFAULT_SIZE` to `16`, +- Enables `MRB_NO_METHOD_CACHE`, reduces `KHASH_INITIAL_SIZE` to `16`, and `MRB_HEAP_PAGE_SIZE` to `256`. `MRB_BASELINE_PROFILE` diff --git a/include/mrbconf.h b/include/mrbconf.h index ace38d73b..3e43efe77 100644 --- a/include/mrbconf.h +++ b/include/mrbconf.h @@ -139,7 +139,7 @@ //#define MRB_GC_TURN_OFF_GENERATIONAL /* default size of khash table bucket */ -//#define KHASH_DEFAULT_SIZE 32 +//#define KHASH_INITIAL_SIZE 32 /* allocated memory address alignment */ //#define POOL_ALIGNMENT 4 @@ -208,8 +208,8 @@ # define MRB_NO_METHOD_CACHE # endif -# ifndef KHASH_DEFAULT_SIZE -# define KHASH_DEFAULT_SIZE 16 +# ifndef KHASH_INITIAL_SIZE +# define KHASH_INITIAL_SIZE 16 # endif # ifndef MRB_HEAP_PAGE_SIZE diff --git a/include/mruby/khash.h b/include/mruby/khash.h index 4b846177d..8d7139e87 100644 --- a/include/mruby/khash.h +++ b/include/mruby/khash.h @@ -21,7 +21,7 @@ typedef uint32_t khint_t; typedef khint_t khiter_t; #ifndef KHASH_INITIAL_SIZE -# define KHASH_INITIAL_SIZE 8 +# define KHASH_INITIAL_SIZE 32 #endif #define KHASH_MIN_SIZE 8 #define KHASH_SMALL_LIMIT 4 From 736a72cdc9447d92081ca623d9b44c4a0661a1f2 Mon Sep 17 00:00:00 2001 From: HASUMI Hitoshi Date: Thu, 19 Mar 2026 09:50:15 +0900 Subject: [PATCH 07/27] [skip ci] Update include/mrbconf.h Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- include/mrbconf.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/mrbconf.h b/include/mrbconf.h index 3e43efe77..34797f6f9 100644 --- a/include/mrbconf.h +++ b/include/mrbconf.h @@ -138,7 +138,7 @@ /* turn off generational GC by default */ //#define MRB_GC_TURN_OFF_GENERATIONAL -/* default size of khash table bucket */ +/* initial size of khash table bucket */ //#define KHASH_INITIAL_SIZE 32 /* allocated memory address alignment */ From 8441eaf633ef6c001c929e6a4d36cfb41bb03a75 Mon Sep 17 00:00:00 2001 From: dearblue Date: Thu, 19 Mar 2026 22:50:37 +0900 Subject: [PATCH 08/27] Fixed "Out-of-bounds Read" and "Divide-by-Zero" in `ary_product_group()` Reproduction: - Out-of-bounds Read ```console % build/host/bin/mruby -e '([nil] * 256).__product_group([[nil] * 256], 1 << 32, 256)' zsh: segmentation fault (core dumped) build/host/bin/mruby -e ``` - Divide-by-Zero ```console % build/host/bin/mruby -e '([nil] * 256).__product_group([[]], 1 << 32, 256)' zsh: floating point exception (core dumped) build/host/bin/mruby -e '([nil] * 256).__product_group([[]], 1 << 32, 256)' ``` --- mrbgems/mruby-array-ext/src/array.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mrbgems/mruby-array-ext/src/array.c b/mrbgems/mruby-array-ext/src/array.c index f31e58758..16da8ed70 100644 --- a/mrbgems/mruby-array-ext/src/array.c +++ b/mrbgems/mruby-array-ext/src/array.c @@ -1395,9 +1395,15 @@ ary_product_group(mrb_state *mrb, mrb_value self_ary) mrb_value a = RARRAY_PTR(arys_ary)[j]; // arys[j] mrb_check_type(mrb, a, MRB_TT_ARRAY); mrb_int b = RARRAY_LEN(a); // a.size + if (b <= 0) { + mrb_raise(mrb, E_ARGUMENT_ERROR, "cannot compute product with an empty array"); + } mrb_ary_set(mrb, group, j + 1, RARRAY_PTR(a)[n % b]); n /= b; } + if (n >= RARRAY_LEN(self_ary)) { + mrb_raise(mrb, E_INDEX_ERROR, "index out of range"); + } mrb_ary_set(mrb, group, 0, RARRAY_PTR(self_ary)[n]); return group; From c0b1e87c09ab2c4c7c73d194665b3aecb24145d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20Hasi=C5=84ski?= Date: Thu, 19 Mar 2026 23:11:59 +0100 Subject: [PATCH 09/27] Fix attr_reader-generated methods accepting extra arguments attr_reader-generated getter methods silently ignored any arguments passed to them. CRuby raises ArgumentError in this case. Add mrb_get_args(mrb, "") to enforce zero arguments, matching CRuby. --- src/class.c | 1 + test/t/module.rb | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/class.c b/src/class.c index cc6da75a3..32115ffcc 100644 --- a/src/class.c +++ b/src/class.c @@ -2776,6 +2776,7 @@ mod_attr_define(mrb_state *mrb, mrb_value mod, mrb_value (*accessor)(mrb_state*, static mrb_value attr_reader(mrb_state *mrb, mrb_value obj) { + mrb_get_args(mrb, ""); mrb_value name = mrb_proc_cfunc_env_get(mrb, 0); return mrb_iv_get(mrb, obj, to_sym(mrb, name)); } diff --git a/test/t/module.rb b/test/t/module.rb index 2827f5e27..f2a0e1164 100644 --- a/test/t/module.rb +++ b/test/t/module.rb @@ -163,6 +163,9 @@ assert('Module#attr_reader', '15.2.2.4.13') do AttrTestReader.cattr_val = 'test' assert_equal 'test', AttrTestReader.cattr + + assert_raise(ArgumentError) { attr_instance.iattr(1) } + assert_raise(ArgumentError) { attr_instance.iattr(1, 2, 3) } end assert('Module#attr_writer', '15.2.2.4.14') do From 98d763603c9ee7619a969ce0c2f934cc43871a36 Mon Sep 17 00:00:00 2001 From: dearblue Date: Fri, 20 Mar 2026 21:13:52 +0900 Subject: [PATCH 10/27] Further optimize `Array#product` Replace `__product_group` method with `__product_generate` and `__product_next`. This change eliminates the need for Ruby to perform internal state calculations, allowing it to simply receive the results. --- mrbgems/mruby-array-ext/mrblib/array.rb | 36 +++-------- mrbgems/mruby-array-ext/src/array.c | 79 +++++++++++++++++++++---- 2 files changed, 76 insertions(+), 39 deletions(-) diff --git a/mrbgems/mruby-array-ext/mrblib/array.rb b/mrbgems/mruby-array-ext/mrblib/array.rb index de3bb0a79..bcfdc1ddc 100644 --- a/mrbgems/mruby-array-ext/mrblib/array.rb +++ b/mrbgems/mruby-array-ext/mrblib/array.rb @@ -611,37 +611,15 @@ class Array # ary.product(*arys) -> array # ary.product(*arys) { |item| ... } -> self def product(*arys, &block) - size = arys.size - i = size - while i > 0 - i -= 1 - unless arys[i].kind_of?(Array) - raise TypeError, "no implicit conversion into Array" + gen = __product_generate(arys, &block) + return gen unless block + + if gen + while group = __product_next(arys, gen) + yield group end end - - i = size - total = self.size - total *= arys[i -= 1].size while i > 0 - - if block - i = 0 - while i < total - group = self.__product_group(arys, i, size + 1) - block.call(group) - i += 1 - end - return self - else - result = [nil] * total - i = 0 - while i < total - group = self.__product_group(arys, i, size + 1) - result[i] = group - i += 1 - end - return result - end + self end ## diff --git a/mrbgems/mruby-array-ext/src/array.c b/mrbgems/mruby-array-ext/src/array.c index 16da8ed70..def234734 100644 --- a/mrbgems/mruby-array-ext/src/array.c +++ b/mrbgems/mruby-array-ext/src/array.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -1373,6 +1374,13 @@ ary_insert(mrb_state *mrb, mrb_value self) return self; } +struct ary_product_generator { + mrb_int total; + mrb_int cursor; +}; + +static struct mrb_data_type ary_product_generator_type = { "ary_product_generator", mrb_free }; + /* * Internal helper for Array#product to construct a group array. * Takes the base array (self), the array of other arrays (arys), @@ -1380,18 +1388,12 @@ ary_insert(mrb_state *mrb, mrb_value self) * of the group array (group_len). */ static mrb_value -ary_product_group(mrb_state *mrb, mrb_value self_ary) +ary_product_fetch(mrb_state *mrb, mrb_value self_ary, mrb_value arys_ary, mrb_int n) { - mrb_value arys_ary; - mrb_int current_i, group_len; - mrb_get_args(mrb, "Aii", &arys_ary, ¤t_i, &group_len); - - mrb_value group = mrb_ary_new_capa(mrb, group_len); mrb_int j = RARRAY_LEN(arys_ary); // Corresponds to 'size' in Ruby - mrb_int n = current_i; + mrb_value group = mrb_ary_new_capa(mrb, j + 1 /* self_ary */); - while (j > 0) { - j -= 1; + while (j-- > 0) { mrb_value a = RARRAY_PTR(arys_ary)[j]; // arys[j] mrb_check_type(mrb, a, MRB_TT_ARRAY); mrb_int b = RARRAY_LEN(a); // a.size @@ -1409,6 +1411,62 @@ ary_product_group(mrb_state *mrb, mrb_value self_ary) return group; } +static mrb_value +ary_product_generate(mrb_state *mrb, mrb_value self) +{ + mrb_value arys_ary, block; + mrb_get_args(mrb, "A&", &arys_ary, &block); + + mrb_int total = RARRAY_LEN(self); + for (mrb_int i = 0; i < RARRAY_LEN(arys_ary); i++) { + mrb_value a = RARRAY_PTR(arys_ary)[i]; + mrb_check_type(mrb, a, MRB_TT_ARRAY); + mrb_int n = RARRAY_LEN(a); + if (n == 0) { + total = 0; + break; + } + if (mrb_int_mul_overflow(total, n, &total)) { + mrb_raise(mrb, E_ARGUMENT_ERROR, "result too big"); + } + } + + if (mrb_nil_p(block)) { + mrb_value result = mrb_ary_new_capa(mrb, total); + for (mrb_int i = 0; i < total; i++) { + mrb_value group = ary_product_fetch(mrb, self, arys_ary, i); + mrb_ary_push(mrb, result, group); + } + return result; + } + else if (total > 0) { + struct RData *d; + struct ary_product_generator *g; + Data_Make_Struct(mrb, mrb->object_class, struct ary_product_generator, + &ary_product_generator_type, g, d); + g->total = total; + g->cursor = 0; + return mrb_obj_value(d); + } + else { + return mrb_nil_value(); + } +} + +static mrb_value +ary_product_next(mrb_state *mrb, mrb_value self) +{ + mrb_value arys; + struct ary_product_generator *g; + mrb_get_args(mrb, "Ad", &arys, &g, &ary_product_generator_type); + + if (g->cursor >= g->total) { + return mrb_nil_value(); + } + + return ary_product_fetch(mrb, self, arys, g->cursor++); +} + /* * call-seq: * ary.deconstruct -> ary @@ -1569,7 +1627,8 @@ static const mrb_mt_entry array_ext_rom_entries[] = { MRB_MT_ENTRY(ary_fetch, MRB_SYM(__fetch), MRB_ARGS_REQ(3)), MRB_MT_ENTRY(ary_insert, MRB_SYM(insert), MRB_ARGS_ARG(1,-1)), MRB_MT_ENTRY(ary_deconstruct, MRB_SYM(deconstruct), MRB_ARGS_NONE()), - MRB_MT_ENTRY(ary_product_group, MRB_SYM(__product_group), MRB_ARGS_REQ(3)), + MRB_MT_ENTRY(ary_product_generate, MRB_SYM(__product_generate), MRB_ARGS_REQ(1)), + MRB_MT_ENTRY(ary_product_next, MRB_SYM(__product_next), MRB_ARGS_REQ(2)), MRB_MT_ENTRY(ary_combination_init, MRB_SYM(__combination_init), MRB_ARGS_REQ(2)), MRB_MT_ENTRY(ary_combination_next, MRB_SYM(__combination_next), MRB_ARGS_REQ(1)), }; From 95ece95e3779d101dadb37aa1b108e66afb00fcc Mon Sep 17 00:00:00 2001 From: leviongit Date: Fri, 20 Mar 2026 19:14:54 +0100 Subject: [PATCH 11/27] prefer marking the procs implementing `attr_reader` methods as noarg this commit works on #6752 so it doesn't require a call to `mrb_get_args` --- src/class.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/class.c b/src/class.c index 32115ffcc..c5e9428b6 100644 --- a/src/class.c +++ b/src/class.c @@ -2748,7 +2748,7 @@ prepare_writer_name(mrb_state *mrb, mrb_sym sym) } static mrb_value -mod_attr_define(mrb_state *mrb, mrb_value mod, mrb_value (*accessor)(mrb_state*, mrb_value), mrb_sym (*access_name)(mrb_state*, mrb_sym)) +mod_attr_define(mrb_state *mrb, mrb_value mod, mrb_int aargc, mrb_value (*accessor)(mrb_state*, mrb_value), mrb_sym (*access_name)(mrb_state*, mrb_sym)) { struct RClass *c = mrb_class_ptr(mod); const mrb_value *argv; @@ -2765,6 +2765,7 @@ mod_attr_define(mrb_state *mrb, mrb_value mod, mrb_value (*accessor)(mrb_state*, } struct RProc *p = mrb_proc_new_cfunc_with_env(mrb, accessor, 1, &name); + p->flags |= aargc == 0 ? MRB_PROC_NOARG : 0; mrb_method_t m; MRB_METHOD_FROM_PROC(m, p); mrb_define_method_raw(mrb, c, method, m); @@ -2776,7 +2777,6 @@ mod_attr_define(mrb_state *mrb, mrb_value mod, mrb_value (*accessor)(mrb_state*, static mrb_value attr_reader(mrb_state *mrb, mrb_value obj) { - mrb_get_args(mrb, ""); mrb_value name = mrb_proc_cfunc_env_get(mrb, 0); return mrb_iv_get(mrb, obj, to_sym(mrb, name)); } @@ -2784,7 +2784,7 @@ attr_reader(mrb_state *mrb, mrb_value obj) static mrb_value mrb_mod_attr_reader(mrb_state *mrb, mrb_value mod) { - return mod_attr_define(mrb, mod, attr_reader, NULL); + return mod_attr_define(mrb, mod, 0, attr_reader, NULL); } static mrb_value @@ -2800,7 +2800,7 @@ attr_writer(mrb_state *mrb, mrb_value obj) static mrb_value mrb_mod_attr_writer(mrb_state *mrb, mrb_value mod) { - return mod_attr_define(mrb, mod, attr_writer, prepare_writer_name); + return mod_attr_define(mrb, mod, 1, attr_writer, prepare_writer_name); } static mrb_value From 88e356e7da2c5dce6498ec7669febd188d7da263 Mon Sep 17 00:00:00 2001 From: leviongit Date: Fri, 20 Mar 2026 21:20:18 +0100 Subject: [PATCH 12/27] remove redundant `mrb_hash_get` call `mrb_hash_delete` returns the removed element (which is guaranteed to exist due to the `mrb_hash_key_p` check), this prevents the hash from being searched twice. --- src/vm.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/vm.c b/src/vm.c index f898287d8..2f1d42163 100644 --- a/src/vm.c +++ b/src/vm.c @@ -2703,10 +2703,8 @@ RETRY_TRY_BLOCK: if (kidx < 0 || !mrb_hash_p(kdict=regs[kidx]) || !mrb_hash_key_p(mrb, kdict, k)) { RAISE_FORMAT(mrb, E_ARGUMENT_ERROR, "missing keyword: %v", k); } - v = mrb_hash_get(mrb, kdict, k); - ci = mrb->c->ci; + v = mrb_hash_delete_key(mrb, kdict, k); regs[a] = v; - mrb_hash_delete_key(mrb, kdict, k); ci = mrb->c->ci; NEXT; } From e8d0750458a7de4432dcfc34b78edfde25e823b4 Mon Sep 17 00:00:00 2001 From: leviongit Date: Fri, 20 Mar 2026 21:29:59 +0100 Subject: [PATCH 13/27] reload `ci` after `mrb_hash_delete_key` --- src/vm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/vm.c b/src/vm.c index 2f1d42163..9b03789db 100644 --- a/src/vm.c +++ b/src/vm.c @@ -2703,9 +2703,10 @@ RETRY_TRY_BLOCK: if (kidx < 0 || !mrb_hash_p(kdict=regs[kidx]) || !mrb_hash_key_p(mrb, kdict, k)) { RAISE_FORMAT(mrb, E_ARGUMENT_ERROR, "missing keyword: %v", k); } + v = mrb_hash_delete_key(mrb, kdict, k); - regs[a] = v; ci = mrb->c->ci; + regs[a] = v; NEXT; } From 2135088ada98cb45b049b9447474409ba07eb6f8 Mon Sep 17 00:00:00 2001 From: dearblue Date: Sun, 22 Mar 2026 21:47:13 +0900 Subject: [PATCH 14/27] Avoid the impact of object modifications caused by calls to `mrb_vm_exec()` Several methods defined in mruby-array-ext are written in C and may call `mrb_vm_exec()`. If array objects are modified on the Ruby side, problems may arise in subsequent processing. - Using objects that have been removed from the array and garbage collected - Using pointers or array lengths that have become invalid due to changes to the array object - Modifying the contents of a shared array object directly ref: https://github.com/mruby/mruby/issues/6662 --- mrbgems/mruby-array-ext/src/array.c | 103 +++++++++++++++++++--------- 1 file changed, 72 insertions(+), 31 deletions(-) diff --git a/mrbgems/mruby-array-ext/src/array.c b/mrbgems/mruby-array-ext/src/array.c index def234734..70473c087 100644 --- a/mrbgems/mruby-array-ext/src/array.c +++ b/mrbgems/mruby-array-ext/src/array.c @@ -79,11 +79,14 @@ ary_assoc(mrb_state *mrb, mrb_value ary) { mrb_value k = mrb_get_arg1(mrb); + int ai = mrb_gc_arena_save(mrb); for (mrb_int i = 0; i < RARRAY_LEN(ary); i++) { mrb_value v = mrb_check_array_type(mrb, RARRAY_PTR(ary)[i]); + mrb_gc_protect(mrb, v); // v may be removed from ary by mrb_equal() if (!mrb_nil_p(v) && RARRAY_LEN(v) > 0 && mrb_equal(mrb, RARRAY_PTR(v)[0], k)) return v; + mrb_gc_arena_restore(mrb, ai); } return mrb_nil_value(); } @@ -107,12 +110,15 @@ ary_rassoc(mrb_state *mrb, mrb_value ary) { mrb_value value = mrb_get_arg1(mrb); + int ai = mrb_gc_arena_save(mrb); for (mrb_int i = 0; i < RARRAY_LEN(ary); i++) { mrb_value v = RARRAY_PTR(ary)[i]; + mrb_gc_protect(mrb, v); // v may be removed from ary by mrb_equal() if (mrb_array_p(v) && RARRAY_LEN(v) > 1 && mrb_equal(mrb, RARRAY_PTR(v)[1], value)) return v; + mrb_gc_arena_restore(mrb, ai); } return mrb_nil_value(); } @@ -410,9 +416,12 @@ ary_init_temp_set(mrb_state *mrb, ary_set_t *set, mrb_int capacity) static void ary_populate_temp_set(mrb_state *mrb, ary_set_t *set, mrb_value ary) { - mrb_int len = RARRAY_LEN(ary); - for (mrb_int i = 0; i < len; i++) { - kh_put(ary_set, mrb, set, RARRAY_PTR(ary)[i]); + int ai = mrb_gc_arena_save(mrb); + for (mrb_int i = 0; i < RARRAY_LEN(ary); i++) { + mrb_value p = RARRAY_PTR(ary)[i]; + mrb_gc_protect(mrb, p); // p may be removed from ary by kh_put(ary_set, ...) + kh_put(ary_set, mrb, set, p); + mrb_gc_arena_restore(mrb, ai); } } @@ -461,12 +470,15 @@ ary_subtract_body(mrb_state *mrb, void *data) ary_populate_temp_set(mrb, ctx->set, ctx->argv[i]); } + int ai = mrb_gc_arena_save(mrb); for (mrb_int i = 0; i < RARRAY_LEN(ctx->self); i++) { mrb_value p = RARRAY_PTR(ctx->self)[i]; + mrb_gc_protect(mrb, p); // p may be removed from self by kh_get(ary_set, ...) khiter_t k = kh_get(ary_set, mrb, ctx->set, p); if (kh_is_end(ctx->set, k)) { /* key doesn't exist in any ary */ mrb_ary_push(mrb, ctx->result, p); } + mrb_gc_arena_restore(mrb, ai); } return ctx->result; @@ -500,13 +512,13 @@ ary_subtract_internal(mrb_state *mrb, mrb_value self, mrb_int argc, const mrb_va } } else { - mrb_int self_len = RARRAY_LEN(self); - for (mrb_int i = 0; i < self_len; i++) { + int ai = mrb_gc_arena_save(mrb); + for (mrb_int i = 0; i < RARRAY_LEN(self); i++) { mrb_value p = RARRAY_PTR(self)[i]; + mrb_gc_protect(mrb, p); // p may be removed from self by mrb_equal() mrb_bool found = FALSE; for (mrb_int j = 0; j < argc; j++) { - mrb_int len = RARRAY_LEN(argv[j]); - for (mrb_int k = 0; k < len; k++) { + for (mrb_int k = 0; k < RARRAY_LEN(argv[j]); k++) { if (mrb_equal(mrb, p, RARRAY_PTR(argv[j])[k])) { found = TRUE; break; @@ -517,6 +529,7 @@ ary_subtract_internal(mrb_state *mrb, mrb_value self, mrb_int argc, const mrb_va if (!found) { mrb_ary_push(mrb, result, p); } + mrb_gc_arena_restore(mrb, ai); } } @@ -560,12 +573,10 @@ ary_difference(mrb_state *mrb, mrb_value self) return ary_subtract_internal(mrb, self, argc, argv); } - static void add_uniq(mrb_state *mrb, mrb_value item, mrb_value result) { - const mrb_int len = RARRAY_LEN(result); - for (mrb_int i = 0; i < len; i++) { + for (mrb_int i = 0; i < RARRAY_LEN(result); i++) { if (mrb_eql(mrb, item, RARRAY_PTR(result)[i])) { return; } @@ -585,15 +596,18 @@ static mrb_value ary_union_body(mrb_state *mrb, void *data) { struct ary_union_ctx *ctx = (struct ary_union_ctx *)data; + int ai = mrb_gc_arena_save(mrb); /* Add unique elements from self */ for (mrb_int i = 0; i < RARRAY_LEN(ctx->self_copy); i++) { mrb_value elem = RARRAY_PTR(ctx->self_copy)[i]; + mrb_gc_protect(mrb, elem); // elem may be removed from self_copy by kh_get(ary_set, ...) khiter_t k = kh_get(ary_set, mrb, ctx->set, elem); if (kh_is_end(ctx->set, k)) { kh_put(ary_set, mrb, ctx->set, elem); mrb_ary_push(mrb, ctx->result, elem); } + mrb_gc_arena_restore(mrb, ai); } /* Add unique elements from others */ @@ -601,11 +615,13 @@ ary_union_body(mrb_state *mrb, void *data) mrb_value other = ctx->argv[i]; for (mrb_int j = 0; j < RARRAY_LEN(other); j++) { mrb_value elem = RARRAY_PTR(other)[j]; + mrb_gc_protect(mrb, elem); // elem may be removed from other by kh_get(ary_set, ...) khiter_t k = kh_get(ary_set, mrb, ctx->set, elem); if (kh_is_end(ctx->set, k)) { kh_put(ary_set, mrb, ctx->set, elem); mrb_ary_push(mrb, ctx->result, elem); } + mrb_gc_arena_restore(mrb, ai); } } @@ -637,19 +653,25 @@ ary_union_internal(mrb_state *mrb, mrb_value self, mrb_int argc, const mrb_value } } else { + int ai = mrb_gc_arena_save(mrb); + /* Use linear search for small arrays */ /* Add unique elements from self */ - mrb_int alen = RARRAY_LEN(self); - for (mrb_int i = 0; i < alen; i++) { - add_uniq(mrb, RARRAY_PTR(self)[i], result); + for (mrb_int i = 0; i < RARRAY_LEN(self); i++) { + mrb_value p = RARRAY_PTR(self)[i]; + mrb_gc_protect(mrb, p); // p may be removed from self by add_uniq() + add_uniq(mrb, p, result); + mrb_gc_arena_restore(mrb, ai); } /* Add unique elements from others */ for (mrb_int i = 0; i < argc; i++) { mrb_value other = argv[i]; - mrb_int olen = RARRAY_LEN(other); - for (mrb_int j = 0; j < olen; j++) { - add_uniq(mrb, RARRAY_PTR(other)[j], result); + for (mrb_int j = 0; j < RARRAY_LEN(other); j++) { + mrb_value p = RARRAY_PTR(other)[j]; + mrb_gc_protect(mrb, p); // p may be removed from other by add_uniq() + add_uniq(mrb, p, result); + mrb_gc_arena_restore(mrb, ai); } } } @@ -712,13 +734,16 @@ ary_intersection_body(mrb_state *mrb, void *data) ary_populate_temp_set(mrb, ctx->set, ctx->argv[i]); } + int ai = mrb_gc_arena_save(mrb); for (mrb_int i = 0; i < RARRAY_LEN(ctx->self); i++) { mrb_value p = RARRAY_PTR(ctx->self)[i]; + mrb_gc_protect(mrb, p); // p may be removed from self by kh_get(ary_set, ...) khiter_t k = kh_get(ary_set, mrb, ctx->set, p); if (!kh_is_end(ctx->set, k)) { mrb_ary_push(mrb, ctx->result, p); kh_del(ary_set, mrb, ctx->set, k); } + mrb_gc_arena_restore(mrb, ai); } return ctx->result; @@ -752,15 +777,15 @@ ary_intersection_internal(mrb_state *mrb, mrb_value self, mrb_int argc, const mr } } else { - mrb_int self_len = RARRAY_LEN(self); - for (mrb_int i = 0; i < self_len; i++) { + int ai = mrb_gc_arena_save(mrb); + for (mrb_int i = 0; i < RARRAY_LEN(self); i++) { mrb_value p = RARRAY_PTR(self)[i]; + mrb_gc_protect(mrb, p); // p may be removed from self by mrb_equal() mrb_bool found_in_all = TRUE; for (mrb_int j = 0; j < argc; j++) { mrb_bool found_in_current_other = FALSE; - mrb_int len = RARRAY_LEN(argv[j]); - for (mrb_int k = 0; k < len; k++) { + for (mrb_int k = 0; k < RARRAY_LEN(argv[j]); k++) { if (mrb_equal(mrb, p, RARRAY_PTR(argv[j])[k])) { found_in_current_other = TRUE; break; @@ -774,8 +799,7 @@ ary_intersection_internal(mrb_state *mrb, mrb_value self, mrb_int argc, const mr if (found_in_all) { mrb_bool already_added = FALSE; - mrb_int result_len = RARRAY_LEN(result); - for (mrb_int j = 0; j < result_len; j++) { + for (mrb_int j = 0; j < RARRAY_LEN(result); j++) { if (mrb_equal(mrb, p, RARRAY_PTR(result)[j])) { already_added = TRUE; break; @@ -785,6 +809,7 @@ ary_intersection_internal(mrb_state *mrb, mrb_value self, mrb_int argc, const mr mrb_ary_push(mrb, result, p); } } + mrb_gc_arena_restore(mrb, ai); } } return result; @@ -855,8 +880,12 @@ ary_intersect_p_body(mrb_state *mrb, void *data) ary_populate_temp_set(mrb, ctx->set, ctx->shorter_ary_copy); + int ai = mrb_gc_arena_save(mrb); for (mrb_int i = 0; i < RARRAY_LEN(ctx->longer_ary); i++) { - khiter_t k = kh_get(ary_set, mrb, ctx->set, RARRAY_PTR(ctx->longer_ary)[i]); + mrb_value p = RARRAY_PTR(ctx->longer_ary)[i]; + mrb_gc_protect(mrb, p); // p may be removed from longer_ary by kh_get(ary_set, ...) + khiter_t k = kh_get(ary_set, mrb, ctx->set, p); + mrb_gc_arena_restore(mrb, ai); if (!kh_is_end(ctx->set, k)) { *ctx->found = TRUE; break; @@ -906,12 +935,16 @@ ary_intersect_p(mrb_state *mrb, mrb_value self) } } else { + int ai = mrb_gc_arena_save(mrb); for (mrb_int i = 0; i < RARRAY_LEN(longer_ary); i++) { + mrb_value p = RARRAY_PTR(longer_ary)[i]; + mrb_gc_protect(mrb, p); // p may be removed from longer_ary by mrb_equal() for (mrb_int j = 0; j < RARRAY_LEN(shorter_ary); j++) { - if (mrb_equal(mrb, RARRAY_PTR(longer_ary)[i], RARRAY_PTR(shorter_ary)[j])) { + if (mrb_equal(mrb, p, RARRAY_PTR(shorter_ary)[j])) { return mrb_true_value(); } } + mrb_gc_arena_restore(mrb, ai); } } @@ -1042,6 +1075,7 @@ ary_fill_exec(mrb_state *mrb, mrb_value self) } /* Fill the array */ + mrb_ary_modify(mrb, ary); mrb_value *ptr = ARY_PTR(ary) + start; for (mrb_int i = 0; i < length; i++) { ptr[i] = obj; @@ -1059,7 +1093,6 @@ struct ary_uniq_bang_ctx { mrb_value self_copy; mrb_value self; mrb_int *write_pos; - mrb_int len; }; static mrb_value @@ -1069,15 +1102,19 @@ ary_uniq_bang_body(mrb_state *mrb, void *data) ary_populate_temp_set(mrb, ctx->set, ctx->self_copy); - for (mrb_int read_pos = 0; read_pos < ctx->len; read_pos++) { + int ai = mrb_gc_arena_save(mrb); + for (mrb_int read_pos = 0; read_pos < RARRAY_LEN(ctx->self); read_pos++) { mrb_value elem = RARRAY_PTR(ctx->self)[read_pos]; + mrb_gc_protect(mrb, elem); // elem may be removed from self by kh_get(ary_set, ...) khiter_t k = kh_get(ary_set, mrb, ctx->set, elem); if (!kh_is_end(ctx->set, k)) { - if (*ctx->write_pos != read_pos) { + if (*ctx->write_pos != read_pos && *ctx->write_pos < RARRAY_LEN(ctx->self)) { + mrb_ary_modify(mrb, mrb_ary_ptr(ctx->self)); RARRAY_PTR(ctx->self)[*ctx->write_pos] = elem; } (*ctx->write_pos)++; kh_del(ary_set, mrb, ctx->set, k); + mrb_gc_arena_restore(mrb, ai); } } @@ -1104,28 +1141,32 @@ ary_uniq_bang(mrb_state *mrb, mrb_value self) ary_set_t *set = &set_struct; ary_init_temp_set(mrb, set, len); - struct ary_uniq_bang_ctx ctx = { set, self_copy, self, &write_pos, len }; + struct ary_uniq_bang_ctx ctx = { set, self_copy, self, &write_pos }; mrb_value result; MRB_ENSURE(mrb, result, ary_uniq_bang_body, &ctx) { ary_destroy_temp_set(mrb, set); } } else { - for (mrb_int read_pos = 0; read_pos < len; read_pos++) { + int ai = mrb_gc_arena_save(mrb); + for (mrb_int read_pos = 0; read_pos < RARRAY_LEN(self); read_pos++) { mrb_value elem = RARRAY_PTR(self)[read_pos]; + mrb_gc_protect(mrb, elem); // elem may be removed from self by mrb_equal() mrb_bool found = FALSE; - for (mrb_int j = 0; j < write_pos; j++) { + for (mrb_int j = 0; j < write_pos && j < RARRAY_LEN(self); j++) { if (mrb_equal(mrb, elem, RARRAY_PTR(self)[j])) { found = TRUE; break; } } if (!found) { - if (write_pos != read_pos) { + if (write_pos != read_pos && write_pos < RARRAY_LEN(self)) { + mrb_ary_modify(mrb, mrb_ary_ptr(self)); RARRAY_PTR(self)[write_pos] = elem; } write_pos++; } + mrb_gc_arena_restore(mrb, ai); } } From 45ebb3d0c843356e5e1f59f515c86e4540b3e6eb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Mar 2026 15:23:09 +0000 Subject: [PATCH 15/27] build(deps): bump https://github.com/rubocop/rubocop Bumps the pre-commit-hooks group with 1 update: [https://github.com/rubocop/rubocop](https://github.com/rubocop/rubocop). Updates `https://github.com/rubocop/rubocop` from v1.85.1 to 1.86.0 - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.85.1...v1.86.0) --- updated-dependencies: - dependency-name: https://github.com/rubocop/rubocop dependency-version: 1.86.0 dependency-type: direct:production dependency-group: pre-commit-hooks ... Signed-off-by: dependabot[bot] --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ae6fb7014..e3f159611 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -106,7 +106,7 @@ repos: types: [markdown] files: \.md$ - repo: https://github.com/rubocop/rubocop - rev: v1.85.1 + rev: v1.86.0 hooks: - id: rubocop name: run rubocop From c52faebb7f64cd0d1c51444d7bd22349dece93fa Mon Sep 17 00:00:00 2001 From: dearblue Date: Tue, 24 Mar 2026 21:25:46 +0900 Subject: [PATCH 16/27] Don't assign the result of `mrb_funcall()` directly to `regs` There are two reasons: - If the mruby call stack is extended, the `ci` variable may become invalid. - The C language does not specify the order in which the left-hand and right-hand sides of an assignment expression are evaluated. Therefore, if the mruby data stack is extended, `ci->stack` may become invalid. --- src/vm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/vm.c b/src/vm.c index 9b03789db..a1f272a52 100644 --- a/src/vm.c +++ b/src/vm.c @@ -3112,7 +3112,9 @@ RETRY_TRY_BLOCK: { \ mrb_value arg = mrb_int_value(mrb, c); \ mrb_sym mid = MRB_OPSYM(op_name); \ - regs[a] = mrb_funcall_argv(mrb, regs[a], mid, 1, &arg); \ + mrb_value v = mrb_funcall_argv(mrb, regs[a], mid, 1, &arg); \ + ci = mrb->c->ci; \ + regs[a] = v; \ mrb_gc_arena_restore(mrb, ai); \ } \ break; \ From 6c4a8c09dbf567eab18644c916c611275b237c0e Mon Sep 17 00:00:00 2001 From: dearblue Date: Tue, 24 Mar 2026 22:16:15 +0900 Subject: [PATCH 17/27] Define `mrb_bigint_p()` always. Define the `mrb_bigint_p()` macro function, which returns false if `MRB_USE_BIGINT` is undefined. --- include/mruby/value.h | 4 ++++ mrbgems/mruby-numeric-ext/src/numeric_ext.c | 6 +----- src/range.c | 6 +----- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/include/mruby/value.h b/include/mruby/value.h index 79216253e..0bbcfde56 100644 --- a/include/mruby/value.h +++ b/include/mruby/value.h @@ -316,7 +316,11 @@ struct RCptr { #endif #define mrb_test(o) mrb_bool(o) #ifndef mrb_bigint_p +#ifdef MRB_USE_BIGINT #define mrb_bigint_p(o) (mrb_type(o) == MRB_TT_BIGINT) +#else +#define mrb_bigint_p(o) FALSE +#endif #endif /** diff --git a/mrbgems/mruby-numeric-ext/src/numeric_ext.c b/mrbgems/mruby-numeric-ext/src/numeric_ext.c index ac29bce99..1c80a5055 100644 --- a/mrbgems/mruby-numeric-ext/src/numeric_ext.c +++ b/mrbgems/mruby-numeric-ext/src/numeric_ext.c @@ -190,11 +190,7 @@ int_powm(mrb_state *mrb, mrb_value x) return mrb_int_pow(mrb, x, mrb_get_arg1(mrb)); } mrb_get_args(mrb, "oo", &e, &m); - if (!mrb_integer_p(e) -#ifdef MRB_USE_BIGINT - && !mrb_bigint_p(e) -#endif - ) { + if (!mrb_integer_p(e) && !mrb_bigint_p(e)) { mrb_raise(mrb, E_TYPE_ERROR, "int.pow(n,m): 2nd argument not allowed unless 1st argument is an integer"); } #ifdef MRB_USE_BIGINT diff --git a/src/range.c b/src/range.c index 7a0e13890..0ff506b5b 100644 --- a/src/range.c +++ b/src/range.c @@ -432,11 +432,7 @@ mrb_get_values_at(mrb_state *mrb, mrb_value obj, mrb_int olen, mrb_int argc, con for (mrb_int i = 0; i < argc; i++) { mrb_value v = argv[i]; - if (mrb_integer_p(v) -#ifdef MRB_USE_BIGINT - || mrb_bigint_p(v) -#endif - ) { + if (mrb_integer_p(v) || mrb_bigint_p(v)) { mrb_int i = mrb_as_int(mrb, v); mrb_ary_push(mrb, result, func(mrb, obj, i)); } From ab249864cc2cfc64f89244e07b62cda79a73a687 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Wed, 25 Mar 2026 15:24:01 +0900 Subject: [PATCH 18/27] gc.c: remove all matching entries in mrb_gc_unregister() Previously only the first match was removed, leaking duplicate entries when the same object was registered multiple times. Use two-pointer compaction for O(N) removal. Fixes #6760. Co-authored-by: Claude --- src/gc.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/gc.c b/src/gc.c index 411cb6852..37bb04e06 100644 --- a/src/gc.c +++ b/src/gc.c @@ -541,15 +541,15 @@ mrb_gc_unregister(mrb_state *mrb, mrb_value obj) if (!mrb_array_p(table)) return; struct RArray *a = mrb_ary_ptr(table); mrb_ary_modify(mrb, a); - mrb_int len = ARY_LEN(a)-1; + mrb_int len = ARY_LEN(a); mrb_value *ptr = ARY_PTR(a); - for (mrb_int i = 0; i <= len; i++) { - if (mrb_ptr(ptr[i]) == mrb_ptr(obj)) { - ARY_SET_LEN(a, len); - memmove(&ptr[i], &ptr[i + 1], (len - i) * sizeof(mrb_value)); - break; + mrb_int w = 0; + for (mrb_int r = 0; r < len; r++) { + if (mrb_ptr(ptr[r]) != mrb_ptr(obj)) { + ptr[w++] = ptr[r]; } } + ARY_SET_LEN(a, w); } MRB_API struct RBasic* From e8c5e7c0cd672e7185b815e40be6fd5c1ef09b86 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 24 Mar 2026 13:21:13 +0900 Subject: [PATCH 19/27] mruby-test: write generated C files atomically to avoid race condition With `rake -m`, the C compiler can start reading a partially-written gem_test.c before generation completes. Write to a .tmp file first, then rename to the final path. Co-authored-by: Claude --- mrbgems/mruby-test/mrbgem.rake | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/mrbgems/mruby-test/mrbgem.rake b/mrbgems/mruby-test/mrbgem.rake index d8339fec0..9a6078cec 100644 --- a/mrbgems/mruby-test/mrbgem.rake +++ b/mrbgems/mruby-test/mrbgem.rake @@ -19,9 +19,11 @@ MRuby::Gem::Specification.new('mruby-test') do |spec| file assert_c => [assert_rb, build.mrbcfile] do |t| _pp "GEN", t.name.relative_path mkdir_p File.dirname(t.name) - open(t.name, 'w') do |f| + tmpfile = t.name + ".tmp" + open(tmpfile, 'w') do |f| mrbc.run f, assert_rb, 'mrbtest_assert_irep', cdump: false end + File.rename(tmpfile, t.name) end gem_table = build.gems.generate_gem_table build @@ -36,7 +38,8 @@ MRuby::Gem::Specification.new('mruby-test') do |spec| file g.test_rbireps => [g.test_rbfiles, build.mrbcfile].flatten do |t| _pp "GEN", t.name.relative_path mkdir_p File.dirname(t.name) - open(t.name, 'w') do |f| + tmpfile = t.name + ".tmp" + open(tmpfile, 'w') do |f| g.print_gem_test_header(f) test_preload = g.test_preload and [g.dir, MRUBY_ROOT].map {|dir| File.expand_path(g.test_preload, dir) @@ -117,6 +120,7 @@ MRuby::Gem::Specification.new('mruby-test') do |spec| end f.puts %Q[}] end + File.rename(tmpfile, t.name) end end @@ -134,7 +138,8 @@ MRuby::Gem::Specification.new('mruby-test') do |spec| file clib => ["#{build.build_dir}/mrbgems/active_gems.txt", build.mrbcfile, __FILE__] do |_t| _pp "GEN", clib.relative_path mkdir_p File.dirname(clib) - open(clib, 'w') do |f| + tmpfile = clib + ".tmp" + open(tmpfile, 'w') do |f| f.puts %Q[/*] f.puts %Q[ * This file contains a list of all] f.puts %Q[ * test functions.] @@ -169,5 +174,6 @@ MRuby::Gem::Specification.new('mruby-test') do |spec| end f.puts %Q[}] end + File.rename(tmpfile, clib) end end From d50932c50fe8a163ad2b2ab17a452b38bdab57ed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 14:54:41 +0000 Subject: [PATCH 20/27] build(deps): bump j178/prek-action Bumps the github-actions-dependencies group with 1 update: [j178/prek-action](https://github.com/j178/prek-action). Updates `j178/prek-action` from 1 to 2 - [Release notes](https://github.com/j178/prek-action/releases) - [Commits](https://github.com/j178/prek-action/compare/v1...v2) --- updated-dependencies: - dependency-name: j178/prek-action dependency-version: '2' dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions-dependencies ... Signed-off-by: dependabot[bot] --- .github/workflows/pre-commit-manual.yml | 2 +- .github/workflows/pre-commit.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pre-commit-manual.yml b/.github/workflows/pre-commit-manual.yml index 0196260a4..2c0f321e7 100644 --- a/.github/workflows/pre-commit-manual.yml +++ b/.github/workflows/pre-commit-manual.yml @@ -15,7 +15,7 @@ jobs: uses: actions/checkout@v6 with: persist-credentials: false - - uses: j178/prek-action@v1 + - uses: j178/prek-action@v2 with: install-only: true - name: Run manual pre-commit hooks diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index c35679fe6..3e516d4a0 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -15,6 +15,6 @@ jobs: uses: actions/checkout@v6 with: persist-credentials: false - - uses: j178/prek-action@v1 + - uses: j178/prek-action@v2 with: extra-args: --all-files From 3f52ef6cfce7ddcf82adc8105052dbece29060b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20Hasi=C5=84ski?= Date: Sat, 28 Mar 2026 22:59:11 +0100 Subject: [PATCH 21/27] Fix Lazy#flat_map to handle non-enumerable block return values When the block passed to Lazy#flat_map returns a non-enumerable value (e.g. an Integer), mruby raised NoMethodError because it unconditionally called #each on the result. CRuby yields non-enumerable values directly. Use respond_to?(:each) to match CRuby behavior: iterate enumerable results, yield non-enumerable results as-is. --- mrbgems/mruby-enum-lazy/mrblib/lazy.rb | 11 ++++++----- mrbgems/mruby-enum-lazy/test/lazy.rb | 12 ++++++++++++ 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/mrbgems/mruby-enum-lazy/mrblib/lazy.rb b/mrbgems/mruby-enum-lazy/mrblib/lazy.rb index 7506d7fc8..140faf65b 100644 --- a/mrbgems/mruby-enum-lazy/mrblib/lazy.rb +++ b/mrbgems/mruby-enum-lazy/mrblib/lazy.rb @@ -291,11 +291,12 @@ class Enumerator # def flat_map(&block) Lazy.new(self){|yielder, val| - ary = block.call(val) - # TODO: check ary is an Array - ary.each {|x| - yielder << x - } + result = block.call(val) + if result.respond_to?(:each) + result.each {|x| yielder << x } + else + yielder << result + end } end alias collect_concat flat_map diff --git a/mrbgems/mruby-enum-lazy/test/lazy.rb b/mrbgems/mruby-enum-lazy/test/lazy.rb index 5266f6f69..145c73caf 100644 --- a/mrbgems/mruby-enum-lazy/test/lazy.rb +++ b/mrbgems/mruby-enum-lazy/test/lazy.rb @@ -46,6 +46,18 @@ assert("Enumerator::Lazy#to_enum") do assert_equal [0*1, 2*3, 4*5, 6*7], lazy_enum.map { |a| a.first * a.last }.first(4) end +assert("Enumerator::Lazy#flat_map with arrays") do + assert_equal [1, 10, 2, 20, 3, 30], [1, 2, 3].lazy.flat_map {|x| [x, x*10]}.force +end + +assert("Enumerator::Lazy#flat_map with non-enumerable") do + assert_equal [1, 2, 3], [1, 2, 3].lazy.flat_map {|x| x}.force +end + +assert("Enumerator::Lazy#flat_map with enumerable") do + assert_equal [[1, 2], [3, 4]], [1, 3].lazy.flat_map {|x| [[x, x+1]]}.force +end + assert("Enumerator::Lazy#grep_v") do lazy_grep_v = (0..).lazy.grep_v(2..4) assert_kind_of Enumerator::Lazy, lazy_grep_v From 8f71887e46903350458bef4a86477ad74f7958e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20Hasi=C5=84ski?= Date: Sat, 28 Mar 2026 23:14:46 +0100 Subject: [PATCH 22/27] Improve flat_map test descriptions for clarity --- mrbgems/mruby-enum-lazy/test/lazy.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mrbgems/mruby-enum-lazy/test/lazy.rb b/mrbgems/mruby-enum-lazy/test/lazy.rb index 145c73caf..a3090864a 100644 --- a/mrbgems/mruby-enum-lazy/test/lazy.rb +++ b/mrbgems/mruby-enum-lazy/test/lazy.rb @@ -46,15 +46,15 @@ assert("Enumerator::Lazy#to_enum") do assert_equal [0*1, 2*3, 4*5, 6*7], lazy_enum.map { |a| a.first * a.last }.first(4) end -assert("Enumerator::Lazy#flat_map with arrays") do +assert("Enumerator::Lazy#flat_map with array from block") do assert_equal [1, 10, 2, 20, 3, 30], [1, 2, 3].lazy.flat_map {|x| [x, x*10]}.force end -assert("Enumerator::Lazy#flat_map with non-enumerable") do +assert("Enumerator::Lazy#flat_map with non-enumerable from block") do assert_equal [1, 2, 3], [1, 2, 3].lazy.flat_map {|x| x}.force end -assert("Enumerator::Lazy#flat_map with enumerable") do +assert("Enumerator::Lazy#flat_map with nested array from block") do assert_equal [[1, 2], [3, 4]], [1, 3].lazy.flat_map {|x| [[x, x+1]]}.force end From 919cbd8fea7676de5eaa7a23e8c8831ba70c3dcd Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Mon, 30 Mar 2026 07:06:30 +0900 Subject: [PATCH 23/27] mruby-compiler: allow compound statement in tLPAREN_ARG Change the grammar rule for tLPAREN_ARG from accepting only a single stmt to accepting compstmt. This allows compound statements with semicolons inside parenthesized arguments when the parenthesis is preceded by a space, e.g., `p (f1; f2)`. This matches the behavior of CRuby 3.3+. Fixes #6766. Co-authored-by: Claude --- mrbgems/mruby-compiler/core/parse.y | 2 +- mrbgems/mruby-compiler/core/y.tab.c | 3706 ++++++++++++++------------- 2 files changed, 1870 insertions(+), 1838 deletions(-) diff --git a/mrbgems/mruby-compiler/core/parse.y b/mrbgems/mruby-compiler/core/parse.y index f22fd5f9f..74727feef 100644 --- a/mrbgems/mruby-compiler/core/parse.y +++ b/mrbgems/mruby-compiler/core/parse.y @@ -3260,7 +3260,7 @@ primary : literal $$ = p->cmdarg_stack; p->cmdarg_stack = 0; } - stmt {p->lstate = EXPR_ENDARG;} rparen + compstmt {p->lstate = EXPR_ENDARG;} rparen { p->cmdarg_stack = $2; $$ = $3; diff --git a/mrbgems/mruby-compiler/core/y.tab.c b/mrbgems/mruby-compiler/core/y.tab.c index e37c63c7c..098cad5e3 100644 --- a/mrbgems/mruby-compiler/core/y.tab.c +++ b/mrbgems/mruby-compiler/core/y.tab.c @@ -2948,7 +2948,7 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 106 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 13593 +#define YYLAST 13757 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 149 @@ -3177,7 +3177,7 @@ yysymbol_name (yysymbol_kind_t yysymbol) } #endif -#define YYPACT_NINF (-962) +#define YYPACT_NINF (-975) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) @@ -3191,127 +3191,127 @@ yysymbol_name (yysymbol_kind_t yysymbol) STATE-NUM. */ static const yytype_int16 yypact[] = { - -962, 3710, 148, 8708, 10832, 11174, 7016, -962, 10478, 10478, - -962, -962, 10946, 8198, 6632, 8944, 8944, -962, -962, 8944, - 4231, 3370, -962, -962, -962, -962, 38, 8198, -962, 60, - -962, -962, -962, 7158, 3823, -962, -962, 7300, -962, -962, - -962, -962, -962, -962, -962, 128, 10596, 10596, 10596, 10596, - 188, 5891, 750, 9416, 9770, 8480, -962, 7916, 1085, 721, - 872, 1237, 1327, -962, 173, 10714, 10596, -962, 989, -962, - 1536, -962, 515, 1533, 1533, -962, -962, 255, 213, -962, - 199, 11060, -962, 253, 1909, 456, 501, 337, 61, -962, - 187, -962, -962, -962, -962, -962, -962, -962, -962, -962, - 144, 217, -962, 241, 42, -962, -962, -962, -962, -962, - -962, 263, 263, 38, 936, 1105, -962, 10478, 346, 6010, - 528, 2225, 2225, -962, 309, -962, 537, -962, -962, 42, - -962, -962, -962, -962, -962, -962, -962, -962, -962, -962, - -962, -962, -962, -962, -962, -962, -962, -962, -962, -962, - -962, -962, -962, -962, -962, -962, -962, -962, 68, 97, - 143, 167, -962, -962, -962, -962, -962, -962, 169, 206, - 242, 265, -962, 283, -962, -962, -962, -962, -962, -962, - -962, -962, -962, -962, -962, -962, -962, -962, -962, -962, - -962, -962, -962, -962, -962, -962, -962, -962, -962, -962, - -962, -962, -962, -962, -962, -962, -962, -962, -962, 316, - 4923, 400, 515, 1533, 1533, 303, 354, 667, 172, 375, - 189, 303, 10478, 10478, 701, 450, -962, -962, 753, 491, - 49, 74, -962, -962, -962, -962, -962, -962, -962, -962, - -962, 8057, -962, -962, 378, -962, -962, -962, -962, -962, - -962, 989, -962, 367, -962, 510, -962, -962, 989, 3959, - 150, 10596, 10596, 10596, 10596, -962, 3465, -962, -962, 386, - 479, 386, -962, -962, -962, 9062, -962, -962, 8944, -962, - -962, -962, -962, 6632, 6870, -962, 406, 6129, -962, 823, - 454, 13460, 13460, 244, 8826, 5891, 431, 989, 1536, 989, - 500, -962, 8826, 989, 483, 1726, 1726, -962, 3465, 458, - 1726, -962, 579, 11288, 495, 826, 855, 891, 1663, -962, - -962, -962, -962, -962, 1331, -962, -962, -962, -962, -962, - -962, 576, 1341, -962, -962, 893, -962, 1050, -962, 1391, - -962, 1398, 539, 553, -962, -962, -962, -962, 6394, 10478, - 10478, 10478, 10478, 8826, 10478, 10478, 84, -962, -962, -962, - -962, 602, 989, -962, -962, -962, -962, -962, -962, -962, - 1963, 541, 543, 4923, 10596, -962, 526, 623, 559, -962, - 989, -962, -962, -962, 564, 10596, -962, 570, 628, 574, - 137, -962, -962, 560, 4923, -962, -962, 9888, -962, 5891, - 8594, 585, 9888, -962, 10596, 10596, 10596, 10596, 10596, 10596, - 10596, 10596, 10596, 10596, 10596, 10596, 10596, 10596, -962, 10596, - 10596, 10596, 10596, 10596, 10596, 10596, 10596, 10596, 10596, 10596, - 10596, 11566, -962, 8944, -962, 11652, -962, -962, 12856, -962, - -962, -962, -962, 10714, 10714, -962, 584, -962, 515, -962, - 915, -962, -962, -962, -962, -962, -962, 11738, 8944, 11824, - 4923, 10478, -962, -962, -962, 670, 719, 235, 617, 618, - -962, 5069, 725, 10596, 11910, 8944, 11996, 10596, 10596, 5507, - 532, 532, 83, 12082, 8944, 12168, -962, 683, -962, 6129, - 563, -962, -962, 10006, 727, -962, 10596, 10596, 13398, 13398, - 13398, 10596, -962, -962, 9180, -962, 10596, -962, 9534, 6751, - 604, 989, 386, 386, -962, -962, 285, 607, -962, -962, - -962, 8198, 5626, 616, 11910, 11996, 10596, 1536, 989, -962, - -962, 6513, 620, 1536, -962, -962, 9652, -962, 989, 9770, - -962, -962, -962, 915, 199, 11288, -962, 11288, 12254, 8944, - 12340, 2165, -962, -962, 626, -962, 1415, 6129, 576, -962, - -962, -962, -962, -962, -962, -962, 10596, 10596, -962, -962, - -962, -962, -962, -962, -962, -962, -962, -962, -962, -962, - 1365, 989, 989, 631, 10714, 766, 13398, 289, -962, -962, - -962, 341, -962, -962, 2734, -962, 13398, 2165, -962, -962, - 1419, -962, -962, -962, 10714, 768, 246, 10596, -962, 13114, - 386, -962, 989, 11288, 645, -962, -962, -962, 744, 644, - 2901, -962, -962, 952, 389, 2410, 2965, 2965, 2965, 2965, - 1835, 1835, 3556, 3121, 2965, 2965, 13460, 13460, 1564, 1564, - 2410, 454, 13398, 1835, 1835, 1395, 1395, 1481, 476, 476, - 454, 454, 454, 4367, 7656, 4639, 7774, -962, 263, -962, - 649, 386, 318, -962, 331, -962, -962, 4095, -962, -962, - 2566, 246, 246, -962, 12928, -962, -962, -962, -962, -962, - 989, 10478, 4923, 1208, 238, -962, 263, 656, 263, 785, - 285, 8339, -962, 10124, 790, -962, 10596, 10596, 639, -962, - 7418, 7537, 668, 468, 474, 790, -962, -962, -962, -962, - 77, 104, 669, 93, 96, 10478, 8198, 672, 2410, 805, - 13398, 82, -962, 13398, 13398, 13398, 517, 10596, 3465, -962, - 386, 13398, -962, -962, -962, -962, 9298, 9534, -962, -962, - -962, 674, -962, -962, -16, 1536, 989, 1726, 585, -962, - 1208, 238, 685, 1221, 1298, -962, 62, 2165, -962, 691, - -962, 454, 454, -962, -962, 778, 989, 682, -962, -962, - 2754, 796, 12990, -962, 787, 602, -962, 559, -962, 989, - -962, -962, 713, 715, 717, -962, 720, 787, 717, 820, - 13052, -962, -962, 2165, 4923, -962, -962, 13185, 10242, -962, - -962, 11288, 8826, 10714, 10596, 12426, 8944, 12512, -962, -962, - -962, 814, -962, -962, 817, 2044, 71, 827, 269, 835, - -962, 2304, 735, 130, -962, -962, 746, 799, -962, 749, - -962, -962, -962, -962, -962, -962, 154, 10714, 10714, -962, - 584, 408, 9180, 10714, 10714, -962, 584, 61, 255, 4923, - 6129, 246, -962, 989, 877, -962, -962, -962, -962, 13114, - -962, 801, -962, 5772, 883, -962, 10478, 884, -962, 10596, - 10596, 508, 10596, 10596, 890, 6275, 6275, 110, 532, -962, - -962, 755, -962, 10360, 5215, 13398, -962, 6751, 386, -962, - -962, -962, 177, 761, 1197, 4923, 6129, -962, -962, -962, - 765, -962, 1848, 989, 10596, 10596, -962, -962, 2165, -962, - 1419, -962, 1419, -962, 1419, -962, -962, 10596, 10596, -962, - -962, -962, 11402, -962, 769, 559, 770, 11402, -962, 773, - 775, -962, 903, 10596, 13256, -962, -962, 13398, 4503, 4775, - 767, 522, 554, 2560, -962, -962, -962, -962, 784, 807, - 809, 814, -962, 793, 810, -962, -962, -962, -962, -962, - 813, 829, -962, 887, 2560, 2560, 886, 87, 10596, 10596, - -962, -962, -962, -962, -962, 10714, -962, -962, -962, -962, - -962, -962, -962, 941, 833, 6129, 4923, -962, -962, 11516, - 303, -962, -962, 6275, -962, -962, 303, -962, 10596, -962, - 950, 953, -962, 10478, 10478, 5361, 13398, 446, -962, 9534, - -962, 1254, 960, 837, 1764, 1764, 798, -962, 13398, 13398, - 717, 838, 717, 717, 13398, 13398, 866, 874, 948, 981, - 289, -962, -962, 1683, -962, 981, 2165, -962, 1419, -962, - -962, 13327, 561, -962, -962, 2304, 2560, -962, 87, -962, - 2560, -962, -962, 869, -962, -962, -962, -962, 13398, 13398, - -962, -962, -962, -962, 875, 993, 963, -962, 1000, 855, - 891, 4923, -962, 5069, -962, -962, 6275, 303, 303, 317, - -962, -962, -962, -962, 882, -962, -962, -962, -962, 888, - 888, 1764, 892, -962, 1419, -962, -962, -962, -962, -962, - -962, 12598, -962, 559, 289, -962, -962, 897, 898, 914, - -962, 916, 914, -962, 918, 922, -962, 869, 2560, -962, - -962, 915, 12684, 8944, 12770, 719, 639, 1004, 5361, 5361, - 2410, -962, 1013, 1254, 517, 1764, 888, 1764, 717, 889, - 901, -962, 2165, -962, 1419, -962, 1419, -962, 1419, -962, - -962, 2560, 2304, -962, 1208, 238, 924, 322, 629, -962, - -962, -962, 317, 317, 680, -962, -962, 888, -962, 914, - 925, 914, 914, 927, -962, 177, 1051, 1055, 303, 1041, - 1043, -962, 1419, -962, -962, -962, 2560, -962, -962, 5361, - 10478, 10478, 914, 317, 303, 303, -962, -962, 5361, 5361, - 317, 317, -962, -962 + -975, 3710, 183, 8854, 10978, 11320, 7162, -975, 10624, 10624, + -975, -975, 11092, 8344, 6778, 9090, 9090, -975, -975, 9090, + 4231, 3370, -975, -975, -975, -975, 54, 8344, -975, 66, + -975, -975, -975, 7304, 3823, -975, -975, 7446, -975, -975, + -975, -975, -975, -975, -975, 210, 10742, 10742, 10742, 10742, + 109, 5891, 6010, 9562, 9916, 8626, -975, 8062, 1236, 893, + 314, 1249, 1252, -975, 447, 10860, 10742, -975, 857, -975, + 745, -975, 569, 2754, 2754, -975, -975, 173, 89, -975, + 106, 11206, -975, 136, 1909, 631, 667, 130, 41, -975, + 341, -975, -975, -975, -975, -975, -975, -975, -975, -975, + 211, 195, -975, 214, 87, -975, -975, -975, -975, -975, + -975, 180, 180, 54, 125, 498, -975, 10624, 187, 6129, + 556, 2225, 2225, -975, 215, -975, 691, -975, -975, 87, + -975, -975, -975, -975, -975, -975, -975, -975, -975, -975, + -975, -975, -975, -975, -975, -975, -975, -975, -975, -975, + -975, -975, -975, -975, -975, -975, -975, -975, 77, 143, + 149, 153, -975, -975, -975, -975, -975, -975, 164, 181, + 233, 247, -975, 248, -975, -975, -975, -975, -975, -975, + -975, -975, -975, -975, -975, -975, -975, -975, -975, -975, + -975, -975, -975, -975, -975, -975, -975, -975, -975, -975, + -975, -975, -975, -975, -975, -975, -975, -975, -975, 264, + 4923, 351, 569, 2754, 2754, 179, 261, 701, 220, 310, + 221, 179, 10624, 10624, 759, 365, -975, -975, 823, 404, + 21, 58, -975, -975, -975, -975, -975, -975, -975, -975, + -975, 8203, -975, -975, 298, -975, -975, -975, -975, -975, + -975, 857, -975, 951, -975, 439, -975, -975, 857, 3959, + 129, 10742, 10742, 10742, 10742, -975, 3465, -975, -975, 322, + 409, 322, -975, -975, -975, 9208, -975, -975, 9090, -975, + -975, -975, -975, 6778, 7016, -975, 334, 6248, -975, 891, + 379, 13606, 13606, 279, 8972, 5891, 355, 1572, 745, 857, + 402, -975, 6129, 857, 345, 1350, 1350, -975, 3465, 405, + 1350, -975, 491, 11434, 408, 950, 952, 981, 1713, -975, + -975, -975, -975, -975, 1327, -975, -975, -975, -975, -975, + -975, 966, 1331, -975, -975, 1244, -975, 872, -975, 1338, + -975, 1341, 452, 458, -975, -975, -975, -975, 6659, 10624, + 10624, 10624, 10624, 8972, 10624, 10624, 124, -975, -975, -975, + -975, 509, 857, -975, -975, -975, -975, -975, -975, -975, + 2841, 451, 459, 4923, 10742, -975, 441, 540, 453, -975, + 857, -975, -975, -975, 455, 10742, -975, 462, 549, 467, + 283, -975, -975, 516, 4923, -975, -975, 10034, -975, 5891, + 8740, 504, 10034, -975, 10742, 10742, 10742, 10742, 10742, 10742, + 10742, 10742, 10742, 10742, 10742, 10742, 10742, 10742, -975, 10742, + 10742, 10742, 10742, 10742, 10742, 10742, 10742, 10742, 10742, 10742, + 10742, 11712, -975, 9090, -975, 11798, -975, -975, 13002, -975, + -975, -975, -975, 10860, 10860, -975, 541, -975, 569, -975, + 1001, -975, -975, -975, -975, -975, -975, 11884, 9090, 11970, + 4923, 10624, -975, -975, -975, 635, 640, 244, 535, 547, + -975, 5069, 646, 10742, 12056, 9090, 12142, 10742, 10742, 5507, + 750, 750, 84, 12228, 9090, 12314, -975, 614, -975, 6248, + 435, -975, -975, 10152, 668, -975, 10742, 10742, 13544, 13544, + 13544, 10742, -975, -975, 9326, -975, 10742, -975, 9680, 6897, + 550, 857, 322, 322, -975, -975, 914, 571, -975, -975, + -975, 8344, 5626, 546, 12056, 12142, 10742, 745, 857, -975, + -975, 6540, 559, -975, -975, -975, 9798, -975, 857, 9916, + -975, -975, -975, 1001, 106, 11434, -975, 11434, 12400, 9090, + 12486, 2165, -975, -975, 590, -975, 1398, 6248, 966, -975, + -975, -975, -975, -975, -975, -975, 10742, 10742, -975, -975, + -975, -975, -975, -975, -975, -975, -975, -975, -975, -975, + 1453, 857, 857, 595, 10860, 727, 13544, 578, -975, -975, + -975, 59, -975, -975, 2966, -975, 13544, 2165, -975, -975, + 1242, -975, -975, -975, 10860, 729, 35, 10742, -975, 13260, + 322, -975, 857, 11434, 606, -975, -975, -975, 702, 628, + 2901, -975, -975, 1024, 263, 2044, 3556, 3556, 3556, 3556, + 1659, 1659, 13624, 3121, 3556, 3556, 13606, 13606, 1564, 1564, + 2044, 379, 13544, 1659, 1659, 1814, 1814, 1470, 542, 542, + 379, 379, 379, 4367, 7802, 4639, 7920, -975, 180, -975, + 611, 322, 291, -975, 342, -975, -975, 4095, -975, -975, + 2566, 35, 35, -975, 13074, -975, -975, -975, -975, -975, + 857, 10624, 4923, 757, 161, -975, 180, 624, 180, 751, + 914, 8485, -975, 10270, 755, -975, 10742, 10742, 604, -975, + 7564, 7683, 634, 346, 347, 755, -975, -975, -975, -975, + 55, 63, 641, 86, 105, 10624, 8344, 651, 2044, 779, + 13544, 327, -975, 13544, 13544, 13544, 1208, 10742, 3465, -975, + 322, 13544, -975, -975, -975, -975, 9444, 9680, -975, -975, + -975, 656, -975, -975, 131, 745, 857, 1350, 504, -975, + 757, 161, 659, 936, 1105, -975, 61, 2165, -975, 658, + -975, 379, 379, -975, -975, 336, 857, 666, -975, -975, + 2986, 765, 13136, -975, 753, 509, -975, 453, -975, 857, + -975, -975, 671, 678, 682, -975, 690, 753, 682, 789, + 13198, -975, -975, 2165, 4923, -975, -975, 13331, 10388, -975, + -975, 11434, 8972, 10860, 10742, 12572, 9090, 12658, -975, -975, + -975, 777, -975, -975, 782, 1383, 107, 800, 393, 801, + -975, 2304, 713, 46, -975, -975, 716, 763, -975, 728, + -975, -975, -975, -975, -975, -975, 797, 10860, 10860, -975, + 541, 468, 9326, 10860, 10860, -975, 541, 41, 173, 4923, + 6248, 35, -975, 857, 859, -975, -975, -975, -975, 13260, + -975, 784, -975, 5772, 858, -975, 10624, 863, -975, 10742, + 10742, 349, 10742, 10742, 871, 6394, 6394, 113, 750, -975, + -975, 536, -975, 10506, 5215, 13544, -975, 6897, 322, -975, + -975, -975, 615, 743, 989, 4923, 6248, -975, -975, -975, + 758, -975, 1560, 857, 10742, 10742, -975, -975, 2165, -975, + 1242, -975, 1242, -975, 1242, -975, -975, 10742, 10742, -975, + -975, -975, 11548, -975, 760, 453, 761, 11548, -975, 766, + 769, -975, 902, 10742, 13402, -975, -975, 13544, 4503, 4775, + 790, 360, 361, 2410, -975, -975, -975, -975, 791, 776, + 783, 777, -975, 799, 798, -975, -975, -975, -975, -975, + 807, 813, -975, 890, 2410, 2410, 901, 50, 10742, 10742, + -975, -975, -975, -975, -975, 10860, -975, -975, -975, -975, + -975, -975, -975, 945, 826, 6248, 4923, -975, -975, 11662, + 179, -975, -975, 6394, -975, -975, 179, -975, 10742, -975, + 953, 956, -975, 10624, 10624, 5361, 13544, 300, -975, 9680, + -975, 1608, 958, 827, 1582, 1582, 838, -975, 13544, 13544, + 682, 850, 682, 682, 13544, 13544, 869, 874, 947, 1064, + 578, -975, -975, 1963, -975, 1064, 2165, -975, 1242, -975, + -975, 13473, 469, -975, -975, 2304, 2410, -975, 50, -975, + 2410, -975, -975, 866, -975, -975, -975, -975, 13544, 13544, + -975, -975, -975, -975, 875, 996, 963, -975, 1097, 952, + 981, 4923, -975, 5069, -975, -975, 6394, 179, 179, 389, + -975, -975, -975, -975, 877, -975, -975, -975, -975, 882, + 882, 1582, 886, -975, 1242, -975, -975, -975, -975, -975, + -975, 12744, -975, 453, 578, -975, -975, 888, 892, 897, + -975, 903, 897, -975, 916, 922, -975, 866, 2410, -975, + -975, 1001, 12830, 9090, 12916, 640, 604, 1005, 5361, 5361, + 2044, -975, 1041, 1608, 1208, 1582, 882, 1582, 682, 921, + 923, -975, 2165, -975, 1242, -975, 1242, -975, 1242, -975, + -975, 2410, 2304, -975, 757, 161, 946, 711, 725, -975, + -975, -975, 389, 389, 594, -975, -975, 882, -975, 897, + 961, 897, 897, 967, -975, 615, 1074, 1079, 179, 1055, + 1059, -975, 1242, -975, -975, -975, 2410, -975, -975, 5361, + 10624, 10624, 897, 389, 179, 179, -975, -975, 5361, 5361, + 389, 389, -975, -975 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -3324,7 +3324,7 @@ static const yytype_int16 yydefact[] = 273, 273, 560, 559, 561, 562, 680, 0, 10, 0, 564, 563, 565, 550, 664, 552, 551, 554, 553, 546, 547, 507, 508, 566, 567, 558, 0, 0, 0, 0, - 0, 0, 299, 692, 692, 91, 316, 0, 0, 0, + 0, 0, 0, 692, 692, 91, 316, 0, 0, 0, 0, 0, 0, 522, 0, 0, 0, 3, 678, 6, 9, 27, 32, 615, 615, 48, 63, 62, 0, 79, 0, 83, 93, 0, 57, 251, 0, 64, 314, 289, @@ -3348,7 +3348,7 @@ static const yytype_int16 yydefact[] = 558, 281, 661, 276, 0, 268, 280, 77, 272, 692, 505, 692, 652, 78, 76, 692, 262, 310, 0, 75, 261, 419, 74, 678, 0, 18, 0, 0, 224, 0, - 225, 212, 215, 306, 0, 0, 0, 678, 15, 678, + 225, 212, 215, 306, 0, 0, 0, 0, 15, 678, 81, 14, 0, 678, 0, 683, 683, 252, 0, 0, 683, 650, 0, 0, 89, 0, 99, 106, 615, 540, 539, 541, 542, 536, 0, 538, 537, 509, 514, 513, @@ -3372,7 +3372,7 @@ static const yytype_int16 yydefact[] = 275, 0, 680, 269, 0, 278, 0, 270, 0, 678, 0, 678, 692, 692, 263, 274, 678, 0, 312, 51, 681, 0, 0, 0, 0, 0, 0, 17, 678, 304, - 13, 679, 80, 300, 303, 307, 685, 253, 684, 685, + 13, 0, 80, 300, 303, 307, 685, 253, 684, 685, 255, 308, 651, 105, 97, 0, 92, 0, 0, 692, 0, 615, 317, 404, 600, 543, 0, 0, 517, 523, 510, 512, 519, 521, 533, 545, 0, 0, 7, 21, @@ -3445,26 +3445,26 @@ static const yytype_int16 yydefact[] = /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -962, -962, -962, 565, -962, 32, -962, -267, 357, -962, - -962, 100, -365, -320, -5, -962, -962, 878, -962, 1448, - 18, -45, -962, -962, -492, 29, 1073, -170, -15, -38, - -302, -513, -13, 1858, -96, 1084, 20, -20, -962, -962, - 12, -962, 2730, -962, 780, 73, -527, -418, 118, -962, - -9, -437, -250, -215, 101, -356, 26, -962, -962, -962, - -962, -962, -962, -962, -962, -962, -962, -962, -962, -962, - -962, -962, -962, 141, -151, -458, -35, -681, -962, -962, - -962, 301, 497, -962, -520, -962, -962, -198, -962, -36, - -962, -962, -962, 247, -962, -962, -962, -80, -962, -488, - -962, -582, -962, -962, -962, -599, -962, 50, -276, -962, - 139, -962, -962, -942, -739, -962, -962, -962, 290, -858, - -730, -962, -14, -962, -962, -962, -962, -962, 276, 105, - -163, -962, -962, -962, -962, -962, -271, -962, 856, -962, - -962, 421, 1, -962, -962, 679, 1875, 2479, 1104, 1627, - -962, -962, -19, 615, 37, 146, 530, 89, -962, -962, - -962, -69, 41, -219, -238, -950, -715, -531, -962, 1045, - -728, -548, -961, 90, -543, -962, -4, -962, 230, -368, - -962, -962, -962, 43, -475, 699, -346, -962, -962, -81, - -962, 15, -25, 647, -222, 1060, -268, -21, -1 + -975, -975, -975, 583, -975, 14, -975, -267, 357, -975, + -975, 65, -318, -327, -5, -975, -975, 878, -975, 1448, + 18, -45, -975, -975, -692, 29, 1098, -224, 4, -38, + -298, -482, -19, 1858, -97, 1106, 20, -20, -975, -975, + 12, -975, 2730, -975, 780, 73, 24, -384, 83, -975, + -9, -454, -269, 17, 118, -379, 26, -975, -975, -975, + -975, -975, -975, -975, -975, -975, -975, -975, -975, -975, + -975, -975, -975, 141, -151, -468, -14, -590, -975, -975, + -975, 324, 497, -975, -637, -975, -975, -256, -975, -18, + -975, -975, -975, 271, -975, -975, -975, -80, -975, -479, + -975, -569, -975, -975, -975, -599, -975, 70, -276, -975, + 159, -975, -975, -914, -729, -975, -975, -975, 317, -882, + -738, -975, 15, -975, -975, -975, -975, -975, 276, 62, + -159, -975, -975, -975, -975, -975, -302, -975, 885, -975, + -975, 421, 1, -975, -975, 679, 1875, 2479, 1141, 1627, + -975, -975, -23, 601, 13, 146, 562, 120, -975, -975, + -975, -69, 67, -219, -242, -974, -723, -554, -975, 1045, + -769, -575, -931, 122, -538, -975, -534, -975, 230, -368, + -975, -975, -975, 43, -475, 699, -356, -975, -975, -81, + -975, 75, -25, 647, -249, 1060, -268, -21, -1 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -3497,203 +3497,203 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 105, 284, 719, 212, 212, 435, 437, 285, 441, 212, - 592, 545, 282, 864, 245, 660, 520, 868, 206, 280, - 344, 507, 451, 709, 874, 206, 205, 221, 245, 255, - 125, 125, 251, 732, 749, 107, 300, 616, 125, 206, - 687, 835, 314, 401, 265, 265, 622, 348, 265, 785, - 900, 782, 307, 311, 504, 393, 508, 702, 271, 271, - 559, 1086, 271, 781, 732, 927, 712, 729, 439, 206, - 479, 729, 392, 392, -107, 1110, 950, 325, 616, 616, - 553, 125, 961, 347, 540, 658, 955, 439, 542, 667, - 536, 895, 670, 276, 281, 446, 306, 310, 470, -114, - 800, 70, -110, 70, 1115, -80, 585, 125, -113, 1056, - 280, 394, 448, 688, 379, 379, 269, 269, -109, 881, - 269, -111, 951, 673, 676, 528, -94, 605, 658, -112, - 667, 752, 582, 267, 273, -108, 476, 274, 951, 688, - 845, 576, 86, 847, 86, 126, 126, 485, 106, 217, - 217, 849, 850, 228, 305, 217, 217, 217, -560, 394, - 217, 845, 379, 379, 335, 337, 339, 341, 598, 561, - 601, 602, 561, 818, 561, 896, 561, 445, 561, 688, - 440, 1110, 283, 1086, 276, 281, 275, -559, 603, 818, - 1056, -99, 86, 689, 468, 469, 315, 246, 287, 440, - 247, 248, 445, -421, 688, 577, 217, 497, 525, 1173, - 952, 968, 392, 392, 782, -560, -106, 212, 212, -102, - -556, -665, 315, 963, 502, -105, 781, 782, 249, 612, - 250, 342, 343, -561, 550, -101, -555, 1057, -103, 781, - 480, 481, -556, 293, -559, 545, -104, 41, -666, -115, - 42, 394, -100, 206, 379, 379, 964, -562, 217, -564, - 86, 325, 732, 507, -555, -107, 490, -421, 505, 246, - 505, -115, 247, 248, 514, 544, 531, 969, 516, 519, - 300, 478, -421, 395, 538, 538, -99, 760, 935, 538, - -561, 270, 270, -107, 58, 270, -563, 736, 737, 729, - 729, 1092, 250, 957, 265, 927, 1114, 265, 927, 443, - -114, 545, 530, 755, -562, -421, -564, -421, 1116, 470, - 958, 271, 354, 355, -421, 792, 1080, 526, -305, 270, - 270, 985, -565, 444, 397, 863, 526, 860, -109, 125, - 774, 398, 1130, -305, 212, 212, 212, 212, 974, 574, - 575, 86, 608, -563, 980, -550, -113, 618, 775, 379, - 785, 685, -114, 217, 217, -113, 442, 569, 570, 571, - 572, 781, 793, -554, 402, 589, 512, 589, -305, 269, - 568, 781, -666, -106, 300, -305, -105, 614, 940, -565, - 365, 366, 367, 561, 527, 798, 515, 449, 618, 618, - 246, 450, 533, 247, 248, 729, 462, 275, 296, 906, - 843, 379, -550, 1174, 927, 854, 217, 368, 246, 217, - 1002, 247, 248, 844, 217, 217, 125, 436, 86, 556, - -554, 249, 514, 250, 455, 86, 86, -109, 616, -109, - -109, -109, 432, 86, 367, 868, 842, 665, 70, 249, - 665, 250, -111, 573, 315, 467, 690, 514, 520, 658, - -101, 667, 265, 463, 863, 695, 493, 477, -109, 368, - -109, 665, 616, -103, 514, 473, 296, 726, 616, 616, - 886, 444, 491, 514, 434, 247, 248, 265, 665, 86, - 217, 217, 217, 217, 86, 217, 217, 665, 610, 545, - 975, 740, 781, 610, 265, 482, 883, 748, 666, 544, - -114, 505, 505, 265, 86, 508, 486, 970, 777, 1081, - 488, 105, 245, 976, 978, 891, 735, 932, 502, -108, - 493, 1164, 666, 206, 732, 86, 506, 665, 217, 947, - 86, 315, 807, 623, 522, 960, -348, 730, 514, 666, - -100, 270, 354, 355, 270, 419, 1031, 1032, 666, 706, - 872, -348, 665, 909, 911, 913, 873, 915, 520, 916, - 884, 125, 729, 125, 217, 544, 529, 419, 265, 747, - 1176, 1177, 983, 493, 623, 623, 452, 453, 718, -109, - 783, 431, 379, 786, 721, -111, -348, 541, 666, 217, - 998, 86, 217, -348, 781, 796, 432, 428, 429, 430, - 616, 1197, 86, 771, 843, 781, 217, 836, 1202, 1203, - 86, -79, 70, 666, 535, 217, 520, 457, 1012, -108, - 86, 745, 246, 789, 543, 247, 248, 547, 886, 125, - 566, 433, 432, -109, 523, -111, 844, 246, 434, 840, - 247, 248, 296, 975, 567, 1060, 866, 863, 846, 578, - 505, 848, 584, 86, -571, 250, 280, 1043, 587, 280, - 796, 796, 86, 1009, 590, -111, 212, 458, 249, 599, - 250, 604, -108, 678, 434, 692, 315, 280, 315, 1054, - 217, 246, 862, 865, 247, 248, 879, 865, 86, 853, - 104, 591, 104, 206, 865, 1156, 594, 104, 104, 270, - 212, 858, 597, 104, 104, 104, 600, 245, 104, 1065, - -432, -434, 1026, 1027, 925, 217, 538, 615, 206, 505, - 1005, 839, 693, 878, 270, 1141, 454, 454, 696, 697, - 276, 699, 722, 276, -111, 217, 555, -111, -111, 734, - 104, 270, 739, 783, 315, 742, 296, 474, 618, 839, - 270, 276, -94, 544, 104, 803, 783, 981, 757, 1113, - 947, 470, 432, 770, 1054, -111, 589, -111, 688, 888, - 270, 773, 334, 791, 270, 328, 329, 801, 802, 930, - 841, -558, 618, 972, 610, 1003, 1004, 855, 618, 618, - 856, 1093, 1095, 1096, 1097, 514, -558, 475, 863, 871, - 877, 880, 270, 889, 434, 270, 104, 778, 104, 665, - 882, 778, 217, 86, 902, 270, 892, 125, 698, 763, - 898, 357, 358, 359, 360, 265, 705, 330, 331, 1071, - 904, -558, 1153, 483, 576, 1073, 717, 764, -558, 763, - 796, 357, 358, 359, 360, 908, 217, 910, 432, 912, - 991, 212, 914, 995, 917, -302, 520, 764, -302, -302, - 246, 943, 944, 247, 248, 947, 1113, 962, 956, 73, - 666, 73, 121, 121, 996, 888, 959, 505, 965, 966, - 121, 967, 988, 484, 989, -302, -302, 993, -302, 997, - 434, 249, 936, 250, 1021, 999, 1010, 1015, 1042, 104, - 1113, 1030, 1033, 524, 759, 1036, 548, 1038, 1040, 1168, - 899, 104, 104, 589, 589, 1044, 1128, 1129, 432, 73, - 618, 432, 1047, 121, 336, 86, 328, 329, 1051, 922, - 1091, 1055, 315, 86, 623, -557, 532, 217, 125, 1045, - 534, 1046, 1048, 125, 562, 1049, 1062, 328, 329, 121, - -557, 1103, -662, 475, 925, 1074, 549, 925, 1075, 925, - 434, 1050, 1063, 434, 104, 1087, 1088, 104, 623, 217, - 1094, -295, 104, 104, 623, 623, 104, 1124, 330, 331, - 86, 86, 1098, 104, 104, -557, -295, 73, 212, 212, - 1099, 104, -557, 1100, 86, -306, 865, 217, 1120, 330, - 331, 1118, 270, 270, 1119, 125, 86, 86, 1121, 1161, - -306, 1077, 1078, 931, 1133, 86, -550, 1189, 1165, 1108, - 1135, -295, 1111, -665, 1137, 925, 86, 86, -295, 1142, - 1144, -550, 805, 1198, 1199, -666, 833, 104, 104, 104, - 104, 104, 104, 104, 104, -306, 1146, 432, 1148, 1134, - 1151, 833, -306, 1029, 1152, 1175, 1187, 1182, 1035, 1186, - 1188, 1101, 104, 925, -662, 925, -550, 925, 865, 925, - -662, 1190, 270, -550, 1191, 226, 432, 741, 73, 130, - 1122, 1160, 806, 104, 919, 982, 104, 1166, 104, 434, - 1117, 104, 589, 1052, 246, 432, 954, 247, 248, 492, - 208, 1159, 563, 925, 328, 329, 623, 776, 270, 1102, - 0, 458, 514, 1107, 695, 865, 86, 86, 434, 0, - 1068, -663, 104, 0, 86, 249, 665, 250, 1170, 833, - 1123, 0, 104, 104, 217, 217, 86, 434, 327, 328, - 329, 0, 265, 0, 0, 0, 733, 104, 0, 104, - 104, 865, 865, 738, 0, 73, 330, 331, 0, 0, - 104, 0, 73, 73, 104, 744, 922, 0, 104, 922, - 73, 0, 922, 104, 922, 212, 212, 0, 104, 0, - 0, 121, 865, 0, 0, -554, 0, 666, 0, 865, - 865, 330, 331, 0, 0, 0, 0, 984, 1194, 1195, - -554, 0, 86, 0, 86, 0, 0, 86, 0, 0, + 105, 284, 507, 212, 212, 435, 437, 285, 441, 212, + 592, 719, 282, 709, 245, 545, 520, 107, 206, 280, + 344, 451, 785, 622, 927, 206, 205, 221, 245, 559, + 125, 125, 251, 732, 849, 850, 314, 1086, 125, 206, + 781, 835, 900, 401, 265, 265, -107, 348, 265, 660, + 729, 393, 307, 311, 729, 300, 782, 540, 271, 271, + 783, 542, 271, 786, 732, 749, 70, 439, 70, 206, + 479, 528, 392, 392, 687, 658, 553, 325, 955, 667, + -110, 125, 670, -114, 616, 1056, 950, 394, -112, 255, + 895, 702, 961, 276, 281, 446, 306, 310, 267, 273, + 712, 951, 274, 688, 864, 1110, 585, 125, 868, -113, + 280, -109, 448, 439, 792, 874, 673, 676, 658, 881, + 667, 335, 337, 339, 341, 616, 616, 605, 582, 688, + -111, 800, 1115, 269, 269, 394, 476, 269, -108, 963, + 379, 379, 86, 347, 86, 126, 126, 485, 974, 217, + 217, -662, 818, 228, 980, 217, 217, 217, 951, 1086, + 217, 793, 367, -99, 293, 752, 1056, -560, 598, 688, + 601, 305, 964, 561, 896, 612, 561, 445, 561, 440, + 561, 576, 561, 106, 276, 281, 497, 368, 379, 379, + 468, 469, 86, 689, 688, 470, 315, -102, 283, -665, + -106, 395, 445, 781, 287, -104, 217, -666, 525, 818, + 397, 1110, 392, 392, 985, -550, 781, 212, 212, 782, + 436, -556, 315, 783, -560, 440, -105, 394, -101, 1057, + -550, 275, 782, -559, 550, 432, 783, 1173, 449, -561, + 480, 481, 450, -562, 507, 577, 952, -103, 398, 545, + -115, -305, -80, 206, -564, -100, 760, 402, 217, 930, + 86, 325, 732, -662, 927, -550, -305, 927, 505, -662, + 505, -563, -550, -94, 514, 544, 531, 434, 516, 519, + 379, 379, 729, 729, 538, 538, 504, 443, 508, 538, + -559, 270, 270, 1092, 246, 270, -561, 247, 248, 300, + -562, -305, -556, -555, 265, -666, 444, 265, -305, 755, + 1116, -564, -555, 478, 860, 545, 1114, 602, 863, 935, + 493, 271, 536, -565, 275, 249, 490, 250, -563, 270, + 270, -115, -107, 785, 603, -114, 526, -550, -554, 125, + 455, -107, -114, 470, 212, 212, 212, 212, 781, 574, + 575, 86, 608, -99, 462, 444, -106, 618, 781, 527, + 685, 515, 568, 217, 217, -113, 442, 569, 570, 571, + 572, 526, 530, 927, 1021, 589, 336, 589, 328, 329, + -565, 614, 473, 843, -114, 379, 556, 763, 729, 357, + 358, 359, 360, 512, -550, -554, 269, 561, 618, 618, + -113, 41, 477, 300, 42, 764, 467, 863, 296, 906, + 1002, 463, -109, 70, 1130, 854, 217, 1080, 573, 217, + 482, -105, 940, 1174, 217, 217, 125, 957, 86, 486, + 330, 331, 514, -101, 844, 86, 86, 379, 872, 873, + 488, 998, 246, 86, 958, 247, 248, 665, 58, 658, + 665, 667, 843, 844, 315, 493, 690, 514, 520, 493, + 718, 886, 265, -111, 502, 695, 506, -109, -111, 502, + -108, 665, 522, 249, 514, 250, 296, 726, 899, 781, + 419, -109, -111, 514, -103, 616, 535, 265, 665, 86, + 217, 217, 217, 217, 86, 217, 217, 665, 891, 1108, + 529, 740, 1111, 545, 265, 342, 343, 748, 666, 544, + 970, 505, 505, 265, 86, 610, 976, 978, 777, 616, + 610, 105, 245, -79, -663, 616, 616, 932, 1081, 736, + 737, 1164, 666, 206, 732, 86, 868, 665, 217, 947, + 86, 315, 807, 623, 541, 960, 543, 730, 514, 666, + 547, 270, 470, 566, 270, 729, 1031, 1032, 666, 567, + 975, 975, 665, 909, 911, 913, 578, 915, 520, 916, + 884, 125, 584, 125, 217, 544, 1003, 1004, 265, 747, + -571, 781, 983, 587, 623, 623, 735, 70, -554, -108, + -108, 590, 781, 1176, 1177, 591, 745, 594, 666, 217, + 599, 86, 217, -554, 597, 796, 354, 355, 1170, 600, + -100, 721, 86, 771, 452, 453, 217, 836, 379, 886, + 86, 866, 863, 666, 1197, 217, 520, 798, 1012, 774, + 86, 1202, 1203, 789, -432, -434, -663, 604, -554, 125, + 678, -421, -663, 419, 523, -554, 615, 775, 1060, 840, + 692, 246, 296, 693, 247, 248, 696, 616, 846, 533, + 505, 848, 699, 86, 1026, 1027, 280, 1043, 697, 280, + 796, 796, 86, 428, 429, 430, 212, 555, 842, 365, + 366, 367, 249, 722, 250, 742, 315, 280, 315, 1054, + 217, 845, 862, 865, 847, 734, 879, 865, 86, 853, + 104, -94, 104, 206, 865, -421, 368, 104, 104, 270, + 212, 858, 845, 104, 104, 104, 739, 245, 104, 1065, + -421, -348, 454, 454, 925, 217, 538, -109, 206, 505, + 1005, 839, 757, 878, 270, 1141, -348, 770, 883, 1156, + 276, -111, 773, 276, 791, 217, 802, 508, 801, 803, + 104, 270, 841, -421, 315, -421, 296, 431, 618, 839, + 270, 276, -421, 544, 104, 855, 856, 981, 688, 1113, + 947, -348, 432, 863, 1054, 871, 589, 706, -348, 888, + 270, 457, 877, -669, 270, 349, 350, 351, 352, 353, + 880, 474, 618, 972, 882, 889, 432, 898, 618, 618, + 892, 1093, 1095, 1096, 1097, 514, 432, 433, 902, 904, + 576, 610, 270, 908, 434, 270, 104, 778, 104, 665, + 910, 778, 217, 86, 912, 270, -109, 125, 698, -109, + -109, 458, 914, 917, 943, 265, 705, 944, 434, 1071, + -111, 475, 1153, -111, -111, 1073, 717, -669, 434, -558, + 796, 956, 959, 966, 968, 962, 217, -109, 965, -109, + 991, 212, -669, 995, -558, 246, 520, 936, 247, 248, + 967, -111, 993, -111, 988, 947, 1113, 989, 997, 73, + 666, 73, 121, 121, 996, 888, 999, 505, 1010, 763, + 121, 357, 358, 359, 360, -669, 249, -669, 250, -558, + 1015, -665, 1030, 1033, -669, 1009, -558, 764, 1036, 104, + 1113, 1038, 246, 483, 759, 247, 248, 1040, 1045, 1168, + 969, 104, 104, 589, 589, 1046, 1128, 1129, 432, 73, + 618, 1042, 1044, 121, 563, 86, 328, 329, 1047, 922, + 1048, 1051, 315, 86, 623, 250, 532, 217, 125, 1049, + 534, 354, 355, 125, 334, 1050, 1055, 328, 329, 121, + 1062, 1103, -665, 484, 925, 1063, 1088, 925, 1074, 925, + 434, 1075, 246, 1087, 104, 247, 248, 104, 623, 217, + 1091, 524, 104, 104, 623, 623, 104, 1124, 330, 331, + 86, 86, 1094, 104, 104, 1098, 432, 73, 212, 212, + 1099, 104, 1100, 249, 86, 250, 865, 217, 1118, 330, + 331, 1120, 270, 270, 1119, 125, 86, 86, 1121, 1133, + 1161, 1077, 1078, 931, 1135, 86, -665, 1189, 1137, 246, + 1142, 475, 247, 248, 1144, 925, 86, 86, 434, 1146, + 548, -665, -557, 1198, 1199, 1148, 833, 104, 104, 104, + 104, 104, 104, 104, 104, 432, 1165, -557, 1151, 1134, + 249, 833, 250, 1029, 1152, -665, 491, -666, 1035, 247, + 248, -295, 104, 925, -665, 925, -665, 925, 865, 925, + -665, 246, 270, -665, 247, 248, -295, 1175, 73, 1187, + 549, -306, -557, 104, 1188, 1190, 104, 434, 104, -557, + 1191, 104, 589, 1182, 246, 741, -306, 247, 248, 1186, + 226, 130, 1160, 925, 805, 1166, 623, 919, 270, 982, + 1117, -295, 514, 1052, 695, 865, 86, 86, -295, 432, + 1068, -666, 104, 954, 86, 1011, 665, 250, 492, 833, + 1159, -306, 104, 104, 217, 217, 86, 208, -306, 776, + 1102, 0, 265, 0, 1101, 1107, 733, 104, 0, 104, + 104, 865, 865, 738, 806, 73, 0, 0, 0, 432, + 104, 434, 73, 73, 104, 744, 922, 0, 104, 922, + 73, 0, 922, 104, 922, 212, 212, 1122, 104, 0, + 0, 121, 865, 0, 0, -666, 0, 666, 0, 865, + 865, 0, 432, 0, 458, 0, 0, 984, 1194, 1195, + -666, 434, 86, 0, 86, 0, 0, 86, 0, 0, 992, 104, 0, 675, 677, 0, 73, 0, 768, 769, - 104, 73, 1000, 1001, -669, 0, 833, 0, 0, 0, - 0, 1007, 833, -663, 0, -554, 0, -665, 104, -663, - 922, 73, -554, 1013, 0, 0, 104, 675, 677, 799, + 104, 73, 1000, 1001, 0, 0, 833, 1123, 0, 0, + 0, 1007, 833, -666, 434, -666, 0, 0, 104, -666, + 922, 73, -666, 1013, 0, 0, 104, 675, 677, 799, 778, 0, 0, 931, 217, 0, 931, 0, 931, 86, 86, 0, 73, 0, 0, 472, 0, 73, 121, 0, 73, 472, 0, 104, 0, 270, 0, 0, 922, 0, - 922, 0, 922, 0, 922, 0, 0, 0, -669, 0, - 338, 328, 329, 104, 834, 1083, 743, 357, 358, 359, - 360, -665, 246, -669, 0, 247, 248, 0, 495, 834, - 0, 73, 73, 764, -666, 0, -665, 0, 922, 0, - 86, 217, 217, 0, 931, 0, 0, 857, 73, 86, - 86, 0, 1064, 1011, 0, 250, -669, 0, -669, 73, - 1072, 0, -665, 330, 331, -669, 0, 73, 0, -665, - 0, -665, 1079, 554, 833, -665, 0, 73, -665, 0, - 0, 0, 931, 0, 931, 0, 931, 0, 931, 0, - 104, 104, 0, 0, 0, 833, 833, 0, -666, 0, - 340, 328, 329, 890, 555, 328, 329, 834, 0, 270, - 73, 0, 0, -666, 560, 328, 329, 0, 495, 73, - 0, 0, 931, 901, 104, 583, 763, 0, 357, 358, - 359, 360, 579, 121, 0, 121, 1037, 1039, 1125, 0, - 1126, 0, 0, 1127, 764, 73, -666, 0, -666, 0, - 593, 0, -666, 330, 331, -666, 0, 330, 331, 74, - 0, 74, 122, 122, 564, 328, 329, 330, 331, 363, - 122, 565, 328, 329, 0, 765, 833, 833, 0, 0, - 787, 833, 357, 358, 359, 360, 0, 0, 758, 328, - 329, 0, 0, 416, 417, 1162, 1163, 0, 361, 0, - 0, 121, 0, 104, 834, 0, 419, 0, 0, 74, - 834, 104, 104, 122, 0, 104, 0, 330, 331, 0, - 0, 0, 0, 363, 330, 331, 0, 0, 0, 0, - 365, 366, 367, 425, 426, 427, 428, 429, 430, 122, - 1106, 330, 331, 0, 1008, 0, 104, 104, 0, 833, - 708, 708, 104, 104, 0, 0, 1193, 368, 104, 104, - 1017, 833, 0, 0, 0, 1200, 1201, 0, 0, 0, - 73, 0, 104, 0, 0, 104, 0, 74, 0, 416, - 417, 0, 833, 833, 104, 104, 349, 350, 351, 352, - 353, 0, 419, 104, 356, 0, 357, 358, 359, 360, - 0, 495, 0, 0, 104, 104, 554, 0, 495, 0, - 0, 0, 361, 0, 1143, 1145, 1147, 833, 1149, 1150, - 426, 427, 428, 429, 430, 0, 362, 971, 973, 0, - 0, 0, 834, 977, 979, 767, 0, 363, 103, 0, - 103, 128, 128, 364, 365, 366, 367, 0, 0, 231, + 922, 0, 922, 787, 922, 357, 358, 359, 360, 327, + 328, 329, 0, 104, 834, 562, 743, 0, 328, 329, + 0, 361, 338, 328, 329, 340, 328, 329, 495, 834, + 0, 73, 73, 246, 0, 0, 247, 248, 922, 0, + 86, 217, 217, 0, 931, 0, 363, 857, 73, 86, + 86, 0, 1064, 365, 366, 367, 0, 0, 0, 73, + 1072, 0, 330, 331, 0, 0, 250, 73, 0, 0, + 330, 331, 1079, 554, 833, 330, 331, 73, 330, 331, + 368, 0, 931, 0, 931, 0, 931, 0, 931, 0, + 104, 104, 0, 0, 0, 833, 833, 0, 0, 0, + 555, 328, 329, 890, 560, 328, 329, 834, 0, 270, + 73, 564, 328, 329, 565, 328, 329, 0, 495, 73, + 0, 0, 931, 901, 104, 583, 0, 808, 809, 810, + 0, 0, 579, 121, 0, 121, 1037, 1039, 1125, 0, + 1126, 0, 0, 1127, 945, 73, 0, 0, 812, 0, + 593, 39, 40, 330, 331, 0, 813, 330, 331, 74, + 0, 74, 122, 122, 330, 331, 0, 330, 331, 0, + 122, 758, 328, 329, 0, 246, 833, 833, 247, 248, + 0, 833, 0, 0, 814, 0, 0, 0, 0, 0, + 815, 816, 0, 817, 0, 1162, 1163, 0, 0, 57, + 0, 121, 502, 104, 834, 0, 249, 0, 250, 74, + 834, 104, 104, 122, 763, 104, 357, 358, 359, 360, + 819, 0, 0, 0, 330, 331, 0, 120, 0, 0, + 0, 0, 764, 0, 946, 0, 0, 0, 0, 122, + 1106, 0, 0, 0, 1008, 0, 104, 104, 0, 833, + 708, 708, 104, 104, 0, 0, 1193, 363, 104, 104, + 1017, 833, 0, 765, 0, 1200, 1201, 0, 416, 417, + 73, 0, 104, 0, 0, 104, 0, 74, 0, 0, + 0, 419, 833, 833, 104, 104, 0, 0, 0, 0, + 0, 0, 0, 104, 0, -678, -678, -678, 0, -678, + -678, 495, -678, 0, 104, 104, 554, -678, 495, 426, + 427, 428, 429, 430, 1143, 1145, 1147, 833, 1149, 1150, + 0, 763, 0, 357, 358, 359, 360, 971, 973, 0, + 0, 0, 834, 977, 979, 767, 0, 0, 103, 764, + 103, 128, 128, 763, 0, 357, 358, 359, 360, 231, 0, 0, 784, 834, 834, 788, 0, 0, 0, 971, - 973, 0, 977, 979, -692, 0, 0, 0, 74, 0, - 0, 368, 0, 0, 369, 419, 1181, 1183, 1184, 1185, - 0, 0, 73, 0, 104, 0, 0, 370, 103, 121, - 73, 73, 317, 0, 104, 104, 0, 0, 0, 1196, - 0, 0, 104, 426, 427, 428, 429, 430, 0, 0, + 973, 764, 977, 979, 363, 0, 0, 0, 74, 1083, + 1016, 357, 358, 359, 360, 419, 1181, 1183, 1184, 1185, + 0, 0, 73, 0, 104, 0, 363, 764, 103, 121, + 73, 73, 317, 0, 104, 104, 0, 246, 0, 1196, + 247, 248, 104, 426, 427, 428, 429, 430, 0, 0, 0, 0, 104, 104, 104, 0, 0, 0, 317, 0, - 0, 0, 0, 0, 356, 73, 357, 358, 359, 360, - 0, 73, 73, 0, 834, 834, 0, 73, 73, 834, - 0, 0, 361, 0, 356, 74, 357, 358, 359, 360, - 852, 73, 74, 74, 0, 0, 103, 0, 0, 0, - 74, 0, 361, 73, 73, 1061, 0, 363, 0, 0, - 0, 122, 73, 364, 365, 366, 367, 0, 0, 0, - 104, 0, 104, 73, 73, 104, 0, 363, 1061, 0, - 0, 472, 0, 364, 365, 366, 367, 0, 0, 0, - 0, 368, 0, 0, 369, 0, 74, 834, 0, 0, - 121, 74, 0, 0, 0, 121, 0, 551, 0, 834, - 0, 368, 0, 0, 369, 763, 0, 357, 358, 359, - 360, 74, 104, 0, 0, 1104, 0, 104, 104, 0, - 834, 834, 0, 764, 0, 0, 0, 103, 926, 907, - 0, 246, 74, 0, 247, 248, 0, 74, 122, 0, - 74, 0, 0, 73, 0, 0, 0, 0, 363, 83, - 0, 83, 0, 73, 73, 834, 0, 121, 502, 0, - 227, 73, 249, 0, 250, 0, 100, 0, 100, 127, + 0, -678, 0, 0, 0, 73, 0, -678, 249, 0, + 250, 73, 73, 0, 834, 834, 0, 73, 73, 834, + 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, + 852, 73, 74, 74, 0, 0, 103, 416, 417, 0, + 74, 0, 0, 73, 73, 1061, 0, 0, 0, 0, + 419, 122, 73, 0, 356, 0, 357, 358, 359, 360, + 104, 0, 104, 73, 73, 104, 0, 0, 1061, 0, + 0, 472, 361, 0, 0, 423, 424, 425, 426, 427, + 428, 429, 430, 0, 0, 0, 74, 834, 0, 0, + 121, 74, 0, 0, 0, 121, 0, 363, 0, 834, + 0, 0, 0, 364, 365, 366, 367, 0, 0, 0, + 0, 74, 104, 0, 0, 0, 0, 104, 104, 0, + 834, 834, 0, 0, 0, 0, 0, 103, 926, 907, + 0, 368, 74, 0, 369, 0, 0, 74, 122, 0, + 74, 0, 0, 73, 0, 0, 0, 551, 0, 83, + 0, 83, 0, 73, 73, 834, 0, 121, 0, 0, + 227, 73, 0, 0, 0, 0, 100, 0, 100, 127, 127, 127, 0, 73, 0, 0, 0, 230, 104, 104, - 104, 74, 74, 0, 0, 0, 0, 104, 104, 763, - 0, 357, 358, 359, 360, 0, 0, 0, 74, 83, - 0, 0, 0, 987, 103, 0, 0, 764, 0, 74, - 0, 103, 103, 416, 417, 0, 100, 74, 0, 103, - 316, 0, 0, 0, 403, 0, 419, 74, 708, 0, - 317, 472, 363, 0, 0, 0, 0, 0, 1016, 73, + 104, 74, 74, 0, 0, 0, 0, 104, 104, 0, + 0, 0, 416, 417, 0, 0, 0, 0, 74, 83, + 0, 0, 0, 987, 103, 419, 0, 0, 0, 74, + 0, 103, 103, 0, 0, 0, 100, 74, 0, 103, + 316, 0, 0, 0, 403, 0, 0, 74, 708, 0, + 317, 472, 425, 426, 427, 428, 429, 430, 0, 73, 0, 73, 0, 1020, 73, 1022, 316, 0, 0, 1023, - 0, 423, 424, 425, 426, 427, 428, 429, 430, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, 103, 0, 83, 0, 74, 103, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 122, 100, 122, 0, 416, 417, 0, @@ -3701,21 +3701,21 @@ static const yytype_int16 yytable[] = 419, 0, 0, 0, 356, 0, 357, 358, 359, 360, 0, 103, 0, 0, 0, 0, 103, 317, 0, 624, 0, 420, 361, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 0, 0, 0, 0, 0, 581, 0, + 428, 429, 430, 0, 0, 0, 0, 0, 0, 0, 472, 0, 0, 0, 0, 0, 472, 363, 0, 1089, 1090, 122, 0, 364, 365, 366, 367, 73, 83, 0, 624, 624, 0, 0, 0, 0, 73, 73, 808, 809, 810, 1109, 0, 1112, 0, 100, 0, 103, 0, 0, - 0, 368, 0, 0, 369, 945, 0, 0, 103, 812, - 0, 0, 39, 40, 0, 0, 103, 813, 0, 0, + 0, 368, 0, 0, 369, 811, 0, 0, 103, 812, + 0, 0, 39, 40, 0, 1104, 103, 813, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, 814, 1136, 472, 472, 1138, - 0, 815, 816, 0, 817, 83, 0, 0, 0, 103, + 0, 815, 816, 0, 817, 83, 818, 0, 0, 103, 57, 0, 83, 83, 0, 0, 0, 0, 103, 0, 83, 0, 100, 0, 0, 0, 0, 0, 0, 100, 100, 819, 317, 0, 317, 0, 0, 100, 120, 0, - 0, 0, 1167, 0, 103, 946, 0, 1169, 316, 1171, + 0, 0, 1167, 0, 103, 0, 0, 1169, 316, 1171, 0, 0, 0, 1172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, 83, 0, 0, 0, 0, 356, 0, 357, 358, @@ -3743,12 +3743,12 @@ static const yytype_int16 yytable[] = 624, 819, 100, 74, 74, 0, 0, 122, 120, 0, 0, 74, 0, 0, 808, 809, 810, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, - 0, 811, 0, 0, 624, 812, 0, 0, 39, 40, + 0, 945, 0, 0, 624, 812, 0, 0, 39, 40, 624, 624, 0, 813, 0, 0, 103, 103, 0, 0, 101, 0, 101, 0, 0, 0, 0, 0, 316, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 814, 103, 103, 0, 0, 0, 815, 816, 0, - 817, 103, 818, 0, 0, 0, 57, 0, 0, 74, + 0, 103, 0, 0, 0, 0, 57, 0, 0, 74, 0, 74, 103, 103, 74, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 819, 0, 0, 83, 0, 0, 0, 120, 0, 0, 0, 0, 128, @@ -3756,17 +3756,17 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 0, -692, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 74, 0, -692, -692, -692, -692, -692, -692, 0, -692, 0, 0, 0, - 0, -692, -692, -692, 808, 809, 810, 0, 101, 0, + 0, -692, -692, -692, 0, 0, 0, 0, 101, 0, 0, 0, 624, -692, -692, 0, -692, -692, -692, -692, - -692, 945, 103, 103, 0, 812, 1070, 0, 39, 40, - 103, 0, 0, 813, 0, 0, 0, 0, 0, 0, + -692, 0, 103, 103, 0, 0, 1070, 0, 0, 0, + 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 74, 74, 0, 0, - 0, 814, 83, 0, 0, 0, -692, 815, 816, 0, - 83, 619, 0, 0, 0, 0, 57, 0, 0, 100, + 0, 0, 83, 0, 0, 0, -692, 0, 0, 0, + 83, 619, 0, 0, 0, 0, 0, 0, 0, 100, 0, -692, 0, 0, 0, 0, 316, 100, 0, 0, - 0, -692, 0, 0, -692, -692, 0, 819, 0, 101, - 0, 0, 0, 0, 120, 619, 0, 0, 103, 0, + 0, -692, 0, 0, -692, -692, 0, 0, 0, 101, + 0, 0, 0, 0, 0, 619, 0, 0, 103, 0, 103, 619, 619, 103, -692, -692, 0, 83, 83, 0, 275, -692, -692, -692, -692, 0, 0, 0, 0, 0, 0, 83, 0, 0, 100, 100, 0, 0, 0, 0, @@ -3775,40 +3775,40 @@ static const yytype_int16 yytable[] = 100, 100, 0, 83, 83, 103, 103, 0, 0, 100, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 100, 100, 0, 101, 101, 0, 288, 290, 291, 292, - 0, 101, 0, 266, 308, 356, 0, 357, 358, 359, - 360, 0, 0, 0, 0, 345, 346, 127, 0, 0, - 0, 0, 127, 361, 0, 356, 0, 357, 358, 359, - 360, 0, 0, 0, 0, 0, 103, 0, 0, 779, - 0, 0, 0, 361, 0, 103, 103, 101, 363, 0, - 0, 0, 101, 619, 364, 365, 366, 367, 0, 903, + 0, 101, 0, 266, 308, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 345, 346, 127, 0, 0, + 0, 0, 127, 0, 0, 356, 0, 357, 358, 359, + 360, 0, 0, 0, 0, 0, 103, 0, 0, 0, + 0, 0, 0, 361, 0, 103, 103, 101, 0, 0, + 0, 0, 101, 619, 0, 0, 0, 362, 0, 0, 0, 0, 0, 83, 83, 0, 0, 1067, 363, 0, 0, 83, 101, 0, 364, 365, 366, 367, 0, 0, - 100, 100, 368, 83, 1069, 369, 0, 0, 100, 0, - 0, 0, 0, 101, 0, 0, 0, 0, 101, 0, + 100, 100, 0, 83, 1069, 0, 0, 0, 100, 0, + 0, 0, 0, 101, 0, -692, 0, 0, 101, 0, 100, 101, 368, 0, 0, 369, 0, 0, 0, 0, + 0, 0, 356, 0, 357, 358, 359, 360, 370, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 101, 101, 0, 0, 0, 0, 0, 83, - 0, 83, 0, 0, 83, 0, 0, 0, 0, 101, - 0, 0, 0, 0, 0, 804, 100, 0, 100, 0, + 361, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 101, 101, 0, 0, 581, 0, 0, 83, + 0, 83, 0, 0, 83, 363, 0, 0, 0, 101, + 0, 364, 365, 366, 367, 804, 100, 0, 100, 0, 101, 100, 0, 0, 0, 0, 0, 0, 101, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 101, 0, - 0, 0, 0, 404, 405, 406, 407, 408, 409, 410, + 0, 0, 0, 0, 0, 0, 0, 0, 101, 368, + 0, 0, 369, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 83, 83, 0, 416, 417, 498, 499, 500, 345, 0, 0, 0, 0, 0, 0, 101, 419, 100, 100, 266, 0, 0, 266, 0, - 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 420, 0, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 0, 101, -693, -693, -693, - -693, 408, 409, -280, 0, -693, -693, 83, 0, 0, - 0, 0, 0, 416, 417, 0, 83, 83, 0, 0, - 0, 0, 0, 0, 100, 0, 419, 0, 0, 0, - 0, 0, 0, 100, 100, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 0, + 101, 0, 0, 0, 0, 0, 0, 356, 0, 357, + 358, 359, 360, 420, 0, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 361, 101, 356, 0, 357, + 358, 359, 360, -280, 0, 0, 0, 83, 0, 0, + 0, 779, 0, 0, 0, 361, 83, 83, 0, 0, + 363, 0, 0, 0, 100, 0, 364, 365, 366, 367, + 0, 903, 0, 100, 100, 0, 0, 0, 0, 0, + 363, 0, 0, 0, 0, 0, 364, 365, 366, 367, + 0, 0, 0, 0, 368, 0, 0, 369, 0, 0, 0, 0, 0, 0, 586, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 596, 0, 0, 0, 0, + 0, 0, 0, 0, 368, 596, 0, 369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 609, 0, 0, 0, 0, 620, 0, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 0, 641, @@ -3859,8 +3859,8 @@ static const yytype_int16 yytable[] = 422, 423, 424, 425, 426, 427, 428, 429, 430, 674, 674, 0, 674, 674, 0, 0, 0, 101, 101, 0, 0, 0, 0, 1006, 0, 0, 0, 292, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 404, 405, - 406, 407, 408, 409, 1018, 1019, 412, 413, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -693, -693, + -693, -693, 408, 409, 1018, 1019, -693, -693, 0, 0, 0, 0, 0, 0, 416, 417, 0, 1024, 1025, 0, 0, 0, 0, 0, 0, 0, 0, 419, 0, 0, 0, 0, 0, 1041, 0, 0, 0, 0, 101, 0, @@ -4098,21 +4098,21 @@ static const yytype_int16 yytable[] = 0, 0, 50, 0, 0, 295, 52, 0, 53, 54, 0, 55, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, -692, 0, 0, -692, - -692, 294, 0, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 0, 0, 64, 65, 66, 0, 14, - 0, 15, 16, 17, 18, 0, -692, -692, 0, -692, - 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, - 0, 0, 0, 0, 0, 27, 0, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, - 41, 0, 0, 42, 0, 0, 43, 44, 0, 45, - 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, - 0, 50, 0, 0, 51, 52, 0, 53, 54, 0, - 55, 0, 0, 0, 56, 0, 57, 58, 59, 0, - 60, 61, 62, 0, 63, -692, 0, 0, -692, -692, + -692, -299, 0, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, 0, 0, 64, 65, 66, 0, -299, + 0, -299, -299, -299, -299, 0, -692, -692, 0, -692, + -299, -299, -299, -299, -299, -299, -299, 0, 0, -299, + 0, 0, 0, 0, 0, -299, 0, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, 0, -299, -299, + -299, 0, 0, -299, 0, 0, -299, -299, 0, -299, + -299, -299, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -299, -299, 0, 0, 0, 0, + 0, -299, 0, 0, -299, -299, 0, -299, -299, 0, + -299, 0, 0, 0, -299, 0, -299, -299, -299, 0, + -299, -299, -299, 0, -299, -299, 0, 0, -299, -299, 294, 0, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 0, 0, 64, 65, 66, 0, 14, 0, - 15, 16, 17, 18, 0, -692, -692, 0, -692, 19, + 12, 13, 0, 0, -299, -299, -299, 0, 14, 0, + 15, 16, 17, 18, 0, -299, -299, 0, -299, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, 0, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, @@ -4121,233 +4121,259 @@ static const yytype_int16 yytable[] = 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 50, 0, 0, 51, 52, 0, 53, 54, 0, 55, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, - 61, 62, 0, 63, -692, 0, 0, -692, -692, 0, + 61, 62, 0, 63, -692, 0, 0, -692, -692, 294, + 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 0, 0, 64, 65, 66, 0, 14, 0, 15, + 16, 17, 18, 0, -692, -692, 0, -692, 19, 20, + 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, + 0, 0, 0, 27, 0, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, + 0, 42, 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 64, 65, 66, 0, 0, -692, 0, - 0, 0, 0, 0, 0, -692, 294, -692, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, - -692, 0, 0, 0, 14, 0, 15, 16, 17, 18, - 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, - 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, - 27, 0, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, - 0, 43, 44, 0, 45, 46, 47, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, - 49, 0, 0, 0, 0, 0, 50, 0, 0, 51, - 52, 0, 53, 54, 0, 55, 0, 0, 0, 56, - 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, - -692, 0, 0, -692, -692, 0, 0, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 0, 0, 64, - 65, 66, 0, 14, 0, 15, 16, 17, 18, 0, - 0, -692, 0, -692, 19, 20, 21, 22, 23, 24, + 0, 0, 48, 49, 0, 0, 0, 0, 0, 50, + 0, 0, 51, 52, 0, 53, 54, 0, 55, 0, + 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, + 62, 0, 63, -692, 0, 0, -692, -692, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 64, 65, 66, 0, 0, -692, 0, 0, + 0, 0, 0, 0, -692, 294, -692, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 0, 0, -692, + 0, 0, 0, 14, 0, 15, 16, 17, 18, 0, + 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 0, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 50, 0, 0, 51, 52, 0, 53, 54, 0, 55, 0, 0, 0, 56, 0, - 57, 58, 59, 0, 60, 61, 62, 0, 63, 246, - 0, 0, 247, 248, 0, 0, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 0, 0, 64, 65, - 66, 0, 14, 0, 15, 16, 17, 18, 0, 0, - 249, 0, 250, 19, 20, 21, 22, 23, 24, 25, - 0, 0, 26, 0, 0, 0, 0, 0, 27, 0, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, - 44, 0, 45, 46, 47, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, - 0, 0, 0, 0, 50, 0, 0, 51, 52, 0, - 53, 54, 0, 55, 0, 0, 0, 56, 0, 57, - 58, 59, 0, 60, 61, 62, 0, 63, 246, 0, - 0, 247, 248, 0, 0, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 0, 0, 0, 64, 65, 66, - 0, 14, 0, 15, 16, 17, 18, 0, 0, 249, - 0, 250, 19, 20, 21, 22, 23, 24, 25, 0, - 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, - 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, - 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, - 0, 0, 0, 211, 0, 0, 119, 52, 0, 53, - 54, 0, 0, 0, 0, 0, 56, 0, 57, 58, - 59, 0, 60, 61, 62, 0, 63, 246, 0, 0, - 247, 248, 0, 0, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 0, 0, 0, 64, 65, 66, 0, - 14, 0, 108, 109, 17, 18, 0, 0, 249, 0, - 250, 110, 111, 112, 22, 23, 24, 25, 0, 0, - 113, 0, 0, 0, 0, 0, 0, 0, 0, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, - 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, - 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, - 0, 0, 211, 0, 0, 119, 52, 0, 53, 54, - 0, 0, 0, 0, 0, 56, 0, 57, 58, 59, - 0, 60, 61, 62, 0, 63, 246, 0, 0, 247, - 248, 0, 0, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 0, 0, 0, 64, 264, 66, 0, 14, - 0, 15, 16, 17, 18, 0, 0, 249, 0, 250, + 57, 58, 59, 0, 60, 61, 62, 0, 63, -692, + 0, 0, -692, -692, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, + 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -692, 0, -692, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, -679, -679, -679, 0, -679, -679, 14, + -679, 15, 16, 17, 18, -679, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, - 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, + 0, 0, 0, 0, 0, 27, 0, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, - 0, 211, 0, 0, 119, 52, 0, 53, 54, 0, - 0, 0, 0, 0, 56, 0, 57, 58, 59, 0, + 0, 50, 0, 0, 51, 52, 0, 53, 54, 0, + 55, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 246, 0, 0, 247, 248, + 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 0, 0, 64, 65, 66, 0, 14, -679, + 15, 16, 17, 18, 0, -679, 249, 0, 250, 19, + 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, + 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, + 0, 0, 42, 0, 0, 43, 44, 0, 45, 46, + 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, + 50, 0, 0, 51, 52, 0, 53, 54, 0, 55, + 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, + 61, 62, 0, 63, 246, 0, 0, 247, 248, 0, + 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 0, 0, 0, 64, 65, 66, 0, 14, 0, 15, + 16, 17, 18, 0, 0, 249, 0, 250, 19, 20, + 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, + 0, 0, 0, 0, 0, 0, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, + 0, 42, 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64, 65, 66, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 250, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 0, 0, 0, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 0, 0, 0, 0, - 0, 165, 166, 167, 168, 169, 170, 171, 172, 35, - 36, 173, 38, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 116, 174, 175, 176, 177, - 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, - 0, 0, 184, 185, 186, 187, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 188, 189, 190, 0, + 0, 0, 48, 49, 0, 0, 0, 0, 0, 211, + 0, 0, 119, 52, 0, 53, 54, 0, 0, 0, + 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, + 62, 0, 63, 246, 0, 0, 247, 248, 0, 0, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, + 0, 0, 64, 65, 66, 0, 14, 0, 108, 109, + 17, 18, 0, 0, 249, 0, 250, 110, 111, 112, + 22, 23, 24, 25, 0, 0, 113, 0, 0, 0, + 0, 0, 0, 0, 0, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, + 42, 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 49, 0, 0, 0, 0, 0, 211, 0, + 0, 119, 52, 0, 53, 54, 0, 0, 0, 0, + 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, + 0, 63, 246, 0, 0, 247, 248, 0, 0, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, + 0, 64, 264, 66, 0, 14, 0, 15, 16, 17, + 18, 0, 0, 249, 0, 250, 19, 20, 21, 22, + 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, + 0, 0, 0, 0, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, + 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 0, 201, 202, 0, 0, 0, 0, 0, 0, 203, - 204, -662, -662, -662, -662, -662, -662, -662, -662, -662, - 0, 0, 0, 0, 0, 0, 0, -662, 0, -662, - -662, -662, -662, 0, -662, 0, 0, 0, -662, -662, - -662, -662, -662, -662, -662, 0, 0, -662, 0, 0, - 0, 0, 0, 0, 0, 0, -662, -662, -662, -662, - -662, -662, -662, -662, -662, 0, -662, -662, -662, 0, - 0, -662, 0, 0, -662, -662, 0, -662, -662, -662, + 48, 49, 0, 0, 0, 0, 0, 211, 0, 0, + 119, 52, 0, 53, 54, 0, 0, 0, 0, 0, + 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, + 63, 246, 0, 0, 247, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -662, -662, 0, 0, 0, 0, 0, -662, - 0, 0, -662, -662, 0, -662, -662, 0, -662, 0, - -662, -662, -662, 0, -662, -662, -662, 0, -662, -662, - -662, 0, -662, 0, 0, 0, 0, 0, 0, 0, + 64, 65, 66, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 250, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, + 0, 0, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 0, 0, 0, 0, 0, 165, 166, 167, + 168, 169, 170, 171, 172, 35, 36, 173, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -662, -662, -662, 0, -662, 0, 0, 0, - 0, 0, -662, -663, -663, -663, -663, -663, -663, -663, - -663, -663, 0, 0, 0, 0, 0, 0, 0, -663, - 0, -663, -663, -663, -663, 0, -663, 0, 0, 0, - -663, -663, -663, -663, -663, -663, -663, 0, 0, -663, - 0, 0, 0, 0, 0, 0, 0, 0, -663, -663, - -663, -663, -663, -663, -663, -663, -663, 0, -663, -663, - -663, 0, 0, -663, 0, 0, -663, -663, 0, -663, - -663, -663, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -663, -663, 0, 0, 0, 0, - 0, -663, 0, 0, -663, -663, 0, -663, -663, 0, + 0, 116, 174, 175, 176, 177, 178, 179, 180, 181, + 0, 0, 182, 183, 0, 0, 0, 0, 184, 185, + 186, 187, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 0, 201, 202, 0, + 0, 0, 0, 0, 0, 203, 204, -662, -662, -662, + -662, -662, -662, -662, -662, -662, 0, 0, 0, 0, + 0, 0, 0, -662, 0, -662, -662, -662, -662, 0, + -662, 0, 0, 0, -662, -662, -662, -662, -662, -662, + -662, 0, 0, -662, 0, 0, 0, 0, 0, 0, + 0, 0, -662, -662, -662, -662, -662, -662, -662, -662, + -662, 0, -662, -662, -662, 0, 0, -662, 0, 0, + -662, -662, 0, -662, -662, -662, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -662, -662, + 0, 0, 0, 0, 0, -662, 0, 0, -662, -662, + 0, -662, -662, 0, -662, 0, -662, -662, -662, 0, + -662, -662, -662, 0, -662, -662, -662, 0, -662, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -662, -662, + -662, 0, -662, 0, 0, 0, 0, 0, -662, -663, + -663, -663, -663, -663, -663, -663, -663, -663, 0, 0, + 0, 0, 0, 0, 0, -663, 0, -663, -663, -663, + -663, 0, -663, 0, 0, 0, -663, -663, -663, -663, + -663, -663, -663, 0, 0, -663, 0, 0, 0, 0, + 0, 0, 0, 0, -663, -663, -663, -663, -663, -663, + -663, -663, -663, 0, -663, -663, -663, 0, 0, -663, + 0, 0, -663, -663, 0, -663, -663, -663, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -663, -663, 0, 0, 0, 0, 0, -663, 0, 0, + -663, -663, 0, -663, -663, 0, -663, 0, -663, -663, -663, 0, -663, -663, -663, 0, -663, -663, -663, 0, - -663, -663, -663, 0, -663, 0, 0, 0, 0, 0, - 0, -665, -665, -665, -665, -665, -665, -665, -665, -665, - 0, 0, 0, 0, -663, -663, -663, -665, -663, -665, - -665, -665, -665, 0, -663, 0, 0, 0, -665, -665, - -665, -665, -665, -665, -665, 0, 0, -665, 0, 0, - 0, 0, 0, 0, 0, 0, -665, -665, -665, -665, - -665, -665, -665, -665, -665, 0, -665, -665, -665, 0, - 0, -665, 0, 0, -665, -665, 0, -665, -665, -665, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -665, -665, 0, 0, 0, 0, 0, -665, - 869, 0, -665, -665, 0, -665, -665, 0, -665, 0, - -665, -665, -665, 0, -665, -665, -665, 0, -665, -665, - -665, 0, -665, 0, 0, 0, 0, 0, 0, -110, - -666, -666, -666, -666, -666, -666, -666, -666, -666, 0, - 0, 0, -665, -665, -665, 0, -666, 0, -666, -666, - -666, -666, -665, 0, 0, 0, 0, -666, -666, -666, - -666, -666, -666, -666, 0, 0, -666, 0, 0, 0, - 0, 0, 0, 0, 0, -666, -666, -666, -666, -666, - -666, -666, -666, -666, 0, -666, -666, -666, 0, 0, - -666, 0, 0, -666, -666, 0, -666, -666, -666, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -666, -666, 0, 0, 0, 0, 0, -666, 870, - 0, -666, -666, 0, -666, -666, 0, -666, 0, -666, - -666, -666, 0, -666, -666, -666, 0, -666, -666, -666, - 0, -666, 0, 0, 0, 0, 0, 0, -112, -667, - -667, -667, -667, -667, -667, -667, -667, -667, 0, 0, - 0, -666, -666, -666, 0, -667, 0, -667, -667, -667, - -667, -666, 0, 0, 0, 0, -667, -667, -667, -667, - -667, -667, -667, 0, 0, -667, 0, 0, 0, 0, - 0, 0, 0, 0, -667, -667, -667, -667, -667, -667, - -667, -667, -667, 0, -667, -667, -667, 0, 0, -667, - 0, 0, -667, -667, 0, -667, -667, -667, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -667, -667, 0, 0, 0, 0, 0, -667, 0, 0, - -667, -667, 0, -667, -667, 0, -667, 0, -667, -667, - -667, 0, -667, -667, -667, 0, -667, -667, -667, 0, - -667, 0, 0, 0, 0, 0, 0, -668, -668, -668, - -668, -668, -668, -668, -668, -668, 0, 0, 0, 0, - -667, -667, -667, -668, 0, -668, -668, -668, -668, 0, - -667, 0, 0, 0, -668, -668, -668, -668, -668, -668, - -668, 0, 0, -668, 0, 0, 0, 0, 0, 0, - 0, 0, -668, -668, -668, -668, -668, -668, -668, -668, - -668, 0, -668, -668, -668, 0, 0, -668, 0, 0, - -668, -668, 0, -668, -668, -668, 0, 0, 0, 0, + -663, 0, 0, 0, 0, 0, 0, -665, -665, -665, + -665, -665, -665, -665, -665, -665, 0, 0, 0, 0, + -663, -663, -663, -665, -663, -665, -665, -665, -665, 0, + -663, 0, 0, 0, -665, -665, -665, -665, -665, -665, + -665, 0, 0, -665, 0, 0, 0, 0, 0, 0, + 0, 0, -665, -665, -665, -665, -665, -665, -665, -665, + -665, 0, -665, -665, -665, 0, 0, -665, 0, 0, + -665, -665, 0, -665, -665, -665, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -665, -665, + 0, 0, 0, 0, 0, -665, 869, 0, -665, -665, + 0, -665, -665, 0, -665, 0, -665, -665, -665, 0, + -665, -665, -665, 0, -665, -665, -665, 0, -665, 0, + 0, 0, 0, 0, 0, -110, -666, -666, -666, -666, + -666, -666, -666, -666, -666, 0, 0, 0, -665, -665, + -665, 0, -666, 0, -666, -666, -666, -666, -665, 0, + 0, 0, 0, -666, -666, -666, -666, -666, -666, -666, + 0, 0, -666, 0, 0, 0, 0, 0, 0, 0, + 0, -666, -666, -666, -666, -666, -666, -666, -666, -666, + 0, -666, -666, -666, 0, 0, -666, 0, 0, -666, + -666, 0, -666, -666, -666, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -666, -666, 0, + 0, 0, 0, 0, -666, 870, 0, -666, -666, 0, + -666, -666, 0, -666, 0, -666, -666, -666, 0, -666, + -666, -666, 0, -666, -666, -666, 0, -666, 0, 0, + 0, 0, 0, 0, -112, -667, -667, -667, -667, -667, + -667, -667, -667, -667, 0, 0, 0, -666, -666, -666, + 0, -667, 0, -667, -667, -667, -667, -666, 0, 0, + 0, 0, -667, -667, -667, -667, -667, -667, -667, 0, + 0, -667, 0, 0, 0, 0, 0, 0, 0, 0, + -667, -667, -667, -667, -667, -667, -667, -667, -667, 0, + -667, -667, -667, 0, 0, -667, 0, 0, -667, -667, + 0, -667, -667, -667, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -667, -667, 0, 0, + 0, 0, 0, -667, 0, 0, -667, -667, 0, -667, + -667, 0, -667, 0, -667, -667, -667, 0, -667, -667, + -667, 0, -667, -667, -667, 0, -667, 0, 0, 0, + 0, 0, 0, -668, -668, -668, -668, -668, -668, -668, + -668, -668, 0, 0, 0, 0, -667, -667, -667, -668, + 0, -668, -668, -668, -668, 0, -667, 0, 0, 0, + -668, -668, -668, -668, -668, -668, -668, 0, 0, -668, 0, 0, 0, 0, 0, 0, 0, 0, -668, -668, - 0, 0, 0, 0, 0, -668, 0, 0, -668, -668, - 0, -668, -668, 0, -668, 0, -668, -668, -668, 0, - -668, -668, -668, 0, -668, -668, -668, 0, -668, 0, + -668, -668, -668, -668, -668, -668, -668, 0, -668, -668, + -668, 0, 0, -668, 0, 0, -668, -668, 0, -668, + -668, -668, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -668, -668, 0, 0, 0, 0, + 0, -668, 0, 0, -668, -668, 0, -668, -668, 0, + -668, 0, -668, -668, -668, 0, -668, -668, -668, 0, + -668, -668, -668, 0, -668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -668, -668, - -668, 0, 0, 0, 0, 0, 0, 0, -668, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 0, 0, 0, 155, 156, 157, 232, - 233, 234, 235, 162, 163, 164, 0, 0, 0, 0, - 0, 165, 166, 167, 236, 237, 238, 239, 172, 319, - 320, 240, 321, 0, 0, 0, 0, 0, 0, 322, - 0, 0, 0, 0, 0, 323, 174, 175, 176, 177, - 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, - 0, 0, 184, 185, 186, 187, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 188, 189, 190, 0, - 0, 0, 0, 324, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -668, -668, -668, 0, 0, 0, + 0, 0, 0, 0, -668, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, + 0, 0, 155, 156, 157, 232, 233, 234, 235, 162, + 163, 164, 0, 0, 0, 0, 0, 165, 166, 167, + 236, 237, 238, 239, 172, 319, 320, 240, 321, 0, + 0, 0, 0, 0, 0, 322, 0, 0, 0, 0, + 0, 323, 174, 175, 176, 177, 178, 179, 180, 181, + 0, 0, 182, 183, 0, 0, 0, 0, 184, 185, + 186, 187, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 188, 189, 190, 0, 0, 0, 0, 324, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 0, 201, 202, 0, 0, 0, 0, 0, 0, 203, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 0, 0, 0, 155, 156, 157, - 232, 233, 234, 235, 162, 163, 164, 0, 0, 0, - 0, 0, 165, 166, 167, 236, 237, 238, 239, 172, - 319, 320, 240, 321, 0, 0, 0, 0, 0, 0, - 322, 0, 0, 0, 0, 0, 0, 174, 175, 176, - 177, 178, 179, 180, 181, 0, 0, 182, 183, 0, - 0, 0, 0, 184, 185, 186, 187, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 188, 189, 190, - 0, 0, 0, 0, 487, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 0, 201, 202, 0, + 0, 0, 0, 0, 0, 203, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 0, 0, 0, 155, 156, 157, 232, 233, 234, 235, + 162, 163, 164, 0, 0, 0, 0, 0, 165, 166, + 167, 236, 237, 238, 239, 172, 319, 320, 240, 321, + 0, 0, 0, 0, 0, 0, 322, 0, 0, 0, + 0, 0, 0, 174, 175, 176, 177, 178, 179, 180, + 181, 0, 0, 182, 183, 0, 0, 0, 0, 184, + 185, 186, 187, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 188, 189, 190, 0, 0, 0, 0, + 487, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 0, 201, 202, + 0, 0, 0, 0, 0, 0, 203, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 0, 0, 0, 155, 156, 157, 232, 233, 234, + 235, 162, 163, 164, 0, 0, 0, 0, 0, 165, + 166, 167, 236, 237, 238, 239, 172, 0, 0, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 0, 201, 202, 0, 0, 0, 0, 0, 0, - 203, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 0, 0, 0, 155, 156, - 157, 232, 233, 234, 235, 162, 163, 164, 0, 0, - 0, 0, 0, 165, 166, 167, 236, 237, 238, 239, - 172, 0, 0, 240, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, - 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, - 0, 0, 0, 0, 184, 185, 186, 187, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 188, 189, - 190, 0, 0, 0, 241, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 174, 175, 176, 177, 178, 179, + 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, + 184, 185, 186, 187, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 188, 189, 190, 0, 0, 0, + 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 0, 201, + 202, 0, 0, 0, 0, 0, 0, 203, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 0, 0, 0, 155, 156, 157, 232, 233, + 234, 235, 162, 163, 164, 0, 0, 0, 0, 0, + 165, 166, 167, 236, 237, 238, 239, 172, 0, 0, + 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 174, 175, 176, 177, 178, + 179, 180, 181, 0, 0, 182, 183, 0, 0, 0, + 0, 184, 185, 186, 187, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 0, 201, 202, 0, 0, 0, 0, 0, - 0, 203, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 0, 0, 0, 155, - 156, 157, 232, 233, 234, 235, 162, 163, 164, 0, - 0, 0, 0, 0, 165, 166, 167, 236, 237, 238, - 239, 172, 0, 0, 240, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, - 175, 176, 177, 178, 179, 180, 181, 0, 0, 182, - 183, 0, 0, 0, 0, 184, 185, 186, 187, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 188, - 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 0, + 201, 202, 0, 0, 0, 0, 0, 0, 203, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, + 0, 0, 0, 0, 0, 14, 0, 108, 109, 17, + 18, 0, 0, 0, 0, 0, 110, 111, 112, 22, + 23, 24, 25, 0, 0, 113, 0, 0, 0, 0, + 0, 0, 0, 0, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, + 0, 0, 43, 44, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 0, 201, 202, 0, 0, 0, 0, - 0, 0, 203, 4, 5, 6, 7, 8, 9, 10, + 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, + 119, 52, 0, 53, 54, 0, 0, 0, 0, 0, + 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, + 63, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 14, - 0, 108, 109, 17, 18, 0, 0, 0, 0, 0, + 120, 108, 109, 17, 18, 0, 0, 0, 313, 0, 110, 111, 112, 22, 23, 24, 25, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, @@ -4357,86 +4383,51 @@ static const yytype_int16 yytable[] = 0, 312, 0, 0, 119, 52, 0, 53, 54, 0, 0, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, - 0, 0, 0, 14, 120, 108, 109, 17, 18, 0, - 0, 0, 313, 0, 110, 111, 112, 22, 23, 24, - 25, 0, 0, 113, 0, 0, 0, 0, 0, 0, - 0, 0, 30, 31, 32, 33, 34, 35, 36, 37, + 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, + 0, 0, 0, 14, 120, 15, 16, 17, 18, 0, + 0, 0, 613, 0, 19, 20, 21, 22, 23, 24, + 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, - 43, 44, 0, 116, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 312, 0, 0, 119, 52, - 0, 53, 54, 0, 0, 0, 0, 0, 56, 0, - 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, - 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 0, 0, 0, 0, 0, 0, 14, 120, 15, - 16, 17, 18, 0, 0, 0, 613, 0, 19, 20, - 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, - 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, - 0, 42, 0, 0, 43, 44, 0, 45, 46, 47, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 48, 49, 0, 0, 0, 0, 0, 50, - 0, 0, 51, 52, 0, 53, 54, 0, 55, 0, - 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, - 62, 0, 63, 0, 0, 0, 0, 0, 0, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, - 0, 0, 64, 65, 66, 14, 0, 15, 16, 17, - 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, - 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, - 0, 27, 0, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, - 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 49, 0, 0, 0, 0, 0, 50, 0, 0, - 51, 52, 0, 53, 54, 0, 55, 0, 0, 0, - 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, - 63, 0, 0, 0, 0, 0, 0, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, - 64, 65, 66, 14, 0, 15, 16, 17, 18, 0, - 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, - 25, 0, 0, 113, 0, 0, 0, 0, 0, 0, - 0, 0, 30, 31, 32, 259, 34, 35, 36, 37, - 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, - 43, 44, 0, 260, 46, 47, 0, 0, 0, 0, + 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, - 0, 0, 0, 0, 0, 211, 0, 0, 119, 52, - 0, 53, 54, 0, 261, 0, 262, 263, 56, 0, + 0, 0, 0, 0, 0, 50, 0, 0, 51, 52, + 0, 53, 54, 0, 55, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 0, 0, 0, 0, 64, 264, + 9, 10, 11, 12, 13, 0, 0, 0, 64, 65, 66, 14, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, - 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, - 30, 31, 32, 259, 34, 35, 36, 37, 38, 0, + 0, 26, 0, 0, 0, 0, 0, 27, 0, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, - 0, 260, 46, 47, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 48, 509, 0, 0, - 0, 0, 0, 211, 0, 0, 119, 52, 0, 53, - 54, 0, 261, 0, 262, 263, 56, 0, 57, 58, + 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, + 0, 0, 0, 50, 0, 0, 51, 52, 0, 53, + 54, 0, 55, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 0, 0, 0, 0, 64, 264, 66, 14, - 0, 108, 109, 17, 18, 0, 0, 0, 0, 0, - 110, 111, 112, 22, 23, 24, 25, 0, 0, 113, + 11, 12, 0, 0, 0, 0, 64, 65, 66, 14, + 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, + 19, 20, 21, 22, 23, 24, 25, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, 259, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, 260, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 211, 0, 0, 119, 52, 0, 53, 54, 0, - 727, 0, 262, 263, 56, 0, 57, 58, 59, 0, + 261, 0, 262, 263, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 0, 0, 0, 0, 64, 264, 66, 14, 0, 108, - 109, 17, 18, 0, 0, 0, 0, 0, 110, 111, - 112, 22, 23, 24, 25, 0, 0, 113, 0, 0, + 0, 0, 0, 0, 64, 264, 66, 14, 0, 15, + 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, + 21, 22, 23, 24, 25, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, 259, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, 260, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 48, 887, 0, 0, 0, 0, 0, 211, - 0, 0, 119, 52, 0, 53, 54, 0, 727, 0, + 0, 0, 48, 509, 0, 0, 0, 0, 0, 211, + 0, 0, 119, 52, 0, 53, 54, 0, 261, 0, 262, 263, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, @@ -4448,7 +4439,7 @@ static const yytype_int16 yytable[] = 0, 0, 43, 44, 0, 260, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 211, 0, 0, - 119, 52, 0, 53, 54, 0, 261, 0, 262, 0, + 119, 52, 0, 53, 54, 0, 727, 0, 262, 263, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, @@ -4458,9 +4449,9 @@ static const yytype_int16 yytable[] = 0, 0, 30, 31, 32, 259, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, 260, 46, 47, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 887, 0, 0, 0, 0, 0, 211, 0, 0, 119, 52, - 0, 53, 54, 0, 0, 0, 262, 263, 56, 0, + 0, 53, 54, 0, 727, 0, 262, 263, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 64, 264, @@ -4472,7 +4463,7 @@ static const yytype_int16 yytable[] = 0, 260, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 211, 0, 0, 119, 52, 0, 53, - 54, 0, 727, 0, 262, 0, 56, 0, 57, 58, + 54, 0, 261, 0, 262, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 64, 264, 66, 14, @@ -4484,35 +4475,35 @@ static const yytype_int16 yytable[] = 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 211, 0, 0, 119, 52, 0, 53, 54, 0, - 0, 0, 262, 0, 56, 0, 57, 58, 59, 0, + 0, 0, 262, 263, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 0, 0, 0, 0, 64, 264, 66, 14, 0, 15, - 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, - 21, 22, 23, 24, 25, 0, 0, 113, 0, 0, - 0, 0, 0, 0, 0, 0, 30, 31, 32, 33, + 0, 0, 0, 0, 64, 264, 66, 14, 0, 108, + 109, 17, 18, 0, 0, 0, 0, 0, 110, 111, + 112, 22, 23, 24, 25, 0, 0, 113, 0, 0, + 0, 0, 0, 0, 0, 0, 30, 31, 32, 259, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, - 0, 42, 0, 0, 43, 44, 0, 45, 46, 47, + 0, 42, 0, 0, 43, 44, 0, 260, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 211, - 0, 0, 119, 52, 0, 53, 54, 0, 607, 0, - 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, + 0, 0, 119, 52, 0, 53, 54, 0, 727, 0, + 262, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 64, 264, 66, 14, 0, 108, 109, 17, 18, 0, 0, 0, 0, 0, 110, 111, 112, 22, 23, 24, 25, 0, 0, 113, 0, 0, 0, 0, - 0, 0, 0, 0, 30, 31, 32, 33, 34, 35, + 0, 0, 0, 0, 30, 31, 32, 259, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, - 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, + 0, 0, 43, 44, 0, 260, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 211, 0, 0, - 119, 52, 0, 53, 54, 0, 261, 0, 0, 0, + 119, 52, 0, 53, 54, 0, 0, 0, 262, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, - 64, 264, 66, 14, 0, 108, 109, 17, 18, 0, - 0, 0, 0, 0, 110, 111, 112, 22, 23, 24, + 64, 264, 66, 14, 0, 15, 16, 17, 18, 0, + 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, @@ -4531,7 +4522,7 @@ static const yytype_int16 yytable[] = 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 211, 0, 0, 119, 52, 0, 53, - 54, 0, 933, 0, 0, 0, 56, 0, 57, 58, + 54, 0, 261, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 64, 264, 66, 14, @@ -4543,22 +4534,22 @@ static const yytype_int16 yytable[] = 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 211, 0, 0, 119, 52, 0, 53, 54, 0, - 727, 0, 0, 0, 56, 0, 57, 58, 59, 0, + 607, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 0, 0, 0, 0, 64, 264, 66, 14, 0, 15, - 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, - 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, + 0, 0, 0, 0, 64, 264, 66, 14, 0, 108, + 109, 17, 18, 0, 0, 0, 0, 0, 110, 111, + 112, 22, 23, 24, 25, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 211, - 0, 0, 119, 52, 0, 53, 54, 0, 0, 0, + 0, 0, 119, 52, 0, 53, 54, 0, 933, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, - 0, 0, 64, 65, 66, 14, 0, 108, 109, 17, + 0, 0, 64, 264, 66, 14, 0, 108, 109, 17, 18, 0, 0, 0, 0, 0, 110, 111, 112, 22, 23, 24, 25, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, 33, 34, 35, @@ -4566,13 +4557,13 @@ static const yytype_int16 yytable[] = 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, 0, 211, 0, 0, - 119, 52, 0, 53, 54, 0, 0, 0, 0, 0, + 119, 52, 0, 53, 54, 0, 727, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 64, 264, 66, 14, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, - 25, 0, 0, 113, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, 45, 46, 47, 0, 0, 0, 0, @@ -4581,16 +4572,51 @@ static const yytype_int16 yytable[] = 0, 53, 54, 0, 0, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 0, 0, 0, 0, 64, 264, + 9, 10, 11, 12, 0, 0, 0, 0, 64, 65, 66, 14, 0, 108, 109, 17, 18, 0, 0, 0, 0, 0, 110, 111, 112, 22, 23, 24, 25, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, - 30, 31, 32, 114, 34, 35, 36, 115, 38, 0, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, - 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 117, 0, 0, 118, 0, 0, 119, 52, 0, 53, + 0, 45, 46, 47, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, + 0, 0, 0, 211, 0, 0, 119, 52, 0, 53, 54, 0, 0, 0, 0, 0, 56, 0, 57, 58, + 59, 0, 60, 61, 62, 0, 63, 0, 0, 0, + 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 0, 0, 0, 0, 64, 264, 66, 14, + 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, + 19, 20, 21, 22, 23, 24, 25, 0, 0, 113, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, + 41, 0, 0, 42, 0, 0, 43, 44, 0, 45, + 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, + 0, 211, 0, 0, 119, 52, 0, 53, 54, 0, + 0, 0, 0, 0, 56, 0, 57, 58, 59, 0, + 60, 61, 62, 0, 63, 0, 0, 0, 0, 0, + 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 0, 0, 0, 0, 64, 264, 66, 14, 0, 108, + 109, 17, 18, 0, 0, 0, 0, 0, 110, 111, + 112, 22, 23, 24, 25, 0, 0, 113, 0, 0, + 0, 0, 0, 0, 0, 0, 30, 31, 32, 114, + 34, 35, 36, 115, 38, 0, 39, 40, 41, 0, + 0, 42, 0, 0, 43, 44, 0, 116, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 117, 0, 0, 118, + 0, 0, 119, 52, 0, 53, 54, 0, 0, 0, + 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, + 62, 0, 63, 0, 0, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, + 0, 14, 120, 108, 109, 17, 18, 0, 0, 0, + 0, 0, 110, 111, 112, 22, 23, 24, 25, 0, + 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, + 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, + 0, 224, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 225, 0, 0, 51, 52, 0, 53, + 54, 0, 55, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 14, 120, 108, 109, 17, @@ -4598,32 +4624,32 @@ static const yytype_int16 yytable[] = 23, 24, 25, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, - 0, 0, 43, 44, 0, 224, 0, 0, 0, 0, + 0, 0, 43, 44, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 225, 0, 0, - 51, 52, 0, 53, 54, 0, 55, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, + 399, 52, 0, 53, 54, 0, 400, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 14, 120, 108, 109, 17, 18, 0, 0, 0, 0, 0, 110, 111, 112, 22, 23, 24, 25, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, + 32, 114, 34, 35, 36, 115, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 312, 0, 0, 399, 52, 0, 53, 54, 0, - 400, 0, 0, 0, 56, 0, 57, 58, 59, 0, + 0, 118, 0, 0, 119, 52, 0, 53, 54, 0, + 0, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 14, 120, 108, 109, 17, 18, 0, 0, 0, 0, 0, 110, 111, 112, 22, 23, 24, 25, 0, 0, 113, 0, 0, 0, 0, 0, 0, - 0, 0, 30, 31, 32, 114, 34, 35, 36, 115, + 0, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 118, 0, 0, 119, 52, + 0, 0, 0, 0, 0, 312, 0, 0, 399, 52, 0, 53, 54, 0, 0, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, @@ -4634,8 +4660,8 @@ static const yytype_int16 yytable[] = 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, - 0, 0, 399, 52, 0, 53, 54, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1028, + 0, 0, 119, 52, 0, 53, 54, 0, 0, 0, 0, 0, 56, 0, 57, 58, 59, 0, 60, 61, 62, 0, 63, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, @@ -4644,39 +4670,19 @@ static const yytype_int16 yytable[] = 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, 0, 0, 43, 44, - 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1028, 0, 0, 119, 52, 0, 53, - 54, 0, 0, 0, 0, 0, 56, 0, 57, 58, - 59, 0, 60, 61, 62, 0, 63, 0, 0, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, - 0, 0, 0, 0, 0, 14, 120, 108, 109, 17, - 18, 0, 0, 0, 0, 0, 110, 111, 112, 22, - 23, 24, 25, 0, 0, 113, 0, 0, 0, 0, - 0, 0, 0, 0, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 0, 39, 40, 41, 0, 0, 42, - 0, 0, 43, 44, 0, 224, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1066, 0, 0, - 119, 52, 0, 53, 54, 0, 0, 653, 654, 0, - 56, 655, 57, 58, 59, 0, 60, 61, 62, 0, - 63, 0, 0, 0, 0, 0, 174, 175, 176, 177, - 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, - 120, 0, 184, 185, 186, 187, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 188, 189, 190, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 0, 201, 202, 662, 663, 0, 0, 664, 0, 203, - 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1066, 0, 0, 119, 52, 0, 53, + 54, 0, 0, 653, 654, 0, 56, 655, 57, 58, + 59, 0, 60, 61, 62, 0, 63, 0, 0, 0, 0, 0, 174, 175, 176, 177, 178, 179, 180, 181, - 0, 0, 182, 183, 0, 0, 0, 0, 184, 185, + 0, 0, 182, 183, 0, 0, 120, 0, 184, 185, 186, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 0, 201, 202, 683, - 654, 0, 0, 684, 0, 203, 275, 0, 0, 0, + 195, 196, 197, 198, 199, 200, 0, 201, 202, 662, + 663, 0, 0, 664, 0, 203, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, 184, 185, 186, 187, 0, 0, @@ -4684,7 +4690,7 @@ static const yytype_int16 yytable[] = 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 0, 201, 202, 668, 663, 0, 0, 669, + 199, 200, 0, 201, 202, 683, 654, 0, 0, 684, 0, 203, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, @@ -4693,7 +4699,7 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 0, 201, - 202, 700, 654, 0, 0, 701, 0, 203, 275, 0, + 202, 668, 663, 0, 0, 669, 0, 203, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, 184, 185, 186, 187, @@ -4701,8 +4707,8 @@ static const yytype_int16 yytable[] = 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 0, 201, 202, 703, 663, 0, - 0, 704, 0, 203, 275, 0, 0, 0, 0, 0, + 197, 198, 199, 200, 0, 201, 202, 700, 654, 0, + 0, 701, 0, 203, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, 184, 185, 186, 187, 0, 0, 0, 0, @@ -4710,7 +4716,7 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 0, 201, 202, 710, 654, 0, 0, 711, 0, 203, + 0, 201, 202, 703, 663, 0, 0, 704, 0, 203, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, 184, 185, @@ -4718,8 +4724,8 @@ static const yytype_int16 yytable[] = 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 0, 201, 202, 713, - 663, 0, 0, 714, 0, 203, 275, 0, 0, 0, + 195, 196, 197, 198, 199, 200, 0, 201, 202, 710, + 654, 0, 0, 711, 0, 203, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, 184, 185, 186, 187, 0, 0, @@ -4727,7 +4733,7 @@ static const yytype_int16 yytable[] = 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 0, 201, 202, 750, 654, 0, 0, 751, + 199, 200, 0, 201, 202, 713, 663, 0, 0, 714, 0, 203, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, @@ -4736,7 +4742,7 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 0, 201, - 202, 753, 663, 0, 0, 754, 0, 203, 275, 0, + 202, 750, 654, 0, 0, 751, 0, 203, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, 184, 185, 186, 187, @@ -4744,8 +4750,8 @@ static const yytype_int16 yytable[] = 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 0, 201, 202, 938, 654, 0, - 0, 939, 0, 203, 275, 0, 0, 0, 0, 0, + 197, 198, 199, 200, 0, 201, 202, 753, 663, 0, + 0, 754, 0, 203, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, 184, 185, 186, 187, 0, 0, 0, 0, @@ -4753,7 +4759,7 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 0, 201, 202, 941, 663, 0, 0, 942, 0, 203, + 0, 201, 202, 938, 654, 0, 0, 939, 0, 203, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, 184, 185, @@ -4761,8 +4767,8 @@ static const yytype_int16 yytable[] = 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 0, 201, 202, 1139, - 654, 0, 0, 1140, 0, 203, 275, 0, 0, 0, + 195, 196, 197, 198, 199, 200, 0, 201, 202, 941, + 663, 0, 0, 942, 0, 203, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, 184, 185, 186, 187, 0, 0, @@ -4770,7 +4776,7 @@ static const yytype_int16 yytable[] = 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 0, 201, 202, 1154, 654, 0, 0, 1155, + 199, 200, 0, 201, 202, 1139, 654, 0, 0, 1140, 0, 203, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, @@ -4779,7 +4785,7 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 0, 201, - 202, 1157, 663, 0, 0, 1158, 0, 203, 275, 0, + 202, 1154, 654, 0, 0, 1155, 0, 203, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, 184, 185, 186, 187, @@ -4787,277 +4793,287 @@ static const yytype_int16 yytable[] = 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 0, 201, 202, 668, 663, 0, - 0, 669, 0, 203, 275, 0, 0, 0, 0, 0, + 197, 198, 199, 200, 0, 201, 202, 1157, 663, 0, + 0, 1158, 0, 203, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 175, 176, 177, 178, 179, 180, 181, 0, 0, 182, 183, 0, 0, 0, 0, 184, 185, 186, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 804, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 0, 201, 202, 0, 0, 0, 0, 0, 0, 203, + 0, 201, 202, 668, 663, 0, 0, 669, 0, 203, + 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 174, 175, 176, 177, 178, 179, 180, 181, + 0, 0, 182, 183, 0, 0, 0, 0, 184, 185, + 186, 187, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 804, 0, + 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 0, 201, 202, 0, + 0, 0, 0, 0, 0, 203, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 0, 0, + 0, 0, 416, 417, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 419, 0, 0, 0, 0, + 905, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 420, 0, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 0, 0, 0, 0, 416, 417, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 419, 0, 0, + 0, 0, 918, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 420, 0, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 0, 0, 0, 416, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, - 0, 0, 0, 0, 905, 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, 420, 0, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 0, 0, 0, 416, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 419, 0, 0, 0, 0, 918, 0, 0, 0, + 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 420, 0, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 404, 405, 406, 407, 408, 409, + 427, 428, 429, 430, 0, 0, 0, 0, 0, 0, + 0, 0, -280, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 0, 0, 0, 0, 416, + 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 419, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 420, 0, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 0, 0, 0, 0, 0, + 0, 0, 0, -282, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 0, 0, 0, 416, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 420, 0, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 404, 405, 406, 407, + 425, 426, 427, 428, 429, 430, 0, 0, 0, 0, + 0, 0, 0, 0, -283, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 0, 0, 0, + 0, 416, 417, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 419, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 420, 0, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 0, 0, 0, + 0, 0, 0, 0, 0, -285, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, 0, 0, 0, 416, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 420, 0, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 0, 0, - 0, 0, 0, 0, 0, 0, -280, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 0, - 0, 0, 0, 416, 417, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 419, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 420, 0, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 0, - 0, 0, 0, 0, 0, 0, 0, -282, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 0, 0, 0, 0, 416, 417, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 419, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 420, 0, + 423, 424, 425, 426, 427, 428, 429, 430, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, -693, -693, + 0, 0, 0, 0, 416, 417, 404, 405, 406, 407, + 408, 409, 0, 0, 412, 413, 0, 419, 0, 0, + 0, 0, 416, 417, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 419, 0, 0, 0, 0, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 0, 0, 0, 0, 0, 0, 0, 0, -283, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 0, 0, 0, 0, 416, 417, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 419, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 420, - 0, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 0, 0, 0, 0, 0, 0, 0, 0, -285, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 0, 0, 0, 0, 416, 417, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 420, 0, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, -693, -693, 0, 0, 0, 0, 416, 417, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 419, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430 + 0, 0, 0, 0, 0, 0, 0, 0, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430 }; static const yytype_int16 yycheck[] = { - 1, 26, 490, 8, 9, 86, 87, 27, 88, 14, - 378, 313, 21, 694, 13, 433, 284, 698, 6, 20, - 65, 271, 118, 481, 705, 13, 6, 9, 27, 14, - 4, 5, 14, 508, 547, 3, 51, 402, 12, 27, - 458, 640, 55, 81, 15, 16, 402, 68, 19, 597, - 765, 594, 53, 54, 269, 74, 271, 475, 15, 16, - 331, 1011, 19, 594, 539, 793, 484, 504, 26, 57, - 221, 508, 73, 74, 25, 1036, 815, 57, 443, 444, - 318, 55, 821, 68, 306, 431, 816, 26, 310, 435, - 305, 29, 438, 20, 21, 104, 53, 54, 16, 25, - 613, 1, 25, 3, 1046, 121, 373, 81, 25, 967, - 111, 74, 117, 459, 73, 74, 15, 16, 25, 718, - 19, 25, 51, 443, 444, 295, 142, 394, 474, 25, - 476, 549, 370, 15, 16, 25, 217, 19, 51, 485, - 667, 57, 1, 670, 3, 4, 5, 228, 0, 8, - 9, 671, 672, 12, 53, 14, 15, 16, 90, 122, - 19, 688, 121, 122, 59, 60, 61, 62, 387, 332, - 389, 34, 335, 102, 337, 113, 339, 104, 341, 525, - 138, 1142, 144, 1133, 111, 112, 144, 90, 51, 102, - 1048, 142, 51, 460, 213, 214, 55, 115, 138, 138, - 118, 119, 129, 26, 550, 121, 65, 57, 289, 1151, - 139, 57, 213, 214, 757, 147, 142, 222, 223, 142, - 92, 144, 81, 93, 142, 142, 757, 770, 146, 399, - 148, 58, 59, 90, 315, 142, 92, 967, 142, 770, - 222, 223, 92, 55, 147, 547, 142, 60, 144, 121, - 63, 214, 142, 241, 213, 214, 126, 90, 117, 90, - 119, 241, 737, 513, 92, 121, 251, 90, 269, 115, - 271, 121, 118, 119, 275, 313, 297, 123, 283, 284, - 295, 92, 105, 28, 305, 306, 142, 558, 801, 310, - 147, 15, 16, 121, 107, 19, 90, 512, 513, 736, - 737, 1016, 148, 34, 275, 1033, 1045, 278, 1036, 92, - 121, 613, 297, 551, 147, 138, 147, 140, 1048, 16, - 51, 278, 37, 38, 147, 79, 1007, 92, 90, 53, - 54, 851, 90, 92, 121, 18, 92, 693, 16, 313, - 51, 142, 25, 105, 349, 350, 351, 352, 840, 354, - 355, 210, 397, 147, 846, 90, 121, 402, 69, 318, - 908, 457, 121, 222, 223, 121, 90, 349, 350, 351, - 352, 902, 126, 90, 121, 376, 275, 378, 140, 278, - 348, 912, 144, 142, 399, 147, 142, 400, 806, 147, - 101, 102, 103, 556, 294, 610, 278, 51, 443, 444, - 115, 55, 302, 118, 119, 842, 90, 144, 51, 777, - 92, 370, 147, 1152, 1142, 682, 275, 128, 115, 278, - 878, 118, 119, 92, 283, 284, 400, 90, 287, 324, - 147, 146, 433, 148, 125, 294, 295, 115, 803, 121, - 118, 119, 105, 302, 103, 1126, 661, 435, 348, 146, - 438, 148, 121, 353, 313, 55, 461, 458, 726, 805, - 142, 807, 433, 147, 18, 466, 20, 92, 146, 128, - 148, 459, 837, 142, 475, 121, 119, 502, 843, 844, - 730, 92, 115, 484, 147, 118, 119, 458, 476, 348, - 349, 350, 351, 352, 353, 354, 355, 485, 397, 801, - 92, 521, 1033, 402, 475, 55, 721, 545, 435, 547, - 121, 512, 513, 484, 373, 730, 25, 837, 587, 1007, - 142, 522, 521, 843, 844, 747, 511, 794, 142, 121, - 20, 1130, 459, 521, 1009, 394, 57, 525, 397, 815, - 399, 400, 623, 402, 138, 821, 90, 504, 549, 476, - 142, 275, 37, 38, 278, 101, 924, 925, 485, 27, - 92, 105, 550, 782, 783, 784, 92, 786, 836, 788, - 721, 545, 1009, 547, 433, 613, 145, 101, 549, 536, - 1162, 1163, 849, 20, 443, 444, 58, 59, 25, 121, - 594, 90, 551, 597, 493, 121, 140, 139, 525, 458, - 92, 460, 461, 147, 1135, 606, 105, 131, 132, 133, - 975, 1193, 471, 584, 92, 1146, 475, 642, 1200, 1201, - 479, 121, 522, 550, 141, 484, 894, 90, 895, 121, - 489, 531, 115, 604, 55, 118, 119, 142, 888, 613, - 101, 140, 105, 121, 287, 16, 92, 115, 147, 658, - 118, 119, 295, 92, 101, 975, 17, 18, 667, 57, - 661, 670, 121, 522, 121, 148, 667, 943, 142, 670, - 671, 672, 531, 888, 51, 121, 681, 140, 146, 51, - 148, 121, 121, 99, 147, 15, 545, 688, 547, 965, - 549, 115, 693, 694, 118, 119, 716, 698, 557, 681, - 1, 142, 3, 691, 705, 1123, 142, 8, 9, 433, - 715, 691, 142, 14, 15, 16, 142, 716, 19, 986, - 40, 41, 920, 921, 793, 584, 747, 142, 716, 730, - 881, 658, 13, 715, 458, 1103, 121, 122, 121, 121, - 667, 16, 15, 670, 115, 604, 63, 118, 119, 145, - 51, 475, 145, 757, 613, 139, 399, 90, 803, 686, - 484, 688, 142, 801, 65, 121, 770, 847, 142, 1045, - 1046, 16, 105, 142, 1050, 146, 777, 148, 1124, 736, - 504, 15, 61, 15, 508, 64, 65, 142, 44, 793, - 141, 90, 837, 838, 693, 40, 41, 141, 843, 844, - 15, 1020, 1021, 1022, 1023, 806, 105, 140, 18, 141, - 141, 139, 536, 139, 147, 539, 117, 587, 119, 807, - 15, 591, 681, 682, 142, 549, 141, 801, 471, 51, - 139, 53, 54, 55, 56, 806, 479, 116, 117, 990, - 44, 140, 1118, 90, 57, 996, 489, 69, 147, 51, - 851, 53, 54, 55, 56, 142, 715, 142, 105, 142, - 861, 866, 142, 864, 44, 115, 1134, 69, 118, 119, - 115, 57, 55, 118, 119, 1151, 1152, 142, 51, 1, - 807, 3, 4, 5, 866, 842, 51, 888, 142, 90, - 12, 142, 15, 140, 93, 145, 146, 14, 148, 15, - 147, 146, 802, 148, 908, 15, 145, 142, 141, 210, - 1186, 142, 142, 90, 557, 142, 90, 142, 15, 1138, - 142, 222, 223, 924, 925, 141, 1077, 1078, 105, 51, - 975, 105, 139, 55, 62, 794, 64, 65, 51, 793, - 142, 55, 801, 802, 803, 90, 299, 806, 922, 142, - 303, 142, 142, 927, 61, 142, 15, 64, 65, 81, - 105, 1030, 26, 140, 1033, 15, 140, 1036, 15, 1038, - 147, 142, 139, 147, 275, 15, 139, 278, 837, 838, + 1, 26, 271, 8, 9, 86, 87, 27, 88, 14, + 378, 490, 21, 481, 13, 313, 284, 3, 6, 20, + 65, 118, 597, 402, 793, 13, 6, 9, 27, 331, + 4, 5, 14, 508, 671, 672, 55, 1011, 12, 27, + 594, 640, 765, 81, 15, 16, 25, 68, 19, 433, + 504, 74, 53, 54, 508, 51, 594, 306, 15, 16, + 594, 310, 19, 597, 539, 547, 1, 26, 3, 57, + 221, 295, 73, 74, 458, 431, 318, 57, 816, 435, + 25, 55, 438, 25, 402, 967, 815, 74, 25, 14, + 29, 475, 821, 20, 21, 104, 53, 54, 15, 16, + 484, 51, 19, 459, 694, 1036, 373, 81, 698, 25, + 111, 25, 117, 26, 79, 705, 443, 444, 474, 718, + 476, 59, 60, 61, 62, 443, 444, 394, 370, 485, + 25, 613, 1046, 15, 16, 122, 217, 19, 25, 93, + 73, 74, 1, 68, 3, 4, 5, 228, 840, 8, + 9, 26, 102, 12, 846, 14, 15, 16, 51, 1133, + 19, 126, 103, 142, 55, 549, 1048, 90, 387, 525, + 389, 53, 126, 332, 113, 399, 335, 104, 337, 138, + 339, 57, 341, 0, 111, 112, 57, 128, 121, 122, + 213, 214, 51, 460, 550, 16, 55, 142, 144, 144, + 142, 28, 129, 757, 138, 142, 65, 144, 289, 102, + 121, 1142, 213, 214, 851, 90, 770, 222, 223, 757, + 90, 92, 81, 757, 147, 138, 142, 214, 142, 967, + 105, 144, 770, 90, 315, 105, 770, 1151, 51, 90, + 222, 223, 55, 90, 513, 121, 139, 142, 142, 547, + 121, 90, 121, 241, 90, 142, 558, 121, 117, 793, + 119, 241, 737, 138, 1033, 140, 105, 1036, 269, 144, + 271, 90, 147, 142, 275, 313, 297, 147, 283, 284, + 213, 214, 736, 737, 305, 306, 269, 92, 271, 310, + 147, 15, 16, 1016, 115, 19, 147, 118, 119, 295, + 147, 140, 92, 92, 275, 144, 92, 278, 147, 551, + 1048, 147, 92, 92, 693, 613, 1045, 34, 18, 801, + 20, 278, 305, 90, 144, 146, 251, 148, 147, 53, + 54, 121, 121, 908, 51, 121, 92, 90, 90, 313, + 125, 121, 121, 16, 349, 350, 351, 352, 902, 354, + 355, 210, 397, 142, 90, 92, 142, 402, 912, 294, + 457, 278, 348, 222, 223, 121, 90, 349, 350, 351, + 352, 92, 297, 1142, 908, 376, 62, 378, 64, 65, + 147, 400, 121, 92, 121, 318, 324, 51, 842, 53, + 54, 55, 56, 275, 147, 147, 278, 556, 443, 444, + 121, 60, 92, 399, 63, 69, 55, 18, 51, 777, + 878, 147, 121, 348, 25, 682, 275, 1007, 353, 278, + 55, 142, 806, 1152, 283, 284, 400, 34, 287, 25, + 116, 117, 433, 142, 92, 294, 295, 370, 92, 92, + 142, 92, 115, 302, 51, 118, 119, 435, 107, 805, + 438, 807, 92, 92, 313, 20, 461, 458, 726, 20, + 25, 730, 433, 121, 142, 466, 57, 121, 121, 142, + 121, 459, 138, 146, 475, 148, 119, 502, 142, 1033, + 101, 121, 121, 484, 142, 803, 141, 458, 476, 348, + 349, 350, 351, 352, 353, 354, 355, 485, 747, 1033, + 145, 521, 1036, 801, 475, 58, 59, 545, 435, 547, + 837, 512, 513, 484, 373, 397, 843, 844, 587, 837, + 402, 522, 521, 121, 26, 843, 844, 794, 1007, 512, + 513, 1130, 459, 521, 1009, 394, 1126, 525, 397, 815, + 399, 400, 623, 402, 139, 821, 55, 504, 549, 476, + 142, 275, 16, 101, 278, 1009, 924, 925, 485, 101, + 92, 92, 550, 782, 783, 784, 57, 786, 836, 788, + 721, 545, 121, 547, 433, 613, 40, 41, 549, 536, + 121, 1135, 849, 142, 443, 444, 511, 522, 90, 121, + 121, 51, 1146, 1162, 1163, 142, 531, 142, 525, 458, + 51, 460, 461, 105, 142, 606, 37, 38, 1142, 142, + 142, 493, 471, 584, 58, 59, 475, 642, 551, 888, + 479, 17, 18, 550, 1193, 484, 894, 610, 895, 51, + 489, 1200, 1201, 604, 40, 41, 138, 121, 140, 613, + 99, 26, 144, 101, 287, 147, 142, 69, 975, 658, + 15, 115, 295, 13, 118, 119, 121, 975, 667, 302, + 661, 670, 16, 522, 920, 921, 667, 943, 121, 670, + 671, 672, 531, 131, 132, 133, 681, 63, 661, 101, + 102, 103, 146, 15, 148, 139, 545, 688, 547, 965, + 549, 667, 693, 694, 670, 145, 716, 698, 557, 681, + 1, 142, 3, 691, 705, 90, 128, 8, 9, 433, + 715, 691, 688, 14, 15, 16, 145, 716, 19, 986, + 105, 90, 121, 122, 793, 584, 747, 16, 716, 730, + 881, 658, 142, 715, 458, 1103, 105, 142, 721, 1123, + 667, 16, 15, 670, 15, 604, 44, 730, 142, 121, + 51, 475, 141, 138, 613, 140, 399, 90, 803, 686, + 484, 688, 147, 801, 65, 141, 15, 847, 1124, 1045, + 1046, 140, 105, 18, 1050, 141, 777, 27, 147, 736, + 504, 90, 141, 26, 508, 40, 41, 42, 43, 44, + 139, 90, 837, 838, 15, 139, 105, 139, 843, 844, + 141, 1020, 1021, 1022, 1023, 806, 105, 140, 142, 44, + 57, 693, 536, 142, 147, 539, 117, 587, 119, 807, + 142, 591, 681, 682, 142, 549, 115, 801, 471, 118, + 119, 140, 142, 44, 57, 806, 479, 55, 147, 990, + 115, 140, 1118, 118, 119, 996, 489, 90, 147, 90, + 851, 51, 51, 90, 57, 142, 715, 146, 142, 148, + 861, 866, 105, 864, 105, 115, 1134, 802, 118, 119, + 142, 146, 14, 148, 15, 1151, 1152, 93, 15, 1, + 807, 3, 4, 5, 866, 842, 15, 888, 145, 51, + 12, 53, 54, 55, 56, 138, 146, 140, 148, 140, + 142, 144, 142, 142, 147, 888, 147, 69, 142, 210, + 1186, 142, 115, 90, 557, 118, 119, 15, 142, 1138, + 123, 222, 223, 924, 925, 142, 1077, 1078, 105, 51, + 975, 141, 141, 55, 62, 794, 64, 65, 139, 793, + 142, 51, 801, 802, 803, 148, 299, 806, 922, 142, + 303, 37, 38, 927, 61, 142, 55, 64, 65, 81, + 15, 1030, 26, 140, 1033, 139, 139, 1036, 15, 1038, + 147, 15, 115, 15, 275, 118, 119, 278, 837, 838, 142, 90, 283, 284, 843, 844, 287, 1068, 116, 117, - 849, 850, 126, 294, 295, 140, 105, 119, 1003, 1004, - 126, 302, 147, 55, 863, 90, 1007, 866, 15, 116, - 117, 142, 736, 737, 139, 989, 875, 876, 55, 15, - 105, 1003, 1004, 793, 142, 884, 90, 1178, 15, 1033, - 142, 140, 1036, 144, 142, 1104, 895, 896, 147, 142, - 142, 105, 90, 1194, 1195, 144, 625, 348, 349, 350, - 351, 352, 353, 354, 355, 140, 142, 105, 142, 1084, - 142, 640, 147, 922, 142, 141, 15, 142, 927, 142, - 15, 90, 373, 1142, 138, 1144, 140, 1146, 1079, 1148, - 144, 40, 806, 147, 41, 12, 105, 522, 210, 5, - 90, 1126, 140, 394, 793, 848, 397, 1133, 399, 147, - 1050, 402, 1103, 964, 115, 105, 816, 118, 119, 253, - 6, 1125, 62, 1182, 64, 65, 975, 587, 842, 1030, - -1, 140, 1123, 1033, 1125, 1126, 985, 986, 147, -1, - 989, 26, 433, -1, 993, 146, 1124, 148, 1142, 718, - 140, -1, 443, 444, 1003, 1004, 1005, 147, 63, 64, - 65, -1, 1123, -1, -1, -1, 509, 458, -1, 460, - 461, 1162, 1163, 516, -1, 287, 116, 117, -1, -1, - 471, -1, 294, 295, 475, 528, 1030, -1, 479, 1033, - 302, -1, 1036, 484, 1038, 1190, 1191, -1, 489, -1, + 849, 850, 142, 294, 295, 126, 105, 119, 1003, 1004, + 126, 302, 55, 146, 863, 148, 1007, 866, 142, 116, + 117, 15, 736, 737, 139, 989, 875, 876, 55, 142, + 15, 1003, 1004, 793, 142, 884, 90, 1178, 142, 115, + 142, 140, 118, 119, 142, 1104, 895, 896, 147, 142, + 90, 105, 90, 1194, 1195, 142, 625, 348, 349, 350, + 351, 352, 353, 354, 355, 105, 15, 105, 142, 1084, + 146, 640, 148, 922, 142, 144, 115, 144, 927, 118, + 119, 90, 373, 1142, 138, 1144, 140, 1146, 1079, 1148, + 144, 115, 806, 147, 118, 119, 105, 141, 210, 15, + 140, 90, 140, 394, 15, 40, 397, 147, 399, 147, + 41, 402, 1103, 142, 115, 522, 105, 118, 119, 142, + 12, 5, 1126, 1182, 90, 1133, 975, 793, 842, 848, + 1050, 140, 1123, 964, 1125, 1126, 985, 986, 147, 105, + 989, 26, 433, 816, 993, 146, 1124, 148, 253, 718, + 1125, 140, 443, 444, 1003, 1004, 1005, 6, 147, 587, + 1030, -1, 1123, -1, 90, 1033, 509, 458, -1, 460, + 461, 1162, 1163, 516, 140, 287, -1, -1, -1, 105, + 471, 147, 294, 295, 475, 528, 1030, -1, 479, 1033, + 302, -1, 1036, 484, 1038, 1190, 1191, 90, 489, -1, -1, 313, 1193, -1, -1, 90, -1, 1124, -1, 1200, - 1201, 116, 117, -1, -1, -1, -1, 850, 1190, 1191, - 105, -1, 1071, -1, 1073, -1, -1, 1076, -1, -1, + 1201, -1, 105, -1, 140, -1, -1, 850, 1190, 1191, + 105, 147, 1071, -1, 1073, -1, -1, 1076, -1, -1, 863, 522, -1, 443, 444, -1, 348, -1, 581, 582, - 531, 353, 875, 876, 26, -1, 815, -1, -1, -1, - -1, 884, 821, 138, -1, 140, -1, 26, 549, 144, + 531, 353, 875, 876, -1, -1, 815, 140, -1, -1, + -1, 884, 821, 138, 147, 140, -1, -1, 549, 144, 1104, 373, 147, 896, -1, -1, 557, 477, 478, 612, 1030, -1, -1, 1033, 1123, -1, 1036, -1, 1038, 1128, 1129, -1, 394, -1, -1, 215, -1, 399, 400, -1, 402, 221, -1, 584, -1, 1009, -1, -1, 1142, -1, - 1144, -1, 1146, -1, 1148, -1, -1, -1, 90, -1, - 63, 64, 65, 604, 625, 51, 526, 53, 54, 55, - 56, 90, 115, 105, -1, 118, 119, -1, 258, 640, - -1, 443, 444, 69, 26, -1, 105, -1, 1182, -1, - 1189, 1190, 1191, -1, 1104, -1, -1, 690, 460, 1198, - 1199, -1, 985, 146, -1, 148, 138, -1, 140, 471, - 993, -1, 144, 116, 117, 147, -1, 479, -1, 138, - -1, 140, 1005, 318, 943, 144, -1, 489, 147, -1, - -1, -1, 1142, -1, 1144, -1, 1146, -1, 1148, -1, - 681, 682, -1, -1, -1, 964, 965, -1, 90, -1, + 1144, -1, 1146, 51, 1148, 53, 54, 55, 56, 63, + 64, 65, -1, 604, 625, 61, 526, -1, 64, 65, + -1, 69, 63, 64, 65, 63, 64, 65, 258, 640, + -1, 443, 444, 115, -1, -1, 118, 119, 1182, -1, + 1189, 1190, 1191, -1, 1104, -1, 94, 690, 460, 1198, + 1199, -1, 985, 101, 102, 103, -1, -1, -1, 471, + 993, -1, 116, 117, -1, -1, 148, 479, -1, -1, + 116, 117, 1005, 318, 943, 116, 117, 489, 116, 117, + 128, -1, 1142, -1, 1144, -1, 1146, -1, 1148, -1, + 681, 682, -1, -1, -1, 964, 965, -1, -1, -1, 63, 64, 65, 746, 63, 64, 65, 718, -1, 1123, - 522, -1, -1, 105, 63, 64, 65, -1, 348, 531, - -1, -1, 1182, 766, 715, 370, 51, -1, 53, 54, - 55, 56, 362, 545, -1, 547, 929, 930, 1071, -1, - 1073, -1, -1, 1076, 69, 557, 138, -1, 140, -1, - 380, -1, 144, 116, 117, 147, -1, 116, 117, 1, - -1, 3, 4, 5, 63, 64, 65, 116, 117, 94, - 12, 63, 64, 65, -1, 100, 1045, 1046, -1, -1, - 51, 1050, 53, 54, 55, 56, -1, -1, 63, 64, - 65, -1, -1, 88, 89, 1128, 1129, -1, 69, -1, - -1, 613, -1, 794, 815, -1, 101, -1, -1, 51, - 821, 802, 803, 55, -1, 806, -1, 116, 117, -1, - -1, -1, -1, 94, 116, 117, -1, -1, -1, -1, - 101, 102, 103, 128, 129, 130, 131, 132, 133, 81, - 1033, 116, 117, -1, 887, -1, 837, 838, -1, 1118, - 480, 481, 843, 844, -1, -1, 1189, 128, 849, 850, - 903, 1130, -1, -1, -1, 1198, 1199, -1, -1, -1, - 682, -1, 863, -1, -1, 866, -1, 119, -1, 88, - 89, -1, 1151, 1152, 875, 876, 40, 41, 42, 43, - 44, -1, 101, 884, 51, -1, 53, 54, 55, 56, - -1, 531, -1, -1, 895, 896, 551, -1, 538, -1, - -1, -1, 69, -1, 1107, 1108, 1109, 1186, 1111, 1112, - 129, 130, 131, 132, 133, -1, 83, 837, 838, -1, - -1, -1, 943, 843, 844, 580, -1, 94, 1, -1, - 3, 4, 5, 100, 101, 102, 103, -1, -1, 12, + 522, 63, 64, 65, 63, 64, 65, -1, 348, 531, + -1, -1, 1182, 766, 715, 370, -1, 34, 35, 36, + -1, -1, 362, 545, -1, 547, 929, 930, 1071, -1, + 1073, -1, -1, 1076, 51, 557, -1, -1, 55, -1, + 380, 58, 59, 116, 117, -1, 63, 116, 117, 1, + -1, 3, 4, 5, 116, 117, -1, 116, 117, -1, + 12, 63, 64, 65, -1, 115, 1045, 1046, 118, 119, + -1, 1050, -1, -1, 91, -1, -1, -1, -1, -1, + 97, 98, -1, 100, -1, 1128, 1129, -1, -1, 106, + -1, 613, 142, 794, 815, -1, 146, -1, 148, 51, + 821, 802, 803, 55, 51, 806, 53, 54, 55, 56, + 127, -1, -1, -1, 116, 117, -1, 134, -1, -1, + -1, -1, 69, -1, 141, -1, -1, -1, -1, 81, + 1033, -1, -1, -1, 887, -1, 837, 838, -1, 1118, + 480, 481, 843, 844, -1, -1, 1189, 94, 849, 850, + 903, 1130, -1, 100, -1, 1198, 1199, -1, 88, 89, + 682, -1, 863, -1, -1, 866, -1, 119, -1, -1, + -1, 101, 1151, 1152, 875, 876, -1, -1, -1, -1, + -1, -1, -1, 884, -1, 13, 14, 15, -1, 17, + 18, 531, 20, -1, 895, 896, 551, 25, 538, 129, + 130, 131, 132, 133, 1107, 1108, 1109, 1186, 1111, 1112, + -1, 51, -1, 53, 54, 55, 56, 837, 838, -1, + -1, -1, 943, 843, 844, 580, -1, -1, 1, 69, + 3, 4, 5, 51, -1, 53, 54, 55, 56, 12, -1, -1, 597, 964, 965, 600, -1, -1, -1, 869, - 870, -1, 872, 873, 121, -1, -1, -1, 210, -1, - -1, 128, -1, -1, 131, 101, 1169, 1170, 1171, 1172, - -1, -1, 794, -1, 975, -1, -1, 144, 51, 801, - 802, 803, 55, -1, 985, 986, -1, -1, -1, 1192, - -1, -1, 993, 129, 130, 131, 132, 133, -1, -1, + 870, 69, 872, 873, 94, -1, -1, -1, 210, 51, + 100, 53, 54, 55, 56, 101, 1169, 1170, 1171, 1172, + -1, -1, 794, -1, 975, -1, 94, 69, 51, 801, + 802, 803, 55, -1, 985, 986, -1, 115, -1, 1192, + 118, 119, 993, 129, 130, 131, 132, 133, -1, -1, -1, -1, 1003, 1004, 1005, -1, -1, -1, 81, -1, - -1, -1, -1, -1, 51, 837, 53, 54, 55, 56, - -1, 843, 844, -1, 1045, 1046, -1, 849, 850, 1050, - -1, -1, 69, -1, 51, 287, 53, 54, 55, 56, - 680, 863, 294, 295, -1, -1, 119, -1, -1, -1, - 302, -1, 69, 875, 876, 975, -1, 94, -1, -1, - -1, 313, 884, 100, 101, 102, 103, -1, -1, -1, - 1071, -1, 1073, 895, 896, 1076, -1, 94, 998, -1, - -1, 721, -1, 100, 101, 102, 103, -1, -1, -1, - -1, 128, -1, -1, 131, -1, 348, 1118, -1, -1, - 922, 353, -1, -1, -1, 927, -1, 144, -1, 1130, - -1, 128, -1, -1, 131, 51, -1, 53, 54, 55, - 56, 373, 1123, -1, -1, 142, -1, 1128, 1129, -1, - 1151, 1152, -1, 69, -1, -1, -1, 210, 793, 779, - -1, 115, 394, -1, 118, 119, -1, 399, 400, -1, - 402, -1, -1, 975, -1, -1, -1, -1, 94, 1, - -1, 3, -1, 985, 986, 1186, -1, 989, 142, -1, - 12, 993, 146, -1, 148, -1, 1, -1, 3, 4, + -1, 139, -1, -1, -1, 837, -1, 145, 146, -1, + 148, 843, 844, -1, 1045, 1046, -1, 849, 850, 1050, + -1, -1, -1, -1, -1, 287, -1, -1, -1, -1, + 680, 863, 294, 295, -1, -1, 119, 88, 89, -1, + 302, -1, -1, 875, 876, 975, -1, -1, -1, -1, + 101, 313, 884, -1, 51, -1, 53, 54, 55, 56, + 1071, -1, 1073, 895, 896, 1076, -1, -1, 998, -1, + -1, 721, 69, -1, -1, 126, 127, 128, 129, 130, + 131, 132, 133, -1, -1, -1, 348, 1118, -1, -1, + 922, 353, -1, -1, -1, 927, -1, 94, -1, 1130, + -1, -1, -1, 100, 101, 102, 103, -1, -1, -1, + -1, 373, 1123, -1, -1, -1, -1, 1128, 1129, -1, + 1151, 1152, -1, -1, -1, -1, -1, 210, 793, 779, + -1, 128, 394, -1, 131, -1, -1, 399, 400, -1, + 402, -1, -1, 975, -1, -1, -1, 144, -1, 1, + -1, 3, -1, 985, 986, 1186, -1, 989, -1, -1, + 12, 993, -1, -1, -1, -1, 1, -1, 3, 4, 5, 6, -1, 1005, -1, -1, -1, 12, 1189, 1190, - 1191, 443, 444, -1, -1, -1, -1, 1198, 1199, 51, - -1, 53, 54, 55, 56, -1, -1, -1, 460, 51, - -1, -1, -1, 853, 287, -1, -1, 69, -1, 471, - -1, 294, 295, 88, 89, -1, 51, 479, -1, 302, - 55, -1, -1, -1, 25, -1, 101, 489, 878, -1, - 313, 881, 94, -1, -1, -1, -1, -1, 100, 1071, + 1191, 443, 444, -1, -1, -1, -1, 1198, 1199, -1, + -1, -1, 88, 89, -1, -1, -1, -1, 460, 51, + -1, -1, -1, 853, 287, 101, -1, -1, -1, 471, + -1, 294, 295, -1, -1, -1, 51, 479, -1, 302, + 55, -1, -1, -1, 25, -1, -1, 489, 878, -1, + 313, 881, 128, 129, 130, 131, 132, 133, -1, 1071, -1, 1073, -1, 908, 1076, 910, 81, -1, -1, 914, - -1, 126, 127, 128, 129, 130, 131, 132, 133, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 522, -1, -1, -1, -1, 348, -1, 119, -1, 531, 353, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 545, 119, 547, -1, 88, 89, -1, @@ -5065,21 +5081,21 @@ static const yytype_int16 yycheck[] = 101, -1, -1, -1, 51, -1, 53, 54, 55, 56, -1, 394, -1, -1, -1, -1, 399, 400, -1, 402, -1, 122, 69, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, -1, -1, 85, -1, + 131, 132, 133, -1, -1, -1, -1, -1, -1, -1, 990, -1, -1, -1, -1, -1, 996, 94, -1, 1014, 1015, 613, -1, 100, 101, 102, 103, 1189, 210, -1, 443, 444, -1, -1, -1, -1, 1198, 1199, 34, 35, 36, 1036, -1, 1038, -1, 210, -1, 460, -1, -1, -1, 128, -1, -1, 131, 51, -1, -1, 471, 55, - -1, -1, 58, 59, -1, -1, 479, 63, -1, -1, + -1, -1, 58, 59, -1, 142, 479, 63, -1, -1, -1, -1, -1, -1, -1, -1, 489, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 682, -1, -1, -1, -1, 91, 1091, 1077, 1078, 1094, - -1, 97, 98, -1, 100, 287, -1, -1, -1, 522, + -1, 97, 98, -1, 100, 287, 102, -1, -1, 522, 106, -1, 294, 295, -1, -1, -1, -1, 531, -1, 302, -1, 287, -1, -1, -1, -1, -1, -1, 294, 295, 127, 545, -1, 547, -1, -1, 302, 134, -1, - -1, -1, 1137, -1, 557, 141, -1, 1142, 313, 1144, + -1, -1, 1137, -1, 557, -1, -1, 1142, 313, 1144, -1, -1, -1, 1148, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 348, -1, -1, -1, -1, 353, -1, -1, -1, -1, 51, -1, 53, 54, @@ -5112,7 +5128,7 @@ static const yytype_int16 yycheck[] = 1, -1, 3, -1, -1, -1, -1, -1, 613, -1, 863, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, 875, 876, -1, -1, -1, 97, 98, -1, - 100, 884, 102, -1, -1, -1, 106, -1, -1, 1071, + -1, 884, -1, -1, -1, -1, 106, -1, -1, 1071, -1, 1073, 895, 896, 1076, -1, -1, -1, -1, -1, 51, -1, -1, -1, -1, -1, -1, 127, -1, -1, 682, -1, -1, -1, 134, -1, -1, -1, -1, 922, @@ -5120,17 +5136,17 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1128, 1129, -1, 13, 14, 15, 16, 17, 18, -1, 20, -1, -1, -1, - -1, 25, 26, 27, 34, 35, 36, -1, 119, -1, + -1, 25, 26, 27, -1, -1, -1, -1, 119, -1, -1, -1, 975, 37, 38, -1, 40, 41, 42, 43, - 44, 51, 985, 986, -1, 55, 989, -1, 58, 59, - 993, -1, -1, 63, -1, -1, -1, -1, -1, -1, + 44, -1, 985, 986, -1, -1, 989, -1, -1, -1, + 993, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1005, -1, -1, -1, -1, 1189, -1, -1, -1, -1, -1, -1, -1, -1, 1198, 1199, -1, -1, - -1, 91, 794, -1, -1, -1, 90, 97, 98, -1, - 802, 803, -1, -1, -1, -1, 106, -1, -1, 794, + -1, -1, 794, -1, -1, -1, 90, -1, -1, -1, + 802, 803, -1, -1, -1, -1, -1, -1, -1, 794, -1, 105, -1, -1, -1, -1, 801, 802, -1, -1, - -1, 115, -1, -1, 118, 119, -1, 127, -1, 210, - -1, -1, -1, -1, 134, 837, -1, -1, 1071, -1, + -1, 115, -1, -1, 118, 119, -1, -1, -1, 210, + -1, -1, -1, -1, -1, 837, -1, -1, 1071, -1, 1073, 843, 844, 1076, 138, 139, -1, 849, 850, -1, 144, 145, 146, 147, 148, -1, -1, -1, -1, -1, -1, 863, -1, -1, 849, 850, -1, -1, -1, -1, @@ -5139,40 +5155,40 @@ static const yytype_int16 yycheck[] = 875, 876, -1, 895, 896, 1128, 1129, -1, -1, 884, -1, -1, -1, -1, -1, -1, 287, -1, -1, -1, 895, 896, -1, 294, 295, -1, 46, 47, 48, 49, - -1, 302, -1, 53, 54, 51, -1, 53, 54, 55, - 56, -1, -1, -1, -1, 65, 66, 922, -1, -1, - -1, -1, 927, 69, -1, 51, -1, 53, 54, 55, - 56, -1, -1, -1, -1, -1, 1189, -1, -1, 85, - -1, -1, -1, 69, -1, 1198, 1199, 348, 94, -1, - -1, -1, 353, 975, 100, 101, 102, 103, -1, 85, + -1, 302, -1, 53, 54, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 65, 66, 922, -1, -1, + -1, -1, 927, -1, -1, 51, -1, 53, 54, 55, + 56, -1, -1, -1, -1, -1, 1189, -1, -1, -1, + -1, -1, -1, 69, -1, 1198, 1199, 348, -1, -1, + -1, -1, 353, 975, -1, -1, -1, 83, -1, -1, -1, -1, -1, 985, 986, -1, -1, 989, 94, -1, -1, 993, 373, -1, 100, 101, 102, 103, -1, -1, - 985, 986, 128, 1005, 989, 131, -1, -1, 993, -1, - -1, -1, -1, 394, -1, -1, -1, -1, 399, -1, + 985, 986, -1, 1005, 989, -1, -1, -1, 993, -1, + -1, -1, -1, 394, -1, 121, -1, -1, 399, -1, 1005, 402, 128, -1, -1, 131, -1, -1, -1, -1, + -1, -1, 51, -1, 53, 54, 55, 56, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 443, 444, -1, -1, -1, -1, -1, 1071, - -1, 1073, -1, -1, 1076, -1, -1, -1, -1, 460, - -1, -1, -1, -1, -1, 44, 1071, -1, 1073, -1, + 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 443, 444, -1, -1, 85, -1, -1, 1071, + -1, 1073, -1, -1, 1076, 94, -1, -1, -1, 460, + -1, 100, 101, 102, 103, 44, 1071, -1, 1073, -1, 471, 1076, -1, -1, -1, -1, -1, -1, 479, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 489, -1, - -1, -1, -1, 72, 73, 74, 75, 76, 77, 78, + -1, -1, -1, -1, -1, -1, -1, -1, 489, 128, + -1, -1, 131, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, 1128, 1129, -1, 88, 89, 261, 262, 263, 264, -1, -1, -1, -1, -1, -1, 522, 101, 1128, 1129, 275, -1, -1, 278, -1, - 531, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 122, -1, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, 557, 72, 73, 74, - 75, 76, 77, 142, -1, 80, 81, 1189, -1, -1, - -1, -1, -1, 88, 89, -1, 1198, 1199, -1, -1, - -1, -1, -1, -1, 1189, -1, 101, -1, -1, -1, - -1, -1, -1, 1198, 1199, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, + 531, -1, -1, -1, -1, -1, -1, 51, -1, 53, + 54, 55, 56, 122, -1, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 69, 557, 51, -1, 53, + 54, 55, 56, 142, -1, -1, -1, 1189, -1, -1, + -1, 85, -1, -1, -1, 69, 1198, 1199, -1, -1, + 94, -1, -1, -1, 1189, -1, 100, 101, 102, 103, + -1, 85, -1, 1198, 1199, -1, -1, -1, -1, -1, + 94, -1, -1, -1, -1, -1, 100, 101, 102, 103, + -1, -1, -1, -1, 128, -1, -1, 131, -1, -1, -1, -1, -1, -1, 374, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 385, -1, -1, -1, -1, + -1, -1, -1, -1, 128, 385, -1, 131, -1, -1, -1, -1, -1, -1, -1, -1, -1, 397, -1, -1, -1, -1, 402, -1, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, -1, 419, @@ -5485,163 +5501,116 @@ static const yytype_int16 yycheck[] = -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, 100, -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, - 111, 112, -1, 114, 115, -1, -1, 118, 119, -1, + 111, 112, -1, 114, 115, -1, -1, 118, 119, 1, + -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, -1, -1, 134, 135, 136, -1, 19, -1, 21, + 22, 23, 24, -1, 145, 146, -1, 148, 30, 31, + 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, + -1, -1, -1, 45, -1, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, + -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 134, 135, 136, -1, -1, 139, -1, - -1, -1, -1, -1, -1, 146, 1, 148, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, - 15, -1, -1, -1, 19, -1, 21, 22, 23, 24, - -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, - 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, - 45, -1, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, - -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, - 85, -1, -1, -1, -1, -1, 91, -1, -1, 94, - 95, -1, 97, 98, -1, 100, -1, -1, -1, 104, - -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, - 115, -1, -1, 118, 119, -1, -1, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, -1, -1, 134, - 135, 136, -1, 19, -1, 21, 22, 23, 24, -1, - -1, 146, -1, 148, 30, 31, 32, 33, 34, 35, + -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, + -1, -1, 94, 95, -1, 97, 98, -1, 100, -1, + -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, + 112, -1, 114, 115, -1, -1, 118, 119, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 134, 135, 136, -1, -1, 139, -1, -1, + -1, -1, -1, -1, 146, 1, 148, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, -1, -1, 15, + -1, -1, -1, 19, -1, 21, 22, 23, 24, -1, + -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, 100, -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, 115, - -1, -1, 118, 119, -1, -1, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, -1, -1, 134, 135, - 136, -1, 19, -1, 21, 22, 23, 24, -1, -1, - 146, -1, 148, 30, 31, 32, 33, 34, 35, 36, - -1, -1, 39, -1, -1, -1, -1, -1, 45, -1, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, - 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, - -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, - 97, 98, -1, 100, -1, -1, -1, 104, -1, 106, - 107, 108, -1, 110, 111, 112, -1, 114, 115, -1, - -1, 118, 119, -1, -1, 3, 4, 5, 6, 7, - 8, 9, 10, 11, -1, -1, -1, 134, 135, 136, - -1, 19, -1, 21, 22, 23, 24, -1, -1, 146, - -1, 148, 30, 31, 32, 33, 34, 35, 36, -1, - -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, - 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, - 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, - -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, - -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, - 98, -1, -1, -1, -1, -1, 104, -1, 106, 107, - 108, -1, 110, 111, 112, -1, 114, 115, -1, -1, - 118, 119, -1, -1, 3, 4, 5, 6, 7, 8, - 9, 10, 11, -1, -1, -1, 134, 135, 136, -1, - 19, -1, 21, 22, 23, 24, -1, -1, 146, -1, - 148, 30, 31, 32, 33, 34, 35, 36, -1, -1, - 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, - 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, - 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, - 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, - -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, - -1, -1, -1, -1, -1, 104, -1, 106, 107, 108, - -1, 110, 111, 112, -1, 114, 115, -1, -1, 118, - 119, -1, -1, 3, 4, 5, 6, 7, 8, 9, - 10, 11, -1, -1, -1, 134, 135, 136, -1, 19, - -1, 21, 22, 23, 24, -1, -1, 146, -1, 148, + -1, -1, 118, 119, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 134, 135, + 136, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 146, -1, 148, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, -1, 17, 18, 19, + 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, - -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, + -1, -1, -1, -1, -1, 45, -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, - -1, -1, -1, -1, 104, -1, 106, 107, 108, -1, + 100, -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, 115, -1, -1, 118, 119, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 134, 135, 136, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 148, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, -1, -1, -1, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, -1, -1, -1, -1, - -1, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 69, 70, 71, 72, 73, - 74, 75, 76, 77, -1, -1, 80, 81, -1, -1, - -1, -1, 86, 87, 88, 89, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 100, 101, 102, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - -1, 135, 136, -1, -1, -1, -1, -1, -1, 143, - 144, 3, 4, 5, 6, 7, 8, 9, 10, 11, - -1, -1, -1, -1, -1, -1, -1, 19, -1, 21, - 22, 23, 24, -1, 26, -1, -1, -1, 30, 31, - 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, - -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, - 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, - -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, - -1, -1, 94, 95, -1, 97, 98, -1, 100, -1, - 102, 103, 104, -1, 106, 107, 108, -1, 110, 111, - 112, -1, 114, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 134, 135, 136, -1, 138, -1, -1, -1, - -1, -1, 144, 3, 4, 5, 6, 7, 8, 9, - 10, 11, -1, -1, -1, -1, -1, -1, -1, 19, - -1, 21, 22, 23, 24, -1, 26, -1, -1, -1, - 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, - -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, - 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, - 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, - 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, - -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, - 100, -1, 102, 103, 104, -1, 106, 107, 108, -1, - 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, + -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, -1, -1, 134, 135, 136, -1, 19, 139, + 21, 22, 23, 24, -1, 145, 146, -1, 148, 30, + 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, + -1, -1, -1, -1, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, + -1, -1, 63, -1, -1, 66, 67, -1, 69, 70, + 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, + 91, -1, -1, 94, 95, -1, 97, 98, -1, 100, + -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, + 111, 112, -1, 114, 115, -1, -1, 118, 119, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, - -1, -1, -1, -1, 134, 135, 136, 19, 138, 21, - 22, 23, 24, -1, 144, -1, -1, -1, 30, 31, + -1, -1, -1, 134, 135, 136, -1, 19, -1, 21, + 22, 23, 24, -1, -1, 146, -1, 148, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, - 92, -1, 94, 95, -1, 97, 98, -1, 100, -1, - 102, 103, 104, -1, 106, 107, 108, -1, 110, 111, - 112, -1, 114, -1, -1, -1, -1, -1, -1, 121, + -1, -1, 94, 95, -1, 97, 98, -1, -1, -1, + -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, + 112, -1, 114, 115, -1, -1, 118, 119, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, 134, 135, 136, -1, 19, -1, 21, 22, - 23, 24, 144, -1, -1, -1, -1, 30, 31, 32, + 23, 24, -1, -1, 146, -1, 148, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 84, 85, -1, -1, -1, -1, -1, 91, 92, - -1, 94, 95, -1, 97, 98, -1, 100, -1, 102, - 103, 104, -1, 106, 107, 108, -1, 110, 111, 112, - -1, 114, -1, -1, -1, -1, -1, -1, 121, 3, + -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, + -1, 94, 95, -1, 97, 98, -1, -1, -1, -1, + -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, + -1, 114, 115, -1, -1, 118, 119, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, 134, 135, 136, -1, 19, -1, 21, 22, 23, - 24, 144, -1, -1, -1, -1, 30, 31, 32, 33, + 24, -1, -1, 146, -1, 148, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, - 94, 95, -1, 97, 98, -1, 100, -1, 102, 103, + 94, 95, -1, 97, 98, -1, -1, -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, - 114, -1, -1, -1, -1, -1, -1, 3, 4, 5, + 114, 115, -1, -1, 118, 119, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 134, 135, 136, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 148, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, + -1, -1, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, -1, -1, -1, -1, -1, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 69, 70, 71, 72, 73, 74, 75, 76, 77, + -1, -1, 80, 81, -1, -1, -1, -1, 86, 87, + 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 100, 101, 102, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, -1, 135, 136, -1, + -1, -1, -1, -1, -1, 143, 144, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, - 134, 135, 136, 19, -1, 21, 22, 23, 24, -1, - 144, -1, -1, -1, 30, 31, 32, 33, 34, 35, + -1, -1, -1, 19, -1, 21, 22, 23, 24, -1, + 26, -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, @@ -5652,66 +5621,139 @@ static const yytype_int16 yycheck[] = 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, 135, - 136, -1, -1, -1, -1, -1, -1, -1, 144, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, -1, -1, -1, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, -1, -1, -1, -1, - -1, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, -1, -1, -1, -1, -1, -1, 63, - -1, -1, -1, -1, -1, 69, 70, 71, 72, 73, - 74, 75, 76, 77, -1, -1, 80, 81, -1, -1, - -1, -1, 86, 87, 88, 89, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 100, 101, 102, -1, - -1, -1, -1, 107, -1, -1, -1, -1, -1, -1, + 136, -1, 138, -1, -1, -1, -1, -1, 144, 3, + 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, + -1, -1, -1, -1, -1, 19, -1, 21, 22, 23, + 24, -1, 26, -1, -1, -1, 30, 31, 32, 33, + 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, + -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, + 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, + -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - -1, 135, 136, -1, -1, -1, -1, -1, -1, 143, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, -1, -1, -1, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, -1, -1, -1, - -1, -1, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, -1, -1, -1, -1, -1, -1, - 63, -1, -1, -1, -1, -1, -1, 70, 71, 72, - 73, 74, 75, 76, 77, -1, -1, 80, 81, -1, - -1, -1, -1, 86, 87, 88, 89, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, - -1, -1, -1, -1, 107, -1, -1, -1, -1, -1, + 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, + 94, 95, -1, 97, 98, -1, 100, -1, 102, 103, + 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, + 114, -1, -1, -1, -1, -1, -1, 3, 4, 5, + 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, + 134, 135, 136, 19, 138, 21, 22, 23, 24, -1, + 144, -1, -1, -1, 30, 31, 32, 33, 34, 35, + 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, + -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, + 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, + 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, + -1, -1, -1, -1, -1, 91, 92, -1, 94, 95, + -1, 97, 98, -1, 100, -1, 102, 103, 104, -1, + 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, + -1, -1, -1, -1, -1, 121, 3, 4, 5, 6, + 7, 8, 9, 10, 11, -1, -1, -1, 134, 135, + 136, -1, 19, -1, 21, 22, 23, 24, 144, -1, + -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, + -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, + -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, + -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, + 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, + -1, -1, -1, -1, 91, 92, -1, 94, 95, -1, + 97, 98, -1, 100, -1, 102, 103, 104, -1, 106, + 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, + -1, -1, -1, -1, 121, 3, 4, 5, 6, 7, + 8, 9, 10, 11, -1, -1, -1, 134, 135, 136, + -1, 19, -1, 21, 22, 23, 24, 144, -1, -1, + -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, + -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, + 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, + 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, + -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, + -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, + 98, -1, 100, -1, 102, 103, 104, -1, 106, 107, + 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, + -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, + 10, 11, -1, -1, -1, -1, 134, 135, 136, 19, + -1, 21, 22, 23, 24, -1, 144, -1, -1, -1, + 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, + -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, + 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, + 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, + 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, + -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, + 100, -1, 102, 103, 104, -1, 106, 107, 108, -1, + 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, 135, 136, -1, -1, -1, -1, -1, -1, - 143, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, -1, -1, -1, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, - -1, -1, -1, 45, 46, 47, 48, 49, 50, 51, - 52, -1, -1, 55, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 70, 71, - 72, 73, 74, 75, 76, 77, -1, -1, 80, 81, - -1, -1, -1, -1, 86, 87, 88, 89, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, - 102, -1, -1, -1, 106, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 134, 135, 136, -1, -1, -1, + -1, -1, -1, -1, 144, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, + -1, -1, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, -1, -1, -1, -1, -1, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, + -1, -1, -1, -1, -1, 63, -1, -1, -1, -1, + -1, 69, 70, 71, 72, 73, 74, 75, 76, 77, + -1, -1, 80, 81, -1, -1, -1, -1, 86, 87, + 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 100, 101, 102, -1, -1, -1, -1, 107, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, -1, 135, 136, -1, -1, -1, -1, -1, - -1, 143, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, -1, -1, -1, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, -1, - -1, -1, -1, -1, 45, 46, 47, 48, 49, 50, - 51, 52, -1, -1, 55, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, - 71, 72, 73, 74, 75, 76, 77, -1, -1, 80, - 81, -1, -1, -1, -1, 86, 87, 88, 89, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, - 101, 102, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, -1, 135, 136, -1, + -1, -1, -1, -1, -1, 143, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, -1, -1, -1, -1, -1, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + -1, -1, -1, -1, -1, -1, 63, -1, -1, -1, + -1, -1, -1, 70, 71, 72, 73, 74, 75, 76, + 77, -1, -1, 80, 81, -1, -1, -1, -1, 86, + 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 100, 101, 102, -1, -1, -1, -1, + 107, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, -1, 135, 136, + -1, -1, -1, -1, -1, -1, 143, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, -1, -1, -1, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, -1, -1, -1, -1, -1, 45, + 46, 47, 48, 49, 50, 51, 52, -1, -1, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, 135, 136, -1, -1, -1, -1, - -1, -1, 143, 3, 4, 5, 6, 7, 8, 9, + -1, -1, -1, -1, 70, 71, 72, 73, 74, 75, + 76, 77, -1, -1, 80, 81, -1, -1, -1, -1, + 86, 87, 88, 89, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 100, 101, 102, -1, -1, -1, + 106, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, -1, 135, + 136, -1, -1, -1, -1, -1, -1, 143, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, -1, -1, -1, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, -1, -1, -1, -1, -1, + 45, 46, 47, 48, 49, 50, 51, 52, -1, -1, + 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 70, 71, 72, 73, 74, + 75, 76, 77, -1, -1, 80, 81, -1, -1, -1, + -1, 86, 87, 88, 89, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 100, 101, 102, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, + 135, 136, -1, -1, -1, -1, -1, -1, 143, 3, + 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, + -1, -1, -1, -1, -1, 19, -1, 21, 22, 23, + 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, + 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, + -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, + 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, + -1, -1, 66, 67, -1, 69, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, + 94, 95, -1, 97, 98, -1, -1, -1, -1, -1, + 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, + 114, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, 19, - -1, 21, 22, 23, 24, -1, -1, -1, -1, -1, + 134, 21, 22, 23, 24, -1, -1, -1, 142, -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, @@ -5721,63 +5763,28 @@ static const yytype_int16 yycheck[] = -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, -1, -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, 3, 4, 5, - 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, + 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 19, 134, 21, 22, 23, 24, -1, -1, -1, 142, -1, 30, 31, 32, 33, 34, 35, - 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, - -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, - 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, - 66, 67, -1, 69, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, - -1, 97, 98, -1, -1, -1, -1, -1, 104, -1, - 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, - -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, -1, -1, -1, -1, -1, -1, 19, 134, 21, - 22, 23, 24, -1, -1, -1, 142, -1, 30, 31, - 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, - -1, -1, -1, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, - -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, - -1, -1, 94, 95, -1, 97, 98, -1, 100, -1, - -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, - 112, -1, 114, -1, -1, -1, -1, -1, -1, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, - -1, -1, 134, 135, 136, 19, -1, 21, 22, 23, - 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, - 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, - -1, 45, -1, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, - -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, - 94, 95, -1, 97, 98, -1, 100, -1, -1, -1, - 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, - 114, -1, -1, -1, -1, -1, -1, 3, 4, 5, - 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, - 134, 135, 136, 19, -1, 21, 22, 23, 24, -1, - -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, - 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, - -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, + 36, -1, -1, 39, -1, -1, -1, -1, -1, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, - -1, 97, 98, -1, 100, -1, 102, 103, 104, -1, + -1, 97, 98, -1, 100, -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, - 8, 9, 10, 11, -1, -1, -1, -1, 134, 135, + 8, 9, 10, 11, 12, -1, -1, -1, 134, 135, 136, 19, -1, 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, - -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 39, -1, -1, -1, -1, -1, 45, -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, - 98, -1, 100, -1, 102, 103, 104, -1, 106, 107, + 98, -1, 100, -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, 134, 135, 136, 19, @@ -5812,7 +5819,7 @@ static const yytype_int16 yycheck[] = -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, - 94, 95, -1, 97, 98, -1, 100, -1, 102, -1, + 94, 95, -1, 97, 98, -1, 100, -1, 102, 103, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, @@ -5824,7 +5831,7 @@ static const yytype_int16 yycheck[] = 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, - -1, 97, 98, -1, -1, -1, 102, 103, 104, -1, + -1, 97, 98, -1, 100, -1, 102, 103, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, 134, 135, @@ -5848,7 +5855,7 @@ static const yytype_int16 yycheck[] = 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, - -1, -1, 102, -1, 104, -1, 106, 107, 108, -1, + -1, -1, 102, 103, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, 134, 135, 136, 19, -1, 21, @@ -5860,7 +5867,7 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, 100, -1, - -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, + 102, -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, 134, 135, 136, 19, -1, 21, 22, 23, @@ -5871,7 +5878,7 @@ static const yytype_int16 yycheck[] = -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, - 94, 95, -1, 97, 98, -1, 100, -1, -1, -1, + 94, 95, -1, 97, 98, -1, -1, -1, 102, -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, @@ -5918,7 +5925,7 @@ static const yytype_int16 yycheck[] = -1, 63, -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, - -1, -1, 94, 95, -1, 97, 98, -1, -1, -1, + -1, -1, 94, 95, -1, 97, 98, -1, 100, -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, @@ -5930,7 +5937,7 @@ static const yytype_int16 yycheck[] = -1, -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, - 94, 95, -1, 97, 98, -1, -1, -1, -1, -1, + 94, 95, -1, 97, 98, -1, 100, -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, @@ -5947,14 +5954,49 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, 134, 135, 136, 19, -1, 21, 22, 23, 24, -1, -1, -1, + -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, + -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, + 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, + 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, + -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, + -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, + 98, -1, -1, -1, -1, -1, 104, -1, 106, 107, + 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, + -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, + 10, 11, -1, -1, -1, -1, 134, 135, 136, 19, + -1, 21, 22, 23, 24, -1, -1, -1, -1, -1, + 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, + -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, + 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, + 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, + 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, + -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, + -1, -1, -1, -1, 104, -1, 106, 107, 108, -1, + 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, + -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, + -1, -1, -1, -1, 134, 135, 136, 19, -1, 21, + 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, + 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, + -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, + 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, + -1, 63, -1, -1, 66, 67, -1, 69, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 88, -1, -1, 91, + -1, -1, 94, 95, -1, 97, 98, -1, -1, -1, + -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, + 112, -1, 114, -1, -1, 3, 4, 5, 6, 7, + 8, 9, 10, 11, -1, -1, -1, -1, -1, -1, + -1, 19, 134, 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, -1, -1, 66, 67, -1, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, -1, -1, 91, -1, -1, 94, 95, -1, 97, - 98, -1, -1, -1, -1, -1, 104, -1, 106, 107, + -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, + 98, -1, 100, -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, 19, 134, 21, 22, 23, @@ -5977,7 +6019,7 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, 98, -1, - 100, -1, -1, -1, 104, -1, 106, 107, 108, -1, + -1, -1, -1, -1, 104, -1, 106, 107, 108, -1, 110, 111, 112, -1, 114, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, 19, 134, 21, 22, 23, 24, -1, @@ -6011,30 +6053,10 @@ static const yytype_int16 yycheck[] = -1, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, 94, 95, -1, 97, - 98, -1, -1, -1, -1, -1, 104, -1, 106, 107, - 108, -1, 110, 111, 112, -1, 114, -1, -1, 3, - 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, - -1, -1, -1, -1, -1, 19, 134, 21, 22, 23, - 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, - 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, - -1, -1, -1, -1, 48, 49, 50, 51, 52, 53, - 54, 55, 56, -1, 58, 59, 60, -1, -1, 63, - -1, -1, 66, 67, -1, 69, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, - 94, 95, -1, 97, 98, -1, -1, 51, 52, -1, - 104, 55, 106, 107, 108, -1, 110, 111, 112, -1, - 114, -1, -1, -1, -1, -1, 70, 71, 72, 73, - 74, 75, 76, 77, -1, -1, 80, 81, -1, -1, - 134, -1, 86, 87, 88, 89, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 100, 101, 102, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - -1, 135, 136, 51, 52, -1, -1, 55, -1, 143, - 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 98, -1, -1, 51, 52, -1, 104, 55, 106, 107, + 108, -1, 110, 111, 112, -1, 114, -1, -1, -1, -1, -1, 70, 71, 72, 73, 74, 75, 76, 77, - -1, -1, 80, 81, -1, -1, -1, -1, 86, 87, + -1, -1, 80, 81, -1, -1, 134, -1, 86, 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -6158,56 +6180,30 @@ static const yytype_int16 yycheck[] = -1, -1, 86, 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - -1, 135, 136, -1, -1, -1, -1, -1, -1, 143, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, -1, -1, -1, -1, 88, 89, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, - -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 122, -1, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, -1, -1, -1, -1, 88, 89, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 101, -1, -1, -1, -1, 44, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 122, -1, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, -1, -1, -1, -1, + -1, 135, 136, 51, 52, -1, -1, 55, -1, 143, + 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 70, 71, 72, 73, 74, 75, 76, 77, + -1, -1, 80, 81, -1, -1, -1, -1, 86, 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 122, -1, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 72, 73, 74, 75, + -1, -1, 100, 101, 102, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, + -1, -1, -1, -1, -1, -1, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, -1, 135, 136, -1, + -1, -1, -1, -1, -1, 143, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, -1, -1, -1, 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, -1, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, -1, -1, - -1, -1, -1, -1, -1, -1, 142, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, - -1, -1, -1, 88, 89, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 122, -1, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - -1, -1, -1, -1, -1, -1, -1, 142, 72, 73, + 126, 127, 128, 129, 130, 131, 132, 133, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, -1, -1, -1, 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - -1, -1, -1, -1, -1, -1, -1, -1, 142, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, -1, -1, -1, -1, 88, 89, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, - -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, -1, -1, -1, -1, -1, -1, 142, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, -1, -1, -1, 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, @@ -6219,8 +6215,44 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133 + -1, -1, 122, -1, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, -1, -1, -1, -1, -1, -1, + -1, -1, 142, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, -1, -1, -1, -1, 88, + 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 122, -1, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, -1, -1, -1, -1, -1, + -1, -1, -1, 142, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, -1, -1, -1, -1, + 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 122, -1, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, -1, -1, -1, -1, + -1, -1, -1, -1, 142, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, -1, -1, -1, + -1, 88, 89, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 122, -1, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, -1, -1, -1, + -1, -1, -1, -1, -1, 142, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, -1, -1, + -1, -1, 88, 89, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 122, -1, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + -1, -1, -1, -1, 88, 89, 72, 73, 74, 75, + 76, 77, -1, -1, 80, 81, -1, 101, -1, -1, + -1, -1, 88, 89, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133 }; /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of @@ -6280,7 +6312,7 @@ static const yytype_int16 yystos[] = 191, 93, 142, 201, 202, 347, 57, 201, 202, 85, 196, 197, 203, 332, 347, 197, 163, 340, 342, 163, 345, 159, 138, 157, 90, 338, 92, 160, 176, 145, - 340, 346, 342, 160, 342, 141, 202, 343, 346, 202, + 340, 346, 342, 157, 342, 141, 202, 343, 346, 202, 343, 139, 343, 55, 178, 179, 180, 142, 90, 140, 338, 144, 239, 313, 318, 63, 278, 280, 284, 285, 63, 279, 61, 62, 63, 63, 101, 101, 154, 169, @@ -7164,7 +7196,7 @@ YYLTYPE yylloc = yyloc_default; -#line 7168 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7200 "mrbgems/mruby-compiler/core/y.tab.c" yylsp[0] = yylloc; goto yysetstate; @@ -7382,7 +7414,7 @@ yyreduce: p->lstate = EXPR_BEG; if (!p->locals) p->locals = cons(0,0); } -#line 7386 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7418 "mrbgems/mruby-compiler/core/y.tab.c" break; case 3: /* program: $@1 top_compstmt */ @@ -7390,7 +7422,7 @@ yyreduce: { p->tree = new_scope(p, (yyvsp[0].nd)); } -#line 7394 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7426 "mrbgems/mruby-compiler/core/y.tab.c" break; case 4: /* top_compstmt: top_stmts opt_terms */ @@ -7398,7 +7430,7 @@ yyreduce: { (yyval.nd) = (yyvsp[-1].nd); } -#line 7402 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7434 "mrbgems/mruby-compiler/core/y.tab.c" break; case 5: /* top_stmts: none */ @@ -7406,7 +7438,7 @@ yyreduce: { (yyval.nd) = new_stmts(p, 0); } -#line 7410 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7442 "mrbgems/mruby-compiler/core/y.tab.c" break; case 6: /* top_stmts: top_stmt */ @@ -7414,7 +7446,7 @@ yyreduce: { (yyval.nd) = new_stmts(p, (yyvsp[0].nd)); } -#line 7418 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7450 "mrbgems/mruby-compiler/core/y.tab.c" break; case 7: /* top_stmts: top_stmts terms top_stmt */ @@ -7422,7 +7454,7 @@ yyreduce: { (yyval.nd) = stmts_push(p, (yyvsp[-2].nd), newline_node((yyvsp[0].nd))); } -#line 7426 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7458 "mrbgems/mruby-compiler/core/y.tab.c" break; case 8: /* top_stmts: error top_stmt */ @@ -7430,7 +7462,7 @@ yyreduce: { (yyval.nd) = new_stmts(p, 0); } -#line 7434 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7466 "mrbgems/mruby-compiler/core/y.tab.c" break; case 10: /* @2: %empty */ @@ -7439,7 +7471,7 @@ yyreduce: (yyval.nd) = local_switch(p); nvars_block(p); } -#line 7443 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7475 "mrbgems/mruby-compiler/core/y.tab.c" break; case 11: /* top_stmt: "'BEGIN'" @2 '{' top_compstmt '}' */ @@ -7450,7 +7482,7 @@ yyreduce: nvars_unnest(p); (yyval.nd) = 0; } -#line 7454 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7486 "mrbgems/mruby-compiler/core/y.tab.c" break; case 12: /* bodystmt: compstmt opt_rescue opt_else opt_ensure */ @@ -7475,7 +7507,7 @@ yyreduce: } } } -#line 7479 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7511 "mrbgems/mruby-compiler/core/y.tab.c" break; case 13: /* compstmt: stmts opt_terms */ @@ -7483,7 +7515,7 @@ yyreduce: { (yyval.nd) = (yyvsp[-1].nd); } -#line 7487 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7519 "mrbgems/mruby-compiler/core/y.tab.c" break; case 14: /* stmts: none */ @@ -7491,7 +7523,7 @@ yyreduce: { (yyval.nd) = new_stmts(p, 0); } -#line 7495 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7527 "mrbgems/mruby-compiler/core/y.tab.c" break; case 15: /* stmts: stmt */ @@ -7499,7 +7531,7 @@ yyreduce: { (yyval.nd) = new_stmts(p, (yyvsp[0].nd)); } -#line 7503 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7535 "mrbgems/mruby-compiler/core/y.tab.c" break; case 16: /* stmts: stmts terms stmt */ @@ -7507,7 +7539,7 @@ yyreduce: { (yyval.nd) = stmts_push(p, (yyvsp[-2].nd), newline_node((yyvsp[0].nd))); } -#line 7511 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7543 "mrbgems/mruby-compiler/core/y.tab.c" break; case 17: /* stmts: error stmt */ @@ -7515,13 +7547,13 @@ yyreduce: { (yyval.nd) = new_stmts(p, (yyvsp[0].nd)); } -#line 7519 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7551 "mrbgems/mruby-compiler/core/y.tab.c" break; case 18: /* $@3: %empty */ #line 2277 "mrbgems/mruby-compiler/core/parse.y" {p->lstate = EXPR_FNAME;} -#line 7525 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7557 "mrbgems/mruby-compiler/core/y.tab.c" break; case 19: /* stmt: "'alias'" fsym $@3 fsym */ @@ -7529,7 +7561,7 @@ yyreduce: { (yyval.nd) = new_alias(p, (yyvsp[-2].id), (yyvsp[0].id)); } -#line 7533 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7565 "mrbgems/mruby-compiler/core/y.tab.c" break; case 20: /* stmt: "'undef'" undef_list */ @@ -7537,7 +7569,7 @@ yyreduce: { (yyval.nd) = new_undef(p, (yyvsp[0].nd)); } -#line 7541 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7573 "mrbgems/mruby-compiler/core/y.tab.c" break; case 21: /* stmt: stmt "'if' modifier" expr_value */ @@ -7545,7 +7577,7 @@ yyreduce: { (yyval.nd) = new_if(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd), 0); } -#line 7549 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7581 "mrbgems/mruby-compiler/core/y.tab.c" break; case 22: /* stmt: stmt "'unless' modifier" expr_value */ @@ -7553,7 +7585,7 @@ yyreduce: { (yyval.nd) = new_if(p, cond((yyvsp[0].nd)), 0, (yyvsp[-2].nd)); } -#line 7557 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7589 "mrbgems/mruby-compiler/core/y.tab.c" break; case 23: /* stmt: stmt "'while' modifier" expr_value */ @@ -7566,7 +7598,7 @@ yyreduce: (yyval.nd) = new_while(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd)); } } -#line 7570 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7602 "mrbgems/mruby-compiler/core/y.tab.c" break; case 24: /* stmt: stmt "'until' modifier" expr_value */ @@ -7579,7 +7611,7 @@ yyreduce: (yyval.nd) = new_until(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd)); } } -#line 7583 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7615 "mrbgems/mruby-compiler/core/y.tab.c" break; case 25: /* stmt: stmt "'rescue' modifier" stmt */ @@ -7587,7 +7619,7 @@ yyreduce: { (yyval.nd) = new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7591 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7623 "mrbgems/mruby-compiler/core/y.tab.c" break; case 26: /* stmt: "'END'" '{' compstmt '}' */ @@ -7596,7 +7628,7 @@ yyreduce: yyerror(&(yylsp[-3]), p, "END not supported"); (yyval.nd) = new_postexe(p, (yyvsp[-1].nd)); } -#line 7600 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7632 "mrbgems/mruby-compiler/core/y.tab.c" break; case 28: /* stmt: mlhs '=' command_call */ @@ -7604,7 +7636,7 @@ yyreduce: { (yyval.nd) = new_masgn(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7608 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7640 "mrbgems/mruby-compiler/core/y.tab.c" break; case 29: /* stmt: lhs '=' mrhs */ @@ -7612,7 +7644,7 @@ yyreduce: { (yyval.nd) = new_asgn(p, (yyvsp[-2].nd), new_array(p, (yyvsp[0].nd))); } -#line 7616 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7648 "mrbgems/mruby-compiler/core/y.tab.c" break; case 30: /* stmt: mlhs '=' arg */ @@ -7620,7 +7652,7 @@ yyreduce: { (yyval.nd) = new_masgn(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7624 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7656 "mrbgems/mruby-compiler/core/y.tab.c" break; case 31: /* stmt: mlhs '=' mrhs */ @@ -7628,7 +7660,7 @@ yyreduce: { (yyval.nd) = new_masgn(p, (yyvsp[-2].nd), new_array(p, (yyvsp[0].nd))); } -#line 7632 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7664 "mrbgems/mruby-compiler/core/y.tab.c" break; case 33: /* command_asgn: lhs '=' command_rhs */ @@ -7636,7 +7668,7 @@ yyreduce: { (yyval.nd) = new_asgn(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7640 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7672 "mrbgems/mruby-compiler/core/y.tab.c" break; case 34: /* command_asgn: var_lhs tOP_ASGN command_rhs */ @@ -7644,7 +7676,7 @@ yyreduce: { (yyval.nd) = new_op_asgn(p, (yyvsp[-2].nd), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 7648 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7680 "mrbgems/mruby-compiler/core/y.tab.c" break; case 35: /* command_asgn: primary_value '[' opt_call_args ']' tOP_ASGN command_rhs */ @@ -7652,7 +7684,7 @@ yyreduce: { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-5].nd), intern_op(aref), (yyvsp[-3].nd), '.'), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 7656 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7688 "mrbgems/mruby-compiler/core/y.tab.c" break; case 36: /* command_asgn: primary_value call_op "local variable or method" tOP_ASGN command_rhs */ @@ -7660,7 +7692,7 @@ yyreduce: { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, (yyvsp[-3].num)), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 7664 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7696 "mrbgems/mruby-compiler/core/y.tab.c" break; case 37: /* command_asgn: primary_value call_op "constant" tOP_ASGN command_rhs */ @@ -7668,7 +7700,7 @@ yyreduce: { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, (yyvsp[-3].num)), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 7672 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7704 "mrbgems/mruby-compiler/core/y.tab.c" break; case 38: /* command_asgn: primary_value "::" "constant" tOP_ASGN command_call */ @@ -7677,7 +7709,7 @@ yyreduce: yyerror(&(yylsp[-4]), p, "constant re-assignment"); (yyval.nd) = 0; } -#line 7681 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7713 "mrbgems/mruby-compiler/core/y.tab.c" break; case 39: /* command_asgn: primary_value "::" "local variable or method" tOP_ASGN command_rhs */ @@ -7685,7 +7717,7 @@ yyreduce: { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, tCOLON2), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 7689 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7721 "mrbgems/mruby-compiler/core/y.tab.c" break; case 40: /* command_asgn: defn_head f_opt_arglist_paren '=' command */ @@ -7698,7 +7730,7 @@ yyreduce: nvars_unnest(p); p->in_def--; } -#line 7702 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7734 "mrbgems/mruby-compiler/core/y.tab.c" break; case 41: /* command_asgn: defn_head f_opt_arglist_paren '=' command "'rescue' modifier" arg */ @@ -7711,7 +7743,7 @@ yyreduce: nvars_unnest(p); p->in_def--; } -#line 7715 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7747 "mrbgems/mruby-compiler/core/y.tab.c" break; case 42: /* command_asgn: defs_head f_opt_arglist_paren '=' command */ @@ -7724,7 +7756,7 @@ yyreduce: p->in_def--; p->in_single--; } -#line 7728 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7760 "mrbgems/mruby-compiler/core/y.tab.c" break; case 43: /* command_asgn: defs_head f_opt_arglist_paren '=' command "'rescue' modifier" arg */ @@ -7737,7 +7769,7 @@ yyreduce: p->in_def--; p->in_single--; } -#line 7741 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7773 "mrbgems/mruby-compiler/core/y.tab.c" break; case 44: /* command_asgn: backref tOP_ASGN command_rhs */ @@ -7746,7 +7778,7 @@ yyreduce: backref_error(p, (yyvsp[-2].nd)); (yyval.nd) = new_stmts(p, 0); } -#line 7750 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7782 "mrbgems/mruby-compiler/core/y.tab.c" break; case 46: /* command_rhs: command_call "'rescue' modifier" stmt */ @@ -7754,7 +7786,7 @@ yyreduce: { (yyval.nd) = new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7758 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7790 "mrbgems/mruby-compiler/core/y.tab.c" break; case 49: /* expr: expr "'and'" expr */ @@ -7762,7 +7794,7 @@ yyreduce: { (yyval.nd) = new_and(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7766 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7798 "mrbgems/mruby-compiler/core/y.tab.c" break; case 50: /* expr: expr "'or'" expr */ @@ -7770,7 +7802,7 @@ yyreduce: { (yyval.nd) = new_or(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 7774 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7806 "mrbgems/mruby-compiler/core/y.tab.c" break; case 51: /* expr: "'not'" opt_nl expr */ @@ -7778,7 +7810,7 @@ yyreduce: { (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "!"); } -#line 7782 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7814 "mrbgems/mruby-compiler/core/y.tab.c" break; case 52: /* expr: '!' command_call */ @@ -7786,13 +7818,13 @@ yyreduce: { (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "!"); } -#line 7790 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7822 "mrbgems/mruby-compiler/core/y.tab.c" break; case 53: /* $@4: %empty */ #line 2437 "mrbgems/mruby-compiler/core/parse.y" {p->in_kwarg++;} -#line 7796 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7828 "mrbgems/mruby-compiler/core/y.tab.c" break; case 54: /* expr: arg "=>" $@4 p_expr */ @@ -7802,13 +7834,13 @@ yyreduce: p->in_kwarg--; (yyval.nd) = new_match_pat(p, (yyvsp[-3].nd), (yyvsp[0].nd), TRUE); } -#line 7806 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7838 "mrbgems/mruby-compiler/core/y.tab.c" break; case 55: /* $@5: %empty */ #line 2443 "mrbgems/mruby-compiler/core/parse.y" {p->in_kwarg++;} -#line 7812 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7844 "mrbgems/mruby-compiler/core/y.tab.c" break; case 56: /* expr: arg "'in'" $@5 p_expr */ @@ -7818,7 +7850,7 @@ yyreduce: p->in_kwarg--; (yyval.nd) = new_match_pat(p, (yyvsp[-3].nd), (yyvsp[0].nd), FALSE); } -#line 7822 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7854 "mrbgems/mruby-compiler/core/y.tab.c" break; case 58: /* defn_head: "'def'" fname */ @@ -7829,7 +7861,7 @@ yyreduce: p->in_def++; nvars_block(p); } -#line 7833 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7865 "mrbgems/mruby-compiler/core/y.tab.c" break; case 59: /* $@6: %empty */ @@ -7837,7 +7869,7 @@ yyreduce: { p->lstate = EXPR_FNAME; } -#line 7841 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7873 "mrbgems/mruby-compiler/core/y.tab.c" break; case 60: /* defs_head: "'def'" singleton dot_or_colon $@6 fname */ @@ -7850,7 +7882,7 @@ yyreduce: nvars_block(p); p->lstate = EXPR_ENDFN; /* force for args */ } -#line 7854 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7886 "mrbgems/mruby-compiler/core/y.tab.c" break; case 61: /* expr_value: expr */ @@ -7861,7 +7893,7 @@ yyreduce: (yyval.nd) = (yyvsp[0].nd); } } -#line 7865 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7897 "mrbgems/mruby-compiler/core/y.tab.c" break; case 65: /* block_command: block_call call_op2 operation2 command_args */ @@ -7869,7 +7901,7 @@ yyreduce: { (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num)); } -#line 7873 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7905 "mrbgems/mruby-compiler/core/y.tab.c" break; case 66: /* $@7: %empty */ @@ -7878,7 +7910,7 @@ yyreduce: local_nest(p); nvars_nest(p); } -#line 7882 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7914 "mrbgems/mruby-compiler/core/y.tab.c" break; case 67: /* cmd_brace_block: "{" $@7 opt_block_param compstmt '}' */ @@ -7888,7 +7920,7 @@ yyreduce: local_unnest(p); nvars_unnest(p); } -#line 7892 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7924 "mrbgems/mruby-compiler/core/y.tab.c" break; case 68: /* command: operation command_args */ @@ -7896,7 +7928,7 @@ yyreduce: { (yyval.nd) = new_fcall(p, (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 7900 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7932 "mrbgems/mruby-compiler/core/y.tab.c" break; case 69: /* command: operation command_args cmd_brace_block */ @@ -7905,7 +7937,7 @@ yyreduce: args_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd)); (yyval.nd) = new_fcall(p, (yyvsp[-2].id), (yyvsp[-1].nd)); } -#line 7909 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7941 "mrbgems/mruby-compiler/core/y.tab.c" break; case 70: /* command: primary_value call_op operation2 command_args */ @@ -7913,7 +7945,7 @@ yyreduce: { (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num)); } -#line 7917 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7949 "mrbgems/mruby-compiler/core/y.tab.c" break; case 71: /* command: primary_value call_op operation2 command_args cmd_brace_block */ @@ -7922,7 +7954,7 @@ yyreduce: args_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd)); (yyval.nd) = new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), (yyvsp[-1].nd), (yyvsp[-3].num)); } -#line 7926 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7958 "mrbgems/mruby-compiler/core/y.tab.c" break; case 72: /* command: primary_value "::" operation2 command_args */ @@ -7930,7 +7962,7 @@ yyreduce: { (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), tCOLON2); } -#line 7934 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7966 "mrbgems/mruby-compiler/core/y.tab.c" break; case 73: /* command: primary_value "::" operation2 command_args cmd_brace_block */ @@ -7939,7 +7971,7 @@ yyreduce: args_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd)); (yyval.nd) = new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), (yyvsp[-1].nd), tCOLON2); } -#line 7943 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7975 "mrbgems/mruby-compiler/core/y.tab.c" break; case 74: /* command: "'super'" command_args */ @@ -7947,7 +7979,7 @@ yyreduce: { (yyval.nd) = new_super(p, (yyvsp[0].nd)); } -#line 7951 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7983 "mrbgems/mruby-compiler/core/y.tab.c" break; case 75: /* command: "'yield'" command_args */ @@ -7955,7 +7987,7 @@ yyreduce: { (yyval.nd) = new_yield(p, (yyvsp[0].nd)); } -#line 7959 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7991 "mrbgems/mruby-compiler/core/y.tab.c" break; case 76: /* command: "'return'" call_args */ @@ -7963,7 +7995,7 @@ yyreduce: { (yyval.nd) = new_return(p, ret_args(p, (yyvsp[0].nd))); } -#line 7967 "mrbgems/mruby-compiler/core/y.tab.c" +#line 7999 "mrbgems/mruby-compiler/core/y.tab.c" break; case 77: /* command: "'break'" call_args */ @@ -7971,7 +8003,7 @@ yyreduce: { (yyval.nd) = new_break(p, ret_args(p, (yyvsp[0].nd))); } -#line 7975 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8007 "mrbgems/mruby-compiler/core/y.tab.c" break; case 78: /* command: "'next'" call_args */ @@ -7979,7 +8011,7 @@ yyreduce: { (yyval.nd) = new_next(p, ret_args(p, (yyvsp[0].nd))); } -#line 7983 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8015 "mrbgems/mruby-compiler/core/y.tab.c" break; case 79: /* mlhs: mlhs_basic */ @@ -7987,7 +8019,7 @@ yyreduce: { (yyval.nd) = (yyvsp[0].nd); } -#line 7991 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8023 "mrbgems/mruby-compiler/core/y.tab.c" break; case 80: /* mlhs: tLPAREN mlhs_inner rparen */ @@ -7995,7 +8027,7 @@ yyreduce: { (yyval.nd) = (yyvsp[-1].nd); } -#line 7999 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8031 "mrbgems/mruby-compiler/core/y.tab.c" break; case 82: /* mlhs_inner: tLPAREN mlhs_inner rparen */ @@ -8003,7 +8035,7 @@ yyreduce: { (yyval.nd) = (yyvsp[-1].nd); } -#line 8007 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8039 "mrbgems/mruby-compiler/core/y.tab.c" break; case 83: /* mlhs_basic: mlhs_list */ @@ -8011,7 +8043,7 @@ yyreduce: { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 8015 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8047 "mrbgems/mruby-compiler/core/y.tab.c" break; case 84: /* mlhs_basic: mlhs_list mlhs_item */ @@ -8019,7 +8051,7 @@ yyreduce: { (yyval.nd) = list1(push((yyvsp[-1].nd),(yyvsp[0].nd))); } -#line 8023 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8055 "mrbgems/mruby-compiler/core/y.tab.c" break; case 85: /* mlhs_basic: mlhs_list "*" mlhs_node */ @@ -8027,7 +8059,7 @@ yyreduce: { (yyval.nd) = list2((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8031 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8063 "mrbgems/mruby-compiler/core/y.tab.c" break; case 86: /* mlhs_basic: mlhs_list "*" mlhs_node ',' mlhs_post */ @@ -8035,7 +8067,7 @@ yyreduce: { (yyval.nd) = list3((yyvsp[-4].nd), (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8039 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8071 "mrbgems/mruby-compiler/core/y.tab.c" break; case 87: /* mlhs_basic: mlhs_list "*" */ @@ -8043,7 +8075,7 @@ yyreduce: { (yyval.nd) = list2((yyvsp[-1].nd), new_nil(p)); } -#line 8047 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8079 "mrbgems/mruby-compiler/core/y.tab.c" break; case 88: /* mlhs_basic: mlhs_list "*" ',' mlhs_post */ @@ -8051,7 +8083,7 @@ yyreduce: { (yyval.nd) = list3((yyvsp[-3].nd), new_nil(p), (yyvsp[0].nd)); } -#line 8055 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8087 "mrbgems/mruby-compiler/core/y.tab.c" break; case 89: /* mlhs_basic: "*" mlhs_node */ @@ -8059,7 +8091,7 @@ yyreduce: { (yyval.nd) = list2(0, (yyvsp[0].nd)); } -#line 8063 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8095 "mrbgems/mruby-compiler/core/y.tab.c" break; case 90: /* mlhs_basic: "*" mlhs_node ',' mlhs_post */ @@ -8067,7 +8099,7 @@ yyreduce: { (yyval.nd) = list3(0, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8071 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8103 "mrbgems/mruby-compiler/core/y.tab.c" break; case 91: /* mlhs_basic: "*" */ @@ -8075,7 +8107,7 @@ yyreduce: { (yyval.nd) = list2(0, new_nil(p)); } -#line 8079 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8111 "mrbgems/mruby-compiler/core/y.tab.c" break; case 92: /* mlhs_basic: "*" ',' mlhs_post */ @@ -8083,7 +8115,7 @@ yyreduce: { (yyval.nd) = list3(0, new_nil(p), (yyvsp[0].nd)); } -#line 8087 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8119 "mrbgems/mruby-compiler/core/y.tab.c" break; case 94: /* mlhs_item: tLPAREN mlhs_inner rparen */ @@ -8091,7 +8123,7 @@ yyreduce: { (yyval.nd) = new_masgn(p, (yyvsp[-1].nd), NULL); } -#line 8095 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8127 "mrbgems/mruby-compiler/core/y.tab.c" break; case 95: /* mlhs_list: mlhs_item ',' */ @@ -8099,7 +8131,7 @@ yyreduce: { (yyval.nd) = list1((yyvsp[-1].nd)); } -#line 8103 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8135 "mrbgems/mruby-compiler/core/y.tab.c" break; case 96: /* mlhs_list: mlhs_list mlhs_item ',' */ @@ -8107,7 +8139,7 @@ yyreduce: { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[-1].nd)); } -#line 8111 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8143 "mrbgems/mruby-compiler/core/y.tab.c" break; case 97: /* mlhs_post: mlhs_item */ @@ -8115,7 +8147,7 @@ yyreduce: { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 8119 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8151 "mrbgems/mruby-compiler/core/y.tab.c" break; case 98: /* mlhs_post: mlhs_list mlhs_item */ @@ -8123,7 +8155,7 @@ yyreduce: { (yyval.nd) = push((yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 8127 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8159 "mrbgems/mruby-compiler/core/y.tab.c" break; case 99: /* mlhs_node: variable */ @@ -8131,7 +8163,7 @@ yyreduce: { assignable(p, (yyvsp[0].nd)); } -#line 8135 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8167 "mrbgems/mruby-compiler/core/y.tab.c" break; case 100: /* mlhs_node: primary_value '[' opt_call_args ']' */ @@ -8139,7 +8171,7 @@ yyreduce: { (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.'); } -#line 8143 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8175 "mrbgems/mruby-compiler/core/y.tab.c" break; case 101: /* mlhs_node: primary_value call_op "local variable or method" */ @@ -8147,7 +8179,7 @@ yyreduce: { (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); } -#line 8151 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8183 "mrbgems/mruby-compiler/core/y.tab.c" break; case 102: /* mlhs_node: primary_value "::" "local variable or method" */ @@ -8155,7 +8187,7 @@ yyreduce: { (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2); } -#line 8159 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8191 "mrbgems/mruby-compiler/core/y.tab.c" break; case 103: /* mlhs_node: primary_value call_op "constant" */ @@ -8163,7 +8195,7 @@ yyreduce: { (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); } -#line 8167 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8199 "mrbgems/mruby-compiler/core/y.tab.c" break; case 104: /* mlhs_node: primary_value "::" "constant" */ @@ -8173,7 +8205,7 @@ yyreduce: yyerror(&(yylsp[-2]), p, "dynamic constant assignment"); (yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id)); } -#line 8177 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8209 "mrbgems/mruby-compiler/core/y.tab.c" break; case 105: /* mlhs_node: tCOLON3 "constant" */ @@ -8183,7 +8215,7 @@ yyreduce: yyerror(&(yylsp[-1]), p, "dynamic constant assignment"); (yyval.nd) = new_colon3(p, (yyvsp[0].id)); } -#line 8187 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8219 "mrbgems/mruby-compiler/core/y.tab.c" break; case 106: /* mlhs_node: backref */ @@ -8192,7 +8224,7 @@ yyreduce: backref_error(p, (yyvsp[0].nd)); (yyval.nd) = 0; } -#line 8196 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8228 "mrbgems/mruby-compiler/core/y.tab.c" break; case 107: /* lhs: variable */ @@ -8200,7 +8232,7 @@ yyreduce: { assignable(p, (yyvsp[0].nd)); } -#line 8204 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8236 "mrbgems/mruby-compiler/core/y.tab.c" break; case 108: /* lhs: primary_value '[' opt_call_args ']' */ @@ -8208,7 +8240,7 @@ yyreduce: { (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.'); } -#line 8212 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8244 "mrbgems/mruby-compiler/core/y.tab.c" break; case 109: /* lhs: primary_value call_op "local variable or method" */ @@ -8216,7 +8248,7 @@ yyreduce: { (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); } -#line 8220 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8252 "mrbgems/mruby-compiler/core/y.tab.c" break; case 110: /* lhs: primary_value "::" "local variable or method" */ @@ -8224,7 +8256,7 @@ yyreduce: { (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2); } -#line 8228 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8260 "mrbgems/mruby-compiler/core/y.tab.c" break; case 111: /* lhs: primary_value call_op "constant" */ @@ -8232,7 +8264,7 @@ yyreduce: { (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num)); } -#line 8236 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8268 "mrbgems/mruby-compiler/core/y.tab.c" break; case 112: /* lhs: primary_value "::" "constant" */ @@ -8242,7 +8274,7 @@ yyreduce: yyerror(&(yylsp[-2]), p, "dynamic constant assignment"); (yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id)); } -#line 8246 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8278 "mrbgems/mruby-compiler/core/y.tab.c" break; case 113: /* lhs: tCOLON3 "constant" */ @@ -8252,7 +8284,7 @@ yyreduce: yyerror(&(yylsp[-1]), p, "dynamic constant assignment"); (yyval.nd) = new_colon3(p, (yyvsp[0].id)); } -#line 8256 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8288 "mrbgems/mruby-compiler/core/y.tab.c" break; case 114: /* lhs: backref */ @@ -8261,7 +8293,7 @@ yyreduce: backref_error(p, (yyvsp[0].nd)); (yyval.nd) = 0; } -#line 8265 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8297 "mrbgems/mruby-compiler/core/y.tab.c" break; case 115: /* lhs: "numbered parameter" */ @@ -8269,7 +8301,7 @@ yyreduce: { yyerror(&(yylsp[0]), p, "can't assign to numbered parameter"); } -#line 8273 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8305 "mrbgems/mruby-compiler/core/y.tab.c" break; case 116: /* cname: "local variable or method" */ @@ -8277,7 +8309,7 @@ yyreduce: { yyerror(&(yylsp[0]), p, "class/module name must be CONSTANT"); } -#line 8281 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8313 "mrbgems/mruby-compiler/core/y.tab.c" break; case 118: /* cpath: tCOLON3 cname */ @@ -8285,7 +8317,7 @@ yyreduce: { (yyval.nd) = cons(int_to_node(1), sym_to_node((yyvsp[0].id))); } -#line 8289 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8321 "mrbgems/mruby-compiler/core/y.tab.c" break; case 119: /* cpath: cname */ @@ -8293,7 +8325,7 @@ yyreduce: { (yyval.nd) = cons(int_to_node(0), sym_to_node((yyvsp[0].id))); } -#line 8297 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8329 "mrbgems/mruby-compiler/core/y.tab.c" break; case 120: /* cpath: primary_value "::" cname */ @@ -8302,7 +8334,7 @@ yyreduce: void_expr_error(p, (yyvsp[-2].nd)); (yyval.nd) = cons((yyvsp[-2].nd), sym_to_node((yyvsp[0].id))); } -#line 8306 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8338 "mrbgems/mruby-compiler/core/y.tab.c" break; case 124: /* fname: op */ @@ -8311,7 +8343,7 @@ yyreduce: p->lstate = EXPR_ENDFN; (yyval.id) = (yyvsp[0].id); } -#line 8315 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8347 "mrbgems/mruby-compiler/core/y.tab.c" break; case 125: /* fname: reswords */ @@ -8320,7 +8352,7 @@ yyreduce: p->lstate = EXPR_ENDFN; (yyval.id) = (yyvsp[0].id); } -#line 8324 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8356 "mrbgems/mruby-compiler/core/y.tab.c" break; case 128: /* undef_list: fsym */ @@ -8328,13 +8360,13 @@ yyreduce: { (yyval.nd) = cons(sym_to_node((yyvsp[0].id)), 0); } -#line 8332 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8364 "mrbgems/mruby-compiler/core/y.tab.c" break; case 129: /* $@8: %empty */ #line 2773 "mrbgems/mruby-compiler/core/parse.y" {p->lstate = EXPR_FNAME;} -#line 8338 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8370 "mrbgems/mruby-compiler/core/y.tab.c" break; case 130: /* undef_list: undef_list ',' $@8 fsym */ @@ -8342,187 +8374,187 @@ yyreduce: { (yyval.nd) = push((yyvsp[-3].nd), sym_to_node((yyvsp[0].id))); } -#line 8346 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8378 "mrbgems/mruby-compiler/core/y.tab.c" break; case 131: /* op: '|' */ #line 2779 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(or); } -#line 8352 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8384 "mrbgems/mruby-compiler/core/y.tab.c" break; case 132: /* op: '^' */ #line 2780 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(xor); } -#line 8358 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8390 "mrbgems/mruby-compiler/core/y.tab.c" break; case 133: /* op: '&' */ #line 2781 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(and); } -#line 8364 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8396 "mrbgems/mruby-compiler/core/y.tab.c" break; case 134: /* op: "<=>" */ #line 2782 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(cmp); } -#line 8370 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8402 "mrbgems/mruby-compiler/core/y.tab.c" break; case 135: /* op: "==" */ #line 2783 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(eq); } -#line 8376 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8408 "mrbgems/mruby-compiler/core/y.tab.c" break; case 136: /* op: "===" */ #line 2784 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(eqq); } -#line 8382 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8414 "mrbgems/mruby-compiler/core/y.tab.c" break; case 137: /* op: "=~" */ #line 2785 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(match); } -#line 8388 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8420 "mrbgems/mruby-compiler/core/y.tab.c" break; case 138: /* op: "!~" */ #line 2786 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(nmatch); } -#line 8394 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8426 "mrbgems/mruby-compiler/core/y.tab.c" break; case 139: /* op: '>' */ #line 2787 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(gt); } -#line 8400 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8432 "mrbgems/mruby-compiler/core/y.tab.c" break; case 140: /* op: ">=" */ #line 2788 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(ge); } -#line 8406 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8438 "mrbgems/mruby-compiler/core/y.tab.c" break; case 141: /* op: '<' */ #line 2789 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(lt); } -#line 8412 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8444 "mrbgems/mruby-compiler/core/y.tab.c" break; case 142: /* op: "<=" */ #line 2790 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(le); } -#line 8418 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8450 "mrbgems/mruby-compiler/core/y.tab.c" break; case 143: /* op: "!=" */ #line 2791 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(neq); } -#line 8424 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8456 "mrbgems/mruby-compiler/core/y.tab.c" break; case 144: /* op: "<<" */ #line 2792 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(lshift); } -#line 8430 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8462 "mrbgems/mruby-compiler/core/y.tab.c" break; case 145: /* op: ">>" */ #line 2793 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(rshift); } -#line 8436 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8468 "mrbgems/mruby-compiler/core/y.tab.c" break; case 146: /* op: '+' */ #line 2794 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(add); } -#line 8442 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8474 "mrbgems/mruby-compiler/core/y.tab.c" break; case 147: /* op: '-' */ #line 2795 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(sub); } -#line 8448 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8480 "mrbgems/mruby-compiler/core/y.tab.c" break; case 148: /* op: '*' */ #line 2796 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(mul); } -#line 8454 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8486 "mrbgems/mruby-compiler/core/y.tab.c" break; case 149: /* op: "*" */ #line 2797 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(mul); } -#line 8460 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8492 "mrbgems/mruby-compiler/core/y.tab.c" break; case 150: /* op: '/' */ #line 2798 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(div); } -#line 8466 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8498 "mrbgems/mruby-compiler/core/y.tab.c" break; case 151: /* op: '%' */ #line 2799 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(mod); } -#line 8472 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8504 "mrbgems/mruby-compiler/core/y.tab.c" break; case 152: /* op: tPOW */ #line 2800 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(pow); } -#line 8478 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8510 "mrbgems/mruby-compiler/core/y.tab.c" break; case 153: /* op: "**" */ #line 2801 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(pow); } -#line 8484 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8516 "mrbgems/mruby-compiler/core/y.tab.c" break; case 154: /* op: '!' */ #line 2802 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(not); } -#line 8490 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8522 "mrbgems/mruby-compiler/core/y.tab.c" break; case 155: /* op: '~' */ #line 2803 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(neg); } -#line 8496 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8528 "mrbgems/mruby-compiler/core/y.tab.c" break; case 156: /* op: "unary plus" */ #line 2804 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(plus); } -#line 8502 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8534 "mrbgems/mruby-compiler/core/y.tab.c" break; case 157: /* op: "unary minus" */ #line 2805 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(minus); } -#line 8508 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8540 "mrbgems/mruby-compiler/core/y.tab.c" break; case 158: /* op: tAREF */ #line 2806 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(aref); } -#line 8514 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8546 "mrbgems/mruby-compiler/core/y.tab.c" break; case 159: /* op: tASET */ #line 2807 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(aset); } -#line 8520 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8552 "mrbgems/mruby-compiler/core/y.tab.c" break; case 160: /* op: '`' */ #line 2808 "mrbgems/mruby-compiler/core/parse.y" { (yyval.id) = intern_op(tick); } -#line 8526 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8558 "mrbgems/mruby-compiler/core/y.tab.c" break; case 201: /* arg: lhs '=' arg_rhs */ @@ -8530,7 +8562,7 @@ yyreduce: { (yyval.nd) = new_asgn(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8534 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8566 "mrbgems/mruby-compiler/core/y.tab.c" break; case 202: /* arg: var_lhs tOP_ASGN arg_rhs */ @@ -8538,7 +8570,7 @@ yyreduce: { (yyval.nd) = new_op_asgn(p, (yyvsp[-2].nd), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 8542 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8574 "mrbgems/mruby-compiler/core/y.tab.c" break; case 203: /* arg: primary_value '[' opt_call_args ']' tOP_ASGN arg_rhs */ @@ -8546,7 +8578,7 @@ yyreduce: { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-5].nd), intern_op(aref), (yyvsp[-3].nd), '.'), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 8550 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8582 "mrbgems/mruby-compiler/core/y.tab.c" break; case 204: /* arg: primary_value call_op "local variable or method" tOP_ASGN arg_rhs */ @@ -8554,7 +8586,7 @@ yyreduce: { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, (yyvsp[-3].num)), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 8558 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8590 "mrbgems/mruby-compiler/core/y.tab.c" break; case 205: /* arg: primary_value call_op "constant" tOP_ASGN arg_rhs */ @@ -8562,7 +8594,7 @@ yyreduce: { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, (yyvsp[-3].num)), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 8566 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8598 "mrbgems/mruby-compiler/core/y.tab.c" break; case 206: /* arg: primary_value "::" "local variable or method" tOP_ASGN arg_rhs */ @@ -8570,7 +8602,7 @@ yyreduce: { (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, tCOLON2), (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 8574 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8606 "mrbgems/mruby-compiler/core/y.tab.c" break; case 207: /* arg: primary_value "::" "constant" tOP_ASGN arg_rhs */ @@ -8579,7 +8611,7 @@ yyreduce: yyerror(&(yylsp[-4]), p, "constant re-assignment"); (yyval.nd) = new_stmts(p, 0); } -#line 8583 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8615 "mrbgems/mruby-compiler/core/y.tab.c" break; case 208: /* arg: tCOLON3 "constant" tOP_ASGN arg_rhs */ @@ -8588,7 +8620,7 @@ yyreduce: yyerror(&(yylsp[-3]), p, "constant re-assignment"); (yyval.nd) = new_stmts(p, 0); } -#line 8592 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8624 "mrbgems/mruby-compiler/core/y.tab.c" break; case 209: /* arg: backref tOP_ASGN arg_rhs */ @@ -8597,7 +8629,7 @@ yyreduce: backref_error(p, (yyvsp[-2].nd)); (yyval.nd) = new_stmts(p, 0); } -#line 8601 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8633 "mrbgems/mruby-compiler/core/y.tab.c" break; case 210: /* arg: arg ".." arg */ @@ -8605,7 +8637,7 @@ yyreduce: { (yyval.nd) = new_dot2(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8609 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8641 "mrbgems/mruby-compiler/core/y.tab.c" break; case 211: /* arg: arg ".." */ @@ -8613,7 +8645,7 @@ yyreduce: { (yyval.nd) = new_dot2(p, (yyvsp[-1].nd), new_nil(p)); } -#line 8617 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8649 "mrbgems/mruby-compiler/core/y.tab.c" break; case 212: /* arg: tBDOT2 arg */ @@ -8621,7 +8653,7 @@ yyreduce: { (yyval.nd) = new_dot2(p, new_nil(p), (yyvsp[0].nd)); } -#line 8625 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8657 "mrbgems/mruby-compiler/core/y.tab.c" break; case 213: /* arg: arg "..." arg */ @@ -8629,7 +8661,7 @@ yyreduce: { (yyval.nd) = new_dot3(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8633 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8665 "mrbgems/mruby-compiler/core/y.tab.c" break; case 214: /* arg: arg "..." */ @@ -8637,7 +8669,7 @@ yyreduce: { (yyval.nd) = new_dot3(p, (yyvsp[-1].nd), new_nil(p)); } -#line 8641 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8673 "mrbgems/mruby-compiler/core/y.tab.c" break; case 215: /* arg: tBDOT3 arg */ @@ -8645,7 +8677,7 @@ yyreduce: { (yyval.nd) = new_dot3(p, new_nil(p), (yyvsp[0].nd)); } -#line 8649 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8681 "mrbgems/mruby-compiler/core/y.tab.c" break; case 216: /* arg: arg '+' arg */ @@ -8653,7 +8685,7 @@ yyreduce: { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "+", (yyvsp[0].nd)); } -#line 8657 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8689 "mrbgems/mruby-compiler/core/y.tab.c" break; case 217: /* arg: arg '-' arg */ @@ -8661,7 +8693,7 @@ yyreduce: { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "-", (yyvsp[0].nd)); } -#line 8665 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8697 "mrbgems/mruby-compiler/core/y.tab.c" break; case 218: /* arg: arg '*' arg */ @@ -8669,7 +8701,7 @@ yyreduce: { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "*", (yyvsp[0].nd)); } -#line 8673 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8705 "mrbgems/mruby-compiler/core/y.tab.c" break; case 219: /* arg: arg '/' arg */ @@ -8677,7 +8709,7 @@ yyreduce: { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "/", (yyvsp[0].nd)); } -#line 8681 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8713 "mrbgems/mruby-compiler/core/y.tab.c" break; case 220: /* arg: arg '%' arg */ @@ -8685,7 +8717,7 @@ yyreduce: { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "%", (yyvsp[0].nd)); } -#line 8689 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8721 "mrbgems/mruby-compiler/core/y.tab.c" break; case 221: /* arg: arg tPOW arg */ @@ -8693,7 +8725,7 @@ yyreduce: { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd)); } -#line 8697 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8729 "mrbgems/mruby-compiler/core/y.tab.c" break; case 222: /* arg: tUMINUS_NUM "integer literal" tPOW arg */ @@ -8701,7 +8733,7 @@ yyreduce: { (yyval.nd) = new_negate(p, call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd))); } -#line 8705 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8737 "mrbgems/mruby-compiler/core/y.tab.c" break; case 223: /* arg: tUMINUS_NUM "float literal" tPOW arg */ @@ -8709,7 +8741,7 @@ yyreduce: { (yyval.nd) = new_negate(p, call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd))); } -#line 8713 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8745 "mrbgems/mruby-compiler/core/y.tab.c" break; case 224: /* arg: "unary plus" arg */ @@ -8717,7 +8749,7 @@ yyreduce: { (yyval.nd) = call_uni_op(p, (yyvsp[0].nd), "+@"); } -#line 8721 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8753 "mrbgems/mruby-compiler/core/y.tab.c" break; case 225: /* arg: "unary minus" arg */ @@ -8725,7 +8757,7 @@ yyreduce: { (yyval.nd) = new_negate(p, (yyvsp[0].nd)); } -#line 8729 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8761 "mrbgems/mruby-compiler/core/y.tab.c" break; case 226: /* arg: arg '|' arg */ @@ -8733,7 +8765,7 @@ yyreduce: { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "|", (yyvsp[0].nd)); } -#line 8737 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8769 "mrbgems/mruby-compiler/core/y.tab.c" break; case 227: /* arg: arg '^' arg */ @@ -8741,7 +8773,7 @@ yyreduce: { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "^", (yyvsp[0].nd)); } -#line 8745 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8777 "mrbgems/mruby-compiler/core/y.tab.c" break; case 228: /* arg: arg '&' arg */ @@ -8749,7 +8781,7 @@ yyreduce: { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "&", (yyvsp[0].nd)); } -#line 8753 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8785 "mrbgems/mruby-compiler/core/y.tab.c" break; case 229: /* arg: arg "<=>" arg */ @@ -8757,7 +8789,7 @@ yyreduce: { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<=>", (yyvsp[0].nd)); } -#line 8761 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8793 "mrbgems/mruby-compiler/core/y.tab.c" break; case 230: /* arg: arg '>' arg */ @@ -8765,7 +8797,7 @@ yyreduce: { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">", (yyvsp[0].nd)); } -#line 8769 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8801 "mrbgems/mruby-compiler/core/y.tab.c" break; case 231: /* arg: arg ">=" arg */ @@ -8773,7 +8805,7 @@ yyreduce: { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">=", (yyvsp[0].nd)); } -#line 8777 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8809 "mrbgems/mruby-compiler/core/y.tab.c" break; case 232: /* arg: arg '<' arg */ @@ -8781,7 +8813,7 @@ yyreduce: { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<", (yyvsp[0].nd)); } -#line 8785 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8817 "mrbgems/mruby-compiler/core/y.tab.c" break; case 233: /* arg: arg "<=" arg */ @@ -8789,7 +8821,7 @@ yyreduce: { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<=", (yyvsp[0].nd)); } -#line 8793 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8825 "mrbgems/mruby-compiler/core/y.tab.c" break; case 234: /* arg: arg "==" arg */ @@ -8797,7 +8829,7 @@ yyreduce: { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "==", (yyvsp[0].nd)); } -#line 8801 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8833 "mrbgems/mruby-compiler/core/y.tab.c" break; case 235: /* arg: arg "===" arg */ @@ -8805,7 +8837,7 @@ yyreduce: { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "===", (yyvsp[0].nd)); } -#line 8809 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8841 "mrbgems/mruby-compiler/core/y.tab.c" break; case 236: /* arg: arg "!=" arg */ @@ -8813,7 +8845,7 @@ yyreduce: { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "!=", (yyvsp[0].nd)); } -#line 8817 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8849 "mrbgems/mruby-compiler/core/y.tab.c" break; case 237: /* arg: arg "=~" arg */ @@ -8821,7 +8853,7 @@ yyreduce: { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "=~", (yyvsp[0].nd)); } -#line 8825 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8857 "mrbgems/mruby-compiler/core/y.tab.c" break; case 238: /* arg: arg "!~" arg */ @@ -8829,7 +8861,7 @@ yyreduce: { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "!~", (yyvsp[0].nd)); } -#line 8833 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8865 "mrbgems/mruby-compiler/core/y.tab.c" break; case 239: /* arg: '!' arg */ @@ -8837,7 +8869,7 @@ yyreduce: { (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "!"); } -#line 8841 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8873 "mrbgems/mruby-compiler/core/y.tab.c" break; case 240: /* arg: '~' arg */ @@ -8845,7 +8877,7 @@ yyreduce: { (yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "~"); } -#line 8849 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8881 "mrbgems/mruby-compiler/core/y.tab.c" break; case 241: /* arg: arg "<<" arg */ @@ -8853,7 +8885,7 @@ yyreduce: { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<<", (yyvsp[0].nd)); } -#line 8857 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8889 "mrbgems/mruby-compiler/core/y.tab.c" break; case 242: /* arg: arg ">>" arg */ @@ -8861,7 +8893,7 @@ yyreduce: { (yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">>", (yyvsp[0].nd)); } -#line 8865 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8897 "mrbgems/mruby-compiler/core/y.tab.c" break; case 243: /* arg: arg "&&" arg */ @@ -8869,7 +8901,7 @@ yyreduce: { (yyval.nd) = new_and(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8873 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8905 "mrbgems/mruby-compiler/core/y.tab.c" break; case 244: /* arg: arg "||" arg */ @@ -8877,7 +8909,7 @@ yyreduce: { (yyval.nd) = new_or(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8881 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8913 "mrbgems/mruby-compiler/core/y.tab.c" break; case 245: /* arg: arg '?' arg opt_nl ':' arg */ @@ -8885,7 +8917,7 @@ yyreduce: { (yyval.nd) = new_if(p, cond((yyvsp[-5].nd)), (yyvsp[-3].nd), (yyvsp[0].nd)); } -#line 8889 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8921 "mrbgems/mruby-compiler/core/y.tab.c" break; case 246: /* arg: arg '?' arg opt_nl "label" arg */ @@ -8893,7 +8925,7 @@ yyreduce: { (yyval.nd) = new_if(p, cond((yyvsp[-5].nd)), (yyvsp[-3].nd), (yyvsp[0].nd)); } -#line 8897 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8929 "mrbgems/mruby-compiler/core/y.tab.c" break; case 247: /* arg: defn_head f_opt_arglist_paren '=' arg */ @@ -8906,7 +8938,7 @@ yyreduce: nvars_unnest(p); p->in_def--; } -#line 8910 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8942 "mrbgems/mruby-compiler/core/y.tab.c" break; case 248: /* arg: defn_head f_opt_arglist_paren '=' arg "'rescue' modifier" arg */ @@ -8919,7 +8951,7 @@ yyreduce: nvars_unnest(p); p->in_def--; } -#line 8923 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8955 "mrbgems/mruby-compiler/core/y.tab.c" break; case 249: /* arg: defs_head f_opt_arglist_paren '=' arg */ @@ -8932,7 +8964,7 @@ yyreduce: p->in_def--; p->in_single--; } -#line 8936 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8968 "mrbgems/mruby-compiler/core/y.tab.c" break; case 250: /* arg: defs_head f_opt_arglist_paren '=' arg "'rescue' modifier" arg */ @@ -8945,7 +8977,7 @@ yyreduce: p->in_def--; p->in_single--; } -#line 8949 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8981 "mrbgems/mruby-compiler/core/y.tab.c" break; case 251: /* arg: primary */ @@ -8953,7 +8985,7 @@ yyreduce: { (yyval.nd) = (yyvsp[0].nd); } -#line 8957 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8989 "mrbgems/mruby-compiler/core/y.tab.c" break; case 253: /* aref_args: args trailer */ @@ -8961,7 +8993,7 @@ yyreduce: { (yyval.nd) = (yyvsp[-1].nd); } -#line 8965 "mrbgems/mruby-compiler/core/y.tab.c" +#line 8997 "mrbgems/mruby-compiler/core/y.tab.c" break; case 254: /* aref_args: args comma assocs trailer */ @@ -8969,7 +9001,7 @@ yyreduce: { (yyval.nd) = push((yyvsp[-3].nd), new_hash(p, (yyvsp[-1].nd))); } -#line 8973 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9005 "mrbgems/mruby-compiler/core/y.tab.c" break; case 255: /* aref_args: assocs trailer */ @@ -8977,7 +9009,7 @@ yyreduce: { (yyval.nd) = cons(new_hash(p, (yyvsp[-1].nd)), 0); } -#line 8981 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9013 "mrbgems/mruby-compiler/core/y.tab.c" break; case 256: /* arg_rhs: arg */ @@ -8985,7 +9017,7 @@ yyreduce: { (yyval.nd) = (yyvsp[0].nd); } -#line 8989 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9021 "mrbgems/mruby-compiler/core/y.tab.c" break; case 257: /* arg_rhs: arg "'rescue' modifier" arg */ @@ -8994,7 +9026,7 @@ yyreduce: void_expr_error(p, (yyvsp[-2].nd)); (yyval.nd) = new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 8998 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9030 "mrbgems/mruby-compiler/core/y.tab.c" break; case 258: /* paren_args: '(' opt_call_args ')' */ @@ -9002,7 +9034,7 @@ yyreduce: { (yyval.nd) = (yyvsp[-1].nd); } -#line 9006 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9038 "mrbgems/mruby-compiler/core/y.tab.c" break; case 259: /* paren_args: '(' args comma tBDOT3 rparen */ @@ -9015,7 +9047,7 @@ yyreduce: list1(cons(new_kw_rest_args(p, 0), new_lvar(p, k))), new_block_arg(p, new_lvar(p, b))); } -#line 9019 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9051 "mrbgems/mruby-compiler/core/y.tab.c" break; case 260: /* paren_args: '(' tBDOT3 rparen */ @@ -9034,7 +9066,7 @@ yyreduce: (yyval.nd) = 0; } } -#line 9038 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9070 "mrbgems/mruby-compiler/core/y.tab.c" break; case 265: /* opt_call_args: args comma */ @@ -9042,7 +9074,7 @@ yyreduce: { (yyval.nd) = new_callargs(p,(yyvsp[-1].nd),0,0); } -#line 9046 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9078 "mrbgems/mruby-compiler/core/y.tab.c" break; case 266: /* opt_call_args: args comma assocs comma */ @@ -9050,7 +9082,7 @@ yyreduce: { (yyval.nd) = new_callargs(p,(yyvsp[-3].nd),(yyvsp[-1].nd),0); } -#line 9054 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9086 "mrbgems/mruby-compiler/core/y.tab.c" break; case 267: /* opt_call_args: assocs comma */ @@ -9058,7 +9090,7 @@ yyreduce: { (yyval.nd) = new_callargs(p,0,(yyvsp[-1].nd),0); } -#line 9062 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9094 "mrbgems/mruby-compiler/core/y.tab.c" break; case 268: /* call_args: command */ @@ -9067,7 +9099,7 @@ yyreduce: void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = new_callargs(p, list1((yyvsp[0].nd)), 0, 0); } -#line 9071 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9103 "mrbgems/mruby-compiler/core/y.tab.c" break; case 269: /* call_args: args opt_block_arg */ @@ -9075,7 +9107,7 @@ yyreduce: { (yyval.nd) = new_callargs(p, (yyvsp[-1].nd), 0, (yyvsp[0].nd)); } -#line 9079 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9111 "mrbgems/mruby-compiler/core/y.tab.c" break; case 270: /* call_args: assocs opt_block_arg */ @@ -9083,7 +9115,7 @@ yyreduce: { (yyval.nd) = new_callargs(p, 0, (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9087 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9119 "mrbgems/mruby-compiler/core/y.tab.c" break; case 271: /* call_args: args comma assocs opt_block_arg */ @@ -9091,7 +9123,7 @@ yyreduce: { (yyval.nd) = new_callargs(p, (yyvsp[-3].nd), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9095 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9127 "mrbgems/mruby-compiler/core/y.tab.c" break; case 272: /* call_args: block_arg */ @@ -9099,7 +9131,7 @@ yyreduce: { (yyval.nd) = new_callargs(p, 0, 0, (yyvsp[0].nd)); } -#line 9103 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9135 "mrbgems/mruby-compiler/core/y.tab.c" break; case 273: /* @9: %empty */ @@ -9108,7 +9140,7 @@ yyreduce: (yyval.stack) = p->cmdarg_stack; CMDARG_PUSH(1); } -#line 9112 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9144 "mrbgems/mruby-compiler/core/y.tab.c" break; case 274: /* command_args: @9 call_args */ @@ -9117,7 +9149,7 @@ yyreduce: p->cmdarg_stack = (yyvsp[-1].stack); (yyval.nd) = (yyvsp[0].nd); } -#line 9121 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9153 "mrbgems/mruby-compiler/core/y.tab.c" break; case 275: /* block_arg: "&" arg */ @@ -9125,7 +9157,7 @@ yyreduce: { (yyval.nd) = new_block_arg(p, (yyvsp[0].nd)); } -#line 9129 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9161 "mrbgems/mruby-compiler/core/y.tab.c" break; case 276: /* block_arg: "&" */ @@ -9133,7 +9165,7 @@ yyreduce: { (yyval.nd) = new_block_arg(p, 0); } -#line 9137 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9169 "mrbgems/mruby-compiler/core/y.tab.c" break; case 277: /* opt_block_arg: comma block_arg */ @@ -9141,7 +9173,7 @@ yyreduce: { (yyval.nd) = (yyvsp[0].nd); } -#line 9145 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9177 "mrbgems/mruby-compiler/core/y.tab.c" break; case 278: /* opt_block_arg: none */ @@ -9149,7 +9181,7 @@ yyreduce: { (yyval.nd) = 0; } -#line 9153 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9185 "mrbgems/mruby-compiler/core/y.tab.c" break; case 280: /* args: arg */ @@ -9158,7 +9190,7 @@ yyreduce: void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = list1((yyvsp[0].nd)); } -#line 9162 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9194 "mrbgems/mruby-compiler/core/y.tab.c" break; case 281: /* args: "*" */ @@ -9166,7 +9198,7 @@ yyreduce: { (yyval.nd) = list1(new_splat(p, new_lvar(p, intern_op(mul)))); } -#line 9170 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9202 "mrbgems/mruby-compiler/core/y.tab.c" break; case 282: /* args: "*" arg */ @@ -9174,7 +9206,7 @@ yyreduce: { (yyval.nd) = list1(new_splat(p, (yyvsp[0].nd))); } -#line 9178 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9210 "mrbgems/mruby-compiler/core/y.tab.c" break; case 283: /* args: args comma arg */ @@ -9183,7 +9215,7 @@ yyreduce: void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 9187 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9219 "mrbgems/mruby-compiler/core/y.tab.c" break; case 284: /* args: args comma "*" */ @@ -9191,7 +9223,7 @@ yyreduce: { (yyval.nd) = push((yyvsp[-2].nd), new_splat(p, new_lvar(p, intern_op(mul)))); } -#line 9195 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9227 "mrbgems/mruby-compiler/core/y.tab.c" break; case 285: /* args: args comma "*" arg */ @@ -9199,7 +9231,7 @@ yyreduce: { (yyval.nd) = push((yyvsp[-3].nd), new_splat(p, (yyvsp[0].nd))); } -#line 9203 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9235 "mrbgems/mruby-compiler/core/y.tab.c" break; case 286: /* mrhs: args comma arg */ @@ -9208,7 +9240,7 @@ yyreduce: void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 9212 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9244 "mrbgems/mruby-compiler/core/y.tab.c" break; case 287: /* mrhs: args comma "*" arg */ @@ -9216,7 +9248,7 @@ yyreduce: { (yyval.nd) = push((yyvsp[-3].nd), new_splat(p, (yyvsp[0].nd))); } -#line 9220 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9252 "mrbgems/mruby-compiler/core/y.tab.c" break; case 288: /* mrhs: "*" arg */ @@ -9224,7 +9256,7 @@ yyreduce: { (yyval.nd) = list1(new_splat(p, (yyvsp[0].nd))); } -#line 9228 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9260 "mrbgems/mruby-compiler/core/y.tab.c" break; case 290: /* primary: string */ @@ -9232,7 +9264,7 @@ yyreduce: { (yyval.nd) = new_str(p, (yyvsp[0].nd)); } -#line 9236 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9268 "mrbgems/mruby-compiler/core/y.tab.c" break; case 291: /* primary: xstring */ @@ -9240,7 +9272,7 @@ yyreduce: { (yyval.nd) = new_xstr(p, (yyvsp[0].nd)); } -#line 9244 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9276 "mrbgems/mruby-compiler/core/y.tab.c" break; case 296: /* primary: "method" */ @@ -9248,7 +9280,7 @@ yyreduce: { (yyval.nd) = new_fcall(p, (yyvsp[0].id), 0); } -#line 9252 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9284 "mrbgems/mruby-compiler/core/y.tab.c" break; case 297: /* @10: %empty */ @@ -9257,7 +9289,7 @@ yyreduce: (yyval.stack) = p->cmdarg_stack; p->cmdarg_stack = 0; } -#line 9261 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9293 "mrbgems/mruby-compiler/core/y.tab.c" break; case 298: /* primary: "'begin'" @10 bodystmt "'end'" */ @@ -9266,7 +9298,7 @@ yyreduce: p->cmdarg_stack = (yyvsp[-2].stack); (yyval.nd) = new_begin(p, (yyvsp[-1].nd)); } -#line 9270 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9302 "mrbgems/mruby-compiler/core/y.tab.c" break; case 299: /* @11: %empty */ @@ -9275,28 +9307,28 @@ yyreduce: (yyval.stack) = p->cmdarg_stack; p->cmdarg_stack = 0; } -#line 9279 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9311 "mrbgems/mruby-compiler/core/y.tab.c" break; case 300: /* $@12: %empty */ #line 3263 "mrbgems/mruby-compiler/core/parse.y" - {p->lstate = EXPR_ENDARG;} -#line 9285 "mrbgems/mruby-compiler/core/y.tab.c" + {p->lstate = EXPR_ENDARG;} +#line 9317 "mrbgems/mruby-compiler/core/y.tab.c" break; - case 301: /* primary: "(" @11 stmt $@12 rparen */ + case 301: /* primary: "(" @11 compstmt $@12 rparen */ #line 3264 "mrbgems/mruby-compiler/core/parse.y" { p->cmdarg_stack = (yyvsp[-3].stack); (yyval.nd) = (yyvsp[-2].nd); } -#line 9294 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9326 "mrbgems/mruby-compiler/core/y.tab.c" break; case 302: /* $@13: %empty */ #line 3268 "mrbgems/mruby-compiler/core/parse.y" {p->lstate = EXPR_ENDARG;} -#line 9300 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9332 "mrbgems/mruby-compiler/core/y.tab.c" break; case 303: /* primary: "(" $@13 rparen */ @@ -9304,7 +9336,7 @@ yyreduce: { (yyval.nd) = new_nil(p); } -#line 9308 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9340 "mrbgems/mruby-compiler/core/y.tab.c" break; case 304: /* primary: tLPAREN compstmt ')' */ @@ -9312,7 +9344,7 @@ yyreduce: { (yyval.nd) = (yyvsp[-1].nd); } -#line 9316 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9348 "mrbgems/mruby-compiler/core/y.tab.c" break; case 305: /* primary: primary_value "::" "constant" */ @@ -9320,7 +9352,7 @@ yyreduce: { (yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id)); } -#line 9324 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9356 "mrbgems/mruby-compiler/core/y.tab.c" break; case 306: /* primary: tCOLON3 "constant" */ @@ -9328,7 +9360,7 @@ yyreduce: { (yyval.nd) = new_colon3(p, (yyvsp[0].id)); } -#line 9332 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9364 "mrbgems/mruby-compiler/core/y.tab.c" break; case 307: /* primary: "[" aref_args ']' */ @@ -9336,7 +9368,7 @@ yyreduce: { (yyval.nd) = new_array(p, (yyvsp[-1].nd)); } -#line 9340 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9372 "mrbgems/mruby-compiler/core/y.tab.c" break; case 308: /* primary: tLBRACE assoc_list '}' */ @@ -9344,7 +9376,7 @@ yyreduce: { (yyval.nd) = new_hash(p, (yyvsp[-1].nd)); } -#line 9348 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9380 "mrbgems/mruby-compiler/core/y.tab.c" break; case 309: /* primary: "'return'" */ @@ -9352,7 +9384,7 @@ yyreduce: { (yyval.nd) = new_return(p, 0); } -#line 9356 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9388 "mrbgems/mruby-compiler/core/y.tab.c" break; case 310: /* primary: "'yield'" opt_paren_args */ @@ -9360,7 +9392,7 @@ yyreduce: { (yyval.nd) = new_yield(p, (yyvsp[0].nd)); } -#line 9364 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9396 "mrbgems/mruby-compiler/core/y.tab.c" break; case 311: /* primary: "'not'" '(' expr rparen */ @@ -9368,7 +9400,7 @@ yyreduce: { (yyval.nd) = call_uni_op(p, cond((yyvsp[-1].nd)), "!"); } -#line 9372 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9404 "mrbgems/mruby-compiler/core/y.tab.c" break; case 312: /* primary: "'not'" '(' rparen */ @@ -9376,7 +9408,7 @@ yyreduce: { (yyval.nd) = call_uni_op(p, new_nil(p), "!"); } -#line 9380 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9412 "mrbgems/mruby-compiler/core/y.tab.c" break; case 313: /* primary: operation brace_block */ @@ -9384,7 +9416,7 @@ yyreduce: { (yyval.nd) = new_fcall(p, (yyvsp[-1].id), new_callargs(p, 0, 0, (yyvsp[0].nd))); } -#line 9388 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9420 "mrbgems/mruby-compiler/core/y.tab.c" break; case 315: /* primary: method_call brace_block */ @@ -9393,7 +9425,7 @@ yyreduce: call_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd)); (yyval.nd) = (yyvsp[-1].nd); } -#line 9397 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9429 "mrbgems/mruby-compiler/core/y.tab.c" break; case 316: /* @14: %empty */ @@ -9404,7 +9436,7 @@ yyreduce: (yyval.num) = p->lpar_beg; p->lpar_beg = ++p->paren_nest; } -#line 9408 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9440 "mrbgems/mruby-compiler/core/y.tab.c" break; case 317: /* @15: %empty */ @@ -9413,7 +9445,7 @@ yyreduce: (yyval.stack) = p->cmdarg_stack; p->cmdarg_stack = 0; } -#line 9417 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9449 "mrbgems/mruby-compiler/core/y.tab.c" break; case 318: /* primary: "->" @14 f_larglist @15 lambda_body */ @@ -9426,7 +9458,7 @@ yyreduce: p->cmdarg_stack = (yyvsp[-1].stack); CMDARG_LEXPOP(); } -#line 9430 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9462 "mrbgems/mruby-compiler/core/y.tab.c" break; case 319: /* primary: "'if'" expr_value then compstmt if_tail "'end'" */ @@ -9435,7 +9467,7 @@ yyreduce: (yyval.nd) = new_if(p, cond((yyvsp[-4].nd)), (yyvsp[-2].nd), (yyvsp[-1].nd)); SET_LINENO((yyval.nd), (yyvsp[-5].num)); } -#line 9439 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9471 "mrbgems/mruby-compiler/core/y.tab.c" break; case 320: /* primary: "'unless'" expr_value then compstmt opt_else "'end'" */ @@ -9444,19 +9476,19 @@ yyreduce: (yyval.nd) = new_if(p, cond((yyvsp[-4].nd)), (yyvsp[-1].nd), (yyvsp[-2].nd)); SET_LINENO((yyval.nd), (yyvsp[-5].num)); } -#line 9448 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9480 "mrbgems/mruby-compiler/core/y.tab.c" break; case 321: /* $@16: %empty */ #line 3355 "mrbgems/mruby-compiler/core/parse.y" {COND_PUSH(1);} -#line 9454 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9486 "mrbgems/mruby-compiler/core/y.tab.c" break; case 322: /* $@17: %empty */ #line 3355 "mrbgems/mruby-compiler/core/parse.y" {COND_POP();} -#line 9460 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9492 "mrbgems/mruby-compiler/core/y.tab.c" break; case 323: /* primary: "'while'" $@16 expr_value do $@17 compstmt "'end'" */ @@ -9465,19 +9497,19 @@ yyreduce: (yyval.nd) = new_while(p, cond((yyvsp[-4].nd)), (yyvsp[-1].nd)); SET_LINENO((yyval.nd), (yyvsp[-6].num)); } -#line 9469 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9501 "mrbgems/mruby-compiler/core/y.tab.c" break; case 324: /* $@18: %empty */ #line 3362 "mrbgems/mruby-compiler/core/parse.y" {COND_PUSH(1);} -#line 9475 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9507 "mrbgems/mruby-compiler/core/y.tab.c" break; case 325: /* $@19: %empty */ #line 3362 "mrbgems/mruby-compiler/core/parse.y" {COND_POP();} -#line 9481 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9513 "mrbgems/mruby-compiler/core/y.tab.c" break; case 326: /* primary: "'until'" $@18 expr_value do $@19 compstmt "'end'" */ @@ -9486,7 +9518,7 @@ yyreduce: (yyval.nd) = new_until(p, cond((yyvsp[-4].nd)), (yyvsp[-1].nd)); SET_LINENO((yyval.nd), (yyvsp[-6].num)); } -#line 9490 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9522 "mrbgems/mruby-compiler/core/y.tab.c" break; case 327: /* primary: "'case'" expr_value opt_terms case_body "'end'" */ @@ -9494,7 +9526,7 @@ yyreduce: { (yyval.nd) = new_case(p, (yyvsp[-3].nd), (yyvsp[-1].nd)); } -#line 9498 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9530 "mrbgems/mruby-compiler/core/y.tab.c" break; case 328: /* primary: "'case'" opt_terms case_body "'end'" */ @@ -9502,7 +9534,7 @@ yyreduce: { (yyval.nd) = new_case(p, 0, (yyvsp[-1].nd)); } -#line 9506 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9538 "mrbgems/mruby-compiler/core/y.tab.c" break; case 329: /* primary: "'case'" expr_value opt_terms "'in'" p_expr then compstmt in_clauses "'end'" */ @@ -9511,7 +9543,7 @@ yyreduce: node *in_clause = new_in(p, (yyvsp[-4].nd), NULL, (yyvsp[-2].nd), FALSE); (yyval.nd) = new_case_match(p, (yyvsp[-7].nd), cons(in_clause, (yyvsp[-1].nd))); } -#line 9515 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9547 "mrbgems/mruby-compiler/core/y.tab.c" break; case 330: /* primary: "'case'" expr_value opt_terms "'in'" p_expr "'if' modifier" expr_value then compstmt in_clauses "'end'" */ @@ -9520,7 +9552,7 @@ yyreduce: node *in_clause = new_in(p, (yyvsp[-6].nd), (yyvsp[-4].nd), (yyvsp[-2].nd), FALSE); (yyval.nd) = new_case_match(p, (yyvsp[-9].nd), cons(in_clause, (yyvsp[-1].nd))); } -#line 9524 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9556 "mrbgems/mruby-compiler/core/y.tab.c" break; case 331: /* primary: "'case'" expr_value opt_terms "'in'" p_expr "'unless' modifier" expr_value then compstmt in_clauses "'end'" */ @@ -9529,19 +9561,19 @@ yyreduce: node *in_clause = new_in(p, (yyvsp[-6].nd), (yyvsp[-4].nd), (yyvsp[-2].nd), TRUE); (yyval.nd) = new_case_match(p, (yyvsp[-9].nd), cons(in_clause, (yyvsp[-1].nd))); } -#line 9533 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9565 "mrbgems/mruby-compiler/core/y.tab.c" break; case 332: /* $@20: %empty */ #line 3407 "mrbgems/mruby-compiler/core/parse.y" {COND_PUSH(1);} -#line 9539 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9571 "mrbgems/mruby-compiler/core/y.tab.c" break; case 333: /* $@21: %empty */ #line 3409 "mrbgems/mruby-compiler/core/parse.y" {COND_POP();} -#line 9545 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9577 "mrbgems/mruby-compiler/core/y.tab.c" break; case 334: /* primary: "'for'" for_var "'in'" $@20 expr_value do $@21 compstmt "'end'" */ @@ -9550,7 +9582,7 @@ yyreduce: (yyval.nd) = new_for(p, (yyvsp[-7].nd), (yyvsp[-4].nd), (yyvsp[-1].nd)); SET_LINENO((yyval.nd), (yyvsp[-8].num)); } -#line 9554 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9586 "mrbgems/mruby-compiler/core/y.tab.c" break; case 335: /* @22: %empty */ @@ -9561,7 +9593,7 @@ yyreduce: (yyval.nd) = local_switch(p); nvars_block(p); } -#line 9565 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9597 "mrbgems/mruby-compiler/core/y.tab.c" break; case 336: /* primary: "'class'" cpath superclass @22 bodystmt "'end'" */ @@ -9572,7 +9604,7 @@ yyreduce: local_resume(p, (yyvsp[-2].nd)); nvars_unnest(p); } -#line 9576 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9608 "mrbgems/mruby-compiler/core/y.tab.c" break; case 337: /* @23: %empty */ @@ -9581,7 +9613,7 @@ yyreduce: (yyval.num) = p->in_def; p->in_def = 0; } -#line 9585 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9617 "mrbgems/mruby-compiler/core/y.tab.c" break; case 338: /* @24: %empty */ @@ -9591,7 +9623,7 @@ yyreduce: nvars_block(p); p->in_single = 0; } -#line 9595 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9627 "mrbgems/mruby-compiler/core/y.tab.c" break; case 339: /* primary: "'class'" "<<" expr @23 term @24 bodystmt "'end'" */ @@ -9604,7 +9636,7 @@ yyreduce: p->in_def = (yyvsp[-4].num); p->in_single = node_to_int((yyvsp[-2].nd)->cdr); } -#line 9608 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9640 "mrbgems/mruby-compiler/core/y.tab.c" break; case 340: /* @25: %empty */ @@ -9615,7 +9647,7 @@ yyreduce: (yyval.nd) = local_switch(p); nvars_block(p); } -#line 9619 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9651 "mrbgems/mruby-compiler/core/y.tab.c" break; case 341: /* primary: "'module'" cpath @25 bodystmt "'end'" */ @@ -9626,7 +9658,7 @@ yyreduce: local_resume(p, (yyvsp[-2].nd)); nvars_unnest(p); } -#line 9630 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9662 "mrbgems/mruby-compiler/core/y.tab.c" break; case 342: /* primary: defn_head f_arglist bodystmt "'end'" */ @@ -9637,7 +9669,7 @@ yyreduce: nvars_unnest(p); p->in_def--; } -#line 9641 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9673 "mrbgems/mruby-compiler/core/y.tab.c" break; case 343: /* primary: defs_head f_arglist bodystmt "'end'" */ @@ -9649,7 +9681,7 @@ yyreduce: p->in_def--; p->in_single--; } -#line 9653 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9685 "mrbgems/mruby-compiler/core/y.tab.c" break; case 344: /* primary: "'break'" */ @@ -9657,7 +9689,7 @@ yyreduce: { (yyval.nd) = new_break(p, 0); } -#line 9661 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9693 "mrbgems/mruby-compiler/core/y.tab.c" break; case 345: /* primary: "'next'" */ @@ -9665,7 +9697,7 @@ yyreduce: { (yyval.nd) = new_next(p, 0); } -#line 9669 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9701 "mrbgems/mruby-compiler/core/y.tab.c" break; case 346: /* primary: "'redo'" */ @@ -9673,7 +9705,7 @@ yyreduce: { (yyval.nd) = new_redo(p); } -#line 9677 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9709 "mrbgems/mruby-compiler/core/y.tab.c" break; case 347: /* primary: "'retry'" */ @@ -9681,7 +9713,7 @@ yyreduce: { (yyval.nd) = new_retry(p); } -#line 9685 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9717 "mrbgems/mruby-compiler/core/y.tab.c" break; case 348: /* primary_value: primary */ @@ -9690,7 +9722,7 @@ yyreduce: (yyval.nd) = (yyvsp[0].nd); if (!(yyval.nd)) (yyval.nd) = new_nil(p); } -#line 9694 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9726 "mrbgems/mruby-compiler/core/y.tab.c" break; case 355: /* if_tail: "'elsif'" expr_value then compstmt if_tail */ @@ -9698,7 +9730,7 @@ yyreduce: { (yyval.nd) = new_if(p, cond((yyvsp[-3].nd)), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9702 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9734 "mrbgems/mruby-compiler/core/y.tab.c" break; case 357: /* opt_else: "'else'" compstmt */ @@ -9706,7 +9738,7 @@ yyreduce: { (yyval.nd) = (yyvsp[0].nd); } -#line 9710 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9742 "mrbgems/mruby-compiler/core/y.tab.c" break; case 358: /* for_var: lhs */ @@ -9714,7 +9746,7 @@ yyreduce: { (yyval.nd) = list1(list1((yyvsp[0].nd))); } -#line 9718 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9750 "mrbgems/mruby-compiler/core/y.tab.c" break; case 360: /* f_margs: f_arg */ @@ -9722,7 +9754,7 @@ yyreduce: { (yyval.nd) = list3((yyvsp[0].nd),0,0); } -#line 9726 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9758 "mrbgems/mruby-compiler/core/y.tab.c" break; case 361: /* f_margs: f_arg ',' "*" f_norm_arg */ @@ -9730,7 +9762,7 @@ yyreduce: { (yyval.nd) = list3((yyvsp[-3].nd), new_lvar(p, (yyvsp[0].id)), 0); } -#line 9734 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9766 "mrbgems/mruby-compiler/core/y.tab.c" break; case 362: /* f_margs: f_arg ',' "*" f_norm_arg ',' f_arg */ @@ -9738,7 +9770,7 @@ yyreduce: { (yyval.nd) = list3((yyvsp[-5].nd), new_lvar(p, (yyvsp[-2].id)), (yyvsp[0].nd)); } -#line 9742 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9774 "mrbgems/mruby-compiler/core/y.tab.c" break; case 363: /* f_margs: f_arg ',' "*" */ @@ -9747,7 +9779,7 @@ yyreduce: local_add_f(p, intern_op(mul)); (yyval.nd) = list3((yyvsp[-2].nd), int_to_node(-1), 0); } -#line 9751 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9783 "mrbgems/mruby-compiler/core/y.tab.c" break; case 364: /* f_margs: f_arg ',' "*" ',' f_arg */ @@ -9755,7 +9787,7 @@ yyreduce: { (yyval.nd) = list3((yyvsp[-4].nd), int_to_node(-1), (yyvsp[0].nd)); } -#line 9759 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9791 "mrbgems/mruby-compiler/core/y.tab.c" break; case 365: /* f_margs: "*" f_norm_arg */ @@ -9763,7 +9795,7 @@ yyreduce: { (yyval.nd) = list3(0, new_lvar(p, (yyvsp[0].id)), 0); } -#line 9767 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9799 "mrbgems/mruby-compiler/core/y.tab.c" break; case 366: /* f_margs: "*" f_norm_arg ',' f_arg */ @@ -9771,7 +9803,7 @@ yyreduce: { (yyval.nd) = list3(0, new_lvar(p, (yyvsp[-2].id)), (yyvsp[0].nd)); } -#line 9775 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9807 "mrbgems/mruby-compiler/core/y.tab.c" break; case 367: /* f_margs: "*" */ @@ -9780,7 +9812,7 @@ yyreduce: local_add_f(p, intern_op(mul)); (yyval.nd) = list3(0, int_to_node(-1), 0); } -#line 9784 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9816 "mrbgems/mruby-compiler/core/y.tab.c" break; case 368: /* $@26: %empty */ @@ -9788,7 +9820,7 @@ yyreduce: { local_add_f(p, intern_op(mul)); } -#line 9792 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9824 "mrbgems/mruby-compiler/core/y.tab.c" break; case 369: /* f_margs: "*" ',' $@26 f_arg */ @@ -9796,7 +9828,7 @@ yyreduce: { (yyval.nd) = list3(0, int_to_node(-1), (yyvsp[0].nd)); } -#line 9800 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9832 "mrbgems/mruby-compiler/core/y.tab.c" break; case 370: /* block_args_tail: f_block_kwarg ',' f_kwrest opt_f_block_arg */ @@ -9804,7 +9836,7 @@ yyreduce: { (yyval.nd) = new_args_tail(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].id)); } -#line 9808 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9840 "mrbgems/mruby-compiler/core/y.tab.c" break; case 371: /* block_args_tail: f_block_kwarg opt_f_block_arg */ @@ -9812,7 +9844,7 @@ yyreduce: { (yyval.nd) = new_args_tail(p, (yyvsp[-1].nd), 0, (yyvsp[0].id)); } -#line 9816 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9848 "mrbgems/mruby-compiler/core/y.tab.c" break; case 372: /* block_args_tail: f_kwrest opt_f_block_arg */ @@ -9820,7 +9852,7 @@ yyreduce: { (yyval.nd) = new_args_tail(p, 0, (yyvsp[-1].id), (yyvsp[0].id)); } -#line 9824 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9856 "mrbgems/mruby-compiler/core/y.tab.c" break; case 373: /* block_args_tail: f_block_arg */ @@ -9828,7 +9860,7 @@ yyreduce: { (yyval.nd) = new_args_tail(p, 0, 0, (yyvsp[0].id)); } -#line 9832 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9864 "mrbgems/mruby-compiler/core/y.tab.c" break; case 374: /* opt_block_args_tail: ',' block_args_tail */ @@ -9836,7 +9868,7 @@ yyreduce: { (yyval.nd) = (yyvsp[0].nd); } -#line 9840 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9872 "mrbgems/mruby-compiler/core/y.tab.c" break; case 375: /* opt_block_args_tail: %empty */ @@ -9844,7 +9876,7 @@ yyreduce: { (yyval.nd) = new_args_tail(p, 0, 0, 0); } -#line 9848 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9880 "mrbgems/mruby-compiler/core/y.tab.c" break; case 376: /* block_param: f_arg ',' f_block_optarg ',' f_rest_arg opt_block_args_tail */ @@ -9852,7 +9884,7 @@ yyreduce: { (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 9856 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9888 "mrbgems/mruby-compiler/core/y.tab.c" break; case 377: /* block_param: f_arg ',' f_block_optarg ',' f_rest_arg ',' f_arg opt_block_args_tail */ @@ -9860,7 +9892,7 @@ yyreduce: { (yyval.nd) = new_args(p, (yyvsp[-7].nd), (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9864 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9896 "mrbgems/mruby-compiler/core/y.tab.c" break; case 378: /* block_param: f_arg ',' f_block_optarg opt_block_args_tail */ @@ -9868,7 +9900,7 @@ yyreduce: { (yyval.nd) = new_args(p, (yyvsp[-3].nd), (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd)); } -#line 9872 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9904 "mrbgems/mruby-compiler/core/y.tab.c" break; case 379: /* block_param: f_arg ',' f_block_optarg ',' f_arg opt_block_args_tail */ @@ -9876,7 +9908,7 @@ yyreduce: { (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9880 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9912 "mrbgems/mruby-compiler/core/y.tab.c" break; case 380: /* block_param: f_arg ',' f_rest_arg opt_block_args_tail */ @@ -9884,7 +9916,7 @@ yyreduce: { (yyval.nd) = new_args(p, (yyvsp[-3].nd), 0, (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 9888 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9920 "mrbgems/mruby-compiler/core/y.tab.c" break; case 381: /* block_param: f_arg ',' opt_block_args_tail */ @@ -9892,7 +9924,7 @@ yyreduce: { (yyval.nd) = new_args(p, (yyvsp[-2].nd), 0, 0, 0, (yyvsp[0].nd)); } -#line 9896 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9928 "mrbgems/mruby-compiler/core/y.tab.c" break; case 382: /* block_param: f_arg ',' f_rest_arg ',' f_arg opt_block_args_tail */ @@ -9900,7 +9932,7 @@ yyreduce: { (yyval.nd) = new_args(p, (yyvsp[-5].nd), 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9904 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9936 "mrbgems/mruby-compiler/core/y.tab.c" break; case 383: /* block_param: f_arg opt_block_args_tail */ @@ -9908,7 +9940,7 @@ yyreduce: { (yyval.nd) = new_args(p, (yyvsp[-1].nd), 0, 0, 0, (yyvsp[0].nd)); } -#line 9912 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9944 "mrbgems/mruby-compiler/core/y.tab.c" break; case 384: /* block_param: f_block_optarg ',' f_rest_arg opt_block_args_tail */ @@ -9916,7 +9948,7 @@ yyreduce: { (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 9920 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9952 "mrbgems/mruby-compiler/core/y.tab.c" break; case 385: /* block_param: f_block_optarg ',' f_rest_arg ',' f_arg opt_block_args_tail */ @@ -9924,7 +9956,7 @@ yyreduce: { (yyval.nd) = new_args(p, 0, (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9928 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9960 "mrbgems/mruby-compiler/core/y.tab.c" break; case 386: /* block_param: f_block_optarg opt_block_args_tail */ @@ -9932,7 +9964,7 @@ yyreduce: { (yyval.nd) = new_args(p, 0, (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd)); } -#line 9936 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9968 "mrbgems/mruby-compiler/core/y.tab.c" break; case 387: /* block_param: f_block_optarg ',' f_arg opt_block_args_tail */ @@ -9940,7 +9972,7 @@ yyreduce: { (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9944 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9976 "mrbgems/mruby-compiler/core/y.tab.c" break; case 388: /* block_param: f_rest_arg opt_block_args_tail */ @@ -9948,7 +9980,7 @@ yyreduce: { (yyval.nd) = new_args(p, 0, 0, (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 9952 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9984 "mrbgems/mruby-compiler/core/y.tab.c" break; case 389: /* block_param: f_rest_arg ',' f_arg opt_block_args_tail */ @@ -9956,7 +9988,7 @@ yyreduce: { (yyval.nd) = new_args(p, 0, 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 9960 "mrbgems/mruby-compiler/core/y.tab.c" +#line 9992 "mrbgems/mruby-compiler/core/y.tab.c" break; case 390: /* block_param: block_args_tail */ @@ -9964,7 +9996,7 @@ yyreduce: { (yyval.nd) = new_args(p, 0, 0, 0, 0, (yyvsp[0].nd)); } -#line 9968 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10000 "mrbgems/mruby-compiler/core/y.tab.c" break; case 391: /* opt_block_param: none */ @@ -9973,7 +10005,7 @@ yyreduce: local_add_blk(p); (yyval.nd) = 0; } -#line 9977 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10009 "mrbgems/mruby-compiler/core/y.tab.c" break; case 392: /* opt_block_param: block_param_def */ @@ -9982,13 +10014,13 @@ yyreduce: p->cmd_start = TRUE; (yyval.nd) = (yyvsp[0].nd); } -#line 9986 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10018 "mrbgems/mruby-compiler/core/y.tab.c" break; case 393: /* $@27: %empty */ #line 3694 "mrbgems/mruby-compiler/core/parse.y" {local_add_blk(p);} -#line 9992 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10024 "mrbgems/mruby-compiler/core/y.tab.c" break; case 394: /* block_param_def: '|' $@27 opt_bv_decl '|' */ @@ -9996,7 +10028,7 @@ yyreduce: { (yyval.nd) = 0; } -#line 10000 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10032 "mrbgems/mruby-compiler/core/y.tab.c" break; case 395: /* block_param_def: "||" */ @@ -10005,7 +10037,7 @@ yyreduce: local_add_blk(p); (yyval.nd) = 0; } -#line 10009 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10041 "mrbgems/mruby-compiler/core/y.tab.c" break; case 396: /* block_param_def: '|' block_param opt_bv_decl '|' */ @@ -10013,7 +10045,7 @@ yyreduce: { (yyval.nd) = (yyvsp[-2].nd); } -#line 10017 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10049 "mrbgems/mruby-compiler/core/y.tab.c" break; case 397: /* opt_bv_decl: opt_nl */ @@ -10021,7 +10053,7 @@ yyreduce: { (yyval.nd) = 0; } -#line 10025 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10057 "mrbgems/mruby-compiler/core/y.tab.c" break; case 398: /* opt_bv_decl: opt_nl ';' bv_decls opt_nl */ @@ -10029,7 +10061,7 @@ yyreduce: { (yyval.nd) = 0; } -#line 10033 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10065 "mrbgems/mruby-compiler/core/y.tab.c" break; case 401: /* bvar: "local variable or method" */ @@ -10038,7 +10070,7 @@ yyreduce: local_add_f(p, (yyvsp[0].id)); new_bv(p, (yyvsp[0].id)); } -#line 10042 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10074 "mrbgems/mruby-compiler/core/y.tab.c" break; case 403: /* f_larglist: '(' f_args opt_bv_decl ')' */ @@ -10046,7 +10078,7 @@ yyreduce: { (yyval.nd) = (yyvsp[-2].nd); } -#line 10050 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10082 "mrbgems/mruby-compiler/core/y.tab.c" break; case 404: /* f_larglist: f_args */ @@ -10054,7 +10086,7 @@ yyreduce: { (yyval.nd) = (yyvsp[0].nd); } -#line 10058 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10090 "mrbgems/mruby-compiler/core/y.tab.c" break; case 405: /* lambda_body: tLAMBEG compstmt '}' */ @@ -10062,7 +10094,7 @@ yyreduce: { (yyval.nd) = (yyvsp[-1].nd); } -#line 10066 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10098 "mrbgems/mruby-compiler/core/y.tab.c" break; case 406: /* lambda_body: "'do' for lambda" bodystmt "'end'" */ @@ -10070,7 +10102,7 @@ yyreduce: { (yyval.nd) = (yyvsp[-1].nd); } -#line 10074 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10106 "mrbgems/mruby-compiler/core/y.tab.c" break; case 407: /* @28: %empty */ @@ -10080,7 +10112,7 @@ yyreduce: nvars_nest(p); (yyval.num) = p->lineno; } -#line 10084 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10116 "mrbgems/mruby-compiler/core/y.tab.c" break; case 408: /* do_block: "'do' for block" @28 opt_block_param bodystmt "'end'" */ @@ -10091,7 +10123,7 @@ yyreduce: local_unnest(p); nvars_unnest(p); } -#line 10095 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10127 "mrbgems/mruby-compiler/core/y.tab.c" break; case 409: /* block_call: command do_block */ @@ -10100,7 +10132,7 @@ yyreduce: call_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd)); (yyval.nd) = (yyvsp[-1].nd); } -#line 10104 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10136 "mrbgems/mruby-compiler/core/y.tab.c" break; case 410: /* block_call: block_call call_op2 operation2 opt_paren_args */ @@ -10108,7 +10140,7 @@ yyreduce: { (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num)); } -#line 10112 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10144 "mrbgems/mruby-compiler/core/y.tab.c" break; case 411: /* block_call: block_call call_op2 operation2 opt_paren_args brace_block */ @@ -10117,7 +10149,7 @@ yyreduce: (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 10121 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10153 "mrbgems/mruby-compiler/core/y.tab.c" break; case 412: /* block_call: block_call call_op2 operation2 command_args do_block */ @@ -10126,7 +10158,7 @@ yyreduce: (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 10130 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10162 "mrbgems/mruby-compiler/core/y.tab.c" break; case 413: /* method_call: operation paren_args */ @@ -10134,7 +10166,7 @@ yyreduce: { (yyval.nd) = new_fcall(p, (yyvsp[-1].id), (yyvsp[0].nd)); } -#line 10138 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10170 "mrbgems/mruby-compiler/core/y.tab.c" break; case 414: /* method_call: primary_value call_op operation2 opt_paren_args */ @@ -10142,7 +10174,7 @@ yyreduce: { (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num)); } -#line 10146 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10178 "mrbgems/mruby-compiler/core/y.tab.c" break; case 415: /* method_call: primary_value "::" operation2 paren_args */ @@ -10150,7 +10182,7 @@ yyreduce: { (yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), tCOLON2); } -#line 10154 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10186 "mrbgems/mruby-compiler/core/y.tab.c" break; case 416: /* method_call: primary_value "::" operation3 */ @@ -10158,7 +10190,7 @@ yyreduce: { (yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2); } -#line 10162 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10194 "mrbgems/mruby-compiler/core/y.tab.c" break; case 417: /* method_call: primary_value call_op paren_args */ @@ -10166,7 +10198,7 @@ yyreduce: { (yyval.nd) = new_call(p, (yyvsp[-2].nd), MRB_SYM(call), (yyvsp[0].nd), (yyvsp[-1].num)); } -#line 10170 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10202 "mrbgems/mruby-compiler/core/y.tab.c" break; case 418: /* method_call: primary_value "::" paren_args */ @@ -10174,7 +10206,7 @@ yyreduce: { (yyval.nd) = new_call(p, (yyvsp[-2].nd), MRB_SYM(call), (yyvsp[0].nd), tCOLON2); } -#line 10178 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10210 "mrbgems/mruby-compiler/core/y.tab.c" break; case 419: /* method_call: "'super'" paren_args */ @@ -10182,7 +10214,7 @@ yyreduce: { (yyval.nd) = new_super(p, (yyvsp[0].nd)); } -#line 10186 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10218 "mrbgems/mruby-compiler/core/y.tab.c" break; case 420: /* method_call: "'super'" */ @@ -10190,7 +10222,7 @@ yyreduce: { (yyval.nd) = new_zsuper(p); } -#line 10194 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10226 "mrbgems/mruby-compiler/core/y.tab.c" break; case 421: /* method_call: primary_value '[' opt_call_args ']' */ @@ -10198,7 +10230,7 @@ yyreduce: { (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.'); } -#line 10202 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10234 "mrbgems/mruby-compiler/core/y.tab.c" break; case 422: /* @29: %empty */ @@ -10208,7 +10240,7 @@ yyreduce: nvars_nest(p); (yyval.num) = p->lineno; } -#line 10212 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10244 "mrbgems/mruby-compiler/core/y.tab.c" break; case 423: /* brace_block: '{' @29 opt_block_param compstmt '}' */ @@ -10219,7 +10251,7 @@ yyreduce: local_unnest(p); nvars_unnest(p); } -#line 10223 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10255 "mrbgems/mruby-compiler/core/y.tab.c" break; case 424: /* @30: %empty */ @@ -10229,7 +10261,7 @@ yyreduce: nvars_nest(p); (yyval.num) = p->lineno; } -#line 10233 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10265 "mrbgems/mruby-compiler/core/y.tab.c" break; case 425: /* brace_block: "'do'" @30 opt_block_param bodystmt "'end'" */ @@ -10240,7 +10272,7 @@ yyreduce: local_unnest(p); nvars_unnest(p); } -#line 10244 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10276 "mrbgems/mruby-compiler/core/y.tab.c" break; case 426: /* case_body: "'when'" args then compstmt cases */ @@ -10248,7 +10280,7 @@ yyreduce: { (yyval.nd) = cons(cons((yyvsp[-3].nd), (yyvsp[-1].nd)), (yyvsp[0].nd)); } -#line 10252 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10284 "mrbgems/mruby-compiler/core/y.tab.c" break; case 427: /* cases: opt_else */ @@ -10261,7 +10293,7 @@ yyreduce: (yyval.nd) = 0; } } -#line 10265 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10297 "mrbgems/mruby-compiler/core/y.tab.c" break; case 429: /* in_clauses: opt_else */ @@ -10269,13 +10301,13 @@ yyreduce: { (yyval.nd) = (yyvsp[0].nd) ? list1(new_in(p, NULL, NULL, (yyvsp[0].nd), FALSE)) : 0; } -#line 10273 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10305 "mrbgems/mruby-compiler/core/y.tab.c" break; case 430: /* $@31: %empty */ #line 3883 "mrbgems/mruby-compiler/core/parse.y" {p->in_kwarg--;} -#line 10279 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10311 "mrbgems/mruby-compiler/core/y.tab.c" break; case 431: /* in_clauses: "'in'" p_expr $@31 then compstmt in_clauses */ @@ -10284,13 +10316,13 @@ yyreduce: node *in_clause = new_in(p, (yyvsp[-4].nd), NULL, (yyvsp[-1].nd), FALSE); (yyval.nd) = cons(in_clause, (yyvsp[0].nd)); } -#line 10288 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10320 "mrbgems/mruby-compiler/core/y.tab.c" break; case 432: /* $@32: %empty */ #line 3888 "mrbgems/mruby-compiler/core/parse.y" {p->in_kwarg--;} -#line 10294 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10326 "mrbgems/mruby-compiler/core/y.tab.c" break; case 433: /* in_clauses: "'in'" p_expr $@32 "'if' modifier" expr_value then compstmt in_clauses */ @@ -10299,13 +10331,13 @@ yyreduce: node *in_clause = new_in(p, (yyvsp[-6].nd), (yyvsp[-3].nd), (yyvsp[-1].nd), FALSE); (yyval.nd) = cons(in_clause, (yyvsp[0].nd)); } -#line 10303 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10335 "mrbgems/mruby-compiler/core/y.tab.c" break; case 434: /* $@33: %empty */ #line 3893 "mrbgems/mruby-compiler/core/parse.y" {p->in_kwarg--;} -#line 10309 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10341 "mrbgems/mruby-compiler/core/y.tab.c" break; case 435: /* in_clauses: "'in'" p_expr $@33 "'unless' modifier" expr_value then compstmt in_clauses */ @@ -10314,7 +10346,7 @@ yyreduce: node *in_clause = new_in(p, (yyvsp[-6].nd), (yyvsp[-3].nd), (yyvsp[-1].nd), TRUE); (yyval.nd) = cons(in_clause, (yyvsp[0].nd)); } -#line 10318 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10350 "mrbgems/mruby-compiler/core/y.tab.c" break; case 437: /* p_expr: p_args_head p_as */ @@ -10322,7 +10354,7 @@ yyreduce: { (yyval.nd) = new_pat_array(p, push((yyvsp[-1].nd), (yyvsp[0].nd)), 0, 0); } -#line 10326 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10358 "mrbgems/mruby-compiler/core/y.tab.c" break; case 438: /* p_expr: p_args_head p_rest */ @@ -10330,7 +10362,7 @@ yyreduce: { (yyval.nd) = new_pat_array(p, (yyvsp[-1].nd), (yyvsp[0].nd), 0); } -#line 10334 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10366 "mrbgems/mruby-compiler/core/y.tab.c" break; case 439: /* p_expr: p_args_head p_rest ',' p_args_post */ @@ -10338,7 +10370,7 @@ yyreduce: { (yyval.nd) = new_pat_array(p, (yyvsp[-3].nd), (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 10342 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10374 "mrbgems/mruby-compiler/core/y.tab.c" break; case 440: /* p_expr: p_rest */ @@ -10346,7 +10378,7 @@ yyreduce: { (yyval.nd) = new_pat_array(p, 0, (yyvsp[0].nd), 0); } -#line 10350 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10382 "mrbgems/mruby-compiler/core/y.tab.c" break; case 441: /* p_expr: p_rest ',' p_args_post */ @@ -10354,7 +10386,7 @@ yyreduce: { (yyval.nd) = new_pat_array(p, 0, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 10358 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10390 "mrbgems/mruby-compiler/core/y.tab.c" break; case 442: /* p_expr: p_hash_elems */ @@ -10363,7 +10395,7 @@ yyreduce: /* Brace-less hash pattern: in a:, b: x */ (yyval.nd) = new_pat_hash(p, (yyvsp[0].nd), 0); } -#line 10367 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10399 "mrbgems/mruby-compiler/core/y.tab.c" break; case 443: /* p_expr: p_hash_elems ',' p_kwrest */ @@ -10372,7 +10404,7 @@ yyreduce: /* Brace-less hash pattern with kwrest: in a:, **rest */ (yyval.nd) = new_pat_hash(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 10376 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10408 "mrbgems/mruby-compiler/core/y.tab.c" break; case 444: /* p_expr: p_kwrest */ @@ -10381,7 +10413,7 @@ yyreduce: /* Brace-less kwrest only: in **rest */ (yyval.nd) = new_pat_hash(p, 0, (yyvsp[0].nd)); } -#line 10385 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10417 "mrbgems/mruby-compiler/core/y.tab.c" break; case 445: /* p_args_head: p_as ',' */ @@ -10389,7 +10421,7 @@ yyreduce: { (yyval.nd) = list1((yyvsp[-1].nd)); } -#line 10393 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10425 "mrbgems/mruby-compiler/core/y.tab.c" break; case 446: /* p_args_head: p_args_head p_as ',' */ @@ -10397,7 +10429,7 @@ yyreduce: { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[-1].nd)); } -#line 10401 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10433 "mrbgems/mruby-compiler/core/y.tab.c" break; case 447: /* p_args_post: p_as */ @@ -10405,7 +10437,7 @@ yyreduce: { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10409 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10441 "mrbgems/mruby-compiler/core/y.tab.c" break; case 448: /* p_args_post: p_args_post ',' p_as */ @@ -10413,7 +10445,7 @@ yyreduce: { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 10417 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10449 "mrbgems/mruby-compiler/core/y.tab.c" break; case 450: /* p_as: p_alt "=>" "local variable or method" */ @@ -10421,7 +10453,7 @@ yyreduce: { (yyval.nd) = new_pat_as(p, (yyvsp[-2].nd), (yyvsp[0].id)); } -#line 10425 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10457 "mrbgems/mruby-compiler/core/y.tab.c" break; case 452: /* p_alt: p_alt '|' p_value */ @@ -10429,7 +10461,7 @@ yyreduce: { (yyval.nd) = new_pat_alt(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 10433 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10465 "mrbgems/mruby-compiler/core/y.tab.c" break; case 454: /* p_value: numeric */ @@ -10437,7 +10469,7 @@ yyreduce: { (yyval.nd) = new_pat_value(p, (yyvsp[0].nd)); } -#line 10441 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10473 "mrbgems/mruby-compiler/core/y.tab.c" break; case 455: /* p_value: symbol */ @@ -10445,7 +10477,7 @@ yyreduce: { (yyval.nd) = new_pat_value(p, (yyvsp[0].nd)); } -#line 10449 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10481 "mrbgems/mruby-compiler/core/y.tab.c" break; case 456: /* p_value: tSTRING */ @@ -10453,7 +10485,7 @@ yyreduce: { (yyval.nd) = new_pat_value(p, new_str(p, list1((yyvsp[0].nd)))); } -#line 10457 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10489 "mrbgems/mruby-compiler/core/y.tab.c" break; case 457: /* p_value: "'nil'" */ @@ -10461,7 +10493,7 @@ yyreduce: { (yyval.nd) = new_pat_value(p, new_nil(p)); } -#line 10465 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10497 "mrbgems/mruby-compiler/core/y.tab.c" break; case 458: /* p_value: "'true'" */ @@ -10469,7 +10501,7 @@ yyreduce: { (yyval.nd) = new_pat_value(p, new_true(p)); } -#line 10473 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10505 "mrbgems/mruby-compiler/core/y.tab.c" break; case 459: /* p_value: "'false'" */ @@ -10477,7 +10509,7 @@ yyreduce: { (yyval.nd) = new_pat_value(p, new_false(p)); } -#line 10481 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10513 "mrbgems/mruby-compiler/core/y.tab.c" break; case 460: /* p_value: p_const */ @@ -10485,7 +10517,7 @@ yyreduce: { (yyval.nd) = new_pat_value(p, (yyvsp[0].nd)); } -#line 10489 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10521 "mrbgems/mruby-compiler/core/y.tab.c" break; case 463: /* p_value: '^' "local variable or method" */ @@ -10493,7 +10525,7 @@ yyreduce: { (yyval.nd) = new_pat_pin(p, (yyvsp[0].id)); } -#line 10497 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10529 "mrbgems/mruby-compiler/core/y.tab.c" break; case 464: /* p_array: "[" p_array_body ']' */ @@ -10501,7 +10533,7 @@ yyreduce: { (yyval.nd) = (yyvsp[-1].nd); } -#line 10505 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10537 "mrbgems/mruby-compiler/core/y.tab.c" break; case 465: /* p_array: "[" ']' */ @@ -10509,7 +10541,7 @@ yyreduce: { (yyval.nd) = new_pat_array(p, 0, 0, 0); } -#line 10513 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10545 "mrbgems/mruby-compiler/core/y.tab.c" break; case 466: /* p_array_body: p_array_elems */ @@ -10518,7 +10550,7 @@ yyreduce: /* Just pre elements, no rest */ (yyval.nd) = new_pat_array(p, (yyvsp[0].nd), 0, 0); } -#line 10522 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10554 "mrbgems/mruby-compiler/core/y.tab.c" break; case 467: /* p_array_body: p_array_elems ',' p_rest */ @@ -10527,7 +10559,7 @@ yyreduce: /* Pre elements + rest, no post */ (yyval.nd) = new_pat_array(p, (yyvsp[-2].nd), (yyvsp[0].nd), 0); } -#line 10531 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10563 "mrbgems/mruby-compiler/core/y.tab.c" break; case 468: /* p_array_body: p_array_elems ',' p_rest ',' p_array_elems */ @@ -10536,7 +10568,7 @@ yyreduce: /* Pre + rest + post */ (yyval.nd) = new_pat_array(p, (yyvsp[-4].nd), (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 10540 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10572 "mrbgems/mruby-compiler/core/y.tab.c" break; case 469: /* p_array_body: p_rest */ @@ -10545,7 +10577,7 @@ yyreduce: /* Just rest, no pre or post */ (yyval.nd) = new_pat_array(p, 0, (yyvsp[0].nd), 0); } -#line 10549 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10581 "mrbgems/mruby-compiler/core/y.tab.c" break; case 470: /* p_array_body: p_rest ',' p_array_elems */ @@ -10554,7 +10586,7 @@ yyreduce: /* Rest + post, no pre */ (yyval.nd) = new_pat_array(p, 0, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 10558 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10590 "mrbgems/mruby-compiler/core/y.tab.c" break; case 471: /* p_array_body: p_rest ',' p_array_elems ',' p_rest */ @@ -10563,7 +10595,7 @@ yyreduce: /* Find pattern: [*pre, elems, *post] */ (yyval.nd) = new_pat_find(p, (yyvsp[-4].nd), (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 10567 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10599 "mrbgems/mruby-compiler/core/y.tab.c" break; case 472: /* p_array_elems: p_as */ @@ -10571,7 +10603,7 @@ yyreduce: { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10575 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10607 "mrbgems/mruby-compiler/core/y.tab.c" break; case 473: /* p_array_elems: p_array_elems ',' p_as */ @@ -10579,7 +10611,7 @@ yyreduce: { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 10583 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10615 "mrbgems/mruby-compiler/core/y.tab.c" break; case 474: /* p_rest: "*" "local variable or method" */ @@ -10587,7 +10619,7 @@ yyreduce: { (yyval.nd) = new_pat_var(p, (yyvsp[0].id)); } -#line 10591 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10623 "mrbgems/mruby-compiler/core/y.tab.c" break; case 475: /* p_rest: "*" */ @@ -10596,7 +10628,7 @@ yyreduce: /* Anonymous rest pattern */ (yyval.nd) = (node*)-1; } -#line 10600 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10632 "mrbgems/mruby-compiler/core/y.tab.c" break; case 476: /* p_const: "constant" */ @@ -10604,7 +10636,7 @@ yyreduce: { (yyval.nd) = new_const(p, (yyvsp[0].id)); } -#line 10608 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10640 "mrbgems/mruby-compiler/core/y.tab.c" break; case 477: /* p_const: p_const "::" "constant" */ @@ -10612,7 +10644,7 @@ yyreduce: { (yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id)); } -#line 10616 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10648 "mrbgems/mruby-compiler/core/y.tab.c" break; case 478: /* p_const: tCOLON3 "constant" */ @@ -10620,7 +10652,7 @@ yyreduce: { (yyval.nd) = new_colon3(p, (yyvsp[0].id)); } -#line 10624 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10656 "mrbgems/mruby-compiler/core/y.tab.c" break; case 479: /* p_hash: tLBRACE p_hash_body '}' */ @@ -10628,7 +10660,7 @@ yyreduce: { (yyval.nd) = (yyvsp[-1].nd); } -#line 10632 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10664 "mrbgems/mruby-compiler/core/y.tab.c" break; case 480: /* p_hash: tLBRACE '}' */ @@ -10636,7 +10668,7 @@ yyreduce: { (yyval.nd) = new_pat_hash(p, 0, 0); } -#line 10640 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10672 "mrbgems/mruby-compiler/core/y.tab.c" break; case 481: /* p_hash_body: p_hash_elems */ @@ -10644,7 +10676,7 @@ yyreduce: { (yyval.nd) = new_pat_hash(p, (yyvsp[0].nd), 0); } -#line 10648 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10680 "mrbgems/mruby-compiler/core/y.tab.c" break; case 482: /* p_hash_body: p_hash_elems ',' p_kwrest */ @@ -10652,7 +10684,7 @@ yyreduce: { (yyval.nd) = new_pat_hash(p, (yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 10656 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10688 "mrbgems/mruby-compiler/core/y.tab.c" break; case 483: /* p_hash_body: p_kwrest */ @@ -10660,7 +10692,7 @@ yyreduce: { (yyval.nd) = new_pat_hash(p, 0, (yyvsp[0].nd)); } -#line 10664 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10696 "mrbgems/mruby-compiler/core/y.tab.c" break; case 484: /* p_hash_elems: p_hash_elem */ @@ -10668,7 +10700,7 @@ yyreduce: { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10672 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10704 "mrbgems/mruby-compiler/core/y.tab.c" break; case 485: /* p_hash_elems: p_hash_elems ',' p_hash_elem */ @@ -10676,7 +10708,7 @@ yyreduce: { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 10680 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10712 "mrbgems/mruby-compiler/core/y.tab.c" break; case 486: /* p_hash_elem: "local variable or method" "label" p_as */ @@ -10685,7 +10717,7 @@ yyreduce: /* {key: pattern} */ (yyval.nd) = cons(new_sym(p, (yyvsp[-2].id)), (yyvsp[0].nd)); } -#line 10689 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10721 "mrbgems/mruby-compiler/core/y.tab.c" break; case 487: /* p_hash_elem: "local variable or method" "label" */ @@ -10694,7 +10726,7 @@ yyreduce: /* {key:} shorthand - binds to variable with same name */ (yyval.nd) = cons(new_sym(p, (yyvsp[-1].id)), new_pat_var(p, (yyvsp[-1].id))); } -#line 10698 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10730 "mrbgems/mruby-compiler/core/y.tab.c" break; case 488: /* p_kwrest: "**" "local variable or method" */ @@ -10702,7 +10734,7 @@ yyreduce: { (yyval.nd) = new_pat_var(p, (yyvsp[0].id)); } -#line 10706 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10738 "mrbgems/mruby-compiler/core/y.tab.c" break; case 489: /* p_kwrest: "**" "'nil'" */ @@ -10711,7 +10743,7 @@ yyreduce: /* **nil - exact match, no extra keys allowed */ (yyval.nd) = (node*)-1; } -#line 10715 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10747 "mrbgems/mruby-compiler/core/y.tab.c" break; case 490: /* p_kwrest: "**" */ @@ -10720,7 +10752,7 @@ yyreduce: /* ** - anonymous rest, discards extra keys */ (yyval.nd) = (node*)-2; } -#line 10724 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10756 "mrbgems/mruby-compiler/core/y.tab.c" break; case 491: /* p_var: "local variable or method" */ @@ -10728,7 +10760,7 @@ yyreduce: { (yyval.nd) = new_pat_var(p, (yyvsp[0].id)); } -#line 10732 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10764 "mrbgems/mruby-compiler/core/y.tab.c" break; case 492: /* opt_rescue: "'rescue'" exc_list exc_var then compstmt opt_rescue */ @@ -10737,7 +10769,7 @@ yyreduce: (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 10741 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10773 "mrbgems/mruby-compiler/core/y.tab.c" break; case 494: /* exc_list: arg */ @@ -10745,7 +10777,7 @@ yyreduce: { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10749 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10781 "mrbgems/mruby-compiler/core/y.tab.c" break; case 497: /* exc_var: "=>" lhs */ @@ -10753,7 +10785,7 @@ yyreduce: { (yyval.nd) = (yyvsp[0].nd); } -#line 10757 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10789 "mrbgems/mruby-compiler/core/y.tab.c" break; case 499: /* opt_ensure: "'ensure'" compstmt */ @@ -10761,7 +10793,7 @@ yyreduce: { (yyval.nd) = (yyvsp[0].nd); } -#line 10765 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10797 "mrbgems/mruby-compiler/core/y.tab.c" break; case 506: /* string: string string_fragment */ @@ -10769,7 +10801,7 @@ yyreduce: { (yyval.nd) = append((yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 10773 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10805 "mrbgems/mruby-compiler/core/y.tab.c" break; case 507: /* string_fragment: "character literal" */ @@ -10778,7 +10810,7 @@ yyreduce: /* tCHAR is (len . str), wrap as cons list */ (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10782 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10814 "mrbgems/mruby-compiler/core/y.tab.c" break; case 508: /* string_fragment: tSTRING */ @@ -10787,7 +10819,7 @@ yyreduce: /* tSTRING is (len . str), wrap as cons list */ (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10791 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10823 "mrbgems/mruby-compiler/core/y.tab.c" break; case 509: /* string_fragment: "string literal" tSTRING */ @@ -10796,7 +10828,7 @@ yyreduce: /* $2 is (len . str), wrap as cons list */ (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10800 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10832 "mrbgems/mruby-compiler/core/y.tab.c" break; case 510: /* string_fragment: "string literal" string_rep tSTRING */ @@ -10804,7 +10836,7 @@ yyreduce: { (yyval.nd) = push((yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 10808 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10840 "mrbgems/mruby-compiler/core/y.tab.c" break; case 512: /* string_rep: string_rep string_interp */ @@ -10812,7 +10844,7 @@ yyreduce: { (yyval.nd) = append((yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 10816 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10848 "mrbgems/mruby-compiler/core/y.tab.c" break; case 513: /* string_interp: tSTRING_MID */ @@ -10821,7 +10853,7 @@ yyreduce: /* $1 is already in (len . str) format */ (yyval.nd) = list1((yyvsp[0].nd)); } -#line 10825 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10857 "mrbgems/mruby-compiler/core/y.tab.c" break; case 514: /* @34: %empty */ @@ -10829,7 +10861,7 @@ yyreduce: { (yyval.nd) = push_strterm(p); } -#line 10833 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10865 "mrbgems/mruby-compiler/core/y.tab.c" break; case 515: /* string_interp: tSTRING_PART @34 compstmt '}' */ @@ -10840,7 +10872,7 @@ yyreduce: node *expr_elem = cons(int_to_node(-1), (yyvsp[-1].nd)); (yyval.nd) = list2((yyvsp[-3].nd), expr_elem); } -#line 10844 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10876 "mrbgems/mruby-compiler/core/y.tab.c" break; case 516: /* string_interp: tLITERAL_DELIM */ @@ -10848,7 +10880,7 @@ yyreduce: { (yyval.nd) = list1(new_literal_delim(p)); } -#line 10852 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10884 "mrbgems/mruby-compiler/core/y.tab.c" break; case 517: /* string_interp: tHD_LITERAL_DELIM heredoc_bodies */ @@ -10856,7 +10888,7 @@ yyreduce: { (yyval.nd) = list1(new_literal_delim(p)); } -#line 10860 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10892 "mrbgems/mruby-compiler/core/y.tab.c" break; case 518: /* xstring: tXSTRING_BEG tXSTRING */ @@ -10864,7 +10896,7 @@ yyreduce: { (yyval.nd) = cons((yyvsp[0].nd), (node*)NULL); } -#line 10868 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10900 "mrbgems/mruby-compiler/core/y.tab.c" break; case 519: /* xstring: tXSTRING_BEG string_rep tXSTRING */ @@ -10872,7 +10904,7 @@ yyreduce: { (yyval.nd) = push((yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 10876 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10908 "mrbgems/mruby-compiler/core/y.tab.c" break; case 520: /* regexp: tREGEXP_BEG tREGEXP */ @@ -10885,7 +10917,7 @@ yyreduce: node *pattern_list = cons(data->car, (node*)NULL); (yyval.nd) = new_regx(p, pattern_list, flags, encoding); } -#line 10889 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10921 "mrbgems/mruby-compiler/core/y.tab.c" break; case 521: /* regexp: tREGEXP_BEG string_rep tREGEXP */ @@ -10898,7 +10930,7 @@ yyreduce: node *complete_list = push((yyvsp[-1].nd), data->car); (yyval.nd) = new_regx(p, complete_list, flags, encoding); } -#line 10902 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10934 "mrbgems/mruby-compiler/core/y.tab.c" break; case 525: /* heredoc_body: tHEREDOC_END */ @@ -10908,7 +10940,7 @@ yyreduce: info->doc = push(info->doc, new_str_empty(p)); heredoc_end(p); } -#line 10912 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10944 "mrbgems/mruby-compiler/core/y.tab.c" break; case 526: /* heredoc_body: heredoc_string_rep tHEREDOC_END */ @@ -10916,7 +10948,7 @@ yyreduce: { heredoc_end(p); } -#line 10920 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10952 "mrbgems/mruby-compiler/core/y.tab.c" break; case 529: /* heredoc_string_interp: tHD_STRING_MID */ @@ -10926,7 +10958,7 @@ yyreduce: info->doc = push(info->doc, (yyvsp[0].nd)); heredoc_treat_nextline(p); } -#line 10930 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10962 "mrbgems/mruby-compiler/core/y.tab.c" break; case 530: /* @35: %empty */ @@ -10934,7 +10966,7 @@ yyreduce: { (yyval.nd) = push_strterm(p); } -#line 10938 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10970 "mrbgems/mruby-compiler/core/y.tab.c" break; case 531: /* heredoc_string_interp: tHD_STRING_PART @35 compstmt '}' */ @@ -10946,7 +10978,7 @@ yyreduce: node *expr_elem = cons(int_to_node(-1), (yyvsp[-1].nd)); info->doc = push(push(info->doc, (yyvsp[-3].nd)), expr_elem); } -#line 10950 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10982 "mrbgems/mruby-compiler/core/y.tab.c" break; case 532: /* words: tWORDS_BEG tSTRING */ @@ -10954,7 +10986,7 @@ yyreduce: { (yyval.nd) = new_words(p, list1((yyvsp[0].nd))); } -#line 10958 "mrbgems/mruby-compiler/core/y.tab.c" +#line 10990 "mrbgems/mruby-compiler/core/y.tab.c" break; case 533: /* words: tWORDS_BEG string_rep tSTRING */ @@ -10964,7 +10996,7 @@ yyreduce: n = push(n, (yyvsp[0].nd)); (yyval.nd) = new_words(p, n); } -#line 10968 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11000 "mrbgems/mruby-compiler/core/y.tab.c" break; case 534: /* symbol: basic_symbol */ @@ -10972,7 +11004,7 @@ yyreduce: { (yyval.nd) = new_sym(p, (yyvsp[0].id)); } -#line 10976 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11008 "mrbgems/mruby-compiler/core/y.tab.c" break; case 535: /* symbol: "symbol" "string literal" string_rep tSTRING */ @@ -10988,7 +11020,7 @@ yyreduce: } (yyval.nd) = new_dsym(p, n); } -#line 10992 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11024 "mrbgems/mruby-compiler/core/y.tab.c" break; case 536: /* symbol: "symbol" "numbered parameter" */ @@ -10997,7 +11029,7 @@ yyreduce: mrb_sym sym = intern_numparam((yyvsp[0].num)); (yyval.nd) = new_sym(p, sym); } -#line 11001 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11033 "mrbgems/mruby-compiler/core/y.tab.c" break; case 537: /* basic_symbol: "symbol" sym */ @@ -11006,7 +11038,7 @@ yyreduce: p->lstate = EXPR_END; (yyval.id) = (yyvsp[0].id); } -#line 11010 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11042 "mrbgems/mruby-compiler/core/y.tab.c" break; case 542: /* sym: tSTRING */ @@ -11014,7 +11046,7 @@ yyreduce: { (yyval.id) = new_strsym(p, (yyvsp[0].nd)); } -#line 11018 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11050 "mrbgems/mruby-compiler/core/y.tab.c" break; case 543: /* sym: "string literal" tSTRING */ @@ -11022,7 +11054,7 @@ yyreduce: { (yyval.id) = new_strsym(p, (yyvsp[0].nd)); } -#line 11026 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11058 "mrbgems/mruby-compiler/core/y.tab.c" break; case 544: /* symbols: tSYMBOLS_BEG tSTRING */ @@ -11030,7 +11062,7 @@ yyreduce: { (yyval.nd) = new_symbols(p, list1((yyvsp[0].nd))); } -#line 11034 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11066 "mrbgems/mruby-compiler/core/y.tab.c" break; case 545: /* symbols: tSYMBOLS_BEG string_rep tSTRING */ @@ -11040,7 +11072,7 @@ yyreduce: n = push(n, (yyvsp[0].nd)); (yyval.nd) = new_symbols(p, n); } -#line 11044 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11076 "mrbgems/mruby-compiler/core/y.tab.c" break; case 548: /* numeric: tUMINUS_NUM "integer literal" */ @@ -11048,7 +11080,7 @@ yyreduce: { (yyval.nd) = new_negate(p, (yyvsp[0].nd)); } -#line 11052 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11084 "mrbgems/mruby-compiler/core/y.tab.c" break; case 549: /* numeric: tUMINUS_NUM "float literal" */ @@ -11056,7 +11088,7 @@ yyreduce: { (yyval.nd) = new_negate(p, (yyvsp[0].nd)); } -#line 11060 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11092 "mrbgems/mruby-compiler/core/y.tab.c" break; case 550: /* variable: "local variable or method" */ @@ -11064,7 +11096,7 @@ yyreduce: { (yyval.nd) = new_lvar(p, (yyvsp[0].id)); } -#line 11068 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11100 "mrbgems/mruby-compiler/core/y.tab.c" break; case 551: /* variable: "instance variable" */ @@ -11072,7 +11104,7 @@ yyreduce: { (yyval.nd) = new_ivar(p, (yyvsp[0].id)); } -#line 11076 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11108 "mrbgems/mruby-compiler/core/y.tab.c" break; case 552: /* variable: "global variable" */ @@ -11080,7 +11112,7 @@ yyreduce: { (yyval.nd) = new_gvar(p, (yyvsp[0].id)); } -#line 11084 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11116 "mrbgems/mruby-compiler/core/y.tab.c" break; case 553: /* variable: "class variable" */ @@ -11088,7 +11120,7 @@ yyreduce: { (yyval.nd) = new_cvar(p, (yyvsp[0].id)); } -#line 11092 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11124 "mrbgems/mruby-compiler/core/y.tab.c" break; case 554: /* variable: "constant" */ @@ -11096,7 +11128,7 @@ yyreduce: { (yyval.nd) = new_const(p, (yyvsp[0].id)); } -#line 11100 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11132 "mrbgems/mruby-compiler/core/y.tab.c" break; case 555: /* var_lhs: variable */ @@ -11104,7 +11136,7 @@ yyreduce: { assignable(p, (yyvsp[0].nd)); } -#line 11108 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11140 "mrbgems/mruby-compiler/core/y.tab.c" break; case 556: /* var_lhs: "numbered parameter" */ @@ -11112,7 +11144,7 @@ yyreduce: { yyerror(&(yylsp[0]), p, "can't assign to numbered parameter"); } -#line 11116 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11148 "mrbgems/mruby-compiler/core/y.tab.c" break; case 557: /* var_ref: variable */ @@ -11120,7 +11152,7 @@ yyreduce: { (yyval.nd) = var_reference(p, (yyvsp[0].nd)); } -#line 11124 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11156 "mrbgems/mruby-compiler/core/y.tab.c" break; case 558: /* var_ref: "numbered parameter" */ @@ -11128,7 +11160,7 @@ yyreduce: { (yyval.nd) = new_nvar(p, (yyvsp[0].num)); } -#line 11132 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11164 "mrbgems/mruby-compiler/core/y.tab.c" break; case 559: /* var_ref: "'nil'" */ @@ -11136,7 +11168,7 @@ yyreduce: { (yyval.nd) = new_nil(p); } -#line 11140 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11172 "mrbgems/mruby-compiler/core/y.tab.c" break; case 560: /* var_ref: "'self'" */ @@ -11144,7 +11176,7 @@ yyreduce: { (yyval.nd) = new_self(p); } -#line 11148 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11180 "mrbgems/mruby-compiler/core/y.tab.c" break; case 561: /* var_ref: "'true'" */ @@ -11152,7 +11184,7 @@ yyreduce: { (yyval.nd) = new_true(p); } -#line 11156 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11188 "mrbgems/mruby-compiler/core/y.tab.c" break; case 562: /* var_ref: "'false'" */ @@ -11160,7 +11192,7 @@ yyreduce: { (yyval.nd) = new_false(p); } -#line 11164 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11196 "mrbgems/mruby-compiler/core/y.tab.c" break; case 563: /* var_ref: "'__FILE__'" */ @@ -11172,7 +11204,7 @@ yyreduce: } (yyval.nd) = new_str(p, cons(cons(int_to_node(strlen(fn)), (node*)fn), (node*)NULL)); } -#line 11176 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11208 "mrbgems/mruby-compiler/core/y.tab.c" break; case 564: /* var_ref: "'__LINE__'" */ @@ -11183,7 +11215,7 @@ yyreduce: dump_int(p->lineno, buf); (yyval.nd) = new_int(p, buf, 10, 0); } -#line 11187 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11219 "mrbgems/mruby-compiler/core/y.tab.c" break; case 565: /* var_ref: "'__ENCODING__'" */ @@ -11191,7 +11223,7 @@ yyreduce: { (yyval.nd) = new_fcall(p, MRB_SYM(__ENCODING__), 0); } -#line 11195 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11227 "mrbgems/mruby-compiler/core/y.tab.c" break; case 568: /* superclass: %empty */ @@ -11199,7 +11231,7 @@ yyreduce: { (yyval.nd) = 0; } -#line 11203 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11235 "mrbgems/mruby-compiler/core/y.tab.c" break; case 569: /* $@36: %empty */ @@ -11208,7 +11240,7 @@ yyreduce: p->lstate = EXPR_BEG; p->cmd_start = TRUE; } -#line 11212 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11244 "mrbgems/mruby-compiler/core/y.tab.c" break; case 570: /* superclass: '<' $@36 expr_value term */ @@ -11216,7 +11248,7 @@ yyreduce: { (yyval.nd) = (yyvsp[-1].nd); } -#line 11220 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11252 "mrbgems/mruby-compiler/core/y.tab.c" break; case 573: /* f_arglist_paren: '(' f_args rparen */ @@ -11226,7 +11258,7 @@ yyreduce: p->lstate = EXPR_BEG; p->cmd_start = TRUE; } -#line 11230 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11262 "mrbgems/mruby-compiler/core/y.tab.c" break; case 574: /* f_arglist_paren: '(' f_arg ',' tBDOT3 rparen */ @@ -11234,7 +11266,7 @@ yyreduce: { (yyval.nd) = new_args_dots(p, (yyvsp[-3].nd)); } -#line 11238 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11270 "mrbgems/mruby-compiler/core/y.tab.c" break; case 575: /* f_arglist_paren: '(' tBDOT3 rparen */ @@ -11242,7 +11274,7 @@ yyreduce: { (yyval.nd) = new_args_dots(p, 0); } -#line 11246 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11278 "mrbgems/mruby-compiler/core/y.tab.c" break; case 577: /* f_arglist: f_args term */ @@ -11250,7 +11282,7 @@ yyreduce: { (yyval.nd) = (yyvsp[-1].nd); } -#line 11254 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11286 "mrbgems/mruby-compiler/core/y.tab.c" break; case 578: /* f_arglist: f_arg ',' tBDOT3 term */ @@ -11258,7 +11290,7 @@ yyreduce: { (yyval.nd) = new_args_dots(p, (yyvsp[-3].nd)); } -#line 11262 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11294 "mrbgems/mruby-compiler/core/y.tab.c" break; case 579: /* f_arglist: "..." term */ @@ -11266,7 +11298,7 @@ yyreduce: { (yyval.nd) = new_args_dots(p, 0); } -#line 11270 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11302 "mrbgems/mruby-compiler/core/y.tab.c" break; case 580: /* f_label: "local variable or method" "label" */ @@ -11276,7 +11308,7 @@ yyreduce: local_nest(p); p->lstate = EXPR_MID; /* make newlines significant after label */ } -#line 11280 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11312 "mrbgems/mruby-compiler/core/y.tab.c" break; case 581: /* f_label: "numbered parameter" "label" */ @@ -11286,7 +11318,7 @@ yyreduce: local_nest(p); p->lstate = EXPR_MID; /* make newlines significant after label */ } -#line 11290 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11322 "mrbgems/mruby-compiler/core/y.tab.c" break; case 582: /* f_kw: f_label arg */ @@ -11296,7 +11328,7 @@ yyreduce: (yyval.nd) = new_kw_arg(p, (yyvsp[-1].id), cons((yyvsp[0].nd), locals_node(p))); local_unnest(p); } -#line 11300 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11332 "mrbgems/mruby-compiler/core/y.tab.c" break; case 583: /* f_kw: f_label */ @@ -11305,7 +11337,7 @@ yyreduce: (yyval.nd) = new_kw_arg(p, (yyvsp[0].id), 0); local_unnest(p); } -#line 11309 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11341 "mrbgems/mruby-compiler/core/y.tab.c" break; case 584: /* f_block_kw: f_label primary_value */ @@ -11315,7 +11347,7 @@ yyreduce: (yyval.nd) = new_kw_arg(p, (yyvsp[-1].id), cons((yyvsp[0].nd), locals_node(p))); local_unnest(p); } -#line 11319 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11351 "mrbgems/mruby-compiler/core/y.tab.c" break; case 585: /* f_block_kw: f_label */ @@ -11324,7 +11356,7 @@ yyreduce: (yyval.nd) = new_kw_arg(p, (yyvsp[0].id), 0); local_unnest(p); } -#line 11328 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11360 "mrbgems/mruby-compiler/core/y.tab.c" break; case 586: /* f_block_kwarg: f_block_kw */ @@ -11332,7 +11364,7 @@ yyreduce: { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 11336 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11368 "mrbgems/mruby-compiler/core/y.tab.c" break; case 587: /* f_block_kwarg: f_block_kwarg ',' f_block_kw */ @@ -11340,7 +11372,7 @@ yyreduce: { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 11344 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11376 "mrbgems/mruby-compiler/core/y.tab.c" break; case 588: /* f_kwarg: f_kw */ @@ -11348,7 +11380,7 @@ yyreduce: { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 11352 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11384 "mrbgems/mruby-compiler/core/y.tab.c" break; case 589: /* f_kwarg: f_kwarg ',' f_kw */ @@ -11356,7 +11388,7 @@ yyreduce: { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 11360 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11392 "mrbgems/mruby-compiler/core/y.tab.c" break; case 592: /* f_kwrest: kwrest_mark "local variable or method" */ @@ -11364,7 +11396,7 @@ yyreduce: { (yyval.id) = (yyvsp[0].id); } -#line 11368 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11400 "mrbgems/mruby-compiler/core/y.tab.c" break; case 593: /* f_kwrest: kwrest_mark */ @@ -11372,7 +11404,7 @@ yyreduce: { (yyval.id) = intern_op(pow); } -#line 11376 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11408 "mrbgems/mruby-compiler/core/y.tab.c" break; case 594: /* args_tail: f_kwarg ',' f_kwrest opt_f_block_arg */ @@ -11380,7 +11412,7 @@ yyreduce: { (yyval.nd) = new_args_tail(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].id)); } -#line 11384 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11416 "mrbgems/mruby-compiler/core/y.tab.c" break; case 595: /* args_tail: f_kwarg opt_f_block_arg */ @@ -11388,7 +11420,7 @@ yyreduce: { (yyval.nd) = new_args_tail(p, (yyvsp[-1].nd), 0, (yyvsp[0].id)); } -#line 11392 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11424 "mrbgems/mruby-compiler/core/y.tab.c" break; case 596: /* args_tail: f_kwrest opt_f_block_arg */ @@ -11396,7 +11428,7 @@ yyreduce: { (yyval.nd) = new_args_tail(p, 0, (yyvsp[-1].id), (yyvsp[0].id)); } -#line 11400 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11432 "mrbgems/mruby-compiler/core/y.tab.c" break; case 597: /* args_tail: f_block_arg */ @@ -11404,7 +11436,7 @@ yyreduce: { (yyval.nd) = new_args_tail(p, 0, 0, (yyvsp[0].id)); } -#line 11408 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11440 "mrbgems/mruby-compiler/core/y.tab.c" break; case 598: /* opt_args_tail: ',' args_tail */ @@ -11412,7 +11444,7 @@ yyreduce: { (yyval.nd) = (yyvsp[0].nd); } -#line 11416 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11448 "mrbgems/mruby-compiler/core/y.tab.c" break; case 599: /* opt_args_tail: ',' */ @@ -11420,7 +11452,7 @@ yyreduce: { (yyval.nd) = new_args_tail(p, 0, 0, 0); } -#line 11424 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11456 "mrbgems/mruby-compiler/core/y.tab.c" break; case 600: /* opt_args_tail: %empty */ @@ -11428,7 +11460,7 @@ yyreduce: { (yyval.nd) = new_args_tail(p, 0, 0, 0); } -#line 11432 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11464 "mrbgems/mruby-compiler/core/y.tab.c" break; case 601: /* f_args: f_arg ',' f_optarg ',' f_rest_arg opt_args_tail */ @@ -11436,7 +11468,7 @@ yyreduce: { (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 11440 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11472 "mrbgems/mruby-compiler/core/y.tab.c" break; case 602: /* f_args: f_arg ',' f_optarg ',' f_rest_arg ',' f_arg opt_args_tail */ @@ -11444,7 +11476,7 @@ yyreduce: { (yyval.nd) = new_args(p, (yyvsp[-7].nd), (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 11448 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11480 "mrbgems/mruby-compiler/core/y.tab.c" break; case 603: /* f_args: f_arg ',' f_optarg opt_args_tail */ @@ -11452,7 +11484,7 @@ yyreduce: { (yyval.nd) = new_args(p, (yyvsp[-3].nd), (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd)); } -#line 11456 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11488 "mrbgems/mruby-compiler/core/y.tab.c" break; case 604: /* f_args: f_arg ',' f_optarg ',' f_arg opt_args_tail */ @@ -11460,7 +11492,7 @@ yyreduce: { (yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 11464 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11496 "mrbgems/mruby-compiler/core/y.tab.c" break; case 605: /* f_args: f_arg ',' f_rest_arg opt_args_tail */ @@ -11468,7 +11500,7 @@ yyreduce: { (yyval.nd) = new_args(p, (yyvsp[-3].nd), 0, (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 11472 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11504 "mrbgems/mruby-compiler/core/y.tab.c" break; case 606: /* f_args: f_arg ',' f_rest_arg ',' f_arg opt_args_tail */ @@ -11476,7 +11508,7 @@ yyreduce: { (yyval.nd) = new_args(p, (yyvsp[-5].nd), 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 11480 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11512 "mrbgems/mruby-compiler/core/y.tab.c" break; case 607: /* f_args: f_arg opt_args_tail */ @@ -11484,7 +11516,7 @@ yyreduce: { (yyval.nd) = new_args(p, (yyvsp[-1].nd), 0, 0, 0, (yyvsp[0].nd)); } -#line 11488 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11520 "mrbgems/mruby-compiler/core/y.tab.c" break; case 608: /* f_args: f_optarg ',' f_rest_arg opt_args_tail */ @@ -11492,7 +11524,7 @@ yyreduce: { (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 11496 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11528 "mrbgems/mruby-compiler/core/y.tab.c" break; case 609: /* f_args: f_optarg ',' f_rest_arg ',' f_arg opt_args_tail */ @@ -11500,7 +11532,7 @@ yyreduce: { (yyval.nd) = new_args(p, 0, (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 11504 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11536 "mrbgems/mruby-compiler/core/y.tab.c" break; case 610: /* f_args: f_optarg opt_args_tail */ @@ -11508,7 +11540,7 @@ yyreduce: { (yyval.nd) = new_args(p, 0, (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd)); } -#line 11512 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11544 "mrbgems/mruby-compiler/core/y.tab.c" break; case 611: /* f_args: f_optarg ',' f_arg opt_args_tail */ @@ -11516,7 +11548,7 @@ yyreduce: { (yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 11520 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11552 "mrbgems/mruby-compiler/core/y.tab.c" break; case 612: /* f_args: f_rest_arg opt_args_tail */ @@ -11524,7 +11556,7 @@ yyreduce: { (yyval.nd) = new_args(p, 0, 0, (yyvsp[-1].id), 0, (yyvsp[0].nd)); } -#line 11528 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11560 "mrbgems/mruby-compiler/core/y.tab.c" break; case 613: /* f_args: f_rest_arg ',' f_arg opt_args_tail */ @@ -11532,7 +11564,7 @@ yyreduce: { (yyval.nd) = new_args(p, 0, 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd)); } -#line 11536 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11568 "mrbgems/mruby-compiler/core/y.tab.c" break; case 614: /* f_args: args_tail */ @@ -11540,7 +11572,7 @@ yyreduce: { (yyval.nd) = new_args(p, 0, 0, 0, 0, (yyvsp[0].nd)); } -#line 11544 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11576 "mrbgems/mruby-compiler/core/y.tab.c" break; case 615: /* f_args: %empty */ @@ -11549,7 +11581,7 @@ yyreduce: local_add_f(p, 0); (yyval.nd) = new_args(p, 0, 0, 0, 0, 0); } -#line 11553 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11585 "mrbgems/mruby-compiler/core/y.tab.c" break; case 616: /* f_bad_arg: "constant" */ @@ -11558,7 +11590,7 @@ yyreduce: yyerror(&(yylsp[0]), p, "formal argument cannot be a constant"); (yyval.nd) = 0; } -#line 11562 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11594 "mrbgems/mruby-compiler/core/y.tab.c" break; case 617: /* f_bad_arg: "instance variable" */ @@ -11567,7 +11599,7 @@ yyreduce: yyerror(&(yylsp[0]), p, "formal argument cannot be an instance variable"); (yyval.nd) = 0; } -#line 11571 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11603 "mrbgems/mruby-compiler/core/y.tab.c" break; case 618: /* f_bad_arg: "global variable" */ @@ -11576,7 +11608,7 @@ yyreduce: yyerror(&(yylsp[0]), p, "formal argument cannot be a global variable"); (yyval.nd) = 0; } -#line 11580 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11612 "mrbgems/mruby-compiler/core/y.tab.c" break; case 619: /* f_bad_arg: "class variable" */ @@ -11585,7 +11617,7 @@ yyreduce: yyerror(&(yylsp[0]), p, "formal argument cannot be a class variable"); (yyval.nd) = 0; } -#line 11589 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11621 "mrbgems/mruby-compiler/core/y.tab.c" break; case 620: /* f_bad_arg: "numbered parameter" */ @@ -11594,7 +11626,7 @@ yyreduce: yyerror(&(yylsp[0]), p, "formal argument cannot be a numbered parameter"); (yyval.nd) = 0; } -#line 11598 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11630 "mrbgems/mruby-compiler/core/y.tab.c" break; case 621: /* f_norm_arg: f_bad_arg */ @@ -11602,7 +11634,7 @@ yyreduce: { (yyval.id) = 0; } -#line 11606 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11638 "mrbgems/mruby-compiler/core/y.tab.c" break; case 622: /* f_norm_arg: "local variable or method" */ @@ -11611,7 +11643,7 @@ yyreduce: local_add_f(p, (yyvsp[0].id)); (yyval.id) = (yyvsp[0].id); } -#line 11615 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11647 "mrbgems/mruby-compiler/core/y.tab.c" break; case 623: /* f_arg_item: f_norm_arg */ @@ -11619,7 +11651,7 @@ yyreduce: { (yyval.nd) = new_lvar(p, (yyvsp[0].id)); } -#line 11623 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11655 "mrbgems/mruby-compiler/core/y.tab.c" break; case 624: /* @37: %empty */ @@ -11627,7 +11659,7 @@ yyreduce: { (yyval.nd) = local_switch(p); } -#line 11631 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11663 "mrbgems/mruby-compiler/core/y.tab.c" break; case 625: /* f_arg_item: tLPAREN @37 f_margs rparen */ @@ -11637,7 +11669,7 @@ yyreduce: local_resume(p, (yyvsp[-2].nd)); local_add_f(p, 0); } -#line 11641 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11673 "mrbgems/mruby-compiler/core/y.tab.c" break; case 626: /* f_arg: f_arg_item */ @@ -11645,7 +11677,7 @@ yyreduce: { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 11649 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11681 "mrbgems/mruby-compiler/core/y.tab.c" break; case 627: /* f_arg: f_arg ',' f_arg_item */ @@ -11653,7 +11685,7 @@ yyreduce: { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 11657 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11689 "mrbgems/mruby-compiler/core/y.tab.c" break; case 628: /* f_opt_asgn: "local variable or method" '=' */ @@ -11663,7 +11695,7 @@ yyreduce: local_nest(p); (yyval.id) = (yyvsp[-1].id); } -#line 11667 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11699 "mrbgems/mruby-compiler/core/y.tab.c" break; case 629: /* f_opt: f_opt_asgn arg */ @@ -11673,7 +11705,7 @@ yyreduce: (yyval.nd) = cons(sym_to_node((yyvsp[-1].id)), cons((yyvsp[0].nd), locals_node(p))); local_unnest(p); } -#line 11677 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11709 "mrbgems/mruby-compiler/core/y.tab.c" break; case 630: /* f_block_opt: f_opt_asgn primary_value */ @@ -11683,7 +11715,7 @@ yyreduce: (yyval.nd) = cons(sym_to_node((yyvsp[-1].id)), cons((yyvsp[0].nd), locals_node(p))); local_unnest(p); } -#line 11687 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11719 "mrbgems/mruby-compiler/core/y.tab.c" break; case 631: /* f_block_optarg: f_block_opt */ @@ -11691,7 +11723,7 @@ yyreduce: { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 11695 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11727 "mrbgems/mruby-compiler/core/y.tab.c" break; case 632: /* f_block_optarg: f_block_optarg ',' f_block_opt */ @@ -11699,7 +11731,7 @@ yyreduce: { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 11703 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11735 "mrbgems/mruby-compiler/core/y.tab.c" break; case 633: /* f_optarg: f_opt */ @@ -11707,7 +11739,7 @@ yyreduce: { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 11711 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11743 "mrbgems/mruby-compiler/core/y.tab.c" break; case 634: /* f_optarg: f_optarg ',' f_opt */ @@ -11715,7 +11747,7 @@ yyreduce: { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 11719 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11751 "mrbgems/mruby-compiler/core/y.tab.c" break; case 637: /* f_rest_arg: restarg_mark "local variable or method" */ @@ -11724,7 +11756,7 @@ yyreduce: local_add_f(p, (yyvsp[0].id)); (yyval.id) = (yyvsp[0].id); } -#line 11728 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11760 "mrbgems/mruby-compiler/core/y.tab.c" break; case 638: /* f_rest_arg: restarg_mark */ @@ -11733,7 +11765,7 @@ yyreduce: (yyval.id) = intern_op(mul); local_add_f(p, (yyval.id)); } -#line 11737 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11769 "mrbgems/mruby-compiler/core/y.tab.c" break; case 641: /* f_block_arg: blkarg_mark "local variable or method" */ @@ -11741,7 +11773,7 @@ yyreduce: { (yyval.id) = (yyvsp[0].id); } -#line 11745 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11777 "mrbgems/mruby-compiler/core/y.tab.c" break; case 642: /* f_block_arg: blkarg_mark "'nil'" */ @@ -11749,7 +11781,7 @@ yyreduce: { (yyval.id) = MRB_SYM(nil); } -#line 11753 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11785 "mrbgems/mruby-compiler/core/y.tab.c" break; case 643: /* f_block_arg: blkarg_mark */ @@ -11757,7 +11789,7 @@ yyreduce: { (yyval.id) = intern_op(and); } -#line 11761 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11793 "mrbgems/mruby-compiler/core/y.tab.c" break; case 644: /* opt_f_block_arg: ',' f_block_arg */ @@ -11765,7 +11797,7 @@ yyreduce: { (yyval.id) = (yyvsp[0].id); } -#line 11769 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11801 "mrbgems/mruby-compiler/core/y.tab.c" break; case 645: /* opt_f_block_arg: ',' */ @@ -11773,7 +11805,7 @@ yyreduce: { (yyval.id) = 0; } -#line 11777 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11809 "mrbgems/mruby-compiler/core/y.tab.c" break; case 646: /* opt_f_block_arg: none */ @@ -11781,7 +11813,7 @@ yyreduce: { (yyval.id) = 0; } -#line 11785 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11817 "mrbgems/mruby-compiler/core/y.tab.c" break; case 647: /* singleton: var_ref */ @@ -11791,13 +11823,13 @@ yyreduce: (yyval.nd) = (yyvsp[0].nd); if (!(yyval.nd)) (yyval.nd) = new_nil(p); } -#line 11795 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11827 "mrbgems/mruby-compiler/core/y.tab.c" break; case 648: /* $@38: %empty */ #line 4893 "mrbgems/mruby-compiler/core/parse.y" {p->lstate = EXPR_BEG;} -#line 11801 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11833 "mrbgems/mruby-compiler/core/y.tab.c" break; case 649: /* singleton: '(' $@38 expr rparen */ @@ -11806,7 +11838,7 @@ yyreduce: prohibit_literals(p, (yyvsp[-1].nd)); (yyval.nd) = (yyvsp[-1].nd); } -#line 11810 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11842 "mrbgems/mruby-compiler/core/y.tab.c" break; case 651: /* assoc_list: assocs trailer */ @@ -11814,7 +11846,7 @@ yyreduce: { (yyval.nd) = (yyvsp[-1].nd); } -#line 11818 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11850 "mrbgems/mruby-compiler/core/y.tab.c" break; case 652: /* assocs: assoc */ @@ -11822,7 +11854,7 @@ yyreduce: { (yyval.nd) = list1((yyvsp[0].nd)); } -#line 11826 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11858 "mrbgems/mruby-compiler/core/y.tab.c" break; case 653: /* assocs: assocs comma assoc */ @@ -11830,7 +11862,7 @@ yyreduce: { (yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 11834 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11866 "mrbgems/mruby-compiler/core/y.tab.c" break; case 654: /* assoc: arg "=>" arg */ @@ -11840,7 +11872,7 @@ yyreduce: void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = cons((yyvsp[-2].nd), (yyvsp[0].nd)); } -#line 11844 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11876 "mrbgems/mruby-compiler/core/y.tab.c" break; case 655: /* assoc: "local variable or method" "label" arg */ @@ -11849,7 +11881,7 @@ yyreduce: void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = cons(new_sym(p, (yyvsp[-2].id)), (yyvsp[0].nd)); } -#line 11853 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11885 "mrbgems/mruby-compiler/core/y.tab.c" break; case 656: /* assoc: "local variable or method" "label" */ @@ -11857,7 +11889,7 @@ yyreduce: { (yyval.nd) = cons(new_sym(p, (yyvsp[-1].id)), label_reference(p, (yyvsp[-1].id))); } -#line 11861 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11893 "mrbgems/mruby-compiler/core/y.tab.c" break; case 657: /* assoc: "numbered parameter" "label" */ @@ -11866,7 +11898,7 @@ yyreduce: mrb_sym sym = intern_numparam((yyvsp[-1].num)); (yyval.nd) = cons(new_sym(p, sym), label_reference(p, sym)); } -#line 11870 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11902 "mrbgems/mruby-compiler/core/y.tab.c" break; case 658: /* assoc: "numbered parameter" "label" arg */ @@ -11875,7 +11907,7 @@ yyreduce: void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = cons(new_sym(p, intern_numparam((yyvsp[-2].num))), (yyvsp[0].nd)); } -#line 11879 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11911 "mrbgems/mruby-compiler/core/y.tab.c" break; case 659: /* assoc: string_fragment "label" arg */ @@ -11895,7 +11927,7 @@ yyreduce: (yyval.nd) = cons(new_sym(p, new_strsym(p, (yyvsp[-2].nd)->car)), (yyvsp[0].nd)); } } -#line 11899 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11931 "mrbgems/mruby-compiler/core/y.tab.c" break; case 660: /* assoc: "**" arg */ @@ -11904,7 +11936,7 @@ yyreduce: void_expr_error(p, (yyvsp[0].nd)); (yyval.nd) = cons(new_kw_rest_args(p, 0), (yyvsp[0].nd)); } -#line 11908 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11940 "mrbgems/mruby-compiler/core/y.tab.c" break; case 661: /* assoc: "**" */ @@ -11912,7 +11944,7 @@ yyreduce: { (yyval.nd) = cons(new_kw_rest_args(p, 0), new_lvar(p, intern_op(pow))); } -#line 11916 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11948 "mrbgems/mruby-compiler/core/y.tab.c" break; case 674: /* call_op: '.' */ @@ -11920,7 +11952,7 @@ yyreduce: { (yyval.num) = '.'; } -#line 11924 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11956 "mrbgems/mruby-compiler/core/y.tab.c" break; case 675: /* call_op: "&." */ @@ -11928,7 +11960,7 @@ yyreduce: { (yyval.num) = 0; } -#line 11932 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11964 "mrbgems/mruby-compiler/core/y.tab.c" break; case 677: /* call_op2: "::" */ @@ -11936,13 +11968,13 @@ yyreduce: { (yyval.num) = tCOLON2; } -#line 11940 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11972 "mrbgems/mruby-compiler/core/y.tab.c" break; case 686: /* term: ';' */ #line 5022 "mrbgems/mruby-compiler/core/parse.y" {yyerrok;} -#line 11946 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11978 "mrbgems/mruby-compiler/core/y.tab.c" break; case 688: /* nl: '\n' */ @@ -11951,7 +11983,7 @@ yyreduce: p->lineno += (yyvsp[0].num); p->column = 0; } -#line 11955 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11987 "mrbgems/mruby-compiler/core/y.tab.c" break; case 692: /* none: %empty */ @@ -11959,11 +11991,11 @@ yyreduce: { (yyval.nd) = 0; } -#line 11963 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11995 "mrbgems/mruby-compiler/core/y.tab.c" break; -#line 11967 "mrbgems/mruby-compiler/core/y.tab.c" +#line 11999 "mrbgems/mruby-compiler/core/y.tab.c" default: break; } From d95ebe4a2308ec40dcd6bc8893b28c76175220d7 Mon Sep 17 00:00:00 2001 From: HASUMI Hitoshi Date: Mon, 30 Mar 2026 16:00:41 +0900 Subject: [PATCH 24/27] Fix stack extension bug causing HardFault This patch fixes a bug in the stack extension logic that could cause a HardFault on certain configurations when the stack is reallocated to a new address. ## Background When the mruby VM's stack runs out, stack_extend_alloc() calls mrb_realloc to grow it. If reallocation moves the block to a new address, envadjust() adjusts all ci->stack pointers to point into the new allocation. ## The bug The bug happened under the configuration below: - MRB_INT64 on MRB_32BIT (`sizeof(mrb_value) == 16` because MRB_NO_BOXING is now mandatory) - Allocator with 8-byte alignment (eg. PICORB_ALLOC_ALIGN=8 in PicoRuby for Raspi Pico) The delta was computed via mrb_value* pointer subtraction: ```c ptrdiff_t delta = newbase - oldbase; // units of sizeof(mrb_value) ``` If : - Old address: 0x2004c508 - New address: 0x2004c510 (8-byte difference) The pointer subtraction truncated: 8 / 16 = 0. envadjust() was misleaded as `delta == 0` and returned early without adjusting any ci->stack pointers. The stbase was updated to the new address, but all stack pointers still pointed 8 bytes before it. Every register access was shifted, reading garbage, ultimately causing a HardFault. ## The fix Byte-level char* calculation instead of mrb_value* calculation: ```c ptrdiff_t off = (char*)newbase - (char*)oldbase; // ... ci->stack = (mrb_value*)((char*)ci->stack + off); ``` This ensures the adjustment is exact regardless of sizeof(mrb_value) and allocator alignment. --- src/vm.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/vm.c b/src/vm.c index a1f272a52..96d9266d8 100644 --- a/src/vm.c +++ b/src/vm.c @@ -134,19 +134,29 @@ static inline void envadjust(mrb_state *mrb, mrb_value *oldbase, mrb_value *newbase) { mrb_callinfo *ci = mrb->c->cibase; - ptrdiff_t delta = newbase - oldbase; + /* + * Byte-level calculation to avoid truncation when allocator alignment is + * smaller than sizeof(mrb_value). + * eg: MRB_NO_BOXING + MRB_INT64 with MRB_32BIT => sizeof(mrb_value)=16 + * And when memory allocator's alignment is 8 bytes + * Pointer subtraction on mrb_value* would truncate (8/16 -> 0). + * So, we use char* for pointer calculation to get the correct offset in bytes, + * then apply that offset to mrb_value* pointers. + */ + ptrdiff_t off = (char *)newbase - (char *)oldbase; - if (delta == 0) return; + if (off == 0) return; while (ci <= mrb->c->ci) { struct REnv *e = mrb_vm_ci_env(ci); + mrb_value *new_stack = (mrb_value *)((char *)ci->stack + off); + if (e) { mrb_assert(e->cxt == mrb->c && MRB_ENV_ONSTACK_P(e)); mrb_assert(e->stack == ci->stack); - - e->stack += delta; + e->stack = new_stack; } - ci->stack += delta; + ci->stack = new_stack; ci++; } } From b85c5208434595b137a90be410c1cabf1fbd6b9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20Hasi=C5=84ski?= Date: Mon, 30 Mar 2026 22:14:26 +0200 Subject: [PATCH 25/27] Remove stale self-corruption workaround in recvfrom_nonblock The s = self workaround and XXX comment in recvfrom_nonblock date back to the initial import of mruby-socket. The underlying bug where self became a SystemcallException inside ensure blocks has since been fixed. Verified that self correctly refers to the socket object in ensure blocks after exceptions from recvfrom. --- mrbgems/mruby-socket/mrblib/socket.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mrbgems/mruby-socket/mrblib/socket.rb b/mrbgems/mruby-socket/mrblib/socket.rb index 6bcc2b8fe..f350d6cd5 100644 --- a/mrbgems/mruby-socket/mrblib/socket.rb +++ b/mrbgems/mruby-socket/mrblib/socket.rb @@ -701,13 +701,11 @@ class UDPSocket < IPSocket # data, addr = sock.recvfrom_nonblock(1024) # def recvfrom_nonblock(*args) - s = self begin self._setnonblock(true) self.recvfrom(*args) ensure - # XXX: self is a SystemcallException here! (should be bug) - s._setnonblock(false) + self._setnonblock(false) end end From a6aa0fdb2483daee7cab02024b357f89c420cfa6 Mon Sep 17 00:00:00 2001 From: John Bampton Date: Wed, 1 Apr 2026 00:46:24 +1000 Subject: [PATCH 26/27] Dependabot: add cooldown to pre-commit ecosystem --- .github/dependabot.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 619235e9f..b81f66952 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -29,3 +29,5 @@ updates: pre-commit-hooks: patterns: - "*" + cooldown: + default-days: 7 From 141a8bc406b7f44d1aa803f7069ddb03e1328989 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Mar 2026 15:00:01 +0000 Subject: [PATCH 27/27] build(deps): bump https://github.com/rhysd/actionlint Bumps the pre-commit-hooks group with 1 update: [https://github.com/rhysd/actionlint](https://github.com/rhysd/actionlint). Updates `https://github.com/rhysd/actionlint` from v1.7.11 to 1.7.12 - [Release notes](https://github.com/rhysd/actionlint/releases) - [Changelog](https://github.com/rhysd/actionlint/blob/main/CHANGELOG.md) - [Commits](https://github.com/rhysd/actionlint/compare/v1.7.11...v1.7.12) --- updated-dependencies: - dependency-name: https://github.com/rhysd/actionlint dependency-version: 1.7.12 dependency-type: direct:production dependency-group: pre-commit-hooks ... Signed-off-by: dependabot[bot] --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e3f159611..3e59a26dd 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -85,7 +85,7 @@ repos: args: [--whitespaces-count, "2"] exclude: Makefile$ - repo: https://github.com/rhysd/actionlint - rev: v1.7.11 + rev: v1.7.12 hooks: - id: actionlint name: run actionlint