[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:002152] [RDoc] parser_f95



dennou-ruby, davis の皆様

塚原/森川@北大です.

ruby 1.8 系標準添付の rdoc で rdoc 形式のドキュメントを埋め込
んだ f95/90 ファイルを処理できるようです.

lib/rdoc/parsers に parse_f95.rb なるファイルが存在したので,
試してみました. ruby のバージョンは 1.8.1 です.

実験対象は森川君が誠意作成中の惑星大気大循環モデル DCPAM のソー
スコードです. (一時的に以下に置かせてもらいました)

  http://www.ep.sci.hokudai.ac.jp/~daktu32/temp/dcpam_src/

# rd スタイルのドキュメントがコードに埋め込まれています.
  RDoc と rd の文法は非常に似ているのでとりあえずテスト
  してみました. 

dcpam_src のおいてあるディレクトリにて

  % rdoc -c euc

としたところ, 以下の html 群が生成されました.

  http://www.ep.sci.hokudai.ac.jp/~daktu32/temp/doc/index.html

中々いい感じです.

ただし, デフォルトの parse_f95.rb はコメント行のパース部分が作り
かけという感じで上手くいきませんでしたので修正してみました.
(メール末尾参照)

--------------------------------------------------------

*** parse_f95_old.rb	Wed Mar  2 12:38:52 2005
--- parse_f95.rb	Wed Mar  2 12:39:27 2005
***************
*** 98,109 ****
        comment_block = Array.new
        lines.each do |line|
	break if line =~ /^\s*\w/
!         comment_block.unshift line.sub(/^!\s?/,"")
        end
        nice_lines = comment_block.join("\n").split "\n\s*\n"
        nice_lines.shift
-       nice_lines.shift
-       nice_lines.shift
      end

      def progress(char)
--- 98,107 ----
        comment_block = Array.new
        lines.each do |line|
	break if line =~ /^\s*\w/
!         comment_block.unshift line.sub(/^(\s*)!(\s*)/,"")
        end
        nice_lines = comment_block.join("\n").split "\n\s*\n"
        nice_lines.shift
      end

      def progress(char)

--------------------------------------------------------
--------------------------------------
北海道大学院理学研究科 地球惑星科学専攻
地球流体力学研究室  M2  塚原大輔

email::daktu32@xxxxxxxxxxxxxxxxxxxx
--------------------------------------