Specifying options in the %PROCESS or *PROCESS statements

The %PROCESS or *PROCESS statement identifies the start of each external procedure and allows compiler options to be specified for each compilation. You can use either %PROCESS or *PROCESS in your program; they are equally acceptable.

Note: For consistency and readability, %PROCESS or *PROCESS statements are always referred to as %PROCESS.

The options you specify in adjacent %PROCESS statements apply to the compilation of the source statements to the end of input or the next %PROCESS statement.

To specify options in the %PROCESS statement, code as follows:
%PROCESS options;
where options is a list of compiler options.

You must end the list of options with a semicolon, and the options list should not extend beyond the default right-hand source margin. The percent sign (%) or asterisk (*) must appear in the first column of the record. The keyword PROCESS can follow in the next byte (column) or after any number of blanks. You must separate option keywords by a comma or at least one blank.

The number of characters is limited only by the length of the record. If you do not wish to specify any options, code as follows:

%PROCESS;

If you find it necessary to continue the %PROCESS statement onto the next record, terminate the first part of the list after any delimiter, and continue on the next record. You cannot split keywords or keyword arguments across records. You can continue a %PROCESS statement on several lines, or start a new %PROCESS statement. The following example shows multiple adjacent %PROCESS statements:

%PROCESS INT F(I) AG A(F) OP STG NEST X(F) SOURCE ;
%PROCESS LIST TEST ;

Compile-time options, their abbreviated syntax, and their IBM-supplied defaults are shown in Table 1.

How the compiler determines whether there are any %PROCESS statements depends on the format of the initial source file:

F or FB format
If the first character in the record is an asterisk (*) or a percent sign (%), the compiler will check whether the next nonblank characters are PROCESS.
V or VB format
If the first character in the record is a numeric, the compiler will assume that the first 8 characters are sequence numbers, and if the ninth character is an asterisk (*) or a percent sign (%), it will check whether the next nonblank characters are PROCESS. However, if the first character is not a numeric but an asterisk (*) or a percent sign (%), the compiler will check if the next nonblank characters are PROCESS.
U format
If the first character in the record is an asterisk (*) or a percent sign (%), the compiler will check if the next nonblank characters are PROCESS.