EXIT
Use the EXIT option to provide user-supplied
modules in place of various compiler functions.
INEXIT and LIBEXIT
suboptions to provide modules in place of SYSIN and SYSLIB (or copy library), respectively. INEXIT or LIBEXIT is used, the 'Source' view for your debug session will not be available. If you choose the 'Show Source' feature of 'Switch View' with Debug for z/OS®, it will not work because there is no source file.For compiler output, use the PRTEXIT suboption to provide a module in
place of SYSPRINT.
To provide a module
that will be called for each SYSADATA record immediately after the
record has been written out to the file, use the ADEXIT suboption.
To customize compiler messages (change their severity or
suppress them, including converting FIPS (FLAGSTD)
messages to diagnostic messages to which you assign a severity), use
the MSGEXIT suboption. The module that you provide
to customize the messages will be called each time the compiler issues
a diagnostic message or a FIPS message.
Default is: NOEXIT
Abbreviations
are: NOEX|EX(INX|NOINX, LIBX|NOLIBX, PRTX|NOPRTX, ADX|NOADX, MSGX|NOMSGX)
You can specify the suboptions in any order, and can separate them by either commas or spaces. If you specify both the positive and negative form of a suboption, the form specified last takes effect. If you specify the same suboption more than once, the last one specified takes effect.
If you specify the EXIT option
without specifying at least one suboption, NOEXIT will
be in effect.
You can specify the EXIT option
only at invocation in the JCL PARM field (under TSO/E,
in a command argument) or at installation time. Do not specify the EXIT option
in a PROCESS (CBL) statement.
INEXIT(['str1',]mod1)- The compiler reads source code from a user-supplied program object (where mod1 is the module name) instead of SYSIN.
LIBEXIT(['str2',]mod2)- The
compiler obtains copybooks from a user-supplied program
object (where mod2 is the module name) instead
of library-name or SYSLIB. For use with either
COPYorBASISstatements. PRTEXIT(['str3',]mod3)- The compiler passes printer-destined output to the user-supplied program object (where mod3 is the module name) instead of SYSPRINT.
ADEXIT(['str4',]mod4)- The compiler passes the SYSADATA output to the user-supplied program object (where mod4 is the module name).
MSGEXIT(['str5',]mod5)- The compiler passes the message number, and passes the default severity of a compiler diagnostic message, or the category (as a numeric code) of a FIPS compiler message, to the user-supplied program object (where mod5 is the module name).
The names mod1, mod2, mod3, mod4, and mod5 can refer to the same module.
The suboptions str1, str2, str3, str4, and str5 are character strings that are passed to the program object. These strings are optional. They can be up to 64 characters in length, and you must enclose them in a pair of apostrophes (' '). You can use any character in the strings, but any included apostrophes must be doubled ("). Lowercase characters are folded to uppercase.
If one of str1, str2, str3, str4,
or str5 is specified, that string is
passed to the appropriate user-exit module in the following format,
where LL is a halfword (on a halfword boundary) that
contains the length of the string.
LL string
Compiler exit modules that are specified
on the EXIT option can be implemented either in an
assembler language or in a high-level programming language such as
COBOL. However, when exits are written in a Language Environment® conforming
programming language or Language
Environment conforming assembler language, the exit must be reentrant. In addition, compiler exits must NOT be compiled with
the LP(64) compiler option.
- Compiler exits are run as subprograms instead of main programs.
- Compiler exits must not include logic for explicitly initializing
or terminating Language
Environment. In particular, exits must not use the
RTEREUSruntime option, theIGZERREcallable service, or theCEEPIPIcallable service for environment management. - Compiler exits must not use the
STOP RUNstatement.
