From: Yukihiro Matsumoto Date: 2012-02-27T13:12:26+09:00 Subject: [ruby-dev:45292] Re: Question about block parameter syntax まつもと ゆきひろです 添付のパッチで直りそう。だれか確認してもらえませんか? In message "Re: [ruby-dev:45290] Question about block parameter syntax" on Sun, 26 Feb 2012 13:59:11 +0900, SASADA Koichi writes: | | ささだです. | | 1.times{ | | | x, | y| | } | |は通りますが, | | 1.times{ | | | x, | y | | | } | |は通りません.閉じる | が行頭に来るのがまずいようです.これは,そういう |もんでしょうか.下記のように,ブロックパラメータにコメント入れようと思っ |て気づきました. | | 1.times{ | | | x, # xxx | y # yyy | | # <- syntax error, unexpected '\n', expecting '|' | } | |-- |// SASADA Koichi at atdot dot net diff --git a/parse.y b/parse.y index 3c4f4ce..bde683f 100644 --- a/parse.y +++ b/parse.y @@ -3727,13 +3727,16 @@ block_param_def : '|' opt_bv_decl '|' ; -opt_bv_decl : none - | ';' bv_decls +opt_bv_decl : opt_nl + { + $$ = 0; + } + | opt_nl ';' bv_decls opt_nl { /*%%%*/ $$ = 0; /*% - $$ = $2; + $$ = $3; %*/ } ; @@ -3788,7 +3791,7 @@ lambda : { } ; -f_larglist : '(' f_args opt_bv_decl rparen +f_larglist : '(' f_args opt_bv_decl ')' { /*%%%*/ $$ = $2;