From: Minero Aoki Date: 2002-07-25T18:24:43+09:00 Subject: [ruby-dev:17823] m (a){....} あおきです。 意図的のような気もしますが、CVS HEAD 版で m (a) { nil } は通るのですが m (a){ nil } が通りません。 コード整理しつつ修正したパッチを付けます。 ------------------------------------------------------------------- 青木峰郎 Index: parse.y =================================================================== RCS file: /home/aamine/cvs/ruby/ruby/parse.y,v retrieving revision 1.201 diff -u -r1.201 parse.y --- parse.y 17 Jul 2002 21:49:40 -0000 1.201 +++ parse.y 25 Jul 2002 09:22:39 -0000 @@ -3850,12 +3850,12 @@ 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 /*&& space_seen*/) + c = tLBRACE_ARG; /* block (expr) */ + else + c = tLBRACE; /* hash */ COND_PUSH(0); CMDARG_PUSH(0); lex_state = EXPR_BEG;