/EOF 指示

/EOF は、コンパイラーに対して、 現行ソース・メンバー内のソース行の残りを無視するように指示します。

/EOF (7 から 10 桁目)

/EOF コンパイラー指示は、現行ソース・ファイル の「ファイルの終わり」に達していることをコンパイラーが考慮する 必要があることを示すために使用します。 /EOF に使用する記入項目は次のとおりです。

記入
7 から 10
/EOF
11 から 80
ブランク
81 から 100
注記

/EOF は、現行ソース・メンバーの読み取り中に活動状態になった 活動 /IF グループをすべて終了します。 /EOF が /COPY ファイル内に ある場合、/COPY 指示が読み取られた ときに活動状態だった条件は、そのまま活動状態となります。

注:
除外された行がリスト上に印刷されている場合、/EOF の後でも ソース行の読み取りおよびリストは引き続き行われますが、 それらの行の内容は、コンパイラーによって完全に無視されます。 /EOF の 後には、診断メッセージが出されることはありません。

ヒント

/EOF 指示を使用すると、/COPY メンバー全体が 1 度しか使用 されないで、複数回コピーされる可能性がある場合、コンパイル時パフォーマンスが向上します。 (これは、除外された行が印刷されている場合には該当しません。)

以下は、/EOF 指示の例です。

図 4. /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 ) に達するまでは、活動状態のままです。