PL/I Language Processor Command Descriptions and Syntax
This section describes the PL/I language processor commands and their parameters and values.
CONDDDIO (CONDD)
The CONDDDIO command specifies that the source listing will be written to the source listing file unless the compiler return code exceeds x. The default is 4. Permissible values are 0-8.
The following diagram illustrates the syntax for the CONDDDIO command:
¦ ¦
¦ +-4-+ ¦
¦ >>--CONDDdio(+---+)-->< ¦
¦ +-x-+ ¦
+----------------------------------------------------------------------------+
CONDSTEP (CONDS)
The CONDSTEP command controls the condition code set by the postprocessor when it is invoked by the preprocessor. The CONDSTEP parameter is ignored when the postprocessor is invoked as a separate job step after the compile. The postprocessor return code is always used.
The CONDSTEP command can be used only with the preprocessor.
The following diagram illustrates the syntax for the CONDSTEP command:
¦ ¦
¦ +-HIghest--+ ¦
¦ >>--CONDStep(+----------+)-->< ¦
¦ +-COmpiler-+ ¦
+----------------------------------------------------------------------------+
HIGHEST (HI):
(Default) The condition code will be set to the value of the PL/I language processor return code or the compiler return code, whichever is higher.
COMPILER (CO)
The condition code will always be set to the compiler return code. This option is typically used to allow a subsequent link-edit step to execute when the compile executes normally, but the postprocessor is unable to execute successfully.
DDIO
The DDIO command identifies the information from the PL/I compiler listing that will be written to the DDIO file. The parameter for the DDIO command is OUTPUT. The following diagram illustrates the syntax for the DDIO command OUTPUT parameter.
¦ ¦
¦ +-NOCOmpress-+ +-XRef---+ +-DMap---+ +-List---+ ¦
¦ >>--DDio(OUtput(+------------+-,-+--------+-,-+--------+-,-+--------+,--> ¦
¦ +-COmpress---+ +-NOXRef-+ +-NODMap-+ +-NOLIst-+ ¦
¦ ¦
¦ +-OFfset---+ +-VARREF---+ ¦
¦ >--+----------+-,-+----------+))-->< ¦
¦ +-NOOFfset-+ +-NOVARREF-+ ¦
+----------------------------------------------------------------------------+
OUTPUT (OU):
Specifies the options for a report file or source listing file that will be written to the DDIO file.
NOCOMPRESS (NOCO):
(Default) Does not compress the compiler listing. The size of the LP source members will not be reduced.
COMPRESS (CO):
Enables compression. Depending on your program size and the options you have set, the size of language processor source members may be reduced.
XREF (XR): (Default)
Writes the XREF sections of the listing.
NOXREF (NOXR):
Does not write the XREF sections of the listing.
DMAP (DM):
(Default) Writes the DMAP section of the listing.
NODMAP (NODM):
Does not write the DMAP section of the listing.
LIST (LI):
(Default) Writes the Assembler section of the listing.
NOLIST (NOLI):
Does not write the Assembler section of the listing.
OFFSET (OF):
(Default) Writes the OFFSET section of the listing.
NOOFFSET (NOOF):
Does not write the OFFSET section of the listing.
VARREF:
(Default) Records information in the DDIO file showing where every variable is referenced. This parameter is required and is forced on. Therefore, it cannot be inactivated.
NOVARREF:
This parameter does not cause an error message, but it cannot be set. See VARREF above.
ESS
The ESS, Embedded Source Support, command controls whether the source listing is embedded in the program object or not. ESS has two options (YES and NO). For more information, see Embedded-Source-Support-listing.
NO:
NO is the default. NO specifies the source listing to not be embedded in the program object. Always specify for the following:
– IBM Enterprise COBOL lower than version z/OS V5.0.
– IBM Enterprise PL/I for z/OS lower than version V4.5.
YES:
YES specifies the source listing to be embedded in the program object.
Available for:
- IBM Enterprise COBOL for z/OS V5.x or higher.
- IBM Enterprise PL/I for z/OS V4.5 and higher.
File-Overrides Commands
The File-overrides commands override the default file definitions. The following overrides are available:
- WRK0 - WRK4
- PRTI
- PRTO
- ERRM
- LOAD
- DECK
The LOAD or DECK ddname is used by the PL/I language processor depending on the options selected for the compile step. If both LOAD and DECK are specified, both will be processed by the PL/I language processor. If you are using a temporary data set for your object, and only one option (LOAD or DECK) is specified, eliminate the ddname that corresponds to the option that is NOT specified. For example, if you specify LOAD, then eliminate the DECK ddname.
The File-overrides commands can be used only with the postprocessor.
WRK0 - WRK4 File-Overrides Command
Specifies the work files
¦ ¦
¦ (1) ¦
¦ >>-WRKn--(+--------------------------------------+)-->< ¦
¦ +-DD(ddname),BLK(blksize),BUF(buffers)-+ ¦
+----------------------------------------------------------------------------+
If you omit DD(ddname), the assumed ddname will be CWPWRKn.
PRTI File-Overrides Command
Specifies the compiler listing input
¦ ¦
¦ >>--PRTI(+----------------------------------------------------------------+)-->< ¦
¦ +-DD(ddname),BLK(blksize),BUF(buffers),LRECL(lrecl),RECFM(recfm)-+ ¦
+----------------------------------------------------------------------------------+
If you omit DD(ddname), the assumed ddname will be CWPPRTI.
PRTO File-Overrides Command
Specifies PL/I language processor output.
¦ ¦
¦ >>--PRT0(+---------------------------------------------------+)-->< ¦
¦ +-DD(ddname),BLK(blksize),BUF(buffers),LRECL(lrecl)-+ ¦
+----------------------------------------------------------------------------+
If you omit DD(ddname), the assumed ddname will be CWPPRTO.
ERRM File-Overrides Command
Prints the PL/I language processor error messages.
¦ ¦
¦ >>--ERRM(+--------------------------------------+)-->< ¦
¦ +-DD(ddname),BLK(blksize),BUF(buffers)-+ ¦
+----------------------------------------------------------------------------+
If you omit DD(ddname), the assumed ddname will be CWPERRM.
LOAD File-Overrides Command
Specifies the object library (indicated by the LOAD option of the compiler).
¦ ¦
¦ >>--LOAD(+--------------------------------------+)-->< ¦
¦ +-DD(ddname),BLK(blksize),BUF(buffers)-+ ¦
+----------------------------------------------------------------------------+
If you omit DD(ddname), the assumed ddname will be CWPLOAD.
DECK File-Overrides Command
Specifies the object library (indicated by the DECK option of the compiler).
¦ ¦
¦ >>--DECK(+--------------------------------------+)-->< ¦
¦ +-DD(ddname),BLK(blksize),BUF(buffers)-+ ¦
+----------------------------------------------------------------------------+
If you omit DD(ddname), the assumed ddname will be CWPDECK.
Optional Override Values
The keywords here cause the language processor to override its default values:
DDNAME (DD):
Specify a ddname instead of accepting the default ddname.
BLKSIZE (BLK):
Specify a decimal blocksize instead of accepting the default blocksize.
BUFFERS (BUF):
Specify a decimal number as the number of buffers instead of accepting the default number of buffers, which is 2. Only the first two buffers are used for buffering input/output. Extra buffers are used as in-core work space for the file. Therefore, records placed in the work space will never be written to the work files. If the storage is available, use this parameter with the BLKSIZE parameter to increase the language processor speed.
If the language processor is running in the MVS/XA or MVS/ESA environment and is above the 16 MB line, a value of zero specifies that as much storage as is available will be used. Using zero places a greater amount of overhead on startup and should not be used for small programs.
LRECL (LR):
Specify a decimal number as the logical record length instead of accepting the default logical record size.
RECFM (RE):
Specify a record format instead of accepting the default record format. Valid formats include:
F | Fixed |
FA | Fixed ASA |
FM | Fixed Machine |
V | Variable |
VA | Variable ASA |
VM | Variable Machine |
INCLUDE (IN)
Use the INCLUDE command to include a library or sequential file member that contains another set of language processor options to be processed.
An included set of options can, in turn, include another set of options. If a recursive chain of INCLUDEs is encountered, the language processor will stop with an error message.
Duplicate or conflicting parameters are resolved as follows:
- Options are processed left to right.
- When an INCLUDE is encountered, the included member is processed immediately. Options following the INCLUDE will be processed after the included member is processed.
- The last option processed takes precedence.
- The sources of options are, in order of descending priority:
- forced options in the PL/I language compiler installation default module
- CBL options in the source file (or equivalent for other compilers)
- PARM options on the EXEC card
- options specified in the CWPPRMO data set
- default options in the PL/I language compiler installation default module.
The INCLUDE command can be used only with the preprocessor.
The following diagram illustrates the syntax for the INCLUDE command:
¦ ¦
¦ +-CWPPRMO-+ ¦
¦ >>--INclude(+---------+-,-+--------+)-->< ¦
¦ +-ddname--+ +-member-+ ¦
+----------------------------------------------------------------------------+
ddname:
The DDNAME of the JCL statement that specifies the data set name. If a member is not specified, then the ddname must point to a sequential file or library member.
member
The library member name. If the ddname is not specified, then the default CWPPRMO will be used and a comma must precede the member name.
LANGPARM (LANGP)
The LANGPARM command specifies parameters to be passed to the compiler invoked by the language processor. If the language processor is run as a separate job step, this option is ignored.
If you use the CWPPRMO data set to specify your compiler options, you should use the LANGPARM command. Otherwise, the preprocessor may not be able to distinguish between compiler options and language processor options with the same name. The LANGPARM command allows the preprocessor to identify compiler options that conflict with language processor names, thus preventing unpredictable results.
If you use the PARM statement to specify your compiler options, you can also use the LANGPARM command.
The LANGPARM command can be used only with the preprocessor.
The following diagram illustrates the syntax for the LANGPARM command.
¦ ¦
¦ >>--LANGParm(+---------------+)-->< ¦
¦ +-parm1...parmn-+ ¦
+----------------------------------------------------------------------------+
parm:
Specifies a parameter to be passed.
LANGUAGE (LANG)
The LANGUAGE command is used to specify the type of compiler to be executed for the PL/I language preprocessor.
The LANGUAGE command is no longer required for the postprocessor.
The following diagram illustrates the syntax for the LANGUAGE command.
¦ ¦
¦ +-PL/I-------+ ¦
¦ >>--LANGuage(+------------+)-->< ¦
¦ +-PLIADcycle-¦ ¦
¦ +-VAPL/I-----+ ¦
¦ +-ENTPL/I----+ ¦
+----------------------------------------------------------------------------+
PL/I: (Default)
Specifies that the PL/I compiler should be used.
PLIADCYCLE (PLIAD):
Specifies that the PL/I AD/CYCLE compiler should be used. This is also used for LE/370 PL/I.
VISUALAGEPLI(VAPL/I)
Specifies that the VisualAge PL/I compiler should be used.
ENTERPRISEPLI (ENTPL/I)
Specifies that the Enterprise PL/I compiler should be used.
PL/I
The PL/I command controls the compiler listing destination. The parameter for the PL/I command is OUTPUT. The following diagram illustrates the syntax for the PL/I command OUTPUT parameter.
¦ ¦
¦ +-NOPRint-+ +-NODDio-+ ¦
¦ >>--PL/I(OUtput(+-+---------+-,-+--------+--+))-->< ¦
¦ + +-PRint---+ +-DDIO---+ ¦
¦ +-BOth----------------------¦ ¦
¦ +-NOne----------------------+ ¦
+----------------------------------------------------------------------------+
OUTPUT (OU):
Specifies whether the compiler listing will be printed or written to a source listing file. Select from the following values:
NOPRINT (NOPR):
(Default) - Does not print the compiler listing.
PRINT (PR):
Prints the compiler listing.
NODDIO (NODD):
(Default) - Does not write the compiler listing to a source listing file.
DDIO (DD):
Writes the compiler listing to a source listing file.
BOTH (BO):
Prints the listing and writes it to a source listing file. This has the same effect as specifying PL/I(OUTOUT(PRINT,DDIO)).
NONE (NON):
Does not print the compiler listing and does not write it to a DDIO file. This has the same effect as PL/I(OUTPUT(NOPRINT,NODDIO)).
PRINT (PR)
The PRINT command identifies the sections of the listing that will be printed. The parameter for the PRINT command is OUTPUT.
¦ ¦
¦ +-LIst---+ +-OFfset---+ +-XRef---+ ¦
¦ >>--PRint(OUtput(+--------+-,-+----------+-,-+--------+,--> ¦
¦ +-NOLIst-+ +-NOOFfset-+ +-NOXRef-+ ¦
¦ +-SOurce---+ ¦
¦ >--+----------+))-->< ¦
¦ +-NOSOurce-+ ¦
+----------------------------------------------------------------------------+
OUTPUT (OU):
Specifies the options for a source listing that will be printed.
LIST (LI):
(Default) - Prints the Pseudo-Assembler section of the listing.
NOLIST (NOLI):
Does not print the Pseudo-Assembler section of the listing.
OFFSET (OF):
(Default) - Prints the Offset section of the listing.
NOOFFSET (NOOF):
Does not print the Offset section of the listing.
XREF (XR):
(Default) Prints the XREF sections of the listing.
NOXREF (NOXR):
Does not print the XREF sections of the listing.
SOURCE (SO):
(Default) Prints the Source section of the listing.
NOSOURCE (NOSO):
Does not print the Source section of the listing.
PROCESSOR (PROC)
The PROCESSOR command specifies the output parameters of the PL/I language processor. The parameters available for the PROCESSOR command are:
- BYPASS
- ERRORS
- OUTPUT (VisualAge PL/I or higher only)
- $NG
- $NIDR
- $NO
- IDENTYES or IDENTNO
BYPASS (BY) Parameter
Specifies whether to run the preprocessor and compiler without running the postprocessor. The following diagram illustrates the syntax for the PROCESSOR command BYPASS parameter.
¦ ¦
¦ +-NOBYpass-+ ¦
¦ >>--PROCessor(+----------+)-->< ¦
¦ +-BYpass---+ ¦
+----------------------------------------------------------------------------+
NOBYPASS (NOBY):
(Default) - Runs the postprocessor.
BYPASS (BY):
Does not run the postprocessor.
ERRORS (ER) Parameter
Specifies how the language processor error messages will be printed. The following diagram illustrates the syntax for the PROCESSOR command ERRORS parameter.
¦ ¦
¦ +-UPper-case-+ ¦
¦ >>--PROCessor(ERrors(+------------+))-->< ¦
¦ +-MIxed-case-+ ¦
+----------------------------------------------------------------------------+
UPPER-CASE (UP):
(Default) - Errors will be printed in uppercase letters.
MIXED-CASE (MI):
Errors will be printed in uppercase and lowercase letters.
OUTPUT (OU) Parameter
Defines options for printing the enhanced listing or writing it to a source listing file. The PLI(OUTPUT(DDIO)) and PROCESSOR(OUTPUT(DDIO)) commands are mutually exclusive. The language processor uses the last-supplied parameter.
The following diagram illustrates the syntax for the OUTPUT parameter.
¦ ¦
¦ +-PRint---+ +-NODDio-+ ¦
¦ >>--PROCessor(OUtput(+-+---------+-,-+--------+-+))-->< ¦
¦ ¦ +-NOPRint-+ +-DDio---+ ¦ ¦
¦ +-BOth---------------------¦ ¦
¦ +-NONe---------------------+ ¦
+----------------------------------------------------------------------------+
PRINT (PR):
(Default) Prints the enhanced listing.
NOPRINT (NOPR):
Does not print the enhanced listing.
NODDIO (NODD):
(Default) Does not write the enhanced listing to a source listing file.
DDIO (DD):
Writes the enhanced listing to a source listing file.
BOTH (BO):
Has the same effect as specifying PROCESSOR(OUTPUT(PRINT,DDIO)).
NONE (NON):
Does not print the enhanced listing and does not write it to a source listing file.
$NG Parameter
Specifies that the preprocessor’s support of INCLUDE %NOPRINT will be bypassed. The following diagram illustrates the syntax for the PROCESSOR command $NG parameter.
¦ ¦
¦ >>--PROCessor(+-----+)-->< ¦
¦ +-$NG-+ ¦
+----------------------------------------------------------------------------+
$NIDR Parameter
Specifies that placement of the date and time stamp on the object module will be bypassed. The following diagram illustrates the syntax for the PROCESSOR command $NIDR parameter.
¦ ¦
¦ >>--PROCessor(+-------+)-->< ¦
¦ +-$NIDR-+ ¦
+----------------------------------------------------------------------------+
$NO Parameter
Specifies that the preliminary compilation performed by the preprocessor will be bypassed. The preliminary compilation is normally used to determine the compiler options currently in effect. However, if you know that your options satisfy the requirements of the language processor, you can bypass the preliminary compilation to reduce the preprocessor’s execution time.
The following diagram illustrates the syntax for the PROCESSOR command $NO parameter.
¦ ¦
¦ >>--PROCessor(+-------+)-->< ¦
¦ +-$NOWB-+ ¦
+----------------------------------------------------------------------------+
IDENTYES or IDENTNO
By default, BMC AMI language processors attempt to add information to the object deck produced by a compiler (DD SYSLIN). This information assists BMC AMI products in locating the correct member in a BMC AMI Listing File. The Language Processors will by default add an IDENTIFY record to the object deck.
This IDENTIFY record is processed by the Linkage Editor or Binder when the object deck is transformed into a load module or program object. The data added to the load module or program object is non-executable, not loaded into memory when the module executes. It identifies the BMC AMI Listing File where the language processor stored its output for that program.
If you want to suppress this IDENTIFY card for a particular run of a Language Processor, you may supply the input PROCESSOR(IDENTNO) in the CWPPRMO input.
The default value is PROCESSOR(IDENTYES). You may alter this default by using the Customer Modification Facility (see Using-the-CWDDUNLP-Source-Extraction-utility). If you alter the default to IDENTNO, you may then wish to supply the input PROCESSOR(IDENTYES) in CWPPRMO, for an individual execution of the Language Processor.
PROGRAM-NAME (PRO)
The PROGRAM-NAME command specifies an override name for members in the source listing file. The following diagram illustrates the syntax for the PROGRAM-NAME command.
¦ ¦
¦ >>--PROgram-name(+------+)-->< ¦
¦ +-name-+ ¦
+---------------------------------------------------------------------------+
name:
Specifies an alternative name for a source listing written to the source listing file.
SYSTEM (SYS)
The SYSTEM command performs miscellaneous functions. The syntax for SYSTEM is:
¦ ¦
¦ >>--SYStem(+-------+,-+------+,-+-----+,-+----+-)->< ¦
¦ +-TRace-+ +-TIme-+ +-PTF-+ +-ZAP+ ¦
+----------------------------------------------------------------------------+
TRACE (TR):
Specifies that internal traces be printed to CWPERRM.
TIME (TI):
Specifies that internal time will be printed with the trace.
PTF:
Specifies that PTF numbers currently installed on the CSS library will be printed. This parameter is used by BMC AMI Technical Support during problem diagnosis.
ZAP
Specifies that PTF numbers currently installed on the CSS library will be printed. This parameter is used by BMC AMI Technical Support during problem diagnosis.
ZIIP (ZIIP)
The ZIIP command controls the use of an available zIIP processor. The command provides a mechanism to disable zIIP use by the language processor, and to control memory usage and dump options when zIIP processing is enabled. The following diagram illustrates the syntax of the ZIIP command:
¦ ¦
¦ +-YES-+ +-MEM64-+ +-DUMP---+ ¦
¦ >>--ZIIP(+-----+,-+-------+,-+--------+-)->< ¦
¦ +-NO--+ +-MEM31-+ +-NODUMP-+ ¦
+----------------------------------------------------------------------------+
YES:
Indicates that zIIP processing is to be enabled. This is the default.
NO:
Indicates that zIIP processing is disabled and all language processing will execute on a general purpose processor. Alternately, zIIP processing can also be disabled by including a CXZPIGNR DD DUMMY statement in the language processor JCL stream.
MEM64:
Indicates that 64-bit memory will be used during language processing. This is the default.
MEM31:
Indicates that normal 31-bit memory will be used during language processing.
DUMP:
Indicates that a machine readable dump will be taken if the language processor abends while processing during zIIP execution. This is the default.
NODUMP:
Indicates that a machine readable dump will be suppressed if the language processor abends while processing during zIIP execution.