33.2.4 リポジトリファイルの参照方法
リポジトリ段落に指定したクラス名,インタフェース名,または利用者定義関数名の情報は,コンパイル時に次の順序で検索されます。
-
同じソースファイル中に存在する翻訳単位のクラス名,インタフェース名,または利用者定義関数名
-
リポジトリファイル中のクラス名,インタフェース名,または利用者定義関数名
- 注意事項
-
リポジトリ段落に指定したプロパティ名の定義情報は,同じリポジトリ段落に指定したクラス定義やインタフェース定義に含まれるため,個別の定義情報は検索されません。
(1) 同じソースファイル中に存在する翻訳単位名の検索
COBOL2002コンパイラは,まず同じソースファイル中に存在する翻訳単位中で,リポジトリ段落に指定されたクラス名,インタフェース名,または利用者定義関数名を探します。
同じソースファイル中で,リポジトリ段落よりも後に参照するクラス名,インタフェース名,または利用者定義関数名を指定してもかまいません。また,リポジトリファイルに同じクラス名,インタフェース名,または利用者定義関数名が存在する場合でも,同じソースファイル中の翻訳単位名の情報が優先して使用されます。
-
クラス名を定義するクラス定義DRINKが,リポジトリ段落でのクラス名DRINKの宣言より後に出現してもかまいません。
-
同じソースファイル中にクラス名DRINKの情報があるため,リポジトリファイルは参照されません。
(2) リポジトリファイルの検索
リポジトリファイルは,次の順序で検索されます。
-
環境変数CBLREPに指定したディレクトリ
-
カレントディレクトリ※
-
環境変数CBLSYSREPに指定したディレクトリ
-
インストールディレクトリ下のrepディレクトリ
- 注※
-
この場合のカレントディレクトリは,次のようになります。
-
ccbl2002コマンドを使用している場合
ccbl2002コマンドを起動したディレクトリ
-
環境変数CBLREPには,リポジトリファイルの検索ディレクトリをカレントディレクトリ以外の場所に指定したい場合に設定します。環境変数CBLSYSREPは,共用ライブラリとリポジトリファイルだけが提供されている場合など,生成元ソースファイルのないリポジトリファイルの検索ディレクトリを設定します。これらの環境変数の詳細については,「32.6 コンパイラ環境変数」を参照してください。
なお,標準クラスのBASEクラスは,インストールディレクトリ下のrepディレクトリに格納されています。BASEクラスについては,「COBOL2002 言語 標準仕様編」 「12.2 BASEクラス」を参照してください。
翻訳単位名の検索時,同じディレクトリに複数のリポジトリファイルが存在する場合,検索する翻訳単位名と同名のリポジトリファイルの中が検索され,見つからなければ,アルファベット順にリポジトリファイルが検索され,見つかった時点で検索が終了します。
検索したディレクトリ下にリポジトリファイルがない場合や,リポジトリファイルに読み込み権限がない場合,リポジトリファイルが不当な場合は,コンパイル時にエラーメッセージが出力され,コンパイルが終了します。