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>
: begin ' '+ word_list tSTRING_END
{
@ -3444,11 +3452,7 @@ defs_head : k_def singleton dot_or_colon
}
;
expr_value : expr
{
value_expr($1);
$$ = $1;
}
expr_value : value_expr(expr)
| error
{
$$ = NEW_ERROR(&@$);
@ -4141,11 +4145,7 @@ after_rescue : lex_ctxt
}
;
arg_value : arg
{
value_expr($1);
$$ = $1;
}
arg_value : value_expr(arg)
;
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, &@$);
/*% ripper: args_add!(args_new!, $:1) %*/
}
@ -4723,11 +4722,7 @@ primary : inline_primary
}
;
primary_value : primary
{
value_expr($1);
$$ = $1;
}
primary_value : value_expr(primary)
;
k_begin : keyword_begin
@ -6699,11 +6694,7 @@ opt_f_block_arg : ',' f_block_arg
}
;
singleton : var_ref
{
value_expr($1);
$$ = $1;
}
singleton : value_expr(var_ref)
| '('
{
SET_LEX_STATE(EXPR_BEG);