2008年4月21日

[ruby-list:44851] Re: [Q] Ruby のパーサについて

桑田です。
まつもとさん、お返事ありがとうございます。
まあ本採用はないとは思ってましたが、実現手段のほうも
なさそうで残念です。

> あるいは end の後ろに
> end # if
> とかコメントをつけて、その情報を使って整合性をチェックする別

> コマンドを用意するという手もありえるかもしれません。

これも考えなくはなかったのですが、Ruby のパーサでコメントを
とってくることはできないだろうと思って捨てました。
実際にはできるんでしょうか。できるならぜひ検討したいです。

--
makoto kuwata


On 4/20/08, Yukihiro Matsumoto <matz@xxxxx> wrote:
> まつもと ゆきひろです
>
> In message "Re: [ruby-list:44848] [Q] Ruby のパーサについて"
> on Sun, 20 Apr 2008 23:43:43 +0900, "Makoto Kuwata" <kwa@xxxxx>
> 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
>
> とか書けた、というのは知る人ぞ知る情報。
>
>

投稿者 xml-rpc : 2008年4月21日 23:02
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/72361
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。