From: kwa@... Date: 2008-04-21T23:02:26+09:00 Subject: [ruby-list:44851] Re: [Q] Ruby のパーサについて 桑田です。 まつもとさん、お返事ありがとうございます。 まあ本採用はないとは思ってましたが、実現手段のほうも なさそうで残念です。 > あるいは end の後ろに > end # if > とかコメントをつけて、その情報を使って整合性をチェックする別 > コマンドを用意するという手もありえるかもしれません。 これも考えなくはなかったのですが、Ruby のパーサでコメントを とってくることはできないだろうと思って捨てました。 実際にはできるんでしょうか。できるならぜひ検討したいです。 -- makoto kuwata On 4/20/08, Yukihiro Matsumoto wrote: > まつもと ゆきひろです > > In message "Re: [ruby-list:44848] [Q] Ruby のパーサについて" > on Sun, 20 Apr 2008 23:43:43 +0900, "Makoto Kuwata" > writes: > > |Ruby のパーサについて質問があります。 > |Q1. コマンドラインオプションの有無で、予約語を追加したり > | しなかったりを制御することはできますか。 > |Q2. 拡張ライブラリとして、Ruby のパーサ関数を置き変える > | ことはできますか。 > > ご推察の通り、現在の実装ではパーサーを動的に変えたり予約語を > 追加したりということは簡単にはできません。残念ながら。 > > もっとも、コマンドラインオプションや拡張ライブラリによって言 > 語そのものが変質してしまうというのは、個人的に好みではないの > で、たとえ容易であったとしても、採用される率は高くなさそうで > すが。 > > |Ruby のパーサに、新しい予約語として endif や endfor や enddef > |などを追加するパッチを作成しました。 > |http://rubyforge.org/projects/mismatched-end/ > |http://mismatched-end.rubyforge.org/ > | > |これは、end の閉じ忘れがあったときに Ruby ではそれを探し出すのが > |非常にコストがかかるという問題の解決を目指して作られました。 > > インデント情報を使ってendの不整合を見つけやすくするという試 > みがあった(昨年のRubyKaigiで発表された)と聞いてますが、その > 後の消息を知りませんね。取り込んでもよいと思ってたのに。 > > あるいは end の後ろに > > end # if > > とかコメントをつけて、その情報を使って整合性をチェックする別 > コマンドを用意するという手もありえるかもしれません。 > > まつもと ゆきひろ /:|) > p.s. > > 最初期のRubyは > > if cond > ... > end if > > とか書けた、というのは知る人ぞ知る情報。 > >