diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-08-13 02:10:11 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-08-13 02:10:11 +0000 |
commit | 2e0d97cb7a33844347de6dc494c715e585d17701 (patch) | |
tree | c7d67b9dc63c2534b4f02c5f09fef482de30733c /parse.y | |
parent | a4de31c32205e4cff9ecaa1d896a5dedfcfd5560 (diff) | |
download | ruby-2e0d97cb7a33844347de6dc494c715e585d17701.tar.gz |
parse.y: chained assignments
* parse.y (command_asgn, arg): fix syntax errors with chained
assignment with op assign. [Bug #12669]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r-- | parse.y | 44 |
1 files changed, 22 insertions, 22 deletions
@@ -1284,6 +1284,28 @@ stmt : keyword_alias fitem {SET_LEX_STATE(EXPR_FNAME|EXPR_FITEM);} fitem $$ = dispatch2(massign, $1, $3); %*/ } + | lhs '=' mrhs + { + value_expr($3); + $$ = node_assign($1, $3); + } + | mlhs '=' mrhs_arg + { + /*%%%*/ + $1->nd_value = $3; + $$ = $1; + /*% + $$ = dispatch2(massign, $1, $3); + %*/ + } + | expr + ; + +command_asgn : lhs '=' command_rhs + { + value_expr($3); + $$ = node_assign($1, $3); + } | var_lhs tOP_ASGN command_rhs { value_expr($3); @@ -1335,28 +1357,6 @@ stmt : keyword_alias fitem {SET_LEX_STATE(EXPR_FNAME|EXPR_FITEM);} fitem $1 = var_field($1); $$ = backref_assign_error($1, node_assign($1, $3)); } - | lhs '=' mrhs - { - value_expr($3); - $$ = node_assign($1, $3); - } - | mlhs '=' mrhs_arg - { - /*%%%*/ - $1->nd_value = $3; - $$ = $1; - /*% - $$ = dispatch2(massign, $1, $3); - %*/ - } - | expr - ; - -command_asgn : lhs '=' command_rhs - { - value_expr($3); - $$ = node_assign($1, $3); - } ; command_rhs : command_call %prec tOP_ASGN |