From 0eb63c410ea0324412c0376e5cf2166e81e32970 Mon Sep 17 00:00:00 2001 From: ydah Date: Sat, 12 Oct 2024 16:46:05 +0900 Subject: [PATCH] Use user defined parameterizing rules `value_expr` --- parse.y | 35 +++++++++++++---------------------- 1 file changed, 13 insertions(+), 22 deletions(-) diff --git a/parse.y b/parse.y index 92875253c4..2bd06cb390 100644 --- a/parse.y +++ b/parse.y @@ -2989,6 +2989,14 @@ rb_parser_ary_free(rb_parser_t *p, rb_parser_ary_t *ary) } ; +%rule value_expr(value) + : value + { + value_expr($1); + $$ = $1; + } + ; + %rule words(begin, word_list) : 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);