From: "Nobuyoshi.Nakada" Date: 2001-03-07T10:36:33+09:00 Subject: [ruby-dev:12384] `() while expr' is void なかだです。 () while expr が一回も実行されないというか、抹消されてしまう のは仕様でしょうか。でないとすれば、こうかなと思いますが。 Index: parse.y =================================================================== RCS file: /home/cvs/ruby/src/ruby/parse.y,v retrieving revision 1.90 diff -u -2 -p -r1.90 parse.y --- parse.y 2001/03/06 08:17:16 1.90 +++ parse.y 2001/03/07 01:31:26 @@ -361,14 +361,9 @@ stmt : kALIAS fitem {lex_state = EXPR_F { value_expr($3); - if ($1) { - if (nd_type($1) == NODE_BEGIN) { - $$ = NEW_WHILE(cond($3), $1->nd_body, 0); - } - else { - $$ = NEW_WHILE(cond($3), $1, 1); - } + if ($1 && nd_type($1) == NODE_BEGIN) { + $$ = NEW_WHILE(cond($3), $1->nd_body, 0); } else { - $$ = 0; + $$ = NEW_WHILE(cond($3), $1, 1); } } @@ -376,14 +371,9 @@ stmt : kALIAS fitem {lex_state = EXPR_F { value_expr($3); - if ($1) { - if (nd_type($1) == NODE_BEGIN) { - $$ = NEW_UNTIL(cond($3), $1->nd_body, 0); - } - else { - $$ = NEW_UNTIL(cond($3), $1, 1); - } + if ($1 && nd_type($1) == NODE_BEGIN) { + $$ = NEW_UNTIL(cond($3), $1->nd_body, 0); } else { - $$ = 0; + $$ = NEW_UNTIL(cond($3), $1, 1); } } -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦