summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-06-12 09:35:19 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-06-12 09:35:19 +0000
commit83687c4eb47e2bcbe463d097317d068d1dd0b734 (patch)
tree003e23f99c0a3e8587360aa2a6282c702b564fc5 /parse.y
parent1bc6f594d3de8dbfb5c165835eaec99bd49327c8 (diff)
nested local variables
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@240 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y4
1 files changed, 3 insertions, 1 deletions
diff --git a/parse.y b/parse.y
index a070f4470a..13a0264b22 100644
--- a/parse.y
+++ b/parse.y
@@ -236,6 +236,7 @@ static void top_local_setup();
%%
program : {
+ $<vars>$ = the_dyna_vars;
lex_state = EXPR_BEG;
top_local_init();
NEW_CREF0(); /* initialize constant c-ref */
@@ -248,6 +249,7 @@ program : {
top_local_setup();
cur_cref = 0;
class_nest = 0;
+ the_dyna_vars = $<vars>1;
}
compstmt : stmts opt_terms
@@ -3424,7 +3426,7 @@ assignable(id, val)
}
else{
if (!dyna_var_defined(id)) {
- dyna_var_asgn(0, id);
+ dyna_var_asgn(id, 0);
}
lhs = NEW_DASGN(id, val);
}