新井です。

RDのメソッドインデックスに関して自分の中で大体案が固まってき
ました。

  --- Class#method(arg1, arg2, ...)
      description...

という"---"によるDESCLISTを提案します。("---"は単なる例です。
Baseline下げすぎかなとも思うので)

ただし、既存のDESCLISTである ":" との違いは、

・エイリアスの表現が可能。

  --- Class#method1
  --- Class#method2
      description...

  (これは、":"にも欲しい)

・メソッド名部分だけをラベルと見倣す

  "---" の後のSTRINGLINEのうち空白または開き括弧"("までをラ
  ベルと見倣す。したがって、

  --- Class#method(arg1, arg2)

  に対するリファレンスは、((<Class#method>)) と書く。

  ラベル "Class#method" の部分に関してRDtoolのパーサは一切特
  別扱いしない。つまり、"Class"の部分がクラス名であることや
  "#"がインスタンスメソッドを表すことを意識しない。
  (rd2xxx-lib.rbは意識しても良い。rd2texi-lib.rbを作ったとき
  意識せざるを得ないので)

といった感じです。開き括弧"("は特別扱いしない方が制約が少な
くて良いかも知れません。その場合
  --- Class#method (arg1, arg2)
や、
  --- Class#method arg1, arg2

という書き方になります。結局最初の単語だけをラベルにした
DESCLISTです。Rubyのメソッドインデックスの実現はこれだけで十
分であると自分の中でほぼ結論付けました。(ただ、Texinfoに
変換することを考えると、もう少しありそう)

その代わり、
  クラスメソッド:       --- Class.method
  インスタンスメソッド: --- Class#method
  クラス定数:           --- Class::Const
  ネストしたクラスのメソッド:
                        --- Class1::Class2.method
  関数:                 --- function#method (または --- method)
  演算子形式のメソッド:
                        --- Class#[]=(arg1, arg2)
                        --- Class#+(arg)
  グローバル変数:       --- $var

などの*慣習*を提案します。

以上でとりあえず、現在執筆中Ruby/Tkのマニュアルは書けると思
います。(この辺が決まらないとこれ以上進まない)

以下、ちょっとしたRDに対する要望。

「WHITELINEはわかりにくい」

DESCLISTで、説明文の段落が複数あると間にWHITELINEを挿入しな
ければなりませんが、スペースだから見えないんです。これは、
DESCLISTを書きにくくしてしまうように思います。(私は行末の余
計な空白を消したくなる人間です^^;)

で、

・行頭の単体の";"または"#"もWHITELINEとして扱う

というのも提案します。これらの文字にこだわるのは、Verbatimで
rubyスクリプトを書いたときに

   require "hoge.rb"
;
   hogehoge = "hoge"
;
   p hogehoge

のように、WHITELINE文字があっても、そのまま切り出してrubyス
クリプトとして実行できるからです。

さらに、

・RDにコメントが欲しい

  行頭が"###"で始まる行をコメントとして扱うなんてのは?

以上言いたいこと言ってますが。いかがでしょうか?(って
ruby-talkに書かなきゃダメ?^^;)

最後にrdtool-0.5.2に対するパッチを付けます。
修正の順に
・[REQ] 行頭の;をWHITELINEにする
・[BUG] Verbatimの中にWHITELINEを入れると[BUG]と言われるバグの修正
・[REQ] 行頭の###をコメントにする
・[BUG] (('a')) ... (('b')) とすると 「a')) ... (('b」がVerbになる
です。("--- method"はまだ修正中。その前に意見を聞こうと思いまして)


diff -ru rdtool-0.5.2/rd/rdblockparser.ry rdtool-0.5.2.fix/rd/rdblockparser.ry --- rdtool-0.5.2/rd/rdblockparser.ry Sat Nov 6 16:42:10 1999 +++ rdtool-0.5.2.fix/rd/rdblockparser.ry Sat Dec 25 03:18:17 1999 @@ -174,7 +174,7 @@ return :BLANKLINE end end - when /^\s+$/ + when /^\s+$/, /^;\s*$/ @src.shift if destructive @rylval = ":WHITELINE" if destructive return :WHITELINE @@ -273,7 +273,9 @@ indent = Regexp.quote($&) ret.push($') while line = src.shift - if /^#{indent}/ =~ line + if line == ":WHITELINE" + ret.push("\n") + elsif /^#{indent}/ =~ line ret.push($') else raise "[BUG]: probably Parser Error while cutting off.\n" @@ -358,4 +360,4 @@ module RD ---- driver -end # end of module RD \ No newline at end of file +end # end of module RD Only in rdtool-0.5.2.fix/rd: rdblockparser.tab.rb diff -ru rdtool-0.5.2/rd/rdfmt.rb rdtool-0.5.2.fix/rd/rdfmt.rb --- rdtool-0.5.2/rd/rdfmt.rb Sat Nov 6 05:35:01 1999 +++ rdtool-0.5.2.fix/rd/rdfmt.rb Sat Dec 25 00:14:31 1999 @@ -477,6 +477,8 @@ when /^=begin/ when /^=end/ out.push("") + when /^###/ # comment + # do nothing else out.push(line) end diff -ru rdtool-0.5.2/rd/rdinlineparser.ry rdtool-0.5.2.fix/rd/rdinlineparser.ry --- rdtool-0.5.2/rd/rdinlineparser.ry Sat Nov 6 16:42:10 1999 +++ rdtool-0.5.2.fix/rd/rdinlineparser.ry Sat Dec 25 00:38:34 1999 @@ -146,7 +146,7 @@ @tokenQueue.push(:VERB_OPEN) @valueQueue.push(VERB_OPEN) src[0,3] = "" - src =~ /^((?:.|\n)*) '\)\)/x or raise "RD parser error: unclosed verb." + src =~ /^((?:.|\n)*?) '\)\)/x or raise "RD parser error: unclosed verb." @tokenQueue.push(:STRING) @valueQueue.push($1) @tokenQueue.push(:VERB_CLOSE) @@ -233,4 +233,4 @@ module RD ---- driver -end # end of module RD \ No newline at end of file +end # end of module RD -- 新井康司 (Koji Arai)