summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-compiler/core/parse.y
diff options
context:
space:
mode:
authorNobuyoshi Nakada <[email protected]>2016-08-13 13:56:14 +0900
committerNobuyoshi Nakada <[email protected]>2016-08-13 13:56:14 +0900
commitbdd7e2bc8caf737143c18270abf7325c3540b7b6 (patch)
tree2bcf9e272247d8616e2e800278651dce55f11c77 /mrbgems/mruby-compiler/core/parse.y
parentbee34fb9bddb850400d56fd34def64a4d5ed5b95 (diff)
downloadmruby-bdd7e2bc8caf737143c18270abf7325c3540b7b6.tar.gz
mruby-bdd7e2bc8caf737143c18270abf7325c3540b7b6.zip
parse.y: fix chained assignments
fix syntax errors with chained assignment with op assign. reported [Bug:12669] in bugs.ruby-lang.org fixed in CRuby 2.4.
Diffstat (limited to 'mrbgems/mruby-compiler/core/parse.y')
-rw-r--r--mrbgems/mruby-compiler/core/parse.y38
1 files changed, 19 insertions, 19 deletions
diff --git a/mrbgems/mruby-compiler/core/parse.y b/mrbgems/mruby-compiler/core/parse.y
index ec3d10682..c8fc79297 100644
--- a/mrbgems/mruby-compiler/core/parse.y
+++ b/mrbgems/mruby-compiler/core/parse.y
@@ -1318,6 +1318,25 @@ stmt : keyword_alias fsym {p->lstate = EXPR_FNAME;} fsym
{
$$ = new_masgn(p, $1, $3);
}
+ | lhs '=' mrhs
+ {
+ $$ = new_asgn(p, $1, new_array(p, $3));
+ }
+ | mlhs '=' arg_value
+ {
+ $$ = new_masgn(p, $1, $3);
+ }
+ | mlhs '=' mrhs
+ {
+ $$ = new_masgn(p, $1, new_array(p, $3));
+ }
+ | expr
+ ;
+
+command_asgn : lhs '=' command_rhs
+ {
+ $$ = new_asgn(p, $1, $3);
+ }
| var_lhs tOP_ASGN command_rhs
{
$$ = new_op_asgn(p, $1, $2, $3);
@@ -1348,25 +1367,6 @@ stmt : keyword_alias fsym {p->lstate = EXPR_FNAME;} fsym
backref_error(p, $1);
$$ = new_begin(p, 0);
}
- | lhs '=' mrhs
- {
- $$ = new_asgn(p, $1, new_array(p, $3));
- }
- | mlhs '=' arg_value
- {
- $$ = new_masgn(p, $1, $3);
- }
- | mlhs '=' mrhs
- {
- $$ = new_masgn(p, $1, new_array(p, $3));
- }
- | expr
- ;
-
-command_asgn : lhs '=' command_rhs
- {
- $$ = new_asgn(p, $1, $3);
- }
;
command_rhs : command_call %prec tOP_ASGN