= RDOC Fortran90/95 ソースコード解析機能強化版 (地球流体電脳倶楽部 dcmodel プロジェクト用)
RDOC の Fortran90/95 ソースコード解析機能を強化するためのパッチを
配布しています. パッチを当てたパッケージも配布しています.
詳しくは, このページの最下部の「沿革」を参照してください.
== 動作確認
このパッケージは Ruby 1.8.2 での動作を確認しています.
== ダウンロード
最新版 (バージョン $Name: rdoc-dennou-20051209 $)
* {Ruby 1.8.3 用のパッチ}[http://www.gfd-dennou.org/library/dcmodel/rdoc-dennou/rdoc-dennou-patch_for_ruby1.8.3]
* {rdoc-dennou tar.gz パッケージ (Ruby 1.8.3 に上記パッチを当てて tar ボールにしたもの)}[http://www.gfd-dennou.org/library/dcmodel/rdoc-dennou/rdoc-dennou.tgz]
過去のアーカイブ
* {パッチ ・ TGZ パッケージ ・ ソースツリーのリスト}[http://www.gfd-dennou.org/library/dcmodel/rdoc-dennou/arch/SIGEN.htm]
== パッチの利用法
まず, {Ruby のホームページ}[http://www.ruby-lang.org/] から
ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.8.3.tar.gz
をダウンロードし, 展開してください.
% tar xvfz ruby-1.8.3.tar.gz
このコマンドを実行したディレクトリに上記のパッチファイル
rdoc-dennou-patch_for_ruby1.8.3 を置き, 以下のコマンドでパッチを
当ててください.
% patch -p0 < rdoc-dennou-patch_for_ruby1.8.3
Ruby 自体のインストール方法は{Ruby のホームページ}[http://www.ruby-lang.org/]
を参照してください.
== パッケージのインストール
rdoc-dennou.tgz パッケージをダウンロードした場合は,
以下のように tar コマンドで展開後,
install.rb でインストールを行ってください.
既に rdoc がインストールされている場合, 上書きする可能性があります.
% tar xvfz rdoc-dennou.tgz
% cd rdoc-dennou
% ruby install.rb
インストール先のディレクトリや, 変更のためのオプションに関しては,
以下のコマンドで知ることが出来ます.
% ruby install.rb --help
== 使用方法
実行プログラムがインストールされた場所を環境変数 *PATH*
に設定し, ライブラリがインストールされた場所を環境変数 *RUBYLIB*
に設定してください.
Fortran95 ファイルが置いてあるディレクトリまで移動し, 以下のコマンドを
実行してください. *doc* ディレクトリ以下にドキュメントが作成されます.
% rdoc --ignore-case --charset euc-jp --inline-source
複数のディレクトリに置かれているファイルに
関してドキュメントを作成したい場合は, それらのディレクトリの
親ディレクトリで上記のコマンドを実行してください.
拡張子が +rb+, +rbw+ のファイルは Ruby プログラムとして,
拡張子が +c+, +cc+, +cpp+, +CC+, +cxx+ のファイルは C プログラムとして,
拡張子が f90, F90, f95, F95
のファイルは Fortran95 プログラムと判定されて解析されます.
*doc* ディレクトリ以外に出力したい場合は, 以下のように
--op オプションをつけてください. タイトルなどは
--title オプションで変更できます.
また, デフォルトでは Fortran95 の private 属性のサブルーチンや関数
などはドキュメントに出力されませんが, --all オプションを
つけることで, 全てがドキュメントに出力されます. 開発者用には
こちらの方が良いかもしれません. 一部のファイルのみを
ドキュメント化したい場合は, 引数に src/*.f90 などと
ファイル名を明示的に指定してください.
% rdoc --ignore-case --charset euc-jp --inline-source \
--op rdoc --title "RDOC documentations" src/*.f90 test/*.f90
詳しいことは
RDOC オリジナルの
README[http://www.ruby-doc.org/stdlib/libdoc/rdoc/rdoc/index.html]
を参照ください.
=== 電脳サーバでの利用について
電脳サーバにはこのパッケージの最新版がインストールされています.
インストール先は dcmodel 領域なので,
以下のようにパスを通して実行してください.
% RUBYLIB=/GFD_Dennou_Club/ftp/arch/dcmodel/lib/ruby/1.8 \
/GFD_Dennou_Club/ftp/arch/dcmodel/bin/rdoc \
--ignore-case --charset euc-jp --inline-source
== 書法
parsers/parse_f95.rb を参照ください.
ただし, ここに記述されるのは Fortran95 に特有な部分なので,
一般的な部分に関しては
{RDOC のオリジナルの README}[http://www.ruby-doc.org/stdlib/libdoc/rdoc/rdoc/index.html]
を参照ください.
大林さんによる日本語訳が http://www.kmc.gr.jp/~ohai/rdoc.ja.html にあります.
== ライセンス
本家 RDOC に準拠します.
{RDOC オリジナルの README}[http://www.ruby-doc.org/stdlib/libdoc/rdoc/rdoc/index.html]
を参照ください.
== 動作保障に関して
本家 RDOC に準拠します.
{RDOC オリジナルの README}[http://www.ruby-doc.org/stdlib/libdoc/rdoc/rdoc/index.html]
を参照ください.
== 沿革
ここで配布するパッチまたはパッケージは RDOC を主に
Fortran95 のパーサとして利用するため
に改変したものです. 元々 Fortran95 パーサは, RDOC の開発者である
Dave Thomas 氏によって 2003-12-01 に parse_f95.rb として作成され,
以降数度の改変がなされました. RDOC は Ruby CVS リポジトリ
http://www.ruby-lang.org/ja/20020106.html にて開発されており,
この parse_f95.rb も同様です. 2005/10/05 現在の最新版は revision 1.2
で 2004-01-02 に最終更新されたものです.
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/lib/rdoc/parsers/parse_f95.rb
で詳しい情報を参照できます.
なお, Ruby ライブラリのドキュメントは RDOC 形式で
http://www.ruby-doc.org/stdlib/ に公開されています.
RDOC に関してはオリジナルの
README[http://www.ruby-doc.org/stdlib/libdoc/rdoc/rdoc/index.html]
を参照ください.
本パッケージ内の parsers/parse_f95.rb は, 上記の
revision 1.2 parse_f95.rb を改変したものです. オリジナルに比べ
Fortran95 ソースの解析機能が大幅に向上しています.
(きっとバグも増えていますが).
RDOC 用に Fortran95 のコメントの記述の方法については
parsers/parse_f95.rb を参照してください.
さらに, parsers/parse_f95.rb 以外のファイルも, Fortran95 ソースから
マニュアルを自動生成するのに必要となるであろう以下の機能を付加しています.
これらも, 2005/10/05 時点の最新版を元に改変しています.
--ignore-case オプションの追加 ::
Fortran 95 規格では大文字小文字の区別が無いため,
モジュール名, サブルーチン名, 関数名, 定数名, 変数名など,
大文字小文字の区別を行う必要がありません.
オリジナルの rdoc はクラス名やメソッド名のクロスリファレンスの際に
大文字小文字を区別しますが, このオプションを与えることにより,
その区別を行わないようにします.
ファイルのクロスリファレンス ::
クラスやモジュール, メソッドと同様に, ファイル名に関しても
クロスリファレンスを可能にしました.
--
# 以降は Fortran とは関係の無い改変
#
#Ruby ライブラリ IRB::SLex の読み込みについて ::
# Ruby 1.8.2 でも動作するよう, 最新の parse_rb.rb を1つ以前の
# バージョンに戻しています.
#
#
#拡張子cxxも C パーサで解釈 ::
# これは全く Fortran95 とは関係ありません.
# この拡張子 cxx は c++ ファイルから
# SWIG[http://swig.shibu.jp/] によって作成されるファイルの拡張子です.
++
今後, これらの改変は可能な範囲で Ruby CVS リポジトリ へとフィードバック
しようと考えています.
(2005/11/15 現在, メンテナの Ryan Davis さんに英語版のパッチを
送ったところです).
== 連絡先
{数値モデリングプロジェクト dcmodel}[http://www.gfd-dennou.org/library/dcmodel/]
のページ末尾を参照ください.
== 使用上の注意
RDOC Fortran90/95 ソースコード解析機能強化版のパッチもしくはパッケージ
(以下, 本パッチもしくはパッケージ) は
研究・教育の場で用いられることを前提としております. 教育現場においては
自由に使用・改変・再配布していただいて結構です. 利用する場合には
{本家 RDOC のライセンス}[http://www.ruby-doc.org/stdlib/libdoc/rdoc/rdoc/index.html]
に従って頂くようお願いします.
本パッチもしくはパッケージを利用して得られた科学技術的成果を
論文や Web 等にて発表する際には, その旨を記し, リファレンスに挙げて
頂きますようお願いします.
* 引用例 (和文)
森川 靖大, 石渡 正樹, 堀之内 武, 小高 正嗣, 林 祥介,
数値モデリングプロジェクト dcmodel, 2005:
RDOC Fortran90/95 ソースコード解析機能強化版,
http://www.gfd-dennou.org/library/dcmodel/, 地球流体電脳倶楽部.
* 引用例 (英文)
Morikawa,Y., Ishiwatari,M., Horinouchi,T., Odaka,M., Hayashi,Y.-Y.,
dcmodel: Numerical Model Porject, 2005:
Enhanced version of RDOC Fortran90/95 parser,
http://www.gfd-dennou.org/library/dcmodel/, GFD Dennou Club.
== 履歴
==== 2005/12/08
* 「使用上の注意」, 「連絡先」を追加.
* 公開アドレスを
http://www.gfd-dennou.org/library/dcmodel/doc/rdoc-dennou/ から
http://www.gfd-dennou.org/library/dcmodel/rdoc-dennou/ へ変更.
(過去の URL もしばらく残しておきます).
==== 2005/11/28
* ":nodoc:" の指定を可能にする.
* サブルーチンや関数内の "contains" 文の処理方法を修正する.
* 表題を変更する.
* 過去のバージョンを公開する.
==== 2005/11/17
* 一通り欲しい機能が揃い, ドキュメントのチェックも行ったので,
タグをつけて公開する.