From: Minero Aoki Date: 2002-08-05T07:16:24+09:00 Subject: [ruby-dev:17920] Re: next parser (Re: parenthesize argument(s) for future version) あおきです。 In mail "[ruby-dev:17904] Re: next parser (Re: parenthesize argument(s) for future version)" matz@ruby-lang.org (Yukihiro Matsumoto) wrote: > まつもと ゆきひろです > |手書きパーサの「きめこまかな指定」とは、例えばエラー処理 > |とかでしょうか。 > う大域変数を使うしかないんです。ですが、再帰下降構文解析なら > 各ルールが関数になりますから、関数の引数として下向きの情報 > を渡せます。それが「きめこまかな指定」の意味です。 文脈情報を渡せるってことでしたか。納得しました。 > |でも、パーサをモジュール化してユーザが使えるようにするという > |話がありませんでしたっけ。とすると、yyparse を再帰呼び出し > |しただけでデッドロックしませんか? > > yyparseを再帰呼出しを許す形でモジュール化するつもりはありま > せんでした。パーズするとパーズツリーを返すようなモジュールに > なるんじゃないかと思ってました。 うーむ、そうすると、そのモジュールを利用して ruby-mode とか ruby indent とか埋め込みドキュメントのプロセッサとか irb とか 作れますか? そういうものにはなんとなくストリーム系の API が いいのかなあと思ってたんですが……。 それに、ruby-mode とかで使うときには ruby_dyna_vars などをいじ られると困ると思うんです。つまり、そもそもグローバル変数をさわ らないような作りにすべきなんではないでしょうか。少なくとも、 パース開始前に値を取っておいてパース後に戻しても十分なものばかり だと思います。 # いちおう対案も用意してはあるんですが、 # まずは意見を聞いてからってことで (日和ってる……) ------------------------------------------------------------------- 青木峰郎