@@ -2782,7 +2782,7 @@ rb_parser_ary_free(rb_parser_t *p, rb_parser_ary_t *ary)
27822782%type <node> f_marg f_rest_marg
27832783%type <node_masgn> f_margs
27842784%type <node> assoc_list assocs assoc undef_list backref string_dvar for_var
2785- %type <node_args> block_param opt_block_param block_param_def
2785+ %type <node_args> block_param opt_block_param_def block_param_def opt_block_param
27862786%type <id> do bv_decls opt_bv_decl bvar
27872787%type <node> lambda brace_body do_body
27882788%type <locations_lambda_body> lambda_body
@@ -5038,21 +5038,14 @@ block_param : f_arg ',' f_optarg(primary_value) ',' f_rest_arg opt_args_tail(blo
50385038 }
50395039 ;
50405040
5041- opt_block_param : none
5042- | block_param_def
5043- {
5044- p->command_start = TRUE;
5045- }
5046- ;
5041+ opt_block_param_def : none
5042+ | block_param_def
5043+ {
5044+ p->command_start = TRUE;
5045+ }
5046+ ;
50475047
5048- block_param_def : '|' opt_bv_decl '|'
5049- {
5050- p->max_numparam = ORDINAL_PARAM;
5051- p->ctxt.in_argdef = 0;
5052- $$ = 0;
5053- /*% ripper: block_var!(params!(Qnil,Qnil,Qnil,Qnil,Qnil,Qnil,Qnil), $:2) %*/
5054- }
5055- | '|' block_param opt_bv_decl '|'
5048+ block_param_def : '|' opt_block_param opt_bv_decl '|'
50565049 {
50575050 p->max_numparam = ORDINAL_PARAM;
50585051 p->ctxt.in_argdef = 0;
@@ -5061,6 +5054,13 @@ block_param_def : '|' opt_bv_decl '|'
50615054 }
50625055 ;
50635056
5057+ opt_block_param : /* none */
5058+ {
5059+ $$ = 0;
5060+ /*% ripper: params!(Qnil,Qnil,Qnil,Qnil,Qnil,Qnil,Qnil) %*/
5061+ }
5062+ | block_param
5063+ ;
50645064
50655065opt_bv_decl : '\n'?
50665066 {
@@ -5298,7 +5298,7 @@ brace_block : '{' brace_body '}'
52985298
52995299brace_body : {$$ = dyna_push(p);}[dyna]<vars>
53005300 max_numparam numparam it_id allow_exits
5301- opt_block_param [args] compstmt(stmts)
5301+ opt_block_param_def [args] compstmt(stmts)
53025302 {
53035303 int max_numparam = p->max_numparam;
53045304 ID it_id = p->it_id;
@@ -5318,7 +5318,7 @@ do_body : {
53185318 CMDARG_PUSH(0);
53195319 }[dyna]<vars>
53205320 max_numparam numparam it_id allow_exits
5321- opt_block_param [args] bodystmt
5321+ opt_block_param_def [args] bodystmt
53225322 {
53235323 int max_numparam = p->max_numparam;
53245324 ID it_id = p->it_id;
0 commit comments