[ruby-dev:45292] Re: Question about block parameter syntax

From: Yukihiro Matsumoto <matz@...>
Date: 2012-02-27 04:12:26 UTC
List: ruby-dev #45292
まつもと ゆきひろです

添付のパッチで直りそう。だれか確認してもらえませんか?

In message "Re: [ruby-dev:45290] Question about block parameter syntax"
    on Sun, 26 Feb 2012 13:59:11 +0900, SASADA Koichi <[email protected]> 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;

In This Thread