%INCLUDE

目的

コンパイル時に他のファイルのテキストを現在のソース ファイルに組み込みます。

構文

%INCLUDE filename[,filename]…;

パラメーター

filename
文字列、Open PL/I 名、またはかっこで囲まれた Open PL/I 名のいずれか。

指定した filename を使用してテキスト ファイルが検索され、そのファイルの内容が %INCLUDE 文の代わりにプログラム テキストに挿入されます。

説明

%INCLUDE 文は、コンパイル時に他のファイルのテキストを現在のソース ファイルに組み込みます。

%INCLUDE 文は、名前、定数、または句読記号の代わりに使用できます。インクルードされるテキストに追加の %INCLUDE 文を含めることもできます。通常は、複数のプログラム モジュールに共通する宣言が含まれます。

Open PL/I は、以下の規則に従って、%INCLUDE 文を満たすファイルを検索します(『Open PL/I ユーザー ガイド』の「Open PL/I の使用」の章の「Compiler Options」を参照)。

以下の規則では、スラッシュ (/) で始まるパス指定子 (/tmp/inc など) に「絶対ディレクトリ パス」という用語を使用し、それ以外のパス指定子 (sys/../ など) に「相対ディレクトリ パス」という用語を使用します。

  • %INCLUDE 'filename'; の形式 (引用符で囲まれたファイル名の形式) を使用する場合:
    • filename に単純な PL/I 識別子以外のものを指定できます。たとえば、次のように、よく使用される「.」(ピリオド) を含めることができます。
      %INCLUDE 'fiiename.pl1.inc';

      また、次のように、ディレクトリ パスを含めることもできます。

      %INCLUDE '/pl1/src/inc/filename';
    • %INCLUDE 文で絶対ディレクトリ パスを指定した場合、指定したファイルは、指定したディレクトリでのみ検索されます。
    • %INCLUDE 文で絶対ディレクトリ パスを指定しない場合、-ipath オプションも指定されていなければ、指定したファイルは現在の作業ディレクトリで検索されます。
    • %INCLUDE 文で絶対ディレクトリ パスを指定しない場合、-ipath オプションが指定されていれば、指定したファイルは、-ipath オプションで指定されたディレクトリで検索されます。これらのディレクトリは、指定された順に検索されます。これらのディレクトリでファイルが見つからない場合は、最後に現在の作業ディレクトリがチェックされます。
    • 引用符で囲まれたファイル名の形式を使用すると、-isuffix オプションは使用されません。
    • 引用符で囲まれたファイル名の形式を使用すると、各文字の大文字と小文字の区別も含めて filename の指定に厳密に一致するファイルが検索されます。つまり、ファイル名が大文字に変換されたり、大文字と小文字の組み合わせを変えて追加の検索が行われたりすることはありません。
  • %INCLUDE filename; の形式、またはこれと同等の %INCLUDE (filename) の形式を使用する場合:
    • -ipath オプションが指定されていない場合、指定したファイルは現在の作業ディレクトリで検索されます。
    • -ipath オプションが指定されている場合、指定したファイルは、-ipath オプションで指定されたディレクトリで検索されます。これらのディレクトリは、指定された順に検索されます。これらのディレクトリでファイルが見つからない場合は、最後に現在の作業ディレクトリがチェックされます。
    • コンパイラ呼び出しで -isuffix オプションが使用されている場合は、-isuffix オプションで指定された文字列を filename に追加してからファイルが検索されます。たとえば、-isuffix.inc が指定されている場合、検索されるファイルは filename.inc になります。

      この場合は、ファイル名が引用符で囲まれていないため、最初に大文字の filename (FILENAME) でファイルが検索されます。その検索が失敗した場合は、小文字を使用して再試行されます。

%INCLUDE 'FILE1.IN','FILE2.IN','FILE3.IN'; 

%INCLUDE FILE4,'FILE5',(FILE6),(FILE7); 

%INCLUDE 'TOTAL.IN';

これらの例では、FILEn や 'TOTAL.IN' などによって参照されるファイルの内容がコンパイル時に現在のファイルにコピーされます。

DECLARE I
%INCLUDE 'FDCL.IN'; STATIC INITIAL (0);

'FDCL.IN' によって参照されるファイルに FIXED BINARY (31) という行が 1 行含まれていると仮定すると、この例は次の例と同等になります。

DECLARE I FIXED BINARY (31) STATIC INITIAL (0);

制約事項

なし。