summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-11-10 06:47:11 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-11-10 06:47:11 +0000
commit04c7225b78f327aa0645d0f468e7b6d2e20a4d1e (patch)
tree3fa76d26a3de05bb939399c39eb9161c641e1e1b /parse.y
parent28412851825d1bc7c8e885387e1f1b257cf8a0cf (diff)
19991110
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@561 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y9
1 files changed, 7 insertions, 2 deletions
diff --git a/parse.y b/parse.y
index b971b21ac7..435221d8d8 100644
--- a/parse.y
+++ b/parse.y
@@ -156,6 +156,7 @@ static void top_local_setup();
kUNLESS_MOD
kWHILE_MOD
kUNTIL_MOD
+ kRESCUE_MOD
kALIAS
kDEFINED
klBEGIN
@@ -212,7 +213,7 @@ static void top_local_setup();
%nonassoc kDO
%nonassoc kDO2
-%left kIF_MOD kUNLESS_MOD kWHILE_MOD kUNTIL_MOD
+%left kIF_MOD kUNLESS_MOD kWHILE_MOD kUNTIL_MOD kRESCUE_MOD
%left kOR kAND
%right kNOT
%nonassoc kDEFINED
@@ -347,6 +348,10 @@ stmt : block_call
$$ = NEW_UNTIL(cond($3), $1, 1);
}
}
+ | stmt kRESCUE_MOD expr
+ {
+ $$ = NEW_RESCUE($1, NEW_RESBODY(0,$3,0), 0);
+ }
| klBEGIN
{
if (cur_mid || in_single) {
@@ -607,7 +612,7 @@ reswords : k__LINE__ | k__FILE__ | klBEGIN | klEND
| kFOR | kIF_MOD | kIN | kMODULE | kNEXT | kNIL | kNOT
| kOR | kREDO | kRESCUE | kRETRY | kRETURN | kSELF | kSUPER
| kTHEN | kTRUE | kUNDEF | kUNLESS_MOD | kUNTIL_MOD | kWHEN
- | kWHILE_MOD | kYIELD
+ | kWHILE_MOD | kYIELD | kRESCUE_MOD
arg : lhs '=' arg
{