INSOURCE オプションは、PL/I マクロ、CICS、または SQL のプリプロセッサーが変換できるように、コンパイラーがソース・プログラムのリストを組み込むことを指定します。
.-NOINSOURCE--------------------. >>-+-INSOURCE--+-----------------+-+--------------------------->< | .-FULL--. | '-(--+-SHORT-+--)-'
省略形: IS、NIS
FULL がデフォルトです。
INSOURCE オプションが有効で、コンパイラーがマクロ、CICS、または SQL のプリプロセッサーのうち複数を呼び出した場合、これらの各プリプロセッサーのソースがリストに入れられます。
INSOURCE オプションを指定すると、プログラムのロジックとは関係なく、 各ファイルの読み取り順にテキストがリストに入れられます。 例えば、PROC と END の両ステートメント間に %INCLUDE ステートメント がある、次の単純なプログラムを考えてみましょう。
insource: proc options(main);
%include member;
end;
INSOURCE リストには、ファイル "member" からインクルードされる テキストの前に、メインプログラム全体が入ります (また、 ファイルによってインクルードされるテキストの前にそのファイル全体が 入り、以下も同様)。
INSOURCE(SHORT) オプションを指定した場合、%INCLUDE ステートメント によってインクルードされるテキストは、%INCLUDE ステートメントの実行時 に有効だった print/noprint 状況を継承しますが、 その print/noprint 状況はインクルードされるテキストの終わりで 復元されます (ただし SOURCE リスト内では、インクルードされる テキストの終わりで print/noprint 状況は復元されません)。