Use user defined parameterizing rules asgn(lhs, rhs)
This commit is contained in:
parent
1e330dd5ec
commit
4fa68953fb
Notes:
git
2025-01-04 09:59:05 +00:00
26
parse.y
26
parse.y
@ -2919,6 +2919,14 @@ rb_parser_ary_free(rb_parser_t *p, rb_parser_ary_t *ary)
|
||||
/*
|
||||
* parameterizing rules
|
||||
*/
|
||||
%rule asgn(lhs, rhs) <node>
|
||||
: lhs '=' lex_ctxt rhs
|
||||
{
|
||||
$$ = node_assign(p, (NODE *)$lhs, $rhs, $lex_ctxt, &@$);
|
||||
/*% ripper: assign!($:1, $:4) %*/
|
||||
}
|
||||
;
|
||||
|
||||
%rule backref_with(value) <node>
|
||||
: backref tOP_ASGN lex_ctxt value
|
||||
{
|
||||
@ -3252,11 +3260,7 @@ stmt : keyword_alias fitem {SET_LEX_STATE(EXPR_FNAME|EXPR_FITEM);} fitem
|
||||
$$ = node_assign(p, (NODE *)$1, $4, $3, &@$);
|
||||
/*% ripper: massign!($:1, $:4) %*/
|
||||
}
|
||||
| lhs '=' lex_ctxt mrhs
|
||||
{
|
||||
$$ = node_assign(p, $1, $4, $3, &@$);
|
||||
/*% ripper: assign!($:1, $:4) %*/
|
||||
}
|
||||
| asgn(lhs, mrhs)
|
||||
| mlhs '=' lex_ctxt mrhs_arg modifier_rescue
|
||||
after_rescue stmt[resbody]
|
||||
{
|
||||
@ -3281,11 +3285,7 @@ stmt : keyword_alias fitem {SET_LEX_STATE(EXPR_FNAME|EXPR_FITEM);} fitem
|
||||
}
|
||||
;
|
||||
|
||||
command_asgn : lhs '=' lex_ctxt command_rhs
|
||||
{
|
||||
$$ = node_assign(p, $1, $4, $3, &@$);
|
||||
/*% ripper: assign!($:1, $:4) %*/
|
||||
}
|
||||
command_asgn : asgn(lhs, command_rhs)
|
||||
| var_lhs tOP_ASGN lex_ctxt command_rhs
|
||||
{
|
||||
$$ = new_op_assign(p, $1, $2, $4, $3, &@$);
|
||||
@ -3852,11 +3852,7 @@ reswords : keyword__LINE__ | keyword__FILE__ | keyword__ENCODING__
|
||||
| keyword_while | keyword_until
|
||||
;
|
||||
|
||||
arg : lhs '=' lex_ctxt arg_rhs
|
||||
{
|
||||
$$ = node_assign(p, $1, $4, $3, &@$);
|
||||
/*% ripper: assign!($:1, $:4) %*/
|
||||
}
|
||||
arg : asgn(lhs, arg_rhs)
|
||||
| var_lhs tOP_ASGN lex_ctxt arg_rhs
|
||||
{
|
||||
$$ = new_op_assign(p, $1, $2, $4, $3, &@$);
|
||||
|
Loading…
x
Reference in New Issue
Block a user