Use user defined parameterizing rules value_expr

This commit is contained in:
ydah 2024-10-12 16:46:05 +09:00 committed by Yudai Takada
parent 7124c34f51
commit 0eb63c410e
Notes: git 2025-01-04 09:07:47 +00:00

35
parse.y
View File

@ -2989,6 +2989,14 @@ rb_parser_ary_free(rb_parser_t *p, rb_parser_ary_t *ary)
} }
; ;
%rule value_expr(value) <node>
: value
{
value_expr($1);
$$ = $1;
}
;
%rule words(begin, word_list) <node> %rule words(begin, word_list) <node>
: begin ' '+ word_list tSTRING_END : begin ' '+ word_list tSTRING_END
{ {
@ -3444,11 +3452,7 @@ defs_head : k_def singleton dot_or_colon
} }
; ;
expr_value : expr expr_value : value_expr(expr)
{
value_expr($1);
$$ = $1;
}
| error | error
{ {
$$ = NEW_ERROR(&@$); $$ = NEW_ERROR(&@$);
@ -4141,11 +4145,7 @@ after_rescue : lex_ctxt
} }
; ;
arg_value : arg arg_value : value_expr(arg)
{
value_expr($1);
$$ = $1;
}
; ;
aref_args : none aref_args : none
@ -4231,9 +4231,8 @@ opt_call_args : none
} }
; ;
call_args : command call_args : value_expr(command)
{ {
value_expr($1);
$$ = NEW_LIST($1, &@$); $$ = NEW_LIST($1, &@$);
/*% ripper: args_add!(args_new!, $:1) %*/ /*% ripper: args_add!(args_new!, $:1) %*/
} }
@ -4723,11 +4722,7 @@ primary : inline_primary
} }
; ;
primary_value : primary primary_value : value_expr(primary)
{
value_expr($1);
$$ = $1;
}
; ;
k_begin : keyword_begin k_begin : keyword_begin
@ -6699,11 +6694,7 @@ opt_f_block_arg : ',' f_block_arg
} }
; ;
singleton : var_ref singleton : value_expr(var_ref)
{
value_expr($1);
$$ = $1;
}
| '(' | '('
{ {
SET_LEX_STATE(EXPR_BEG); SET_LEX_STATE(EXPR_BEG);