diff options
| author | Nobuyoshi Nakada <[email protected]> | 2016-08-13 13:56:14 +0900 |
|---|---|---|
| committer | Nobuyoshi Nakada <[email protected]> | 2016-08-13 13:56:14 +0900 |
| commit | bdd7e2bc8caf737143c18270abf7325c3540b7b6 (patch) | |
| tree | 2bcf9e272247d8616e2e800278651dce55f11c77 /mrbgems/mruby-compiler | |
| parent | bee34fb9bddb850400d56fd34def64a4d5ed5b95 (diff) | |
| download | mruby-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')
| -rw-r--r-- | mrbgems/mruby-compiler/core/parse.y | 38 |
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 |
