diff options
| author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2026-03-01 10:30:31 +0900 |
|---|---|---|
| committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2026-03-01 12:04:38 +0900 |
| commit | 504cf455fb17642a5ddb206fc14d01a7a4b0566f (patch) | |
| tree | b4135ac680f81b0fffedbff64e90dc4aa769641f /parse.y | |
| parent | 851a10bcb582211ac47101f0d1baf0a109e74200 (diff) | |
parse.y: Extract f_empty_arg
Diffstat (limited to 'parse.y')
| -rw-r--r-- | parse.y | 16 |
1 files changed, 8 insertions, 8 deletions
@@ -2778,7 +2778,7 @@ rb_parser_ary_free(rb_parser_t *p, rb_parser_ary_t *ary) %type <node> var_ref var_lhs %type <node> command_rhs arg_rhs %type <node> command_asgn mrhs mrhs_arg superclass block_call block_command -%type <node_args> f_arglist f_opt_paren_args f_paren_args f_args +%type <node_args> f_arglist f_opt_paren_args f_paren_args f_args f_empty_arg %type <node_args_aux> f_arg f_arg_item %type <node> f_marg f_rest_marg %type <node_masgn> f_margs @@ -6257,9 +6257,14 @@ superclass : '<' ; f_opt_paren_args: f_paren_args - | /* none */ + | f_empty_arg { p->ctxt.in_argdef = 0; + } + ; + +f_empty_arg : /* none */ + { $$ = new_args_tail(p, 0, 0, 0, &@$); $$ = new_args(p, 0, 0, 0, 0, $$, &@$); /*% ripper: params!(Qnil, Qnil, Qnil, Qnil, Qnil, Qnil, Qnil) %*/ @@ -6382,12 +6387,7 @@ f_args : f_arg[pre] ',' f_opt_arg(arg_value)[opt] ',' f_rest_arg[rest] opt_args $$ = new_args(p, 0, 0, 0, 0, $tail, &@$); /*% ripper: params!(Qnil, Qnil, Qnil, Qnil, *$:tail[0..2]) %*/ } - | /* none */ - { - $$ = new_args_tail(p, 0, 0, 0, &@$); - $$ = new_args(p, 0, 0, 0, 0, $$, &@$); - /*% ripper: params!(Qnil, Qnil, Qnil, Qnil, Qnil, Qnil, Qnil) %*/ - } + | f_empty_arg ; args_forward : tBDOT3 |
