From: keiju@... (Keiju ISHITSUKA) Date: 2000-10-20T14:26:11+09:00 Subject: [ruby-list:25539] Re: =begin, =end けいじゅ@日本ラショナルソフトウェアです. In [ruby-list :25524 ] the message: "[ruby-list:25524] Re: =begin, =end ", on Oct/19 23:35(JST) MoonWolf writes: >MoonWolfです。 >>Ruby の script から 埋め込みドキュメント (=begin, =end) を >>取り出すのには、どの様にすればよいでしょうか ? > >もう解決されているかもしれませんが、スクリプトが出来たので添付します。 >irbが使っているRubyLexを使っているのでヒアドキュメント中に=endがあって >も正常にドキュメントを取り出せます。 うーむ. 知らないうちに使われている... >ちょっと気になった点、RUBYLIB/irb/ruby-lex.rbの336行付近の >> getc; getc; getc; getc >は >> gets >に変更しないと=end以降の文字が得られません。 >これってバグでしょうか?>石塚さん うーん. バグですね... このままだと =end 以降を通常のRubyの式だと見なしています.... =end foo みたいな感じだと, Ruby本体で正しく評価してくれるのですが, =end if cond 見たいに書くと動作しませんね... =end 以降に文字が書けるようになったのって, 比較的最近なんでしょうね? # だいぶ以前からRubyの文法変更についていっていない私... 報告にあった通りですが, 一応パッチを. #--- *** ruby-lex.rb.~12~ Tue Aug 15 15:08:03 2000 --- ruby-lex.rb Fri Oct 20 14:21:55 2000 *************** *** 333,339 **** until peek_equal?("=end") && peek(4) =~ /\s/ until getc == "\n"; end end ! getc; getc; getc; getc @ltype = nil Token(TkRD_COMMENT) end --- 333,339 ---- until peek_equal?("=end") && peek(4) =~ /\s/ until getc == "\n"; end end ! gets @ltype = nil Token(TkRD_COMMENT) end __ ..............................石塚 圭樹@日本ラショナルソフトウェア... ----------------------------------->> e-mail: keiju@rational.com <<---