The %PROCESS statement is used to override compile options, both explicit and implicit (default). The % or * must begin in column 1, and all %PROCESS statements must appear before the first language element.
%PROCESS [directive] ...;
The *PROCESS and %PROCESS directives are translated into Open PL/I options when the input source file is processed by mfplx (command-line driver) or mfpli (compiler). The directives, when applicable, are translated to the corresponding Open PL/I command-line compilation option. If mfplx is used, each option is then passed to the appropriate phase, i.e., macro processor (mfpp), EXEC preprocessor (mfexecpp), compiler (mfpli), and/or linker (ldpli).
Any translated *PROCESS or %PROCESS directives override any command-line options or previous directives that are in conflict.
If the macro processor (mfpp) or EXEC preprocessor (mfexecpp) are invoked directly, the *PROCESS and %PROCESS statements are ignored. If there are applicable directives which need to be applied, the proper corresponding Open PL/I command-line argument must be used for each preprocessor.
The compiler option -options adds information about translated %PROCESS directives and command-line option processing to the compiler listing (-options implies -l).
Preprocessor ordering may be specified using the -pporder compiler option. See the -pporder option in the Open PL/I User's Guide for more information about default ordering and specifying the order of preprocessor invocation.
The following directives in the left column are translated to the corresponding Open PL/I compile options in the right column. Where arguments apply, the default argument is shown in the right column.
| Directives | Compiler options | 
|---|---|
| AGGREGATE(x) | map | 
| AG(x) | map | 
| ATTRIBUTES(x) | map | 
| A(x) | map | 
| CURRENCY(c) | currency_symbol $ | 
| CURR(c) | currency_symbol $ | 
| FLAG(c) | flag W | 
| F(c) | flag W | 
| GRAPHIC | graphic | 
| NOGRAPHIC | nographic | 
| GR | graphic | 
| NGR | nographic | 
| LIST | list | 
| NOLIST | nolist | 
| MAP | map | 
| NOMAP | nomap | 
| MARGINI(c) | margini | | 
| NOMARGINI | nomargini | 
| MI(c) | margini | 
| NMI | nomargini | 
| MARGINS(n,m) | margins 2,72 | 
| NOMARGINS | nomargins | 
| MAR(n,m) | margins 2,72 | 
| MDECK | pp | 
| NOMDECK | nopp | 
| MD | pp | 
| NMD | nopp | 
| NEST | nest | 
| NAMES | names | 
| NONEST | nonest | 
| NOT(c) | not_symbol ^ | 
| OBJECT | obj | 
| NOOBJECT | noobj | 
| OBJ | o | 
| NOBJ | noobj | 
| OPTIMIZE(n) | opt 2 | 
| NOOPTIMIZE | noopt | 
| OPT(n | TIME) Note: OPT(TIME) is equivalent to OPT(2) 
                                 					 
                               | opt 2 | 
| NOPT | noopt | 
| OR(c) | or_symbol | | 
| PPMACRO | pporder | 
| SOURCE | list | 
| NOSOURCE | nolist | 
| S | list | 
| NS | nolist | 
| STORAGE | map | 
| NOSTORAGE | nomap | 
| WINDOW(n) | window 1950 | 
| XREF | xref | 
| NOXREF | noxref | 
| X | xref | 
The following directives are not supported and produce a Level-W diagnostic (Warning), as expected compilation or run-time results may be affected.
| CMPAT | CMP | CODEPAGE | CP | COMMON | 
| NOCOMMON | COMPILE | NOCOMPILE | C | NC | 
| DISPLAY | EXIT | NOEXIT | EXTRN | EXPORTALL | 
| INITAUTO | NOINITAUTO | JSON | MACRO | NOMACRO | 
| M | NM | OFFSET | NOOFFSET | OF | 
| NOF | ONSNAP | NOONSNAP | PP | PPCICS | 
| PPINCLUDE | PPSQL | WIDECHAR | XINFO | NAME / N | 
| NONAME | PRECTYPE | QUOTE | SYSPARM | SYSTEM | 
| LIMITS | RULES | DEFAULT (see note below) | INCAFTER | 
%PROCESS DEFAULT (DUMMY(ALIGNED|UNALIGNED)) is supported.
*PROCESS DEFAULT(DUMMY(ALIGNED)) causes a dummy argument to be created if the aligned and unaligned attributes differ between the argument and parameter descriptor when passing arguments. This is the default.
*PROCESS DEFAULT(DUMMY(UNALIGNED)) causes the aligned and unaligned attributes to be ignored when creating dummy arguments.
The following directives are ignored without a warning.
| ARCH | BACKREG | BIFPREC | BLANK | BLKOFF | 
| NOBLKOFF | BRACKETS | CASERULES | CEESTART | CHECK | 
| COPYRIGHT | NOCOPYRIGHT | CSECT | NOCSECT | CSECTCUT | 
| DBCS | NODBCS | DD | DDSQL | DECIMAL | 
| DEC | DECOMP | NODECOMP | DEPRECATE | DEPRECATENEXT | 
| DLLINIT | NODLLINT | FILEREF | NOFILEREF | FLOAT | 
| FLOATINMATH | GOFF | NOGOFF | GONUMBER | NOGONUMBER | 
| GN | NGN | IGNORE | NOIGNORE | HEADER | 
| INCDIR | NOINCDIR | INCLUDE | NOINCLUDE | INCPDS | 
| NOINCPDS | INITBASED | NOINITBASED | INITCTL | NOINITCTL | 
| INITSTATIC | NOINITSTATIC | INSOURCE | NOINSOURCE | IS | 
| NIS | INTERRUPT | NOINTERRUPT | INT | NINT | 
| LANGLVL | LINECOUNT | LC | LINEDIR | NOLINEDIR | 
| LISTVIEW | LP | MAXBRANCH | MAXGEN | MAXMEM | 
| MAXMSG | MAXNEST | MAXSTMT | MAXTEMP | MSGSUMMARY | 
| NOMSGSUMMARY | NATLANG | NULLDATE | NONULLDATE | NUMBER | 
| NONUMBER | NUM | NNUM | OFFSETSIZE | OPTIONS | 
| NOOPTIONS | OP | NOP | NOPP | NOPPCICS | 
| NOPPINCLUDE | PPLIST | NOPPMACRO | NOPPSQL | PPTRACE | 
| NOPPTRACE | PREFIX | PROCEED | NOPROCEED | PRO | 
| NPRO | PROCESS | NOPROCESS | REDUCE | NOREDUCE | 
| RENT | NORENT | RESEXP | NORESEXP | RESPECT | 
| RTCHECK | SEMANTIC | NOSEMANTIC | SEM | NSEM | 
| SERVICE | NOSERVICE | SERV | NOSERV | SPILL | 
| STATIC | STDSYS | NOSTDSYS | STMT | NOSTMT | 
| STG | NSTG | STRINGOFGRAPHIC | SYNTAX | NOSYNTAX | 
| SYN | NSYN | TERMINAL | NOTERMINAL | TERM | 
| NTERM | TEST | NOTEST | USAGE | WRITABLE | 
| NOWRITABLE | XML (see note below) | NOATTRIBUTES / NA | UNROLL | 
Causes the XMLCHAR built-in function to generate tags in its XML output to be all lowercase.
Causes the XMLCHAR built-in function to enclose XML attributes in apostrophes (single quotes).
Causes the XMLCHAR built-in function to enclose XML attributes in quotations marks (double quotes).
None.