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.