%PROCESS または *PROCESS をプログラムで使用でき、どちらも等しく受け入れられます。 本書では、整合性と読みやすさのために、%PROCESS だけを 取り上げます。
%PROCESS ステートメントは各外部プロシージャーの開始を 識別し、コンパイルごとにコンパイラー・オプションを指定できるようにします。 隣接する %PROCESS ステートメント内で指定するオプションは、 ソース・ステートメントの入力の終わりまでのコンパイルに対してか、 または次の %PROCESS ステートメントまでのコンパイルに対して 用いられます。
%PROCESS ステートメントでオプションを指定するには、 次のようにコーディングします。
%PROCESS options;
ここで options はコンパイラー・オプションのリストです。 オプション・リストの終わりにはセミコロンを入れなければならず、 また、オプション・リストはデフォルトの右側ソース・マージンを超えてはなりません。 パーセント記号 (%) またはアスタリスク (*) が レコードの最初の列になければなりません。 キーワード PROCESS は、次のバイト (桁) 内か、任意の数のブランクの後に 置くことができます。 オプション・キーワードは、 コンマまたは少なくとも 1 つのブランクを使って区切らなければなりません。
文字数を制限するものはレコードの長さだけです。 オプションをどれも指定したくない場合は、次のようにコーディングします。
%PROCESS;
%PROCESS ステートメントを次のレコードまで続けなければ ならない場合は、リストの前半部分を任意の区切り文字の後で終了してから、 次のレコードへ移ります。 キーワードやキーワード引数を複数のレコードに分割することはできません。 %PROCESS ステートメントを 複数行にまたがって続けることも、 または、新たに %PROCESS ステートメントを開始することもできます。 隣接する複数の %PROCESS ステートメントの例を次に示します。
%PROCESS INT F(I) AG A(F) OP STG NEST X(F) SOURCE ; %PROCESS LIST TEST ;
コンパイル時オプション、その省略形構文、および IBM 提供のデフォルト は、表 3 に示してあります。
%PROCESS ステートメントがあるかどうかをコンパイラーが判別する方法は、初期ソース・ファイルのフォーマット設定によって決まります。