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 | |
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 | PPMACRO | 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.