[#44861] Ruby 1.9のARGVのエンコーディング — rubikitch@...

るびきちです。

17 messages 2008/04/26
[#44862] Re: Ruby 1.9のARGVのエンコーディング — Yukihiro Matsumoto <matz@...> 2008/04/26

まつもと ゆきひろです

[#44863] Re: Ruby 1.9のARGVのエンコーディング — "NARUSE, Yui" <naruse@...> 2008/04/26

成瀬です、パッチ用意してから投げようと思ったら出遅れた、

[#44864] Re: Ruby 1.9のARGVのエンコーディング — Yukihiro Matsumoto <matz@...> 2008/04/26

まつもと ゆきひろです

[#44865] Re: Ruby 1.9のARGVのエンコーディング — "U.Nakamura" <usa@...> 2008/04/28

こんにちは、なかむら(う)です。

[#44866] Re: Ruby 1.9のARGVのエンコーディング — "NARUSE, Yui" <naruse@...> 2008/04/28

成瀬です。

[#44868] Re: Ruby 1.9のARGVのエンコーディング — "U.Nakamura" <usa@...> 2008/04/30

こんにちは、なかむら(う)です。

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

From: "Makoto Kuwata" <kwa@...>
Date: 2008-04-20 14:43:43 UTC
List: ruby-list #44848
桑田といいます。

Ruby のパーサについて質問があります。
Q1. コマンドラインオプションの有無で、予約語を追加したり
    しなかったりを制御することはできますか。
Q2. 拡張ライブラリとして、Ruby のパーサ関数を置き変える
    ことはできますか。


質問の背景:

Ruby のパーサに、新しい予約語として endif や endfor や enddef
などを追加するパッチを作成しました。
http://rubyforge.org/projects/mismatched-end/
http://mismatched-end.rubyforge.org/

これは、end の閉じ忘れがあったときに Ruby ではそれを探し出すのが
非常にコストがかかるという問題の解決を目指して作られました。
詳しくは
http://d.hatena.ne.jp/kwatch/20080420/1208657796
をご覧下さい。

個人的には役にたつパッチだと思ってますが、なにせ新たに予約語を
11 個も追加するものですから、Ruby 本体に取り入れてもらえる
可能性はまずないと思います。
また Ruby ソースにパッチをあててコンパイルする必要があるため、
導入するにも少し敷居が高いかなと感じています。
(初心者にこそ使ってもらいたいパッチなので、導入の敷居をなんとか
 下げられないものかと検討しています。)

そこで、たとえばコマンドラインオプション -d が指定されたときのみ
予約語を追加するとか、PHP における QIQ のように、拡張ライブラリで
パーサ関数を乗っ取るようなことはできないかと考えています。
そこで冒頭のような質問をさせていただきました。

lexer や parser の仕組みを考えると難しいような気もしますが、
なにかヒントでもありましたらよろしくお願いします。

--
regards,
makoto kuwata

In This Thread

Prev Next