%PROCESS

Purpose

Note: *PROCESS is the same as %PROCESS.

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.

Syntax

%PROCESS [directive] ...;

Description

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
Note:
c
Character argument; the default is shown on the right if the argument is omitted.
n
Integer argument; the default is shown on the right if the argument is omitted.
n,m
Integer argument (pair); the default is shown on the right if the argument is omitted.

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
Note: Only the following is supported:

%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
Note: The following are supported:
%PROCESS XML(CASE(UPPER))

Causes the XMLCHAR built-in function to generate tags in its XML output to be all lowercase.

%PROCESS XML(CASE(ASIS))
Causes the XMLCHAR built-in function to generate tags in its XML output to have the same case as coded in the PL/I declaration.
%PROCESS XML(XMLATTR(APOSTROPHE))

Causes the XMLCHAR built-in function to enclose XML attributes in apostrophes (single quotes).

%PROCESS XML(XMLATTR(QUOTE))

Causes the XMLCHAR built-in function to enclose XML attributes in quotations marks (double quotes).

Restrictions

None.