Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > rdoc/parsers/parse_f95ライブラリ

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 は以下を解析する事ができます。

Ruby と比べてみると以下のようになります。

ファイル

ファイル(Ruby と同じ)

クラス

module

メソッド

subroutine, function, 変数, 定数, 派生型, ユーザ定義単項演算子, ユーザー定義代入

require されたファイル

use 文で読み込まれた module, external 宣言された subroutine、function

include されたモジュール

use 文で読み込まれた module

属性

派生型や use 文で読み込まれた module

解析可能な情報

以下の情報は自動的に解析されます。

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

クラス

RDoc::Fortran95parser

Fortran95 のソースコードを解析するためのクラスです。

同時にrequireされるライブラリ

rdoc/code_objects

Ruby のソースコード中にあるクラス、モジュール、メソッドなどの構成要素を 表現するためのサブライブラリです。

rdoc/tokenstream

トークンを管理するためのサブライブラリです。