/EOF
/EOF コンパイラー指示は、現行ソース・ファイル の「ファイルの終わり」に達していることをコンパイラーが考慮する 必要があることを示すために使用します。
指示に使用できる桁については、コンパイラー指示を参照してください。
/EOF が含まれている行の残りの部分はブランクでなければなりません。
/EOF は、現行ソース・メンバーの読み取り中に活動状態になった
活動 /IF グループをすべて終了します。 /EOF が /COPY ファイル内に
ある場合、/COPY 指示が読み取られた
ときに活動状態だった条件は、そのまま活動状態となります。
注: 除外された行がリスト上に印刷されている場合、/EOF の後でも
ソース行の読み取りおよびリストは引き続き行われますが、
それらの行の内容は、コンパイラーによって完全に無視されます。 /EOF の
後には、診断メッセージが出されることはありません。
ヒント:
/EOF 指示を使用すると、/COPY メンバー全体が 1 度しか使用 されないで、複数回コピーされる可能性がある場合、コンパイル時パフォーマンスが向上します。 (これは、除外された行が印刷されている場合には該当しません。)
以下は、/EOF 指示の例です。
図 1. /EOF 指示
*-----------------------------------------------------------------
* Main source file
*-----------------------------------------------------------------
....
/IF DEFINED(READ_XYZ) 1
/COPY XYZ
/ENDIF 2
....
*-----------------------------------------------------------------
* /COPY file XYZ
*-----------------------------------------------------------------
/IF DEFINED(XYZ_COPIED) 3
/EOF
/ELSE
/DEFINE XYZ_COPIED
D .....
/ENDIF
最初にこの /COPY メンバーが読み取られるとき は、XYZ_COPIED は定義されないので、/EOF は考慮されません。
2 回目にこのメンバーが読み取られるときには、XYZ_COPIED は 定義され、/EOF は処理されます。 /IF DEFINED(XYZ_COPIED) ( 3 ) は終了したと見なされ、そのファイルはクローズされます。ただし、メイン・ソース・メンバーの /IF DEFINED(READ_XYZ) ( 1 ) は、それ自身の /ENDIF ( 2 ) に達するまでは、活動状態のままです。