From: matz@... (Yukihiro Matsumoto) Date: 2001-01-19T10:33:32+09:00 Subject: [ruby-list:27234] Re: do ... end & { ... } まつもと ゆきひろです In message "[ruby-list:27229] Re: do ... end & { ... }" on 01/01/19, jca02266@nifty.ne.jp writes: |元もと、do .. end と { .. } の結合強度の違いをなくそうという |話がありませんでした? 「結合強度の違い」をなくす気はありません。 だから foo bar do ... end => foo(bar) do ... end foo bar { ... } => foo(bar{...}) の違いはなくなりません。 |> foobar 100 do 0 end # => foobar called with block. |> # foobar 100 { 0 } # => parse error. | |これらの違いの必要性がよくわからないのです。 後者は foo bar { ... } => foo(bar{...}) のルールにより foo(100{...}) と解釈されますが、100(リテラル)にはブロックがつかないのでエ ラーということです。これも変わらないと思います。リテラルだっ たらバックトラックして...というルールはyaccで書けないんでは ないかな。書けるなら同じ技法で a +1, 2 を解決できるのですが。 まつもと ゆきひろ /:|)