summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authoraamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-07-26 03:13:06 +0000
committeraamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-07-26 03:13:06 +0000
commitd5dc032e33c149daa38e1e9b6b3cef3e580355e1 (patch)
treedaa3fa2035f6721a7acba9d00cb429f6d2b1ad47 /parse.y
parentabfbbcf8e3c49d0f6890973a13affc643e17ef07 (diff)
* parse.y (yylex): modify to accept a code like "m (a){...}".
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2652 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y12
1 files changed, 6 insertions, 6 deletions
diff --git a/parse.y b/parse.y
index 14e38347cf..2ca171f332 100644
--- a/parse.y
+++ b/parse.y
@@ -3850,12 +3850,12 @@ yylex()
return c;
case '{':
- if (!IS_ARG()) {
- if (space_seen && lex_state == EXPR_ENDARG)
- c = tLBRACE_ARG;
- if (lex_state != EXPR_END && lex_state != EXPR_ENDARG)
- c = tLBRACE;
- }
+ if (IS_ARG() || lex_state == EXPR_END)
+ c = '{'; /* block (primary) */
+ else if (lex_state == EXPR_ENDARG)
+ c = tLBRACE_ARG; /* block (expr) */
+ else
+ c = tLBRACE; /* hash */
COND_PUSH(0);
CMDARG_PUSH(0);
lex_state = EXPR_BEG;