library rdoc/parsers/parse_f95
要約
Fortran95 のソースコードを解析するためのサブライブラリです。
拡張子が .f90、.F90、.f95、.F95 のファイルを解析する事ができます。解析 のためには、Fortran95 の仕様に適合している必要があります。
[注意] rdoc 2.4.0 から rdoc-f95 に分かれたため、1.9.2 から rdoc/parsers/parse_f95 は標準添付ライブラリに含まれなくなりました。 1.9.2 以降でも使用したい場合は rdoc-f95 を RubyGems でインストールして ください。
Fortran95 プログラムとの対応
rdoc/parsers/parse_f95 は以下を解析する事ができます。
- main プログラム
- module
- subroutine
- function
- 派生型
- public 変数
- public 定数
- ユーザ定義単項演算子
- ユーザー定義代入
Ruby と比べてみると以下のようになります。
- ファイル
-
ファイル(Ruby と同じ)
- クラス
-
module
- メソッド
-
subroutine, function, 変数, 定数, 派生型, ユーザ定義単項演算子, ユーザー定義代入
- require されたファイル
-
use 文で読み込まれた module, external 宣言された subroutine、function
- include されたモジュール
-
use 文で読み込まれた module
- 属性
-
派生型や use 文で読み込まれた module
解析可能な情報
以下の情報は自動的に解析されます。
- 引数の型
- 変数、定数の型
- 派生型の型や初期値
- NAMELIST 中の変数の型や初期値
interface 文の中で定義した alias は上記の「メソッド」と同様に処理されます。
コメントのフォーマット
基本的な規則は Ruby のソースコード中にドキュメントを記述する場合と同じ です。ただし、Fortran95 では、コメントを記述するためには「#」ではなく、 「!」を行頭に記述しなければなりません。コメントは文の後(もしくは下)に記 述します。
字下げは任意の位置に行う事ができます。
! (Top of file) ! ! このファイルに対するコメントを記述します。 ! !-- ! "!--" から "!++" で囲まれたコメントは無視されます。 !++ ! module hogehoge ! ! この module(もしくは、program) に対するコメントを記述します。 ! private logical :: a ! private 変数 real, public :: b ! public 変数 integer, parameter :: c = 0 ! public 定数 public :: c public :: MULTI_ARRAY public :: hoge, foo type MULTI_ARRAY ! ! 派生型に対するコメントを記述します。 ! real, pointer :: var(:) =>null() ! 変数に対するコメント integer :: num = 0 end type MULTI_ARRAY contains subroutine hoge( in, & ! 継続する行に対するコメントは無視されます。 & out ) ! ! subroutine や function に対するコメントを記述します。 ! character(*),intent(in):: in ! 引数に対するコメントを記述します。 character(*),intent(out),allocatable,target :: in character(32) :: file ! 下記の NAMELIST 中の変数に対するコメントとして処理されます。 integer :: id namelist /varinfo_nml/ file, id ! ! NAMELIST に対するコメントを記述します。 ! 上記の変数に対するコメントを記述できます。 ! .... end subroutine hoge integer function foo( in ) ! ! この行は処理されますが、 ! この行のような、空行の下に記述したコメントは無視されます。 ! integer, intent(in):: inA ! この行は処理されますが、 ! この行は無視されます。 end function foo subroutine hide( in, & & out ) !:nodoc: ! ! 上記のように subroutine の最後の行に "!:nodoc:" を記述した場 ! 合は処理されません。 .... end subroutine hide end module hogehoge
クラス
class RDoc::Fortran95parser | Fortran95 のソースコードを解析するためのクラスです。 |
同時にrequireされるライブラリ
rdoc/code_objects | Ruby のソースコード中にあるクラス、モジュール、メソッドなどの構成要素を 表現するためのサブライブラリです。 |
rdoc/tokenstream | トークンを管理するためのサブライブラリです。 |