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 | トークンを管理するためのサブライブラリです。 |