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